@arcgis/core 4.33.0-next.20250425 → 4.33.0-next.20250427

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.
Files changed (83) hide show
  1. package/WebLinkChart.js +1 -1
  2. package/WebScene.js +1 -1
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/{d696abbb1b13ac1a689b.js → 345993291540433d3d92.js} +1 -1
  5. package/assets/esri/core/workers/chunks/{db5913824d5e5a2a8365.js → 360c8cff7c3b25d2b2d2.js} +1 -1
  6. package/assets/esri/core/workers/chunks/73f9c3a74a815baa239c.js +1 -0
  7. package/assets/esri/core/workers/chunks/76575d2c1c56e37c1315.js +319 -0
  8. package/assets/esri/core/workers/chunks/{f2cef954b58c6604642c.js → 87dcfbbcf290e0fa5c0f.js} +160 -167
  9. package/assets/esri/core/workers/chunks/91acd69dcf7dac109017.js +1 -0
  10. package/assets/esri/core/workers/chunks/{265f69d153b7b6f07e42.js → 92836e3a2c5226296fec.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{75a04b073231da70c18d.js → d44e99b4bb1cec6a922b.js} +1 -1
  12. package/assets/esri/themes/base/_core.scss +2 -0
  13. package/assets/esri/themes/base/widgets/_Legend.scss +64 -0
  14. package/assets/esri/themes/base/widgets/_OrientedImageryViewerNavigationUI.scss +77 -0
  15. package/assets/esri/themes/dark/main.css +1 -1
  16. package/assets/esri/themes/light/main.css +1 -1
  17. package/assets/esri/themes/light/view.css +1 -1
  18. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  19. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  20. package/chunks/boundedPlane.js +1 -1
  21. package/geometry/support/boundedPlane.js +1 -1
  22. package/interfaces.d.ts +328 -65
  23. package/layers/KnowledgeGraphLayer.js +1 -1
  24. package/layers/LinkChartLayer.js +1 -1
  25. package/layers/ogc/wfsUtils.js +1 -1
  26. package/layers/orientedImagery/transformations/utils.js +1 -1
  27. package/package.json +1 -1
  28. package/smartMapping/renderers/size.js +1 -1
  29. package/smartMapping/renderers/support/spikeUtils.js +1 -1
  30. package/support/revision.js +1 -1
  31. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  32. package/views/3d/analysis/Slice/SliceController.js +1 -1
  33. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  34. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  35. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  36. package/views/3d/layers/graphics/pipeline/Feature3DPipelineWorker.js +1 -1
  37. package/views/3d/layers/graphics/pipeline/FeatureProcessingContext.js +5 -0
  38. package/views/3d/layers/graphics/pipeline/PipelineCommand.js +1 -1
  39. package/views/3d/layers/graphics/pipeline/symbolization/Factory.js +1 -1
  40. package/views/3d/layers/graphics/pipeline/symbolization/SimpleFeatureRenderer.js +1 -1
  41. package/views/3d/layers/graphics/pipeline/symbolization/TestObjectSymbol.js +1 -1
  42. package/views/3d/layers/graphics/pipeline/symbolization/TestSymbol.js +1 -1
  43. package/views/3d/layers/graphics/pipeline/symbolization/UniqueValueFeatureRenderer.js +1 -1
  44. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  45. package/views/3d/support/ViewSlice.js +5 -0
  46. package/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js +3 -6
  47. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +15 -15
  48. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +0 -9
  49. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  50. package/views/3d/webgl-engine/lib/SliceHelper.js +1 -1
  51. package/views/3d/webgl-engine/shaders/BlackLevelLightSoftCompression.glsl.js +10 -0
  52. package/views/SceneView.js +1 -1
  53. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  54. package/webscene/types.d.ts +5 -0
  55. package/webscene/types.js +5 -0
  56. package/widgets/ElevationProfile/ElevationProfileController.js +1 -1
  57. package/widgets/Legend/styles/card/SizeRamp.js +1 -1
  58. package/widgets/Legend/styles/classic/SizeRamp.js +1 -1
  59. package/widgets/Legend/styles/support/sizeRampUtils.js +5 -0
  60. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  61. package/widgets/Legend/styles/support/utils.js +1 -1
  62. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  63. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  64. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  65. package/widgets/OrientedImageryViewer/OrientedImageryViewerVisibleElements.js +1 -1
  66. package/widgets/OrientedImageryViewer/components/NavigationNode.js +5 -0
  67. package/widgets/OrientedImageryViewer/components/NavigationUI.js +5 -0
  68. package/widgets/OrientedImageryViewer/components/NavigationUIViewModel.js +5 -0
  69. package/widgets/OrientedImageryViewer/components/imageNavigationUtils.js +5 -0
  70. package/widgets/OrientedImageryViewer/css.js +1 -1
  71. package/widgets/OrientedImageryViewer/utils.js +1 -1
  72. package/widgets/OrientedImageryViewer.js +1 -1
  73. package/widgets/ShadowCast/DiscreteOptions.d.ts +4 -0
  74. package/widgets/ShadowCast/DiscreteOptions.js +1 -1
  75. package/widgets/ShadowCast/DurationOptions.d.ts +4 -0
  76. package/widgets/ShadowCast/DurationOptions.js +1 -1
  77. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  78. package/widgets/ShadowCast/ThresholdOptions.d.ts +4 -0
  79. package/widgets/ShadowCast/ThresholdOptions.js +1 -1
  80. package/widgets/TimeZoneLabel.js +1 -1
  81. package/assets/esri/core/workers/chunks/7c7ff11246479382974c.js +0 -1
  82. package/assets/esri/core/workers/chunks/b53300b46646cfad2526.js +0 -319
  83. package/assets/esri/core/workers/chunks/bd0dbad694ce5531deab.js +0 -1
@@ -1,319 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[2739],{10536:(e,t,r)=>{function n(e){const t={};for(const r in e){if("declaredClass"===r)continue;const i=e[r];if(null!=i&&"function"!=typeof i)if(Array.isArray(i)){t[r]=[];for(let e=0;e<i.length;e++)t[r][e]=n(i[e])}else"object"==typeof i?i.toJSON&&(t[r]=JSON.stringify(i)):t[r]=i}return t}r.d(t,{z:()=>n})},13259:(e,t,r)=>{r.d(t,{H:()=>U,b:()=>z,c:()=>B,f:()=>V,s:()=>D});var n=r(37585),i=r(48163),s=r(91829),a=r(79258),o=r(49255),l=r(76591),c=r(36782),d=r(47522),u=r(40268),h=r(63578),f=r(13755),p=r(42593),m=r(42398),g=r(63365),y=r(26835),_=r(52587),v=r(20693),b=r(47286),x=r(14314),w=r(81961),C=r(71988),I=r(33094),S=r(20304),A=r(31821),T=r(12791),O=r(63761),R=r(59643),E=r(46540),M=r(14113),P=r(49788);const D={occludedFadeFactor:1};function z(e){const t=new M.N5,{signedDistanceFieldEnabled:r,occlusionTestEnabled:i,horizonCullingEnabled:D,pixelSnappingEnabled:z,hasScreenSizePerspective:V,debugDrawLabelBorder:U,vvSize:L,vvColor:k,hasRotation:H,occludedFragmentFade:q,sampleSignedDistanceFieldTexelCenter:G}=e;t.include(u.Q,e),t.vertex.include(l.rA,e);const{occlusionPass:$,output:Y,oitPass:W}=e;if($)return t.include(h.I,e),t;const{vertex:X,fragment:Z}=t;t.include(_.Y6),t.include(m.A,e),t.include(c.g,e),i&&t.include(f.y),Z.include(y.W),Z.include(g.a),t.varyings.add("vcolor","vec4"),t.varyings.add("vtc","vec2"),t.varyings.add("vsize","vec2");const Q=Y===o.V.Highlight,J=Q&&i;J&&t.varyings.add("voccluded","float"),X.uniforms.add(new x.I("viewport",(e=>e.camera.fullViewport)),new b.G("screenOffset",((e,t)=>(0,n.hZ)(j,2*e.screenOffset[0]*t.camera.pixelRatio,2*e.screenOffset[1]*t.camera.pixelRatio))),new b.G("anchorPosition",(e=>B(e))),new C.E("materialColor",(e=>e.color)),new S.m("materialRotation",(e=>e.rotation)),new O.N("tex",(e=>e.texture))),(0,v.Nz)(X),r&&(X.uniforms.add(new C.E("outlineColor",(e=>e.outlineColor))),Z.uniforms.add(new C.E("outlineColor",(e=>F(e)?e.outlineColor:s.uY)),new S.m("outlineSize",(e=>F(e)?e.outlineSize:0)))),D&&X.uniforms.add(new w.V("pointDistanceSphere",((e,t)=>{const r=t.camera.eye,n=e.origin;return(0,s.fA)(n[0]-r[0],n[1]-r[1],n[2]-r[2],a.$O.radius)}))),z&&X.include(d.K),V&&((0,_.pM)(X),(0,_.OH)(X)),U&&t.varyings.add("debugBorderCoords","vec4"),t.attributes.add(E.r.UVI,"vec2"),t.attributes.add(E.r.COLOR,"vec4"),t.attributes.add(E.r.SIZE,"vec2"),t.attributes.add(E.r.ROTATION,"float"),t.attributes.add(E.r.FEATUREATTRIBUTE,"vec4"),X.code.add(D?A.H`bool behindHorizon(vec3 posModel) {
2
- vec3 camToEarthCenter = pointDistanceSphere.xyz - localOrigin;
3
- vec3 camToPos = pointDistanceSphere.xyz + posModel;
4
- float earthRadius = pointDistanceSphere.w;
5
- float a = dot(camToPos, camToPos);
6
- float b = dot(camToPos, camToEarthCenter);
7
- float c = dot(camToEarthCenter, camToEarthCenter) - earthRadius * earthRadius;
8
- return b > 0.0 && b < a && b * b > a * c;
9
- }`:A.H`bool behindHorizon(vec3 posModel) { return false; }`),X.main.add(A.H`
10
- ProjectHUDAux projectAux;
11
- vec4 posProj = projectPositionHUD(projectAux);
12
- forwardObjectAndLayerIdColor();
13
-
14
- if (rejectBySlice(projectAux.posModel)) {
15
- // Project outside of clip plane
16
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
17
- return;
18
- }
19
-
20
- if (behindHorizon(projectAux.posModel)) {
21
- // Project outside of clip plane
22
- gl_Position = vec4(1e038, 1e038, 1e038, 1.0);
23
- return;
24
- }
25
-
26
- vec2 inputSize;
27
- ${(0,A.If)(V,A.H`
28
- inputSize = screenSizePerspectiveScaleVec2(size, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);
29
- vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);`,A.H`
30
- inputSize = size;
31
- vec2 screenOffsetScaled = screenOffset;`)}
32
- ${(0,A.If)(L,A.H`inputSize *= vvScale(featureAttribute).xx;`)}
33
-
34
- vec2 combinedSize = inputSize * pixelRatio;
35
- vec4 quadOffset = vec4(0.0);
36
-
37
- ${(0,A.If)(i,A.H`
38
- bool visible = testHUDVisibility(posProj);
39
- if (!visible) {
40
- vtc = vec2(0.0);
41
- ${(0,A.If)(U,"debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);")}
42
- return;
43
- }`)}
44
- ${(0,A.If)(J,A.H`voccluded = visible ? 0.0 : 1.0;`)}
45
- `);const K=A.H`
46
- vec2 uvi1 = vec2(uvi.x < 0.0 ? 1.0 : 0.0, uvi.y < 0.0 ? 1.0 : 0.0);
47
- vec2 uv = abs(uvi + uvi1);
48
- vec2 texSize = vec2(textureSize(tex, 0));
49
- uv.x = uv.x >= ${N} ? 1.0 : uv.x / texSize.x;
50
- uv.y = uv.y >= ${N} ? 1.0 : uv.y / texSize.y;
51
- quadOffset.xy = (uvi1 - anchorPosition) * 2.0 * combinedSize;
52
-
53
- ${(0,A.If)(H,A.H`
54
- float angle = radians(materialRotation + rotation);
55
- float cosAngle = cos(angle);
56
- float sinAngle = sin(angle);
57
- mat2 rotate = mat2(cosAngle, -sinAngle, sinAngle, cosAngle);
58
-
59
- quadOffset.xy = rotate * quadOffset.xy;
60
- `)}
61
-
62
- quadOffset.xy = (quadOffset.xy + screenOffsetScaled) / viewport.zw * posProj.w;
63
- `,ee=z?r?A.H`posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;`:A.H`posProj += quadOffset;
64
- if (inputSize.x == size.x) {
65
- posProj = alignToPixelOrigin(posProj, viewport.zw);
66
- }`:A.H`posProj += quadOffset;`;X.main.add(A.H`
67
- ${K}
68
- ${k?"vcolor = interpolateVVColor(featureAttribute.y) * materialColor;":"vcolor = color / 255.0 * materialColor;"}
69
-
70
- ${(0,A.If)(Y===o.V.ObjectAndLayerIdColor,A.H`vcolor.a = 1.0;`)}
71
-
72
- bool alphaDiscard = vcolor.a < ${A.H.float(P.Q)};
73
- ${(0,A.If)(r,`alphaDiscard = alphaDiscard && outlineColor.a < ${A.H.float(P.Q)};`)}
74
- if (alphaDiscard) {
75
- // "early discard" if both symbol color (= fill) and outline color (if applicable) are transparent
76
- gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
77
- return;
78
- } else {
79
- ${ee}
80
- gl_Position = posProj;
81
- }
82
-
83
- vtc = uv;
84
-
85
- ${(0,A.If)(U,A.H`debugBorderCoords = vec4(uv01, 1.5 / combinedSize);`)}
86
- vsize = inputSize;
87
- `),Z.uniforms.add(new O.N("tex",(e=>e.texture))),q&&!Q&&Z.uniforms.add(new T.x("depthMap",(e=>e.mainDepth)),new I.U("occludedOpacity",(e=>e.hudOccludedFragmentOpacity)));const te=U?A.H`(isBorder > 0.0 ? 0.0 : ${A.H.float(P.Q)})`:A.H.float(P.Q),re=A.H`
88
- ${(0,A.If)(U,A.H`float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));`)}
89
-
90
- vec2 samplePos = vtc;
91
-
92
- ${(0,A.If)(G,A.H`
93
- float txSize = float(textureSize(tex, 0).x);
94
- float texelSize = 1.0 / txSize;
95
-
96
- // Calculate how much we have to add/subtract to/from each texel to reach the size of an onscreen pixel
97
- vec2 scaleFactor = (vsize - txSize) * texelSize;
98
- samplePos += (vec2(1.0, -1.0) * texelSize) * scaleFactor;`)}
99
-
100
- ${r?A.H`
101
- vec4 fillPixelColor = vcolor;
102
-
103
- // Get distance and map it into [-0.5, 0.5]
104
- float d = rgbaTofloat(texture(tex, samplePos)) - 0.5;
105
-
106
- // Distance in output units (i.e. pixels)
107
- float dist = d * vsize.x;
108
-
109
- // Create smooth transition from the icon into its outline
110
- float fillAlphaFactor = clamp(0.5 - dist, 0.0, 1.0);
111
- fillPixelColor.a *= fillAlphaFactor;
112
-
113
- if (outlineSize > 0.25) {
114
- vec4 outlinePixelColor = outlineColor;
115
- float clampedOutlineSize = min(outlineSize, 0.5*vsize.x);
116
-
117
- // Create smooth transition around outline
118
- float outlineAlphaFactor = clamp(0.5 - (abs(dist) - 0.5*clampedOutlineSize), 0.0, 1.0);
119
- outlinePixelColor.a *= outlineAlphaFactor;
120
-
121
- if (
122
- outlineAlphaFactor + fillAlphaFactor < ${te} ||
123
- fillPixelColor.a + outlinePixelColor.a < ${A.H.float(P.Q)}
124
- ) {
125
- discard;
126
- }
127
-
128
- // perform un-premultiplied over operator (see https://en.wikipedia.org/wiki/Alpha_compositing#Description)
129
- float compositeAlpha = outlinePixelColor.a + fillPixelColor.a * (1.0 - outlinePixelColor.a);
130
- vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +
131
- vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);
132
-
133
- ${(0,A.If)(!Q,A.H`fragColor = vec4(compositeColor, compositeAlpha);`)}
134
- } else {
135
- if (fillAlphaFactor < ${te}) {
136
- discard;
137
- }
138
-
139
- ${(0,A.If)(!Q,A.H`fragColor = premultiplyAlpha(fillPixelColor);`)}
140
- }
141
-
142
- // visualize SDF:
143
- // fragColor = vec4(clamp(-dist/vsize.x*2.0, 0.0, 1.0), clamp(dist/vsize.x*2.0, 0.0, 1.0), 0.0, 1.0);
144
- `:A.H`
145
- vec4 texColor = texture(tex, samplePos, -0.5);
146
- if (texColor.a < ${te}) {
147
- discard;
148
- }
149
- ${(0,A.If)(!Q,A.H`fragColor = texColor * premultiplyAlpha(vcolor);`)}
150
- `}
151
-
152
- ${(0,A.If)(q&&!Q,A.H`
153
- float zSample = texelFetch(depthMap, ivec2(gl_FragCoord.xy), 0).x;
154
- if (zSample < gl_FragCoord.z) {
155
- fragColor *= occludedOpacity;
156
- }
157
- `)}
158
-
159
- ${(0,A.If)(!Q&&U,A.H`fragColor = mix(fragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder * 0.5);`)}
160
- `;switch(Y){case o.V.Color:case o.V.ColorEmission:t.outputs.add("fragColor","vec4",0),Y===o.V.ColorEmission&&t.outputs.add("fragEmission","vec4",1),W===R.Y.ColorAlpha&&t.outputs.add("fragAlpha","float",Y===o.V.ColorEmission?2:1),Z.main.add(A.H`
161
- ${re}
162
- ${(0,A.If)(W===R.Y.FrontFace,A.H`fragColor.rgb /= fragColor.a;`)}
163
- ${(0,A.If)(Y===o.V.ColorEmission,A.H`fragEmission = vec4(0.0);`)}
164
- ${(0,A.If)(W===R.Y.ColorAlpha,A.H`fragAlpha = fragColor.a;`)}`);break;case o.V.ObjectAndLayerIdColor:Z.main.add(A.H`
165
- ${re}
166
- outputObjectAndLayerIdColor();`);break;case o.V.Highlight:t.include(p.Q,e),Z.main.add(A.H`
167
- ${re}
168
- outputHighlight(${(0,A.If)(J,A.H`voccluded == 1.0`,A.H`false`)});`)}return t}function F(e){return e.outlineColor[3]>0&&e.outlineSize>0}function B(e){return e.textureIsSignedDistanceField?(t=e.anchorPosition,r=e.distanceFieldBoundingBox,i=j,(0,n.hZ)(i,t[0]*(r[2]-r[0])+r[0],t[1]*(r[3]-r[1])+r[1])):(0,n.C)(j,e.anchorPosition),j;var t,r,i}const j=(0,i.vt)(),V=32e3,N=A.H.float(V),U=Object.freeze(Object.defineProperty({__proto__:null,build:z,calculateAnchorPosition:B,fullUV:V,shaderSettings:D},Symbol.toStringTag,{value:"Module"}))},13755:(e,t,r)=>{r.d(t,{y:()=>c});var n,i=r(47522);!function(e){e[e.Occluded=0]="Occluded",e[e.NotOccluded=1]="NotOccluded",e[e.Both=2]="Both",e[e.COUNT=3]="COUNT"}(n||(n={}));var s=r(14314),a=r(33094),o=r(31821),l=r(12791);function c(e){e.vertex.uniforms.add(new a.U("renderTransparentlyOccludedHUD",(e=>e.hudRenderStyle===n.Occluded?1:e.hudRenderStyle===n.NotOccluded?0:.75)),new s.I("viewport",(e=>e.camera.fullViewport)),new l.x("hudVisibilityTexture",(e=>e.hudVisibility?.getTexture()))),e.vertex.include(i.K),e.vertex.code.add(o.H`bool testHUDVisibility(vec4 posProj) {
169
- vec4 posProjCenter = alignToPixelCenter(posProj, viewport.zw);
170
- vec4 occlusionPixel = texture(hudVisibilityTexture, .5 + .5 * posProjCenter.xy / posProjCenter.w);
171
- if (renderTransparentlyOccludedHUD > 0.5) {
172
- return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g * renderTransparentlyOccludedHUD < 1.0;
173
- }
174
- return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g == 1.0;
175
- }`)}},18251:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(90237),i=r(69540),s=r(25482),a=r(10107),o=(r(44208),r(53966),r(87811),r(93223)),l=r(40608),c=r(51850);let d=class extends(i.A.ClonableMixin(s.A)){constructor(e){super(e),this.type="local",this.origin=(0,c.vt)()}};(0,n._)([(0,o.e)({local:"local"},{readOnly:!0})],d.prototype,"type",void 0),(0,n._)([(0,a.MZ)({type:[Number],nonNullable:!0,json:{write:!0}})],d.prototype,"origin",void 0),d=(0,n._)([(0,l.$)("esri.geometry.support.MeshLocalVertexSpace")],d);const u=d},20437:(e,t,r)=>{r.d(t,{A:()=>g});var n,i=r(90237),s=r(66552),a=r(25482),o=r(10107),l=r(56507),c=(r(44208),r(87811),r(93223)),d=r(36005),u=r(40608),h=r(80451),f=r(98453);const p=new s.J({binary:"binary",coordinate:"coordinate",countOrAmount:"count-or-amount",dateAndTime:"date-and-time",description:"description",locationOrPlaceName:"location-or-place-name",measurement:"measurement",nameOrTitle:"name-or-title",none:"none",orderedOrRanked:"ordered-or-ranked",percentageOrRatio:"percentage-or-ratio",typeOrCategory:"type-or-category",uniqueIdentifier:"unique-identifier"});let m=class extends a.A{static{n=this}constructor(e){super(e),this.alias=null,this.defaultValue=void 0,this.description=null,this.domain=null,this.editable=!0,this.length=void 0,this.name=null,this.nullable=!0,this.type=null,this.valueType=null,this.visible=!0}readDescription(e,{description:t}){let r=null;try{r=t?JSON.parse(t):null}catch(e){}return r?.value??null}readValueType(e,{description:t}){let r=null;try{r=t?JSON.parse(t):null}catch(e){}return r?p.fromJSON(r.fieldValueType):null}clone(){return new n({alias:this.alias,defaultValue:this.defaultValue,description:this.description,domain:this.domain?.clone()??null,editable:this.editable,length:this.length,name:this.name,nullable:this.nullable,type:this.type,valueType:this.valueType,visible:this.visible})}};(0,i._)([(0,o.MZ)({type:String,json:{write:!0}})],m.prototype,"alias",void 0),(0,i._)([(0,o.MZ)({type:[String,Number],json:{write:{allowNull:!0}}})],m.prototype,"defaultValue",void 0),(0,i._)([(0,o.MZ)()],m.prototype,"description",void 0),(0,i._)([(0,d.w)("description")],m.prototype,"readDescription",null),(0,i._)([(0,o.MZ)({types:h.gK,json:{read:{reader:h.rS},write:!0}})],m.prototype,"domain",void 0),(0,i._)([(0,o.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"editable",void 0),(0,i._)([(0,o.MZ)({type:l.jz,json:{write:{overridePolicy:e=>({enabled:Number.isFinite(e)})}}})],m.prototype,"length",void 0),(0,i._)([(0,o.MZ)({type:String,json:{write:!0}})],m.prototype,"name",void 0),(0,i._)([(0,o.MZ)({type:Boolean,json:{write:!0}})],m.prototype,"nullable",void 0),(0,i._)([(0,c.e)(f.m)],m.prototype,"type",void 0),(0,i._)([(0,o.MZ)()],m.prototype,"valueType",void 0),(0,i._)([(0,d.w)("valueType",["description"])],m.prototype,"readValueType",null),(0,i._)([(0,o.MZ)({type:Boolean,json:{read:!1}})],m.prototype,"visible",void 0),m=n=(0,i._)([(0,u.$)("esri.layers.support.Field")],m);const g=m},27615:(e,t,r)=>{r.d(t,{CK:()=>l,Hq:()=>o,MW:()=>c,TE:()=>d,yJ:()=>u});var n=r(38954),i=r(86738),s=r(95696),a=r(18251);function o(e){return null!=e.origin}function l(e){return o(e.vertexSpace)}function c(e,t){if(!o(e))return null;const[r,n,s]=e.origin;return new i.A({x:r,y:n,z:s,spatialReference:t})}function d(e,t){const{x:r,y:n,z:i,spatialReference:o}=e,l=[r,n,i??0];return"local"===(t?.vertexSpace??function(e){return e.isGeographic||e.isWebMercator?"local":"georeferenced"}(o))?new a.A({origin:l}):new s.A({origin:l})}function u(e,t){return e.type===t.type&&(e.origin===t.origin||null!=e.origin&&null!=t.origin&&(0,n.p)(e.origin,t.origin))}},31756:(e,t,r)=>{r.d(t,{j:()=>s});var n=r(83047),i=r(79258);const s={unknown:1,inches:(0,n.oU)(1,"meters","inches"),feet:(0,n.oU)(1,"meters","feet"),"us-feet":(0,n.oU)(1,"meters","us-feet"),yards:(0,n.oU)(1,"meters","yards"),miles:(0,n.oU)(1,"meters","miles"),"nautical-miles":(0,n.oU)(1,"meters","nautical-miles"),millimeters:(0,n.oU)(1,"meters","millimeters"),centimeters:(0,n.oU)(1,"meters","centimeters"),decimeters:(0,n.oU)(1,"meters","decimeters"),meters:(0,n.oU)(1,"meters","meters"),kilometers:(0,n.oU)(1,"meters","kilometers"),"decimal-degrees":1/(0,n.vl)(1,"meters",i.$O.radius)}},32587:(e,t,r)=>{r.d(t,{A:()=>s});var n=r(62788),i=r(95488);class s{constructor(e){this._observable=new i.I,this._map=new Map(e)}get size(){return(0,n.gc)(this._observable),this._map.size}clear(){this._map.size>0&&(this._map.clear(),this._observable.notify())}delete(e){const t=this._map.delete(e);return t&&this._observable.notify(),t}entries(){return(0,n.gc)(this._observable),this._map.entries()}forEach(e,t){(0,n.gc)(this._observable),this._map.forEach(((r,n)=>e.call(t,r,n,this)),t)}get(e){return(0,n.gc)(this._observable),this._map.get(e)}has(e){return(0,n.gc)(this._observable),this._map.has(e)}keys(){return(0,n.gc)(this._observable),this._map.keys()}set(e,t){return this._map.set(e,t),this._observable.notify(),this}values(){return(0,n.gc)(this._observable),this._map.values()}[Symbol.iterator](){return(0,n.gc)(this._observable),this._map[Symbol.iterator]()}[Symbol.dispose](){this._observable.destroy()}get[Symbol.toStringTag](){return this._map[Symbol.toStringTag]}}},36708:(e,t,r)=>{r.d(t,{C_:()=>h,OH:()=>m,Vh:()=>g,on:()=>u,pc:()=>y,wB:()=>l,z7:()=>c});var n=r(37955),i=r(36563),s=r(97768),a=r(74887),o=r(14012);function l(e,t,r={}){return d(e,t,r,f)}function c(e,t,r={}){return d(e,t,r,p)}function d(e,t,r={},n){let i=null;const a=r.once?(e,r)=>{n(e)&&((0,s.xt)(i),t(e,r))}:(e,r)=>{n(e)&&t(e,r)};if(i=(0,o.Cn)(e,a,r.sync,r.equals),r.initial){const t=e();a(t,t)}return i}function u(e,t,r,a={}){let o=null,c=null,d=null;function u(){o&&c&&(c.remove(),a.onListenerRemove?.(o),o=null,c=null)}function h(e){a.once&&a.once&&(0,s.xt)(d),r(e)}const f=l(e,((e,r)=>{u(),(0,n.wb)(e)&&(o=e,c=(0,n.on)(e,t,h),a.onListenerAdd?.(e))}),{sync:a.sync,initial:!0});return d=(0,i.hA)((()=>{f.remove(),u()})),d}function h(e,t){return function(e,t,r){if((0,a.G4)(r))return Promise.reject((0,a.NK)());const n=e();if(t?.(n))return Promise.resolve(n);let o=null;function l(){o=(0,s.xt)(o)}return new Promise(((n,s)=>{o=(0,i.vE)([(0,a.u7)(r,(()=>{l(),s((0,a.NK)())})),d(e,(e=>{l(),n(e)}),{sync:!1,once:!0},t??f)])}))}(e,p,t)}function f(e){return!0}function p(e){return!!e}r(80559);const m={sync:!0},g={initial:!0},y={sync:!0,initial:!0}},39357:(e,t,r)=>{r.d(t,{H:()=>l});var n,i=r(90237),s=r(25482),a=r(10107),o=(r(44208),r(53966),r(87811),r(40608));let l=n=class extends s.A{constructor(e){super(e),this.name=null,this.code=null}clone(){return new n({name:this.name,code:this.code})}};(0,i._)([(0,a.MZ)({type:String,json:{write:{isRequired:!0}}})],l.prototype,"name",void 0),(0,i._)([(0,a.MZ)({type:[String,Number],json:{write:{isRequired:!0}}})],l.prototype,"code",void 0),l=n=(0,i._)([(0,o.$)("esri.layers.support.CodedValue")],l)},40268:(e,t,r)=>{r.d(t,{Q:()=>h,R:()=>u});var n=r(35640),i=r(52587),s=r(20693),a=r(14314),o=r(33094),l=r(20304),c=r(31821),d=r(46540);const u=.5;function h(e,t){e.include(i.Y6),e.attributes.add(d.r.POSITION,"vec3"),e.attributes.add(d.r.NORMAL,"vec3"),e.attributes.add(d.r.CENTEROFFSETANDDISTANCE,"vec4");const r=e.vertex;(0,s.NB)(r,t),(0,s.yu)(r,t),r.uniforms.add(new a.I("viewport",(e=>e.camera.fullViewport)),new l.m("polygonOffset",(e=>e.shaderPolygonOffset)),new o.U("cameraGroundRelative",(e=>e.camera.aboveGround?1:-1))),t.hasVerticalOffset&&(0,n.V)(r),r.code.add(c.H`struct ProjectHUDAux {
176
- vec3 posModel;
177
- vec3 posView;
178
- vec3 vnormal;
179
- float distanceToCamera;
180
- float absCosAngle;
181
- };`),r.code.add(c.H`
182
- float applyHUDViewDependentPolygonOffset(float pointGroundDistance, float absCosAngle, inout vec3 posView) {
183
- float pointGroundSign = ${t.terrainDepthTest?c.H.float(0):c.H`sign(pointGroundDistance)`};
184
- if (pointGroundSign == 0.0) {
185
- pointGroundSign = cameraGroundRelative;
186
- }
187
-
188
- // cameraGroundRelative is -1 if camera is below ground, 1 if above ground
189
- // groundRelative is 1 if both camera and symbol are on the same side of the ground, -1 otherwise
190
- float groundRelative = cameraGroundRelative * pointGroundSign;
191
-
192
- // view angle dependent part of polygon offset emulation: we take the absolute value because the sign that is
193
- // dropped is instead introduced using the ground-relative position of the symbol and the camera
194
- if (polygonOffset > .0) {
195
- float cosAlpha = clamp(absCosAngle, 0.01, 1.0);
196
- float tanAlpha = sqrt(1.0 - cosAlpha * cosAlpha) / cosAlpha;
197
- float factor = (1.0 - tanAlpha / viewport[2]);
198
-
199
- // same side of the terrain
200
- if (groundRelative > 0.0) {
201
- posView *= factor;
202
- }
203
- // opposite sides of the terrain
204
- else {
205
- posView /= factor;
206
- }
207
- }
208
-
209
- return groundRelative;
210
- }
211
- `),t.draped&&!t.hasVerticalOffset||(0,s.S7)(r),t.draped||(r.uniforms.add(new o.U("perDistancePixelRatio",(e=>Math.tan(e.camera.fovY/2)/(e.camera.fullViewport[2]/2)))),r.code.add(c.H`
212
- void applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {
213
- float distanceToCamera = length(posView);
214
-
215
- // Compute offset in world units for a half pixel shift
216
- float pixelOffset = distanceToCamera * perDistancePixelRatio * ${c.H.float(u)};
217
-
218
- // Apply offset along normal in the direction away from the ground surface
219
- vec3 modelOffset = normalModel * cameraGroundRelative * pixelOffset;
220
-
221
- // Apply the same offset also on the view space position
222
- vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
223
-
224
- posModel += modelOffset;
225
- posView += viewOffset;
226
- }
227
- `)),t.screenCenterOffsetUnitsEnabled&&(0,s.Nz)(r),t.hasScreenSizePerspective&&(0,i.OH)(r),r.code.add(c.H`
228
- vec4 projectPositionHUD(out ProjectHUDAux aux) {
229
- vec3 centerOffset = centerOffsetAndDistance.xyz;
230
- float pointGroundDistance = centerOffsetAndDistance.w;
231
-
232
- aux.posModel = position;
233
- aux.posView = (view * vec4(aux.posModel, 1.0)).xyz;
234
- aux.vnormal = normal;
235
- ${t.draped?"":"applyHUDVerticalGroundOffset(aux.vnormal, aux.posModel, aux.posView);"}
236
-
237
- // Screen sized offset in world space, used for example for line callouts
238
- // Note: keep this implementation in sync with the CPU implementation, see
239
- // - MaterialUtil.verticalOffsetAtDistance
240
- // - HUDMaterial.applyVerticalOffsetTransformation
241
-
242
- aux.distanceToCamera = length(aux.posView);
243
-
244
- vec3 viewDirObjSpace = normalize(cameraPosition - aux.posModel);
245
- float cosAngle = dot(aux.vnormal, viewDirObjSpace);
246
-
247
- aux.absCosAngle = abs(cosAngle);
248
-
249
- ${t.hasScreenSizePerspective&&(t.hasVerticalOffset||t.screenCenterOffsetUnitsEnabled)?"vec3 perspectiveFactor = screenSizePerspectiveScaleFactor(aux.absCosAngle, aux.distanceToCamera, screenSizePerspectiveAlignment);":""}
250
-
251
- ${t.hasVerticalOffset?t.hasScreenSizePerspective?"float verticalOffsetScreenHeight = applyScreenSizePerspectiveScaleFactorFloat(verticalOffset.x, perspectiveFactor);":"float verticalOffsetScreenHeight = verticalOffset.x;":""}
252
-
253
- ${t.hasVerticalOffset?c.H`
254
- float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * aux.distanceToCamera, verticalOffset.z, verticalOffset.w);
255
- vec3 modelOffset = aux.vnormal * worldOffset;
256
- aux.posModel += modelOffset;
257
- vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;
258
- aux.posView += viewOffset;
259
- // Since we elevate the object, we need to take that into account
260
- // in the distance to ground
261
- pointGroundDistance += worldOffset;`:""}
262
-
263
- float groundRelative = applyHUDViewDependentPolygonOffset(pointGroundDistance, aux.absCosAngle, aux.posView);
264
-
265
- ${t.screenCenterOffsetUnitsEnabled?"":c.H`
266
- // Apply x/y in view space, but z in screen space (i.e. along posView direction)
267
- aux.posView += vec3(centerOffset.x, centerOffset.y, 0.0);
268
-
269
- // Same material all have same z != 0.0 condition so should not lead to
270
- // branch fragmentation and will save a normalization if it's not needed
271
- if (centerOffset.z != 0.0) {
272
- aux.posView -= normalize(aux.posView) * centerOffset.z;
273
- }
274
- `}
275
-
276
- vec4 posProj = proj * vec4(aux.posView, 1.0);
277
-
278
- ${t.screenCenterOffsetUnitsEnabled?t.hasScreenSizePerspective?"float centerOffsetY = applyScreenSizePerspectiveScaleFactorFloat(centerOffset.y, perspectiveFactor);":"float centerOffsetY = centerOffset.y;":""}
279
-
280
- ${t.screenCenterOffsetUnitsEnabled?"posProj.xy += vec2(centerOffset.x, centerOffsetY) * pixelRatio * 2.0 / viewport.zw * posProj.w;":""}
281
-
282
- // constant part of polygon offset emulation
283
- posProj.z -= groundRelative * polygonOffset * posProj.w;
284
- return posProj;
285
- }
286
- `)}},47522:(e,t,r)=>{r.d(t,{K:()=>s});var n=r(32976),i=r(31821);function s(e){e.uniforms.add(new n.o("alignPixelEnabled",(e=>e.alignPixelEnabled))),e.code.add(i.H`vec4 alignToPixelCenter(vec4 clipCoord, vec2 widthHeight) {
287
- if (!alignPixelEnabled)
288
- return clipCoord;
289
- vec2 xy = vec2(0.500123) + 0.5 * clipCoord.xy / clipCoord.w;
290
- vec2 pixelSz = vec2(1.0) / widthHeight;
291
- vec2 ij = (floor(xy * widthHeight) + vec2(0.5)) * pixelSz;
292
- vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
293
- return vec4(result, clipCoord.zw);
294
- }`),e.code.add(i.H`vec4 alignToPixelOrigin(vec4 clipCoord, vec2 widthHeight) {
295
- if (!alignPixelEnabled)
296
- return clipCoord;
297
- vec2 xy = vec2(0.5) + 0.5 * clipCoord.xy / clipCoord.w;
298
- vec2 pixelSz = vec2(1.0) / widthHeight;
299
- vec2 ij = floor((xy + 0.5 * pixelSz) * widthHeight) * pixelSz;
300
- vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
301
- return vec4(result, clipCoord.zw);
302
- }`)}},51624:(e,t,r)=>{r.d(t,{A:()=>u});var n,i,s=r(44208),a=r(69397),o=r(93687);(i=n||(n={}))[i.varint=0]="varint",i[i.fixed64=1]="fixed64",i[i.delimited=2]="delimited",i[i.fixed32=5]="fixed32",i[i.unknown=99]="unknown";const l=4294967296,c=new TextDecoder("utf-8"),d=(0,s.A)("safari")||(0,s.A)("ios")?6:(0,s.A)("ff")?12:32;class u{constructor(e,t,r=0,i=(e?e.byteLength:0)){this._tag=0,this._dataType=n.unknown,this._init(e,t,r,i)}_init(e,t,r,n){this._data=e,this._dataView=t,this._pos=r,this._end=n}get usedMemory(){return 64+(0,a.Qf)(this._data)}asUnsafe(){return this}clone(){return new u(this._data,this._dataView,this._pos,this._end)}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*l;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*l;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,n){const i=this.getMessage(),s=e(i,t,r,n);return i.release(),s}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=u.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){u.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case n.varint:this._decodeVarint();break;case n.fixed64:this._skip(8);break;case n.delimited:this._skip(this._getLength());break;case n.fixed32:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,n=0;if(this._end-t>=10)do{if(n=e[t++],r|=127&n,!(128&n))break;if(n=e[t++],r|=(127&n)<<7,!(128&n))break;if(n=e[t++],r|=(127&n)<<14,!(128&n))break;if(n=e[t++],r|=(127&n)<<21,!(128&n))break;if(n=e[t++],r+=268435456*(127&n),!(128&n))break;if(n=e[t++],r+=34359738368*(127&n),!(128&n))break;if(n=e[t++],r+=4398046511104*(127&n),!(128&n))break;if(n=e[t++],r+=562949953421312*(127&n),!(128&n))break;if(n=e[t++],r+=72057594037927940*(127&n),!(128&n))break;if(n=e[t++],r+=0x8000000000000000*(127&n),!(128&n))break;throw new Error("Varint too long!")}while(0);else{let i=1;for(;t!==this._end&&(n=e[t],128&n);)++t,r+=(127&n)*i,i*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=n*i}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,n=0;const i=1&e[this._pos];if(n=e[this._pos++],r|=127&n,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<7,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<14,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<21,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=268435456*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=34359738368*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=4398046511104*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(t=BigInt(r),n=e[this._pos++],t+=0x2000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x100000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x8000000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(this._dataType!==n.delimited)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>d){const n=e.subarray(t,r);return c.decode(n)}let n="",i="";for(let s=t;s<r;++s){const t=e[s];128&t?i+="%"+t.toString(16):(n+=decodeURIComponent(i)+String.fromCharCode(t),i="")}return i.length&&(n+=decodeURIComponent(i)),n}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}static{this.pool=new o.A(u,void 0,(e=>{e._data=null,e._dataView=null}))}}},53177:(e,t,r)=>{r.d(t,{A:()=>h});var n,i=r(90237),s=r(4718),a=r(10107),o=(r(44208),r(53966),r(93223)),l=r(40608),c=r(39357),d=r(76357);let u=class extends d.A{static{n=this}constructor(e){super(e),this.codedValues=null,this.type="coded-value"}getName(e){let t=null;if(this.codedValues){const r=String(e);this.codedValues.some((e=>(String(e.code)===r&&(t=e.name),!!t)))}return t}clone(){return new n({codedValues:(0,s.o8)(this.codedValues),name:this.name})}};(0,i._)([(0,a.MZ)({type:[c.H],json:{write:{isRequired:!0}}})],u.prototype,"codedValues",void 0),(0,i._)([(0,o.e)({codedValue:"coded-value"})],u.prototype,"type",void 0),u=n=(0,i._)([(0,l.$)("esri.layers.support.CodedValueDomain")],u);const h=u},53655:(e,t,r)=>{r.d(t,{SH:()=>O,ae:()=>C,cn:()=>_});var n=r(49186),i=r(51624),s=r(92722),a=r(69418);const o=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],l=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function d(e){return e>=o.length?null:o[e]}function u(e){return e>=l.length?null:l[e]}function h(e){return e>=c.length?null:c[e]}function f(e,t){return t>=e.geometryTypes.length?null:e.geometryTypes[t]}function p(e,t,r){const n=e.asUnsafe(),i=t.createPointGeometry(r);for(;n.next();)switch(n.tag()){case 3:{const e=n.getUInt32(),r=n.pos()+e;let s=0;for(;n.pos()<r;)t.addCoordinatePoint(i,n.getSInt64(),s++);break}default:n.skip()}return i}function m(e,t,r){const n=e.asUnsafe(),i=t.createGeometry(r),s=2+(r.hasZ?1:0)+(r.hasM?1:0);for(;n.next();)switch(n.tag()){case 2:{const e=n.getUInt32(),r=n.pos()+e;let s=0;for(;n.pos()<r;)t.addLength(i,n.getUInt32(),s++);break}case 3:{const e=n.getUInt32(),r=n.pos()+e;let a=0;for(t.allocateCoordinates(i);n.pos()<r;)t.addCoordinate(i,n.getSInt64(),a),a++,a===s&&(a=0);break}default:n.skip()}return i}function g(e){const t=e.asUnsafe(),r=new s.A;let n="esriGeometryPoint";for(;t.next();)switch(t.tag()){case 2:{const e=t.getUInt32(),n=t.pos()+e;for(;t.pos()<n;)r.lengths.push(t.getUInt32());break}case 3:{const e=t.getUInt32(),n=t.pos()+e;for(;t.pos()<n;)r.coords.push(t.getSInt64());break}case 1:n=a.z[t.getEnum()];break;default:t.skip()}return{queryGeometry:r,queryGeometryType:n}}function y(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function _(e){const t=e.asUnsafe(),r={type:d(0)};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=d(t.getEnum());break;case 3:r.alias=t.getString();break;case 4:r.sqlType=u(t.getEnum());break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function v(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}function b(e,t,r,n){const i=t.createFeature(r);let s=0;for(;e.next();)switch(e.tag()){case 1:{const t=n[s++].name;i.attributes[t]=e.processMessage(y);break}case 2:i.geometry=e.processMessageWithArgs(m,t,r);break;case 4:i.centroid=e.processMessageWithArgs(p,t,r);break;default:e.skip()}return i}function x(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function w(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function C(e){const t={originPosition:h(0)},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=h(r.getEnum());break;case 2:t.scale=r.processMessage(x);break;case 3:t.translate=r.processMessage(w);break;default:r.skip()}return t}function I(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function S(e,t){const r=t.createSpatialReference();for(;e.next();)switch(e.tag()){case 1:r.wkid=e.getUInt32();break;case 5:r.wkt=e.getString();break;case 2:r.latestWkid=e.getUInt32();break;case 3:r.vcsWkid=e.getUInt32();break;case 4:r.latestVcsWkid=e.getUInt32();break;default:e.skip()}return r}function A(e,t){const r=t.createFeatureResult(),n=e.asUnsafe();r.geometryType=f(t,0);let i=!1;for(;n.next();)switch(n.tag()){case 1:r.objectIdFieldName=n.getString();break;case 3:r.globalIdFieldName=n.getString();break;case 4:r.geohashFieldName=n.getString();break;case 5:r.geometryProperties=n.processMessage(I);break;case 7:r.geometryType=f(t,n.getEnum());break;case 8:r.spatialReference=n.processMessageWithArgs(S,t);break;case 10:r.hasZ=n.getBool();break;case 11:r.hasM=n.getBool();break;case 12:r.transform=n.processMessage(C);break;case 9:r.exceededTransferLimit=n.getBool();break;case 13:t.addField(r,n.processMessage(_));break;case 15:i||(t.prepareFeatures(r),i=!0),t.addFeature(r,n.processMessageWithArgs(b,t,r,r.fields));break;case 2:r.uniqueIdField=n.processMessage(v);break;default:n.skip()}return t.finishFeatureResult(r),r}function T(e,t){const r={};let n=null;for(;e.next();)switch(e.tag()){case 4:n=e.processMessageWithArgs(g);break;case 1:r.featureResult=e.processMessageWithArgs(A,t);break;default:e.skip()}return null!=n&&r.featureResult&&t.addQueryGeometry(r,n),r}function O(e,t){try{const r=2,n=new i.A(new Uint8Array(e),new DataView(e)),s={};for(;n.next();)n.tag()===r?s.queryResult=n.processMessageWithArgs(T,t):n.skip();return s}catch(e){throw new n.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}},58501:(e,t,r)=>{r.d(t,{q:()=>i});var n=r(62815);function i(e,t,r){if(!r?.features||!r.hasZ)return;const i=(0,n.N)(r.geometryType,t,e.outSpatialReference);if(null!=i)for(const e of r.features)i(e.geometry)}},60999:(e,t,r)=>{r.d(t,{DZ:()=>p,Ke:()=>f,Tj:()=>d,UT:()=>m,jJ:()=>c});var n=r(90237),i=r(69622),s=r(97768),a=r(74887),o=r(10107),l=r(40608);function c(e,t,r){return(0,a.Lx)(e.map(((e,n)=>t.apply(r,[e,n]))))}async function d(e,t,r){return(await(0,a.Lx)(e.map(((e,n)=>t.apply(r,[e,n]))))).map((e=>e.value))}function u(e){return{ok:!0,value:e}}function h(e){return{ok:!1,error:e}}async function f(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return u(await e)}catch(e){return h(e)}}async function p(e){try{return u(await e)}catch(e){return(0,a.QP)(e),h(e)}}function m(e,t){return new g(e,t)}let g=class extends i.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,s.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then((e=>{this._result=u(e),this._cleanup()}),(e=>{this._result=h(e),this._cleanup()})),this._abortHandle=(0,a.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,s.xt)(this._abortHandle),this._abortController=null}};(0,n._)([(0,o.MZ)()],g.prototype,"value",null),(0,n._)([(0,o.MZ)()],g.prototype,"error",null),(0,n._)([(0,o.MZ)()],g.prototype,"finished",null),(0,n._)([(0,o.MZ)()],g.prototype,"promise",void 0),(0,n._)([(0,o.MZ)()],g.prototype,"_result",void 0),g=(0,n._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],g)},63578:(e,t,r)=>{r.d(t,{I:()=>a});var n=r(47522),i=r(96598),s=r(31821);function a(e,t){const{vertex:r,fragment:a}=e;e.include(i.Z,t),r.include(n.K),r.main.add(s.H`vec4 posProjCenter;
303
- if (dot(position, position) > 0.0) {
304
- ProjectHUDAux projectAux;
305
- vec4 posProj = projectPositionHUD(projectAux);
306
- posProjCenter = alignToPixelCenter(posProj, viewport.zw);
307
- forwardViewPosDepth(projectAux.posView);
308
- vec3 vpos = projectAux.posModel;
309
- if (rejectBySlice(vpos)) {
310
- posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
311
- }
312
- } else {
313
- posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);
314
- }
315
- gl_Position = posProjCenter;
316
- gl_PointSize = 1.0;`),a.main.add(s.H`fragColor = vec4(1);
317
- if(discardByTerrainDepth()) {
318
- fragColor.g = 0.5;
319
- }`)}},66208:(e,t,r)=>{r.d(t,{m:()=>i});var n=r(53655);function i(e,t){const r=(0,n.SH)(e,t),i=r.queryResult.featureResult,s=r.queryResult.queryGeometry,a=r.queryResult.queryGeometryType;if(i&&i.features&&i.features.length&&i.objectIdFieldName){const e=i.objectIdFieldName;for(const t of i.features)t.attributes&&(t.objectId=t.attributes[e])}return i&&(i.queryGeometry=s,i.queryGeometryType=a),i}},66344:(e,t,r)=>{var n,i;r.d(t,{q:()=>l}),(i=n||(n={}))[i.ALL=0]="ALL",i[i.SOME=1]="SOME";class s{get size(){return this._size}constructor(e=10485760){this._maxSize=e,this._db=new Map,this._size=0,this._hit=0,this._miss=0,this._users=new Map,this._sizeLimits=new Map}destroy(){this.clearAll(),this._sizeLimits.clear(),this._users.clear()}register(e){this._users.set(e.id.slice(0,-1),e)}deregister(e){this.clear(e),this._sizeLimits.delete(e),this._users.delete(e.id.slice(0,-1))}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=Math.max(e,-1),this._checkSize()}getSize(e,t){const r=this._db.get(e.id+t);return r?.size??0}put(e,t,r,i,s){t=e.id+t;const o=this._db.get(t);if(o&&(this._size-=o.size,e.size-=o.size,this._db.delete(t),o.entry!==r&&this._notifyRemove(t,o.entry,o.size,n.ALL)),i>this._maxSize)return void this._notifyRemove(t,r,i,n.ALL);if(void 0===r)return void console.warn("Refusing to cache undefined entry ");if(!i||i<0)return console.warn(`Refusing to cache entry with size ${i} for key ${t}`),void this._notifyRemove(t,r,0,n.ALL);const l=1+Math.max(s,-4)- -3;this._db.set(t,new a(r,i,l)),this._size+=i,e.size+=i,this._checkSize()}updateSize(e,t,r,i){t=e.id+t;const s=this._db.get(t);if(s&&s.entry===r){for(this._size-=s.size,e.size-=s.size;i>this._maxSize;){const e=this._notifyRemove(t,r,i,n.SOME);if(!(null!=e&&e>0))return void this._db.delete(t);i=e}s.size=i,this._size+=i,e.size+=i,this._checkSize()}}pop(e,t){t=e.id+t;const r=this._db.get(t);if(r)return this._size-=r.size,e.size-=r.size,this._db.delete(t),++this._hit,r.entry;++this._miss}get(e,t){t=e.id+t;const r=this._db.get(t);if(void 0!==r)return this._db.delete(t),r.lives=r.lifetime,this._db.set(t,r),++this._hit,r.entry;++this._miss}peek(e,t){const r=this._db.get(e.id+t);return r?++this._hit:++this._miss,r?.entry}get performanceInfo(){const e={Size:Math.round(this._size/1048576)+"/"+Math.round(this._maxSize/1048576)+"MB","Hit rate":Math.round(100*this._getHitRate())+"%",Entries:this._db.size.toString()},t={},r=new Array;this._db.forEach(((e,n)=>{const i=e.lifetime;r[i]=(r[i]||0)+e.size,this._users.forEach((r=>{const{id:i,name:s}=r;if(n.startsWith(i)){const r=t[s]||0;t[s]=r+e.size}}))}));const n={};this._users.forEach((e=>{const r=e.name;if("hitRate"in e&&"number"==typeof e.hitRate&&!isNaN(e.hitRate)&&e.hitRate>0){const i=t[r]||0;t[r]=i,n[r]=Math.round(100*e.hitRate)+"%"}else n[r]="0%"}));const i=Object.keys(t);i.sort(((e,r)=>t[r]-t[e])),i.forEach((r=>e[r]=Math.round(t[r]/2**20)+"MB / "+n[r]));for(let t=r.length-1;t>=0;--t){const n=r[t];n&&(e["Priority "+(t+-3-1)]=Math.round(n/this._size*100)+"%")}return e}resetStats(){this._hit=this._miss=0,this._users.forEach((e=>e.resetHitRate()))}clear(e){const t=e.id;this._db.forEach(((e,r)=>{r.startsWith(t)&&(this._size-=e.size,this._db.delete(r),this._notifyRemove(r,e.entry,e.size,n.ALL))})),e.size=0}clearAll(){this._db.forEach(((e,t)=>this._notifyRemove(t,e.entry,e.size,n.ALL))),this._users.forEach((e=>e.size=0)),this._size=0,this._db.clear()}_getHitRate(){return this._hit/(this._hit+this._miss)}_notifyRemove(e,t,r,n){const i=this._users.get(e.split(o)[0])?.removeFunc,s=i?.(t,n,r);return"number"==typeof s?s:null}_checkSize(){this._sizeLimits.forEach(((e,t)=>this._checkSizeLimits(e,t))),this._checkSizeLimits(this.maxSize)}setMaxSize(e,t){null==t||t<=0?this._sizeLimits.delete(e):this._sizeLimits.set(e,t)}_checkSizeLimits(e,t){const r=t??this;if(r.size<=e)return;const n=t?.id;let i=!0;for(;i;){i=!1;for(const[s,a]of this._db)if(0===a.lifetime&&(!n||s.startsWith(n))){const n=t??this._users.get(s.split(o)[0]);if(this._purgeItem(s,a,n),r.size<=.9*e)return;i||=this._db.has(s)}}for(const[i,s]of this._db)if(!n||i.startsWith(n)){const n=t??this._users.get(i.split(o)[0]);if(this._purgeItem(i,s,n),r.size<=.9*e)return}}_purgeItem(e,t,r){if(this._db.delete(e),t.lives<=1){this._size-=t.size,r&&(r.size-=t.size);const i=this._notifyRemove(e,t.entry,t.size,n.SOME);null!=i&&i>0&&(this._size+=i,r&&(r.size+=i),t.lives=t.lifetime,t.size=i,this._db.set(e,t))}else--t.lives,this._db.set(e,t)}}class a{constructor(e,t,r){this.entry=e,this.size=t,this.lifetime=r,this.lives=r}}const o=":";class l{constructor(e,t){this.removeFunc=t,this._storage=new s,this.id="",this.name="",this.size=0,this._storage.maxSize=e,this._storage.register(this)}destroy(){this._storage.deregister(this),this._storage.destroy()}put(e,t,r=1){this._storage.put(this,e,t,r,1)}pop(e){return this._storage.pop(this,e)}get(e){return this._storage.get(this,e)}clear(){this._storage.clearAll()}get maxSize(){return this._storage.maxSize}set maxSize(e){this._storage.maxSize=e}resetHitRate(){}}},69418:(e,t,r)=>{r.d(t,{S:()=>c,z:()=>l});var n=r(83047),i=r(21325),s=r(43334),a=r(58512),o=r(92722);const l=["esriGeometryPoint","esriGeometryMultipoint","esriGeometryPolyline","esriGeometryPolygon"];class c{constructor(e){this._options=e,this.geometryTypes=l,this._coordinatePtr=0,this._vertexDimension=0}createFeatureResult(){return new a.A}prepareFeatures(e){this._vertexDimension=2,e.hasZ&&this._vertexDimension++,e.hasM&&this._vertexDimension++}finishFeatureResult(e){if(!e?.features||!e.hasZ||!this._options.sourceSpatialReference||!e.spatialReference||(0,i.aI)(e.spatialReference,this._options.sourceSpatialReference)||e.spatialReference.vcsWkid)return;const t=(0,n.G9)(this._options.sourceSpatialReference)/(0,n.G9)(e.spatialReference);if(1!==t)for(const r of e.features){if(!(0,s.N3)(r))continue;const e=r.geometry.coords;for(let r=2;r<e.length;r+=3)e[r]*=t}}addFeature(e,t){e.features.push(t)}createFeature(){return new s.Om(null,{},null,0)}createSpatialReference(){return{wkid:0}}createGeometry(){return new o.A}addField(e,t){e.fields.push(t)}allocateCoordinates(e){e.coords.length=e.lengths.reduce(((e,t)=>e+t),0)*this._vertexDimension,this._coordinatePtr=0}addCoordinate(e,t){e.coords[this._coordinatePtr++]=t}addCoordinatePoint(e,t){e.coords.push(t)}addLength(e,t){e.lengths.push(t)}addQueryGeometry(e,t){e.queryGeometry=t.queryGeometry,e.queryGeometryType=t.queryGeometryType}createPointGeometry(){return new o.A}}},72385:(e,t,r)=>{function n(){return new Float32Array(3)}function i(e){const t=new Float32Array(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function s(e,t,r){const n=new Float32Array(3);return n[0]=e,n[1]=t,n[2]=r,n}function a(){return n()}function o(){return s(1,1,1)}function l(){return s(1,0,0)}function c(){return s(0,1,0)}function d(){return s(0,0,1)}r.d(t,{fA:()=>s,o8:()=>i,vt:()=>n});const u=a(),h=o(),f=l(),p=c(),m=d();Object.freeze(Object.defineProperty({__proto__:null,ONES:h,UNIT_X:f,UNIT_Y:p,UNIT_Z:m,ZEROS:u,clone:i,create:n,fromValues:s,ones:o,unitX:l,unitY:c,unitZ:d,zeros:a},Symbol.toStringTag,{value:"Module"}))},75503:(e,t,r)=>{r.d(t,{E:()=>S,w:()=>o});var n=r(4576),i=r(21818),s=(r(44208),r(3694)),a=r(11006);class o{constructor(e=9,t){this._compareMinX=h,this._compareMinY=f,this._toBBox=e=>e,this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),t&&("function"==typeof t?this._toBBox=t:this._initFormat(t)),this.clear()}destroy(){this.clear(),x.prune(),w.prune(),C.prune(),I.prune()}all(e){l(this._data,e)}search(e,t){let r=this._data;const n=this._toBBox;if(v(e,r))for(x.clear();r;){for(let i=0,s=r.children.length;i<s;i++){const s=r.children[i],a=r.leaf?n(s):s;v(e,a)&&(r.leaf?t(s):_(e,a)?l(s,t):x.push(s))}r=x.pop()}}collides(e){let t=this._data;const r=this._toBBox;if(!v(e,t))return!1;for(x.clear();t;){for(let n=0,i=t.children.length;n<i;n++){const i=t.children[n],s=t.leaf?r(i):i;if(v(e,s)){if(t.leaf||_(e,s))return!0;x.push(i)}}t=x.pop()}return!1}load(e){if(!e.length)return this;if(e.length<this._minEntries){for(let t=0,r=e.length;t<r;t++)this.insert(e[t]);return this}let t=this._build(e.slice(),0,e.length-1,0);if(this._data.children.length)if(this._data.height===t.height)this._splitRoot(this._data,t);else{if(this._data.height<t.height){const e=this._data;this._data=t,t=e}this._insert(t,this._data.height-t.height-1,!0)}else this._data=t;return this}insert(e){return e&&this._insert(e,this._data.height-1),this}clear(){return this._data=new T([]),this}remove(e){if(!e)return this;let t,r=this._data,s=null,a=0,o=!1;const l=this._toBBox(e);for(C.clear(),I.clear();r||C.length>0;){if(r||(r=C.pop(),s=C.data[C.length-1],a=I.pop()??0,o=!0),r.leaf&&(t=(0,n.qh)(r.children,(0,i.zI)(e),r.children.length,r.indexHint),-1!==t))return r.children.splice(t,1),C.push(r),this._condense(C),this;o||r.leaf||!_(r,l)?s?(a++,r=s.children[a],o=!1):r=null:(C.push(r),I.push(a),a=0,s=r,r=r.children[0])}return this}toJSON(){return this._data}fromJSON(e){return this._data=e,this}_build(e,t,r,n){const i=r-t+1;let s=this._maxEntries;if(i<=s){const n=new T(e.slice(t,r+1));return c(n,this._toBBox),n}n||(n=Math.ceil(Math.log(i)/Math.log(s)),s=Math.ceil(i/s**(n-1)));const a=new O([]);a.height=n;const o=Math.ceil(i/s),l=o*Math.ceil(Math.sqrt(s));b(e,t,r,l,this._compareMinX);for(let i=t;i<=r;i+=l){const t=Math.min(i+l-1,r);b(e,i,t,o,this._compareMinY);for(let r=i;r<=t;r+=o){const i=Math.min(r+o-1,t);a.children.push(this._build(e,r,i,n-1))}}return c(a,this._toBBox),a}_insert(e,t,r){const n=this._toBBox,i=r?e:n(e);C.clear();const s=function(e,t,r,n){for(;n.push(t),!0!==t.leaf&&n.length-1!==r;){let r,n=1/0,i=1/0;for(let s=0,a=t.children.length;s<a;s++){const a=t.children[s],o=p(a),l=g(e,a)-o;l<i?(i=l,n=o<n?o:n,r=a):l===i&&o<n&&(n=o,r=a)}t=r||t.children[0]}return t}(i,this._data,t,C);for(s.children.push(e),u(s,i);t>=0&&C.data[t].children.length>this._maxEntries;)this._split(C,t),t--;!function(e,t,r){for(let n=r;n>=0;n--)u(t.data[n],e)}(i,C,t)}_split(e,t){const r=e.data[t],n=r.children.length,i=this._minEntries;this._chooseSplitAxis(r,i,n);const s=this._chooseSplitIndex(r,i,n);if(!s)return;const a=r.children.splice(s,r.children.length-s),o=r.leaf?new T(a):new O(a);o.height=r.height,c(r,this._toBBox),c(o,this._toBBox),t?e.data[t-1].children.push(o):this._splitRoot(r,o)}_splitRoot(e,t){this._data=new O([e,t]),this._data.height=e.height+1,c(this._data,this._toBBox)}_chooseSplitIndex(e,t,r){let n,i,s;n=i=1/0;for(let a=t;a<=r-t;a++){const t=d(e,0,a,this._toBBox),o=d(e,a,r,this._toBBox),l=y(t,o),c=p(t)+p(o);l<n?(n=l,s=a,i=c<i?c:i):l===n&&c<i&&(i=c,s=a)}return s}_chooseSplitAxis(e,t,r){const n=e.leaf?this._compareMinX:h,i=e.leaf?this._compareMinY:f;this._allDistMargin(e,t,r,n)<this._allDistMargin(e,t,r,i)&&e.children.sort(n)}_allDistMargin(e,t,r,n){e.children.sort(n);const i=this._toBBox,s=d(e,0,t,i),a=d(e,r-t,r,i);let o=m(s)+m(a);for(let n=t;n<r-t;n++){const t=e.children[n];u(s,e.leaf?i(t):t),o+=m(s)}for(let n=r-t-1;n>=t;n--){const t=e.children[n];u(a,e.leaf?i(t):t),o+=m(a)}return o}_condense(e){for(let t=e.length-1;t>=0;t--){const r=e.data[t];if(0===r.children.length)if(t>0){const i=e.data[t-1],s=i.children;s.splice((0,n.qh)(s,r,s.length,i.indexHint),1)}else this.clear();else c(r,this._toBBox)}}_initFormat(e){const t=["return a"," - b",";"];this._compareMinX=new Function("a","b",t.join(e[0])),this._compareMinY=new Function("a","b",t.join(e[1])),this._toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}}function l(e,t){let r=e;for(w.clear();r;){if(!0===r.leaf)for(const e of r.children)t((0,i.zI)(e));else w.pushArray(r.children);r=w.pop()??null}}function c(e,t){d(e,0,e.children.length,t,e)}function d(e,t,r,n,i){i||(i=new T([])),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s,a=t;a<r;a++)s=e.children[a],u(i,e.leaf?n(s):s);return i}function u(e,t){e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY)}function h(e,t){return e.minX-t.minX}function f(e,t){return e.minY-t.minY}function p(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function m(e){return e.maxX-e.minX+(e.maxY-e.minY)}function g(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function y(e,t){const r=Math.max(e.minX,t.minX),n=Math.max(e.minY,t.minY),i=Math.min(e.maxX,t.maxX),s=Math.min(e.maxY,t.maxY);return Math.max(0,i-r)*Math.max(0,s-n)}function _(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function v(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function b(e,t,r,n,i){const s=[t,r];for(;s.length;){const t=s.pop(),r=s.pop();if(t-r<=n)continue;const o=r+Math.ceil((t-r)/n/2)*n;(0,a.q)(e,o,r,t,i),s.push(r,o,o,t)}}const x=new s.A,w=new s.A,C=new s.A,I=new s.A({deallocator:void 0});class S{constructor(){this.minX=1/0,this.minY=1/0,this.maxX=-1/0,this.maxY=-1/0}}class A extends S{constructor(){super(...arguments),this.height=1,this.indexHint=new n.vW}}class T extends A{constructor(e){super(),this.children=e,this.leaf=!0}}class O extends A{constructor(e){super(),this.children=e,this.leaf=!1}}},76357:(e,t,r)=>{r.d(t,{A:()=>u});var n=r(90237),i=r(66552),s=r(25482),a=r(10107),o=(r(44208),r(53966),r(87811),r(93223)),l=r(40608);const c=new i.J({inherited:"inherited",codedValue:"coded-value",range:"range"});let d=class extends s.A{constructor(e){super(e),this.name=null,this.type=null}};(0,n._)([(0,a.MZ)({type:String,json:{write:!0}})],d.prototype,"name",void 0),(0,n._)([(0,o.e)(c),(0,a.MZ)({json:{write:{isRequired:!0}}})],d.prototype,"type",void 0),d=(0,n._)([(0,l.$)("esri.layers.support.Domain")],d);const u=d},79677:(e,t,r)=>{r.d(t,{A:()=>f});var n,i=r(90237),s=r(25482),a=r(88930),o=r(10107),l=(r(44208),r(53966),r(87811),r(36005)),c=r(40608),d=r(43937),u=r(98623);let h=class extends s.A{static{n=this}static get allTime(){return p}static get empty(){return m}static fromArray(e){return new n({start:null!=e[0]?new Date(e[0]):e[0],end:null!=e[1]?new Date(e[1]):e[1]})}constructor(e){super(e),this.end=null,this.start=null}readEnd(e,t){return null!=t.end?new Date(t.end):null}writeEnd(e,t){t.end=e?.getTime()??null}get isAllTime(){return this.equals(n.allTime)}get isEmpty(){return this.equals(n.empty)}readStart(e,t){return null!=t.start?new Date(t.start):null}writeStart(e,t){t.start=e?.getTime()??null}clone(){return new n({end:this.end,start:this.start})}equals(e){if(!e)return!1;const t=this.start?.getTime()??this.start,r=this.end?.getTime()??this.end,n=e.start?.getTime()??e.start,i=e.end?.getTime()??e.end;return t===n&&r===i}expandTo(e,t=u.qU){if(this.isEmpty||this.isAllTime)return this.clone();let r=this.start;r&&(r=(0,a.lL)(r,e,t));let i=this.end;if(i){const r=(0,a.lL)(i,e,t);i=i.getTime()===r.getTime()?r:(0,a.S1)(r,1,e,t)}return new n({start:r,end:i})}intersection(e){if(!e)return this.clone();if(this.isEmpty||e.isEmpty)return n.empty;if(this.isAllTime)return e.clone();if(e.isAllTime)return this.clone();const t=this.start?.getTime()??-1/0,r=this.end?.getTime()??1/0,i=e.start?.getTime()??-1/0,s=e.end?.getTime()??1/0;let a,o;return i>=t&&i<=r?a=i:t>=i&&t<=s&&(a=t),r>=i&&r<=s?o=r:s>=t&&s<=r&&(o=s),null==a||null==o||isNaN(a)||isNaN(o)?n.empty:new n({start:a===-1/0?null:new Date(a),end:o===1/0?null:new Date(o)})}offset(e,t,r=u.qU){if(this.isEmpty||this.isAllTime)return this.clone();const i=new n,{start:s,end:o}=this;return null!=s&&(i.start=(0,a.S1)(s,e,t,r)),null!=o&&(i.end=(0,a.S1)(o,e,t,r)),i}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(e){if(!e||e.isEmpty)return this.clone();if(this.isEmpty)return e.clone();if(this.isAllTime||e.isAllTime)return p.clone();const t=null!=this.start&&null!=e.start?new Date(Math.min(this.start.getTime(),e.start.getTime())):null,r=null!=this.end&&null!=e.end?new Date(Math.max(this.end.getTime(),e.end.getTime())):null;return new n({start:t,end:r})}};(0,i._)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"end",void 0),(0,i._)([(0,l.w)("end")],h.prototype,"readEnd",null),(0,i._)([(0,d.K)("end")],h.prototype,"writeEnd",null),(0,i._)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isAllTime",null),(0,i._)([(0,o.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isEmpty",null),(0,i._)([(0,o.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"start",void 0),(0,i._)([(0,l.w)("start")],h.prototype,"readStart",null),(0,i._)([(0,d.K)("start")],h.prototype,"writeStart",null),h=n=(0,i._)([(0,c.$)("esri.time.TimeExtent")],h);const f=h,p=new h,m=new h({start:void 0,end:void 0})},80451:(e,t,r)=>{r.d(t,{rS:()=>g,gK:()=>m}),r(44208);var n,i=r(53177),s=r(76357),a=r(90237),o=(r(53966),r(87811),r(49186),r(93223)),l=r(40608);let c=class extends s.A{static{n=this}constructor(e){super(e),this.type="inherited"}clone(){return new n}};(0,a._)([(0,o.e)({inherited:"inherited"})],c.prototype,"type",void 0),c=n=(0,a._)([(0,l.$)("esri.layers.support.InheritedDomain")],c);const d=c;var u,h=r(10107);let f=class extends s.A{static{u=this}constructor(e){super(e),this.maxValue=null,this.minValue=null,this.type="range"}clone(){return new u({maxValue:this.maxValue,minValue:this.minValue,name:this.name})}};(0,a._)([(0,h.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[1]},write:{enabled:!1,overridePolicy(){return{enabled:null!=this.maxValue&&null==this.minValue}},target:"range",writer(e,t,r){t[r]=[this.minValue||0,e]},isRequired:!0}}})],f.prototype,"maxValue",void 0),(0,a._)([(0,h.MZ)({json:{type:[Number],read:{source:"range",reader:(e,t)=>t.range?.[0]},write:{target:"range",writer(e,t,r){t[r]=[e,this.maxValue||0]},isRequired:!0}}})],f.prototype,"minValue",void 0),(0,a._)([(0,o.e)({range:"range"})],f.prototype,"type",void 0),f=u=(0,a._)([(0,l.$)("esri.layers.support.RangeDomain")],f);const p=f,m={key:"type",base:s.A,typeMap:{range:p,"coded-value":i.A,inherited:d}};function g(e){if(!e?.type)return null;switch(e.type){case"range":return p.fromJSON(e);case"codedValue":return i.A.fromJSON(e);case"inherited":return d.fromJSON(e)}return null}},80893:(e,t,r)=>{r.d(t,{IJ:()=>p,Jf:()=>_,Pk:()=>g,eW:()=>f,gW:()=>y,kS:()=>m});var n=r(78888),i=r(84952),s=r(65864),a=r(17136),o=r(21325),l=r(10536),c=r(66208),d=r(58501);const u="Layer does not support extent calculation.";function h(e,t){const r=e.geometry,n=e.toJSON();delete n.compactGeometryEnabled,delete n.defaultSpatialReferenceEnabled;const i=n;let a,l,c;if(null!=r&&(l=r.spatialReference,c=(0,o.YX)(l),i.geometryType=(0,s.$B)(r),i.geometry=function(e,t){if(t&&"extent"===e.type)return`${e.xmin},${e.ymin},${e.xmax},${e.ymax}`;if(t&&"point"===e.type)return`${e.x},${e.y}`;const r=e.toJSON();return delete r.spatialReference,JSON.stringify(r)}(r,e.compactGeometryEnabled),i.inSR=c),n.groupByFieldsForStatistics&&(i.groupByFieldsForStatistics=n.groupByFieldsForStatistics.join(",")),n.objectIds&&(i.objectIds=n.objectIds.join(",")),n.orderByFields&&(i.orderByFields=n.orderByFields.join(",")),!n.outFields||!n.returnDistinctValues&&(t?.returnCountOnly||t?.returnExtentOnly||t?.returnIdsOnly)?delete i.outFields:n.outFields.includes("*")?i.outFields="*":i.outFields=n.outFields.join(","),n.outSR?(i.outSR=(0,o.YX)(n.outSR),a=e.outSpatialReference):r&&(n.returnGeometry||n.returnCentroid)&&(i.outSR=i.inSR,a=l),n.returnGeometry&&delete n.returnGeometry,n.outStatistics&&(i.outStatistics=JSON.stringify(n.outStatistics)),n.fullText&&(i.fullText=JSON.stringify(n.fullText)),n.pixelSize&&(i.pixelSize=JSON.stringify(n.pixelSize)),n.quantizationParameters&&(e.defaultSpatialReferenceEnabled&&null!=l&&null!=e.quantizationParameters?.extent&&l.equals(e.quantizationParameters.extent.spatialReference)&&delete n.quantizationParameters.extent.spatialReference,i.quantizationParameters=JSON.stringify(n.quantizationParameters)),n.parameterValues&&(i.parameterValues=JSON.stringify(n.parameterValues)),n.rangeValues&&(i.rangeValues=JSON.stringify(n.rangeValues)),n.dynamicDataSource&&(i.layer=JSON.stringify({source:n.dynamicDataSource}),delete n.dynamicDataSource),n.timeExtent){const e=n.timeExtent,{start:t,end:r}=e;null==t&&null==r||(i.time=t===r?t:`${t??"null"},${r??"null"}`),delete n.timeExtent}return e.defaultSpatialReferenceEnabled&&null!=l&&null!=a&&l.equals(a)&&(i.defaultSR=i.inSR,delete i.inSR,delete i.outSR),i}async function f(e,t,r,n){const i=null!=t.timeExtent&&t.timeExtent.isEmpty?{data:{features:[]}}:await v(e,t,"json",n);return(0,d.q)(t,r,i.data),i}async function p(e,t,r,n){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:r.createFeatureResult()};const i=await m(e,t,n),s=i;return s.data=(0,c.m)(i.data,r),s}function m(e,t,r){return v(e,t,"pbf",r)}function g(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{objectIds:[]}}):v(e,t,"json",r,{returnIdsOnly:!0})}function y(e,t,r){return null!=t.timeExtent&&t.timeExtent.isEmpty?Promise.resolve({data:{count:0}}):v(e,t,"json",r,{returnIdsOnly:!0,returnCountOnly:!0})}async function _(e,t,r){if(null!=t.timeExtent&&t.timeExtent.isEmpty)return{data:{count:0,extent:null}};const n=await v(e,t,"json",r,{returnExtentOnly:!0,returnCountOnly:!0}),i=n.data;if(i.hasOwnProperty("extent"))return n;if(i.features)throw new Error(u);if(i.hasOwnProperty("count"))throw new Error(u);return n}async function v(e,t,r,s={},o={}){const c="string"==typeof e?(0,i.An)(e):e,d=t.geometry?[t.geometry]:[],u=await(0,a.el)(d,null,{signal:s.signal}),f=u?.[0];null!=f&&((t=t.clone()).geometry=f);const p=(0,l.z)({...c.query,f:r,...o,...h(t,o)});return(0,n.A)((0,i.fj)(c.path,(m=o,null==t.formatOf3DObjects||m.returnCountOnly||m.returnExtentOnly||m.returnIdsOnly?"query":"query3d")),{...s,responseType:"pbf"===r?"array-buffer":"json",query:{...p,...s.query}});var m}},95065:(e,t,r)=>{r.r(t),r.d(t,{default:()=>Jr});var n=r(90237),i=r(65529),s=r(74887),a=r(36708),o=r(10107),l=r(44208),c=(r(53966),r(87811),r(40608)),d=r(5443),u=r(80586),h=r(16930),f=r(68298),p=r(61956);class m{constructor(e,t,r){this.renderCommandContext=e,this.renderCommandBuffer=t,this.pipelineStateCommands=r}append(e){this.appendRenderCommands(e.renderCommandBuffer),this.appendPipelineStateCommands(e.pipelineStateCommands)}appendRenderCommands(e){this.renderCommandBuffer.commands.push(...e.commands),this.renderCommandBuffer.transferList.push(...e.transferList)}appendPipelineStateCommand(e){this.pipelineStateCommands.push(e)}appendPipelineStateCommands(e){for(const t of e)this.appendPipelineStateCommand(t)}async execute(){for(const e of this.pipelineStateCommands)e();await this.renderCommandContext.dispatchRenderCommands(this.renderCommandBuffer)}static create(e,t=[]){return new m(e,e.createRenderCommandBuffer(),t)}static join(e,t){return 0===t.length?m.create(e):t.reduce(((e,t)=>(e.append(t),e)))}}function g(e){return 0===e.length?null:e.reduce(((e,t)=>(e.append(t),e)))}var y,_,v,b=r(69622),x=r(60999),w=r(32587),C=r(19419),I=r(4576);class S{constructor(e,t){this._joinCommands=e,this._createCommand=t,this._executing=new Set,this._nextEvents=new Map}async enqueueActions(e){const{_executing:t}=this;return e.every((e=>!t.has(e.tileId)))?await this._executeActions(e):await this._scheduleActions(e)}async _scheduleActions(e){const{_nextEvents:t}=this,r=new Set(e.map((e=>t.get(e.tileId))).filter(I.Ru));let n;if(0!==r.size){const i=new Array,s=new Array;for(const e of r)i.push(e.actions),s.push(e.resolver);i.push(e);for(const e of i)for(const r of e)t.delete(r.tileId);const a=i.reduce(O);n=new A(a),n.resolver.promise.then((()=>{for(const e of s)e.resolve()}),(e=>{for(const t of s)t.reject(e)}))}else n=new A(e);for(const e of n.actions)t.set(e.tileId,n);return this._validate(),await n.resolver.promise}async _executeActions(e){const t=e.map((e=>e.tileId)),{_executing:r}=this;for(const e of t)r.add(e);this._validate();try{const t=(await Promise.allSettled(e.map(this._createCommand))).map((e=>"fulfilled"===e.status?e.value:null)).filter(I.Ru);if(0===t.length)return;const r=this._joinCommands(t);await(r?.execute())}finally{for(const e of t)r.delete(e);this._executeTails(t)}}_executeTails(e){const{_nextEvents:t}=this,r=new Set(e.map((e=>t.get(e))).filter(I.Ru));if(0===r.size)return;const{_executing:n}=this;for(const e of r)if(!e.actions.some((e=>n.has(e.tileId)))){for(const r of e.actions)t.delete(r.tileId);this._executeActions(e.actions).then((()=>{e.resolver.resolve()}),(t=>{e.resolver.reject(t)}))}}_validate(){const{_nextEvents:e}=this,t=Array.from(new Set(e.values()));if(0!==t.length&&t.some((t=>t.actions.some((({tileId:r})=>e.get(r)!==t)))))throw new Error("Mismatch between map and event")}}class A{constructor(e){this.actions=e,this.resolver=(0,s.Tw)()}}class T{constructor(e,t,r){this.tileId=e,this.type=t,this.data=r}toString(){return`${this.tileId}: ${this.type}`}}function O(e,t){const r=new Array(e.length).fill(!0),n=new Array(t.length).fill(!0);e:for(let i=0;i<e.length;++i){const s=e[i];for(let e=0;e<t.length;++e)if(n[e])switch(R(s,t[e])){case _.NONE:break;case _.OVERWRITE:r[i]=!1;continue e;case _.REDUNDANT:n[e]=!1;break;case _.ANNIHILATE:r[i]=!1,n[e]=!1;continue e}}const i=new Array;for(let t=0;t<e.length;++t)r[t]&&i.push(e[t]);for(let e=0;e<t.length;++e)n[e]&&i.push(t[e]);return i}function R(e,t){if(e.tileId!==t.tileId)return _.NONE;if(e.type===y.ADD&&t.type===y.REMOVE)return _.ANNIHILATE;if(e.type===y.ADD&&t.type===y.UPDATE_VISIBILITY)return _.REDUNDANT;if(e.type===y.REMOVE&&t.type===y.ADD)return _.ANNIHILATE;if(e.type===y.UPDATE_VISIBILITY&&t.type===y.REMOVE)return _.OVERWRITE;if(e.type===y.UPDATE_VISIBILITY&&t.type===y.UPDATE_VISIBILITY)return _.OVERWRITE;throw new Error("Impossible sequence of actions")}(v=y||(y={})).ADD="ADD",v.REMOVE="REMOVE",v.UPDATE_VISIBILITY="UPDATE_VISIBILITY",function(e){e.NONE="NONE",e.ANNIHILATE="ANNIHILATE",e.OVERWRITE="OVERWRITE",e.REDUNDANT="REDUNDANT"}(_||(_={}));var E=r(69397),M=r(24326);function P(e=""){return`${e}${(0,M.c)()}`}r(37539),new Float64Array(3);class D{constructor(e,t){this._parent=e,this._subsetIndices=t,this.id=P(`featureDataSubset-${e.id}-`)}get extent(){return this._parent.extent}get featureCount(){return this._subsetIndices.length}get usedMemory(){return this._parent.usedMemory+E.qK+this._subsetIndices.byteLength}get isFullyEnabled(){for(const e of this._subsetIndices)if(!this._parent.getEnabled(e))return!1;return!0}getObjectId(e){return this._parent.getObjectId(this._subsetIndices[e])}getAttribute(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributeAsTimestamp(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributes(e){return this._parent.getAttributes(this._subsetIndices[e])}getCoordinates(e,t,r){return this._parent.getCoordinates(this._subsetIndices[e],t,r)}getOptimizedGeometry(e){return this._parent.getOptimizedGeometry(this._subsetIndices[e])}getCentroid(e,t){return this._parent.getCentroid(this._subsetIndices[e],t)}getBounds(e){return this._parent.getBounds(this._subsetIndices[e])}getBoundingBox(e){return this._parent.getBoundingBox(this._subsetIndices[e])}getObjectIdsArray(e,t,r){return this._parent.getObjectIdsArray(e,this._translatedIndices(t),r)}getCoordinatesArray(e,t,r){return this._parent.getCoordinatesArray(e,this._translatedIndices(t),r)}objectIds(e){return this._parent.objectIds(this._translatedIndices(e))}subset(e){const{_subsetIndices:t}=this,r=new Uint32Array(e.length);for(let n=0;n<r.length;++n)r[n]=t[e[n]];return new D(this._parent,r)}disableObjectIds(e){if(0===e.size)return;const{featureCount:t}=this,r=new Array;for(let n=0;n<t;++n)this.getEnabled(n)&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)this.setEnabled(e,!1)}setEnabled(e,t){this._parent.setEnabled(this._subsetIndices[e],t)}getEnabled(e){return this._parent.getEnabled(this._subsetIndices[e])}enableAll(){const{_subsetIndices:e,_parent:t}=this;for(const r of e)t.setEnabled(r,!0)}getVisibilityArray(e,t,r){return this._parent.getVisibilityArray(e,this._translatedIndices(t),r)}enabledObjectIds(e){return this._parent.enabledObjectIds(this._translatedIndices(e))}*_translatedIndices(e){const{_subsetIndices:t}=this;if(null!=e)for(const r of e)yield t[r];else yield*t}}class z{constructor(e){this._tile=e,this.id=P(`featureData-${e.id}-`),this._enabled=new Array(e.featureCount).fill(!0)}get featureCount(){return this._tile.featureCount}get usedMemory(){return E.qK+(0,E.$B)(this.id)}get extent(){return this._tile.descriptor.extent}get isFullyEnabled(){return this._enabled.every((e=>e))}getObjectId(e){return this._tile.getObjectId(e)}getAttribute(e,t){return this._tile.getAttribute(e,t)}getAttributeAsTimestamp(e,t){return this._tile.getAttribute(e,t)}getAttributes(e){return this._tile.getAttributes(e)}getCoordinates(e,t,r){return this._tile.getCoordinates(e,t,r)}getOptimizedGeometry(e){return this._tile.getOptimizedGeometry(e)}getCentroid(e,t){return this._tile.getCentroid(e,t)}getBounds(e){return this._tile.getBounds(e)}getBoundingBox(e){return this._tile.getBoundingBox(e)}getObjectIdsArray(e,t,r){return this._tile.getObjectIdsArray(e,t,r)}getCoordinatesArray(e,t,r){return this._tile.getCoordinatesArray(e,t,r)}objectIds(e){return this._tile.objectIds(e)}subset(e){return new D(this,e)}disableObjectIds(e){if(0===e.size)return;const{_enabled:t}=this,r=new Array;for(const n of this._allFeatureIndices())t[n]&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)t[e]=!1}setEnabled(e,t){this._enabled[e]=t}getEnabled(e){return this._enabled[e]}enableAll(){this._enabled.fill(!0)}getVisibilityArray(e,t=this._allFeatureIndices(),r=0){const{_enabled:n}=this;for(const i of t)e[r++]=Number(n[i]);return r}*enabledObjectIds(e=this._allFeatureIndices()){const{_enabled:t}=this;for(const r of e)t[r]&&(yield this.getObjectId(r))}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}}let F=class extends b.A{constructor(e){super(e),this._updatingCount=0,this.extent=null,this._tileHandles=new w.A,this._wanted=new w.A}destroy(){this._tileHandles.clear(),this._wanted.clear()}get updating(){return this._updatingCount>0}get _boundingRect(){const{extent:e}=this;return null==e?null:(0,C.VY)(e)}get _missingTiles(){const e=new Array,t=this._wanted,r=this._tileHandles;for(const n of t.values())null==r.get(n.id)?.featureData&&e.push(n);return e}async onTileTreeChange(e){++this._updatingCount;try{const{added:t,removed:r}=e,n=this._tileHandles,{_boundingRect:i}=this,s=null!=i?t.filter((e=>(0,C.HY)(i,e.extent))):t,a=this._wanted,o=new Array;for(const{id:e}of r)a.delete(e);for(const e of s)a.set(e.id,e);const l=this._missingTiles;for(const e of r){const{id:t}=e;if(l.some((t=>B(t,e)||B(e,t))))continue;const r=n.get(t);null!=r&&o.push(this._removeTile(r))}for(const e of s)o.push(this._addTile(e));const c=await Promise.allSettled(o);for(const e of c)"rejected"===e.status&&console.error(e.reason)}finally{--this._updatingCount}}forEachTile(e){for(const t of this._tileHandles.values()){const r=t.featureData;null!=r&&e(r)}}async _removeTile(e){e.loadTask.abort(),this._tileHandles.delete(e.id),this._validate();const{featureData:t}=e;null!=t&&await this.synchronizer.enqueueActions([new T(e.id,y.REMOVE,t)])}async _addTile(e){const{_tileHandles:t}=this,r=t.get(e.id);if(null!=r){if(!V(r)||r.featureData.isFullyEnabled)return;return r.featureData.enableAll(),void await this._onTileLoad(r)}const n=new j(e,(0,x.UT)((async t=>{const r=await this.loadTile(e,t);return(0,s.Te)(t),new z(r)})));this._tileHandles.set(n.id,n);try{await n.loadTask.promise}catch(e){return void(0,s.jH)(e)}(function(e){if(!V(e))throw new Error})(n),await this._onTileLoad(n)}async _onTileLoad(e){const{_wanted:t,_tileHandles:r,_missingTiles:n}=this,i=e.descriptor,s=new Array,a=new Set;for(const o of r.values()){if(o===e)continue;const{descriptor:l,id:c}=o;if(t.has(c)||n.some((e=>B(e,l)||B(l,e)))){if(V(o)){if(B(i,l)){const e=o.featureData;for(const t of e.objectIds())a.add(t)}if(B(l,i)){const t=e.featureData,r=new Set(t.objectIds()),{featureData:n}=o;n.disableObjectIds(r),s.push(new T(c,y.UPDATE_VISIBILITY,n)),this._validateRemoval(n,r)}}}else{r.delete(c),o.loadTask.abort();const{featureData:e}=o;null!=e&&s.push(new T(c,y.REMOVE,e))}}a.size>0&&(e.featureData.disableObjectIds(a),this._validateRemoval(e.featureData,a)),this._validate(),s.push(new T(e.id,y.ADD,e.featureData)),await this.synchronizer.enqueueActions(s)}_validate(){if(!(0,l.A)("feature-pipeline-3d-test-validation"))return;const e=new Array;for(const t of this._tileHandles.values()){if(!V(t))continue;const{featureData:r}=t;e.push({featureData:r,objectIds:new Set(r.enabledObjectIds())})}for(let t=0;t<e.length;++t){const{featureData:r,objectIds:n}=e[t];for(let i=t+1;i<e.length;++i){const{featureData:t,objectIds:s}=e[i];for(const e of s)if(n.has(e))throw new Error(`${r.id} and ${t.id} both contain ${e}.`)}}}_validateRemoval(e,t){if((0,l.A)("feature-pipeline-3d-test-validation"))for(const r of e.enabledObjectIds())if(t.has(r))throw new Error(`Failed to remove ${r} from ${e.id}!`)}};function B({lij:[e,t,r]},{lij:[n,i,s]}){const a=n-e;return a>=0&&t===i>>a&&r===s>>a}(0,n._)([(0,o.MZ)()],F.prototype,"updating",null),(0,n._)([(0,o.MZ)({constructOnly:!0})],F.prototype,"loadTile",void 0),(0,n._)([(0,o.MZ)({constructOnly:!0})],F.prototype,"synchronizer",void 0),(0,n._)([(0,o.MZ)()],F.prototype,"_updatingCount",void 0),(0,n._)([(0,o.MZ)()],F.prototype,"extent",void 0),(0,n._)([(0,o.MZ)()],F.prototype,"_boundingRect",null),(0,n._)([(0,o.MZ)()],F.prototype,"_missingTiles",null),F=(0,n._)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Tile3DManager")],F);class j{constructor(e,t){this.descriptor=e,this.loadTask=t}get id(){return this.descriptor.id}get featureData(){return this.loadTask.value}}function V(e){return null!=e.featureData}var N=r(75503),U=r(27647),L=r(92722);class k{constructor(e,t){this._index=e,this._view=t}get usedMemory(){return E.qK+E.RS}getObjectId(){return this._view.getObjectId(this._index)}getAttribute(e){return this._view.getAttribute(this._index,e)}getAttributeAsTimestamp(e){return this._view.getAttributeAsTimestamp(this._index,e)}getAttributes(){return this._view.getAttributes(this._index)}getOptimizedGeometry(){return this._view.getOptimizedGeometry(this._index)}getCentroid(e){return this._view.getCentroid(this._index,e)}getBounds(){return this._view.getBounds(this._index)}getBoundingBox(){return this._view.getBoundingBox(this._index)}cloneWithGeometry(e){return new H(this._index,this._view,e)}}class H extends k{constructor(e,t,r){super(e,t),this._geometryOverride=r}getOptimizedGeometry(){return this._geometryOverride}getCentroid(e){return(0,U.Q)(new L.A,this._geometryOverride,e.hasZ,e.hasM)}}class q{constructor(e,t){this.featureData=e,this.bounds=t}}class G{constructor(){this._tileBounds=new Map,this.events=new i.A,this.featureAdapter=$.shared}get usedMemory(){return E.qK+E.qK*this._tileBounds.size}addTile(e){const{featureCount:t}=e;if(0===t)return;const r=new N.w(9,(t=>e.getBounds(t))),n=new Array;for(let e=0;e<t;++e)n[e]=e;r.load(n),this._tileBounds.set(e.id,new q(e,r)),this.events.emit("changed")}removeTile(e){this._tileBounds.delete(e),this.events.emit("changed")}clear(){this._tileBounds.clear(),this.events.emit("changed")}forEach(e){for(const{featureData:t,bounds:r}of this._tileBounds.values())r.all((r=>{t.getEnabled(r)&&e(new k(r,t))}))}forEachInBounds(e,t){Y.minX=e[0],Y.minY=e[1],Y.maxX=e[2],Y.maxY=e[3];for(const{featureData:e,bounds:r}of this._tileBounds.values())r.search(Y,(r=>{e.getEnabled(r)&&t(new k(r,e))}))}forEachBounds(e,t){for(const r of e)t(r.getBoundingBox())}getFullExtent(e){let t=1/0,r=1/0,n=-1/0,i=-1/0;for(const{bounds:e}of this._tileBounds.values()){const{minX:s,minY:a,maxX:o,maxY:l}=e.toJSON();t=Math.min(t,s),r=Math.min(r,a),n=Math.min(n,o),i=Math.min(i,l)}return{xmin:t,ymin:r,xmax:n,ymax:i,spatialReference:e}}}class ${static{this.shared=new $}getObjectId(e){return e.getObjectId()}getAttribute(e,t){return e.getAttribute(t)}getAttributeAsTimestamp(e,t){return e.getAttributeAsTimestamp(t)}getAttributes(e){return e.getAttributes()}getGeometry(e){return e.getOptimizedGeometry()}getCentroid(e,t){return e.getCentroid(t)}cloneWithGeometry(e,t){return e.cloneWithGeometry(t)}}const Y=new N.E;var W=r(80893);class X{constructor(e,t,r){this.descriptor=e,this._pages=t,this._pageSize=r;const n=E.ez+t.reduce(((e,{usedMemory:t})=>e+t),0),i=3*E.RS;this.usedMemory=E.qK+n+i,this.featureCount=t.reduce(((e,t)=>e+t.featureCount),0)}get id(){return this.descriptor.id}getObjectId(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getObjectId(r)}getAttribute(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttribute(n,t)}getAttributeAsTimestamp(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttributeAsTimestamp(n,t)}getAttributes(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getAttributes(r)}getCoordinates(e,t,r){const{pageIndex:n,featurePageIndex:i}=this._translateIndex(e);this._pages[n].getCoordinates(i,t,r)}getOptimizedGeometry(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getOptimizedGeometry(r)}getCentroid(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getCentroid(n,t)}getBounds(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBounds(r)}getBoundingBox(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBoundingBox(r)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getObjectIdsArray(e,i,n);return n}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getCoordinatesArray(e,i,n);return n}*objectIds(e=this._allFeatureIndices()){for(const{page:t,indices:r}of this._batchPageIndices(e))for(const e of t.objectIds(r))yield e}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_translateIndex(e){const{_pageSize:t}=this;return{pageIndex:Math.floor(e/t),featurePageIndex:e%t}}*_batchPageIndices(e){const t=new Array;{let r=0,n=new Array;for(const i of e){const{pageIndex:e,featurePageIndex:s}=this._translateIndex(i);r!==e&&(0!==n.length&&t.push({pageIndex:r,indices:n}),r=e,n=[]),n.push(s)}0!==n.length&&t.push({pageIndex:r,indices:n})}const{_pages:r}=this;for(const{pageIndex:e,indices:n}of t)yield{page:r[e],indices:n}}}var Z=r(49186),Q=r(51624),J=r(51850),K=r(70328),ee=r(62577),te=r(95466),re=r(53655);class ne{constructor(e){this._reader=new Q.A(new Uint8Array(e),new DataView(e)),this._index=function(e){for(;e.next();){if(2===e.tag())return ie(e.getMessage());e.skip()}ae()}(this._reader)}get featureCount(){return this._index.featureIndices.length}get exceededTransferLimit(){return this._index.exceededTransferLimit}get usedMemory(){return this._reader.usedMemory}getObjectId(e){return this.getAttribute(e,this._index.objectIdFieldName)}getAttribute(e,t){const{_index:{fieldsIndex:r,attributeIndices:n}}=this,i=r.get(t)?.index;if(null==i)return;const s=n[e*r.fields.length+i],a=this._reader;return a.move(s),oe(a)}getAttributeAsTimestamp(e,t){const r=this.getAttribute(e,t);return"string"==typeof r?new Date(r).getTime():"number"==typeof r||null==r?r:null}getAttributes(e){const{_index:{fieldsIndex:t,attributeIndices:r}}=this,n=e*t.fields.length,i=this._reader,s={};for(const e of t.fields){const t=r[n+e.index];i.move(t),s[e.name]=oe(i)}return s}getCoordinates(e,t,r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:a,translate:o}=i;n.move(s[e]),this._readCoordinates(a,o,t,r)}getOptimizedGeometry(e){const t=(0,J.vt)();return this.getCoordinates(e,t),new L.A([],t)}getCentroid(e,{hasZ:t,hasM:r}){this.getCoordinates(e,le);const[n,i,s]=le,a=[n,i];return t&&(a[3]=s),r&&(a[t?4:3]=0),new L.A([],a)}getBounds(e){this.getCoordinates(e,le);const[t,r]=le,n=new N.E;return n.minX=t,n.minY=r,n.maxX=t,n.maxY=r,n}getBoundingBox(e){this.getCoordinates(e,le);const[t,r,n]=le;return(0,K.fA)(t,r,n,t,r,n)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{objectIdFieldName:i,attributeIndices:s,fieldsIndex:a}=this._index,o=a.get(i).index,l=a.fields.length;for(const i of t){const t=s[i*l+o];n.move(t),e[r++]=oe(n)}return r}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:a,translate:o}=i;for(const i of t){const t=s[i];n.move(t),r=this._readCoordinates(a,o,e,r)}return r}*objectIds(e=this._allFeatureIndices()){const t=this._reader,{objectIdFieldName:r,attributeIndices:n,fieldsIndex:i}=this._index,s=i.get(r).index,a=i.fields.length;for(const r of e){const e=n[r*a+s];t.move(e),yield oe(t)}}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_readCoordinates([e,t,r],[n,i,s],a,o){const l=this._reader,c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)switch(l.tag()){case 2:{const c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)3===l.tag()?(l.getUInt32(),a[o++]=n+e*l.getSInt64(),a[o++]=i+t*l.getSInt64(),a[o++]=s+r*l.getSInt64()):l.skip();break}default:l.skip()}return o}}function ie(e){for(;e.next();){if(1===e.tag())return se(e.getMessage());e.skip()}ae()}function se(e){let t,r,n=!1,i=!1,s=0;const a=new Array,o=new Array,l=new Array;for(;e.next();)switch(e.tag()){case 1:r=e.getString();break;case 7:0!==e.getEnum()&&ae();break;case 9:n=e.getBool()??!1;break;case 12:t=(0,ee.Q1)(e.processMessage(re.ae));break;case 13:{const t=e.processMessage(re.cn);t.index=s++,a.push(t);break}case 15:{o.push(e.pos());const t=e.getUInt32(),r=e.pos()+t;for(;e.pos()<r&&e.next();)1===e.tag()?(l.push(e.pos()),e.skip()):e.skip();break}case 10:i=e.getBool()??!1;break;default:e.skip()}const c=new te.A(a);return null!=t&&i&&null!=r&&c.has(r)||ae(),{transform:t,exceededTransferLimit:n,fieldsIndex:c,objectIdFieldName:r,featureIndices:o,attributeIndices:l}}function ae(){const e=new Z.A("pbf-parsing-failed","Error while parsing PBF",new Error);throw console.error(e),e}function oe(e){const t=e.getLength(),r=e.pos()+t;for(;e.pos()<r&&e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getSInt32();case 5:return e.getUInt32();case 6:return e.getInt64();case 7:return e.getUInt64();case 8:return e.getSInt64();case 9:return e.getBool();default:return e.skip(),null}return null}const le=(0,J.vt)();class ce{constructor(e,t,r,n,i){this.spatialReference=e,this.url=r,this.objectIdField=n,this.capabilities=i;const{supportsMaxRecordCountFactor:s,maxRecordCount:a}=this.capabilities.query,o=s?4:1,l=(a??8e3)*o;this._pageSize=Math.min(8e3,l);const c=t.clone();c.cacheHint=!0,c.resultType="tile",c.outSpatialReference=e,c.returnGeometry=!0,c.returnZ=!0,c.maxRecordCountFactor=o,c.num=this._pageSize,c.outFields=[n],this._baseQuery=c}async fetch(e,t){const{spatialReference:r,_pageSize:n}=this,i=(0,C.w1)(e.extent,r),a=this._baseQuery.clone();a.geometry=i;const o=new Array;let l=0,c=!1,d=1;for(;!c;){const e=[];for(let r=0;r<d;++r)e.push(this._fetchPage(a,l++,t));const r=await Promise.all(e);(0,s.Te)(t);for(const e of r){const t=0!==e.featureCount;c||=!e.exceededTransferLimit||!t,t&&o.push(e)}d=Math.min(d+1,4)}return new X(e,o,n)}async _fetchPage(e,t,r){const n=e.clone();n.start=t*this._pageSize;const i=(await(0,W.kS)(this.url,n,{signal:r})).data;return(0,s.Te)(r),new ne(i)}}var de=r(58083),ue=r(9093),he=r(97146),fe=r(24151),pe=r(29920),me=r(46540),ge=r(51768),ye=r(34727),_e=r(77690),ve=r(29242),be=r(37585),xe=r(48163),we=r(38954),Ce=r(91829);var Ie=r(13030),Se=r(78662),Ae=r(26857),Te=r(1843),Oe=r(49255),Re=r(40268),Ee=r(16943),Me=r(25634),Pe=r(11725),De=r(13464),ze=r(77194),Fe=r(620);class Be{constructor(){this.scale=0,this.factor=0,this.minScaleFactor=0}}var je=r(59907),Ve=r(43616),Ne=r(13259),Ue=r(97220),Le=r(98958),ke=r(59643),He=r(33524),qe=r(63907),Ge=r(90644);class $e extends Le.w{constructor(e,t){super(e,t,new Ue.$(Ne.H,(()=>r.e(8241).then(r.bind(r,48241))))),this.primitiveType=t.occlusionPass?qe.WR.POINTS:qe.WR.TRIANGLES}initializePipeline(e){const{oitPass:t,hasPolygonOffset:r,draped:n,output:i,depthTestEnabled:s,occlusionPass:a}=e,o=t===ke.Y.NONE,l=t===ke.Y.ColorAlpha,c=i===Oe.V.Highlight,d=s&&!n&&!l&&!a&&!c;return(0,Ge.Ey)({blending:(0,Oe.RN)(i)?o?Ge.RC:(0,He.ez)(t):null,depthTest:s&&!n?{func:qe.MT.LEQUAL}:null,depthWrite:d?Ge.Uy:null,drawBuffers:(0,He.m6)(t,i),colorWrite:Ge.kn,polygonOffset:r?Ye:null})}}const Ye={factor:0,units:-4};var We=r(53466),Xe=r(22911),Ze=r(51976),Qe=r(35256);class Je extends Qe.E{constructor(e){super(),this.spherical=e,this.screenCenterOffsetUnitsEnabled=!1,this.occlusionTestEnabled=!0,this.signedDistanceFieldEnabled=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.vvSize=!1,this.vvColor=!1,this.hasVerticalOffset=!1,this.hasScreenSizePerspective=!1,this.hasRotation=!1,this.debugDrawLabelBorder=!1,this.hasPolygonOffset=!1,this.depthTestEnabled=!0,this.pixelSnappingEnabled=!0,this.draped=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.occlusionPass=!1,this.occludedFragmentFade=!1,this.objectAndLayerIdColorInstanced=!1,this.horizonCullingEnabled=!0,this.isFocused=!0,this.textureCoordinateType=We.I.None,this.emissionSource=Xe.ZX.None,this.discardInvisibleFragments=!0,this.hasVvInstancing=!1}}(0,n._)([(0,Ze.W)()],Je.prototype,"screenCenterOffsetUnitsEnabled",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"occlusionTestEnabled",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"signedDistanceFieldEnabled",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"sampleSignedDistanceFieldTexelCenter",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"vvSize",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"vvColor",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"hasVerticalOffset",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"hasScreenSizePerspective",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"hasRotation",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"debugDrawLabelBorder",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"hasPolygonOffset",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"depthTestEnabled",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"pixelSnappingEnabled",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"draped",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"terrainDepthTest",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"cullAboveTerrain",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"occlusionPass",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"occludedFragmentFade",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"objectAndLayerIdColorInstanced",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"horizonCullingEnabled",void 0),(0,n._)([(0,Ze.W)()],Je.prototype,"isFocused",void 0);var Ke=r(49788);class et extends Pe.im{constructor(e,t){super(e,It),this.produces=new Map([[De.N.HUD_MATERIAL,e=>(0,Oe.Mb)(e)&&!this.parameters.drawAsLabel],[De.N.LABEL_MATERIAL,e=>(0,Oe.Mb)(e)&&this.parameters.drawAsLabel],[De.N.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[De.N.DRAPED_MATERIAL,e=>this.parameters.draped&&(0,Oe.Mb)(e)]]),this._visible=!0,this._configuration=new Je(t)}getConfiguration(e,t){const r=this.parameters.draped;return super.getConfiguration(e,t,this._configuration),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=r,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===De.N.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=!r&&this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===De.N.OCCLUSION_PIXELS,(0,Oe.RN)(e)&&(this._configuration.debugDrawLabelBorder=!!Ae.b.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,r,n,i,s){const{options:{selectionMode:a,hud:o,excludeLabels:l},point:c,camera:d}=r,{parameters:u}=this;if(!a||!o||l&&u.isLabel||!e.visible||!c)return;const h=e.attributes.get(me.r.FEATUREATTRIBUTE),f=null==h?null:(0,Ce.ci)(h.data,_t),{scaleX:p,scaleY:m}=Ot(f,u,d.pixelRatio);(0,_e.z0)(ht,t),e.attributes.has(me.r.FEATUREATTRIBUTE)&&function(e){const t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],d=1/Math.sqrt(t*t+r*r+n*n),u=1/Math.sqrt(i*i+s*s+a*a),h=1/Math.sqrt(o*o+l*l+c*c);e[0]=t*d,e[1]=r*d,e[2]=n*d,e[3]=i*u,e[4]=s*u,e[5]=a*u,e[6]=o*h,e[7]=l*h,e[8]=c*h}(ht);const g=e.attributes.get(me.r.POSITION),y=e.attributes.get(me.r.SIZE),_=e.attributes.get(me.r.NORMAL),v=e.attributes.get(me.r.ROTATION),b=e.attributes.get(me.r.CENTEROFFSETANDDISTANCE);(0,Fe.vA)(g.size>=3);const x=(0,Ne.c)(u),w="screen"===this.parameters.centerOffsetUnits;for(let e=0;e<g.data.length/g.size;e++){const n=e*g.size;(0,we.i)(st,g.data[n],g.data[n+1],g.data[n+2]),(0,we.t)(st,st,t),(0,we.t)(st,st,d.viewMatrix);const i=e*b.size;if((0,we.i)(gt,b.data[i],b.data[i+1],b.data[i+2]),!w&&(st[0]+=gt[0],st[1]+=gt[1],0!==gt[2])){const e=gt[2];(0,we.n)(gt,st),(0,we.d)(st,st,(0,we.h)(gt,gt,e))}const a=e*_.size;if((0,we.i)(at,_.data[a],_.data[a+1],_.data[a+2]),rt(at,ht,d,vt),Rt(this.parameters,st,vt,d,it),d.applyProjection(st,ot),ot[0]>-1){w&&(gt[0]||gt[1])&&(ot[0]+=gt[0]*d.pixelRatio,0!==gt[1]&&(ot[1]+=(0,ze.m0)(gt[1],it.factorAlignment)*d.pixelRatio),d.unapplyProjection(ot,st)),ot[0]+=this.parameters.screenOffset[0]*d.pixelRatio,ot[1]+=this.parameters.screenOffset[1]*d.pixelRatio,ot[0]=Math.floor(ot[0]),ot[1]=Math.floor(ot[1]);const t=e*y.size;wt[0]=y.data[t],wt[1]=y.data[t+1],(0,ze.MD)(wt,it.factor,wt);const n=bt*d.pixelRatio;let i=0;u.textureIsSignedDistanceField&&(i=Math.min(u.outlineSize,.5*wt[0])*d.pixelRatio/2),wt[0]*=p,wt[1]*=m;const a=e*v.size,o=u.rotation+v.data[a];if(nt(c,ot[0],ot[1],wt,n,i,o,u,x)){const e=r.ray;if((0,we.t)(ct,st,(0,de.B8)(pt,d.viewMatrix)),ot[0]=c[0],ot[1]=c[1],d.unprojectFromRenderScreen(ot,st)){const t=(0,J.vt)();(0,we.c)(t,e.direction);const r=1/(0,we.l)(t);(0,we.h)(t,t,r),s((0,we.j)(e.origin,st)*r,t,-1,!0,1,ct)}}}}}intersectDraped(e,t,r,n,i,s){const a=e.attributes.get(me.r.POSITION),o=e.attributes.get(me.r.SIZE),l=e.attributes.get(me.r.ROTATION),c=this.parameters,d=(0,Ne.c)(c),u=e.attributes.get(me.r.FEATUREATTRIBUTE),h=null==u?null:(0,Ce.ci)(u.data,_t),{scaleX:f,scaleY:p}=Ot(h,c,e.screenToWorldRatio),m=xt*e.screenToWorldRatio;for(let t=0;t<a.data.length/a.size;t++){const r=t*a.size,u=a.data[r],h=a.data[r+1],g=t*o.size;wt[0]=o.data[g],wt[1]=o.data[g+1];let y=0;c.textureIsSignedDistanceField&&(y=Math.min(c.outlineSize,.5*wt[0])*e.screenToWorldRatio/2),wt[0]*=f,wt[1]*=p;const _=t*l.size,v=c.rotation+l.data[_];nt(n,u,h,wt,m,y,v,c,d)&&i(s.dist,s.normal,-1,!1)}}createBufferWriter(){return new Tt}applyShaderOffsetsView(e,t,r,n,i,s,a){const o=rt(t,r,i,vt);return this._applyVerticalGroundOffsetView(e,o,i,a),Rt(this.parameters,a,o,i,s),this._applyPolygonOffsetView(a,o,n[3],i,a),this._applyCenterOffsetView(a,n,a),a}applyShaderOffsetsNDC(e,t,r,n,i){return this._applyCenterOffsetNDC(e,t,r,n),null!=i&&(0,we.c)(i,n),this._applyPolygonOffsetNDC(n,t,r,n),n}_applyPolygonOffsetView(e,t,r,n,i){const s=n.aboveGround?1:-1;let a=Math.sign(r);0===a&&(a=s);const o=s*a;if(this.parameters.shaderPolygonOffset<=0)return(0,we.c)(i,e);const l=(0,ye.qE)(Math.abs(t.cosAngle),.01,1),c=1-Math.sqrt(1-l*l)/l/n.viewport[2];return(0,we.h)(i,e,o>0?c:1/c),i}_applyVerticalGroundOffsetView(e,t,r,n){const i=(0,we.l)(e),s=r.aboveGround?1:-1,a=r.computeRenderPixelSizeAtDist(i)*Re.R,o=(0,we.h)(st,t.normal,s*a);return(0,we.g)(n,e,o),n}_applyCenterOffsetView(e,t,r){const n="screen"!==this.parameters.centerOffsetUnits;return r!==e&&(0,we.c)(r,e),n&&(r[0]+=t[0],r[1]+=t[1],t[2]&&((0,we.n)(at,r),(0,we.g)(r,r,(0,we.h)(at,at,t[2])))),r}_applyCenterOffsetNDC(e,t,r,n){const i="screen"!==this.parameters.centerOffsetUnits;return n!==e&&(0,we.c)(n,e),i||(n[0]+=t[0]/r.fullWidth*2,n[1]+=t[1]/r.fullHeight*2),n}_applyPolygonOffsetNDC(e,t,r,n){const i=this.parameters.shaderPolygonOffset;if(e!==n&&(0,we.c)(n,e),i){const e=r.aboveGround?1:-1,s=e*Math.sign(t[3]);n[2]-=(s||e)*i}return n}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:r}=this.parameters,n=e[3]>=Ke.Q||t>=Ke.Q&&r[3]>=Ke.Q;return this._visible&&n}createGLMaterial(e){return new tt(e)}calculateRelativeScreenBounds(e,t,r=(0,C.vt)()){return function(e,t,r,n){n[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*r,n[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*r}(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class tt extends Me.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique($e,e)}}function rt(e,t,r,n){return function(e){return(t=e)instanceof Float32Array&&t.length>=16||function(e){return Array.isArray(e)&&e.length>=16}(e);var t}(t)&&(t=(0,_e.z0)(ft,t)),(0,we.q)(n.normal,e,t),(0,we.t)(n.normal,n.normal,r.viewInverseTransposeMatrix),n.cosAngle=(0,we.f)(lt,Ct),n}function nt(e,t,r,n,i,s,a,o,l){let c=t-i-n[0]*l[0],d=c+n[0]+2*i,u=r-i-n[1]*l[1],h=u+n[1]+2*i;const f=o.distanceFieldBoundingBox;return o.textureIsSignedDistanceField&&null!=f&&(c+=n[0]*f[0],u+=n[1]*f[1],d-=n[0]*(1-f[2]),h-=n[1]*(1-f[3]),c-=s,d+=s,u-=s,h+=s),(0,be.hZ)(ut,t,r),(0,be.e$)(dt,e,ut,(0,ye.kU)(a)),dt[0]>c&&dt[0]<d&&dt[1]>u&&dt[1]<h}const it=new class{constructor(){this.factor=new Be,this.factorAlignment=new Be}},st=(0,J.vt)(),at=(0,J.vt)(),ot=(0,Ce.vt)(),lt=(0,J.vt)(),ct=(0,J.vt)(),dt=(0,xe.vt)(),ut=(0,xe.vt)(),ht=(0,ve.vt)(),ft=(0,ve.vt)(),pt=(0,ue.vt)(),mt=(0,Ce.vt)(),gt=(0,J.vt)(),yt=(0,J.vt)(),_t=(0,Ce.vt)(),vt={normal:lt,cosAngle:0},bt=1,xt=2,wt=(0,xe.fA)(0,0),Ct=(0,J.fA)(0,0,1);class It extends Me.NV{constructor(){super(...arguments),this.renderOccluded=Pe.m$.Occlude,this.isDecoration=!1,this.color=(0,Ce.CN)(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=(0,xe.fA)(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=(0,Ce.CN)(1,1,1,1),this.outlineSize=0,this.distanceFieldBoundingBox=(0,Ce.vt)(),this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusEffect="none",this.draped=!1,this.isLabel=!1}}const St=(0,Te.BP)().vec3f(me.r.POSITION).vec3f(me.r.NORMAL).vec2i16(me.r.UVI).vec4u8(me.r.COLOR).vec2f(me.r.SIZE).f32(me.r.ROTATION).vec4f(me.r.CENTEROFFSETANDDISTANCE).vec4f(me.r.FEATUREATTRIBUTE),At=St.clone().vec4u8(me.r.OLIDCOLOR);class Tt{constructor(){this.vertexBufferLayout=(0,Ee.E)()?At:St}elementCount(e){return 6*e.get(me.r.POSITION).indices.length}write(e,t,r,n,i,s){const{position:a,normal:o,uvi:l,color:c,size:d,rotation:u,centerOffsetAndDistance:h,featureAttribute:f}=i;(0,je.Hk)(r.get(me.r.POSITION),e,a,s,6),(0,je.p1)(r.get(me.r.NORMAL),t,o,s,6);const p=r.get(me.r.UVI)?.data;let m=0,g=0,y=-1-Ne.f,_=-1-Ne.f;p&&p.length>=4&&(m=p[0],g=p[1],y=-1-p[2],_=-1-p[3]);let v=r.get(me.r.POSITION).indices.length,b=s;for(let e=0;e<v;++e)l.set(b,0,m),l.set(b,1,g),b++,l.set(b,0,y),l.set(b,1,g),b++,l.set(b,0,y),l.set(b,1,_),b++,l.set(b,0,y),l.set(b,1,_),b++,l.set(b,0,m),l.set(b,1,_),b++,l.set(b,0,m),l.set(b,1,g),b++;(0,je.tb)(r.get(me.r.COLOR),4,c,s,6);const{data:x,indices:w}=r.get(me.r.SIZE);v=w.length,b=s;for(let e=0;e<v;++e){const t=x[2*w[e]],r=x[2*w[e]+1];for(let e=0;e<6;++e)d.set(b,0,t),d.set(b,1,r),b++}if((0,je.uO)(r.get(me.r.ROTATION),u,s,6),r.get(me.r.CENTEROFFSETANDDISTANCE)?(0,je.Ut)(r.get(me.r.CENTEROFFSETANDDISTANCE),h,s,6):(0,je.Pq)(h,s,6*v),r.get(me.r.FEATUREATTRIBUTE)?(0,je.Ut)(r.get(me.r.FEATUREATTRIBUTE),f,s,6):(0,je.Pq)(f,s,6*v),null!=n){const e=r.get(me.r.POSITION)?.indices;if(e){const t=e.length,r=i.getField(me.r.OLIDCOLOR,Ie.XP);(0,je.vx)(n,r,t,s,6)}}return{numVerticesPerItem:6,numItems:v}}intersect(e,t,r,n,i,s,a){const{options:{selectionMode:o,hud:l,excludeLabels:c},point:d,camera:u}=n;if(!o||!l||c&&t.isLabel||!d)return;const h=this.vertexBufferLayout.createView(e),f=h.getField(me.r.POSITION,Ie.xs),p=h.getField(me.r.NORMAL,Ie.xs),m=h.getField(me.r.ROTATION,Ie.Y$),g=h.getField(me.r.SIZE,Ie.gH),y=h.getField(me.r.FEATUREATTRIBUTE,Ie.Eq),_=h.getField(me.r.CENTEROFFSETANDDISTANCE,Ie.Eq),v="screen"===t.centerOffsetUnits,b=(0,Ne.c)(t);if(null==f||null==p||null==m||null==g||null==_)return;const x=null==y?null:y.getVec(0,_t),{scaleX:w,scaleY:C}=Ot(x,t,u.pixelRatio),I=f.count/6;for(let e=0;e<I;e++){const i=6*e;if(f.getVec(i,st),null!=r&&(0,we.g)(st,st,r),(0,we.t)(st,st,u.viewMatrix),_.getVec(i,mt),(0,we.i)(gt,mt[0],mt[1],mt[2]),!v&&(st[0]+=gt[0],st[1]+=gt[1],0!==gt[2])){const e=gt[2];(0,we.n)(gt,st),(0,we.d)(st,st,(0,we.h)(gt,gt,e))}if(p.getVec(i,at),rt(at,ht,u,vt),Rt(t,st,vt,u,it),u.applyProjection(st,ot),ot[0]>-1){v&&(gt[0]||gt[1])&&(ot[0]+=gt[0]*u.pixelRatio,0!==gt[1]&&(ot[1]+=(0,ze.m0)(gt[1],it.factorAlignment)*u.pixelRatio),u.unapplyProjection(ot,st)),ot[0]+=t.screenOffset[0]*u.pixelRatio,ot[1]+=t.screenOffset[1]*u.pixelRatio,ot[0]=Math.floor(ot[0]),ot[1]=Math.floor(ot[1]),g.getVec(i,wt),(0,ze.MD)(wt,it.factor,wt);const r=bt*u.pixelRatio;let s=0;t.textureIsSignedDistanceField&&(s=Math.min(t.outlineSize,.5*wt[0])*u.pixelRatio/2),wt[0]*=w,wt[1]*=C;const o=m.get(i),l=t.rotation+o;if(nt(d,ot[0],ot[1],wt,r,s,l,t,b)){const t=n.ray;if((0,we.t)(ct,st,(0,de.B8)(pt,u.viewMatrix)),ot[0]=d[0],ot[1]=d[1],u.unprojectFromRenderScreen(ot,st)){const r=(0,J.vt)();(0,we.c)(r,t.direction);const n=1/(0,we.l)(r);(0,we.h)(r,r,n),a((0,we.j)(t.origin,st)*n,r,e,!0,1,ct)}}}}}}function Ot(e,t,r){return null==e||null==t.vvSize?{scaleX:r,scaleY:r}:((0,Se.VC)(yt,t,e),{scaleX:yt[0]*r,scaleY:yt[1]*r})}function Rt(e,t,r,n,i){if(!e.verticalOffset?.screenLength)return e.screenSizePerspective||e.screenSizePerspectiveAlignment?Et(e,i,(0,we.l)(t),r.cosAngle):(i.factor.scale=1,i.factorAlignment.scale=1),t;const s=(0,we.l)(t),a=e.screenSizePerspectiveAlignment??e.screenSizePerspective,o=(0,Ve.kE)(n,s,e.verticalOffset,r.cosAngle,a);return Et(e,i,s,r.cosAngle),(0,we.h)(r.normal,r.normal,o),(0,we.g)(t,t,r.normal)}function Et(e,t,r,n){null!=e.screenSizePerspective?(0,ze.cJ)(n,r,e.screenSizePerspective,t.factor):(t.factor.scale=1,t.factor.factor=0,t.factor.minScaleFactor=0),null!=e.screenSizePerspectiveAlignment?(0,ze.cJ)(n,r,e.screenSizePerspectiveAlignment,t.factorAlignment):(t.factorAlignment.factor=t.factor.factor,t.factorAlignment.scale=t.factor.scale,t.factorAlignment.minScaleFactor=t.factor.minScaleFactor)}class Mt{constructor(e,t){this._mainThreadDelegate=t,this._bufferWriters=new Map,this._sharedTextures=new Map,this.globalViewingMode=e===fe.RT.Global}createRenderCommandBuffer(e=[],t=[]){return{commands:e,transferList:t}}mergeRenderCommandBuffers(e){const t=this.createRenderCommandBuffer();for(const r of e)null!=r&&(t.commands.push(...r.commands),t.transferList.push(...r.transferList));return t}async getOrCreateSharedTexture(e,t){const{data:r,parameters:n}=t(),i=await this._mainThreadDelegate.createTexture(r,n);return this._sharedTextures.set(e,i),i}async releaseSharedTexture(e){const t=this._sharedTextures,r=t.get(e);if(null==r)return m.create(this);const n=this._destroyTexture(r);return new m(this,n,[()=>t.delete(e)])}_destroyTexture(e){return{commands:[{id:"destroy-texture",textureId:e}],transferList:[]}}async createMaterial(e){const{type:t,parameters:r}=e,n=P("material");let i,s;switch(t){case"default":i=new ge.$U(e.parameters,{spherical:this.globalViewingMode}),s={type:t,materialId:n,parameters:e.parameters};break;case"hud":i=new et(r,this.globalViewingMode),s={type:t,materialId:n,parameters:e.parameters}}return this._bufferWriters.set(n,i.createBufferWriter()),await this._mainThreadDelegate.createMaterial(s),n}destroyMaterial(e){return{commands:[{id:"destroy-material",materialId:e}],transferList:[]}}updateMaterial(e){return{commands:[{...e,id:"update-material"}],transferList:[]}}async createDirectRenderer(e){return await this._mainThreadDelegate.createDirectRenderer(e),e}async destroyDirectRenderer(e){await this._mainThreadDelegate.destroyDirectRenderer(e)}addDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.addDirectRendererGeometryBuffer(n,e,i,s,r)}updateDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.updateDirectRendererGeometryBuffer(n,e,i,s,r)}addDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:a}=n;return{commands:[{id:"add-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,a.buffer]}}updateDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:a}=n;return{commands:[{id:"update-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,a.buffer]}}removeDirectRendererGeometryBuffer(e,t){return{commands:[{id:"remove-direct-renderer-geometry-buffer",rendererId:e,groupId:t}],transferList:[]}}async createLodRenderer(e){const t=P("lod-renderer"),r=new Set,n={levels:e.levels.map((e=>({components:e.components.map((e=>{const t=e.attributes.get(me.r.POSITION);if(!t||0===t.indices.length)throw new Error("positions attribute expected");const n=(0,he.tM)(t.indices.length/3),i=new pe.j(n,3,t);if(null==this._bufferWriters.get(e.materialId))throw new Error("writer not found");const{renderGeometryBuffer:s}=this.createRenderGeometryBuffer(e,null);return r.add(s.data),{materialId:e.materialId,renderGeometryBuffer:s,boundingInfo:{bbMax:i.bbMax,bbMin:i.bbMin}}})),minScreenSpaceRadius:e.minScreenSpaceRadius})))};return await this._mainThreadDelegate.createLodRenderer(t,n,Array.from(r)),t}destroyLodRenderer(e){return{commands:[{id:"destroy-lod-renderer",rendererId:e}],transferList:[]}}addLodInstances(e,t,r){return{commands:[{id:"add-lod-instances",rendererId:e,groupId:t,data:r}],transferList:[r.featureIds.buffer,r.globalTransforms.buffer,r.localTransforms.buffer,r.visibility.buffer]}}removeLodInstances(e,t){return{commands:[{id:"remove-lod-instances",rendererId:e,groupId:t}],transferList:[]}}updateLodInstancesData(e,t,r){return{commands:[{id:"update-lod-instance-data",rendererId:e,groupId:t,globalTransforms:r}],transferList:[r.buffer]}}updateVisibility(e,t,r){return{commands:[{id:"update-visibility",rendererId:e,groupId:t,visibility:r}],transferList:[r.buffer]}}async dispatchRenderCommands(e){0!==e.commands.length&&await this._mainThreadDelegate.executeRenderCommands(e)}createRenderGeometryBuffer(e,t){const{materialId:r,visibilities:n,objectIds:i}=e,s=this._bufferWriters.get(r);if(null==s)throw new Error("no registered bufferWriter for material found");let a=null;if(e.transformation&&t)(0,de.C)(Pt,e.transformation),Pt[12]-=t[0],Pt[13]-=t[1],Pt[14]-=t[2],a=Pt;else{if(t)throw new Error("not implemented");e.transformation&&(a=e.transformation)}let o=null;a&&((0,de.B8)(Dt,Pt),(0,de.mg)(Dt,Dt),o=Dt);const l=e.attributes,c=s.elementCount(l),d=s.vertexBufferLayout.stride/4;c>Math.floor(zt/d)&&console.warn("geometry with very large number of elements encountered");const u=s.vertexBufferLayout.createBuffer(c),h=s.write(a,o,l,e.objectAndLayerIdColor,u,0);if(null==h)throw new Error("Bufferwriter.write does not provide item information.");if(n.length!==h.numItems||i.length!==h.numItems)throw new Error("Unexpected mismatch between number of RenderGeometryBufferItems and provided objectIds/visibility flags.");return{renderGeometryBuffer:{data:u.buffer,elementCount:c},renderGeometryBufferItems:{objectIds:i,visibilities:n,ranges:{numVertices:h.numVerticesPerItem,numItems:h.numItems}}}}}const Pt=(0,ue.vt)(),Dt=(0,ue.vt)(),zt=4194304;new Map,(()=>{let e="";for(let t=32;t<127;t++)e+=String.fromCharCode(t)})();const Ft=[];{const e=16;for(let t=0;t<360;t+=360/e)Ft.push([Math.cos(Math.PI*t/180),Math.sin(Math.PI*t/180)])}var Bt,jt;(jt=Bt||(Bt={}))[jt.Left=0]="Left",jt[jt.Center=1]="Center",jt[jt.Right=2]="Right",Object.freeze({left:0,center:.5,right:1});const Vt=Object.freeze({"bottom-left":(0,xe.fA)(0,0),bottom:(0,xe.fA)(.5,0),"bottom-right":(0,xe.fA)(1,0),left:(0,xe.fA)(0,.5),center:(0,xe.fA)(.5,.5),right:(0,xe.fA)(1,.5),"top-left":(0,xe.fA)(0,1),top:(0,xe.fA)(.5,1),"top-right":(0,xe.fA)(1,1)});var Nt=r(9762),Ut=r(27993);function Lt(e){const{featureCount:t}=e;if(0===t)return new Uint32Array;const r=new Uint32Array(t);return e.getObjectIdsArray(r),r}function kt(e){const{featureCount:t}=e;if(0===t)return new Float64Array;const r=new Float64Array(3*t);return e.getCoordinatesArray(r),r}function Ht(e,t){const r=t.viewSpatialReference,n=t.renderSpatialReference,{extent:i}=e,s=(0,C.gX)(i),a=(0,J.vt)();return(0,Ut.F)([s[0],s[1],0],r,a,n),a}function qt(e){const t=new Map;for(const[r,n]of e)t.set(r,{...n,indices:(0,he.Dg)(n.indices)});return t}var Gt=r(40804);r(31006);const $t=(0,Ce.CN)(.25,.25,.75,.75);function Yt(e){return"cross"===e||"x"===e}function Wt(e,t=128,r=.5*t,n=0){switch(e){case"circle":default:return function(e,t){const r=e/2-.5;return Kt(e,Qt(r,r,t/2))}(t,r);case"square":return function(e,t){return Xt(e,t,!1)}(t,r);case"cross":return function(e,t,r=0){return Zt(e,t,!1,r)}(t,r,n);case"x":return function(e,t,r=0){return Zt(e,t,!0,r)}(t,r,n);case"kite":return function(e,t){return Xt(e,t,!0)}(t,r);case"triangle":return function(e,t){return Kt(e,Jt(e/2,t,t/2))}(t,r);case"arrow":return function(e,t){const r=t,n=t/2,i=e/2,s=.8*r,a=Qt(i,(e-t)/2-s,Math.sqrt(s*s+n*n)),o=Jt(i,r,n);return Kt(e,((e,t)=>Math.max(o(e,t),-a(e,t))))}(t,r)}}function Xt(e,t,r){return r&&(t/=Math.SQRT2),Kt(e,((n,i)=>{let s=n-.5*e+.25,a=.5*e-i-.75;if(r){const e=(s+a)/Math.SQRT2;a=(a-s)/Math.SQRT2,s=e}return Math.max(Math.abs(s),Math.abs(a))-.5*t}))}function Zt(e,t,r,n=0){t-=n,r&&(t*=Math.SQRT2);const i=.5*t;return Kt(e,((t,s)=>{let a,o=t-.5*e,l=.5*e-s-1;if(r){const e=(o+l)/Math.SQRT2;l=(l-o)/Math.SQRT2,o=e}return o=Math.abs(o),l=Math.abs(l),a=o>l?o>i?Math.sqrt((o-i)*(o-i)+l*l):l:l>i?Math.sqrt(o*o+(l-i)*(l-i)):o,a-=n/2,a}))}function Qt(e,t,r){return(n,i)=>{const s=n-e,a=i-t;return Math.sqrt(s*s+a*a)-r}}function Jt(e,t,r){const n=Math.sqrt(t*t+r*r);return(i,s)=>{const a=Math.abs(i-e)-r,o=s-e+t/2+.75,l=(t*a+r*o)/n,c=-o;return Math.max(l,c)}}function Kt(e,t){const r=new Uint8Array(4*e*e);for(let n=0;n<e;n++)for(let i=0;i<e;i++){const s=i+e*n;let a=t(i,n);a=a/e+.5,(0,Gt.U)(a,r,4*s)}return r}var er=r(46610);class tr{constructor(e){this._context=e,this.materialId=null,this._loaded=!1,this._loadingPromise=null,this._iconTextureID=null}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}_destroy(){this._iconTextureID=null}async _load(){const e=this._context.renderCommandContext,t=await e.getOrCreateSharedTexture("circle-icon",(()=>function(e,t=128,r=.5*t,n=0){return{data:Wt(e,t,r,n),parameters:{mipmap:!1,wrap:{s:qe.pF.CLAMP_TO_EDGE,t:qe.pF.CLAMP_TO_EDGE},width:t,height:t,components:4,noUnpackFlip:!0,reloadable:!0}}}("circle")));this._iconTextureID=t;const r={anchorPosition:Vt.center,occlusionTest:!0,hasSlicePlane:!1,color:[1,0,0,1],outlineColor:[0,0,0,1],outlineSize:1,distanceFieldBoundingBox:$t,textureId:t,textureIsSignedDistanceField:!0,sampleSignedDistanceFieldTexelCenter:Yt("circle")};this.materialId=await e.createMaterial({type:"hud",parameters:r}),await e.createDirectRenderer(this.materialId),this._loaded=!0}async createAddCommand(e){const{materialId:t,_context:r}=this,{renderCommandContext:n}=r;if(null==t)throw new Error("expected material not to be null");const i=await this._createGeometry(e);if(null==i)return n.createRenderCommandBuffer();const s=Ht(e,r);return n.addDirectRendererGeometry(e.id,i,s)}async _createGeometry(e){const{materialId:t,_context:r}=this,{mainThreadDelegate:n}=r,{featureCount:i}=e;if(0===i||null==t)return null;const s=Lt(e),a=kt(e),o=function(e,t){const r=e.length/3,n=t.viewSpatialReference,i=t.renderSpatialReference,s=new Float64Array(3*r);if(!(0,Nt.projectBuffer)(e,n,0,s,i,0,r))throw new Error("Failed to project coordinates");return s}(await n.applyElevationAlignmentTo(a),r),l=new Float64Array([0,0,1]),c=new Float64Array([255,255,255,255]),d=new Float64Array([24,24]),u=new Float64Array([0,0,0,1]),h=new Float64Array([0,0]),f=new Float64Array([0]),p=new Uint32Array(i);for(let e=0;e<i;++e)p[e]=e;const m=new Uint32Array(i);for(let e=0;e<i;++e)m[e]=0;const g=new er.n(o,p,3,!0),y=new er.n(l,m,3,!0),_=new er.n(h,m,2,!0),v=new er.n(c,m,4,!0),b=new er.n(f,m,1,!0),x=new er.n(d,m,2,!0),w=new er.n(u,m,4,!0),C=[[me.r.POSITION,g],[me.r.NORMAL,y],[me.r.UV0,_],[me.r.COLOR,v],[me.r.ROTATION,b],[me.r.SIZE,x],[me.r.CENTEROFFSETANDDISTANCE,w]],I=new Uint8Array(i);return e.getVisibilityArray(I),{attributes:qt(C),objectAndLayerIdColor:void 0,transformation:(0,ue.vt)(),materialId:t,objectIds:s,visibilities:I}}async createRemoveCommand(e){const{materialId:t,_context:r}=this,n=r.renderCommandContext;return null==t?n.createRenderCommandBuffer():n.removeDirectRendererGeometryBuffer(t,e)}async createUpdateVisibilityCommand(e){const{materialId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return n.createRenderCommandBuffer();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),n.updateVisibility(t,e.id,i)}async createUpdateLayerOpacityCommand(e){const{_context:t}=this;return t.renderCommandContext.createRenderCommandBuffer()}async createUpdateElevationCommand(e){const{materialId:t,_context:r}=this,{renderCommandContext:n}=r,{featureCount:i,id:s}=e;if(null==t||0===i)return n.createRenderCommandBuffer();const a=await this._createGeometry(e);if(null==a)return n.createRenderCommandBuffer();const o=Ht(e,r);return n.updateDirectRendererGeometry(s,a,o)}async createDestroyCommand(){const{_iconTextureID:e,_context:t}=this,r=t.renderCommandContext;let n;return n=null!=e?await r.releaseSharedTexture("circle-icon"):m.create(r),n.appendPipelineStateCommand((()=>this._destroy())),n}}class rr{constructor(e){this._symbol=null,this._featureData=new Map,this._context=e}async load(){this._symbol=new tr(this._context)}async createAddCommand(e){const t=this._context.renderCommandContext,r=await this._provisionSymbol(),n=null==r?t.createRenderCommandBuffer():await r.createAddCommand(e);return new m(t,n,[()=>this._featureData.set(e.id,e)])}async createRemoveCommand(e){const t=this._context.renderCommandContext,r=await this._provisionSymbol(),n=null==r?t.createRenderCommandBuffer():await r.createRemoveCommand(e);return new m(t,n,[()=>this._featureData.delete(e)])}async createUpdateVisibilityCommand(e){const t=this._context.renderCommandContext,r=await this._provisionSymbol(),n=null==r?t.createRenderCommandBuffer():await r.createUpdateVisibilityCommand(e);return new m(t,n,[])}async createUpdateLayerOpacityCommand(e){const t=this._context.renderCommandContext,r=await this._provisionSymbol(),n=null==r?t.createRenderCommandBuffer():await r.createUpdateLayerOpacityCommand(e);return new m(t,n,[])}async createUpdateElevationCommand(){const{_featureData:e,_context:t}=this,r=t.renderCommandContext,n=await this._provisionSymbol();if(null==n)return m.create(r);const i=[];for(const t of e.values())i.push(n.createUpdateElevationCommand(t));const s=await Promise.all(i);return new m(r,r.mergeRenderCommandBuffers(s),[])}async createDestroyCommand(){const{_symbol:e,_context:t,_featureData:r}=this,n=t.renderCommandContext;if(!e)return m.create(n);const i=[];for(const e of r.keys())i.push(this.createRemoveCommand(e));i.push(e.createDestroyCommand());const s=await Promise.all(i);return m.join(n,s)}async _provisionSymbol(){const e=this._symbol;return e?(e.loaded||await e.load(),e):null}}var nr=r(48353),ir=r(8887),sr=r(83047);r(87317),r(12359),r(95108),r(27615),r(52106),r(4718),r(34275),r(65864);var ar,or,lr=r(57917),cr=r(72385),dr=(r(4197),r(11868)),ur=r(240);r(71351),(or=ar||(ar={})).length=function(e,t){const r=e[t],n=e[t+1],i=e[t+2];return Math.sqrt(r*r+n*n+i*i)},or.normalize=function(e,t){const r=e[t],n=e[t+1],i=e[t+2],s=1/Math.sqrt(r*r+n*n+i*i);e[t]*=s,e[t+1]*=s,e[t+2]*=s},or.scale=function(e,t,r){e[t]*=r,e[t+1]*=r,e[t+2]*=r},or.add=function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]+r[n],i[s+1]=e[t+1]+r[n+1],i[s+2]=e[t+2]+r[n+2]},or.subtract=function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]-r[n],i[s+1]=e[t+1]-r[n+1],i[s+2]=e[t+2]-r[n+2]},r(87170),r(75039);const hr=new Array(36);for(let e=0;e<6;e++)for(let t=0;t<6;t++)hr[6*e+t]=e;const fr=new Array(36);for(let e=0;e<6;e++)fr[6*e]=0,fr[6*e+1]=1,fr[6*e+2]=2,fr[6*e+3]=2,fr[6*e+4]=3,fr[6*e+5]=0;const pr=(0,cr.fA)(-.5,0,-.5),mr=(0,cr.fA)(.5,0,-.5),gr=(0,cr.fA)(0,0,.5),yr=(0,cr.fA)(0,.5,0),_r=(0,cr.vt)(),vr=(0,cr.vt)(),br=(0,cr.vt)(),xr=(0,cr.vt)(),wr=(0,cr.vt)();function Cr(e,t){switch(e){case"cone":return((e,r,n=!1)=>({levels:e.map((e=>{const i=qt(r(e.tesselation));return n&&function(e){const t=e,r=t.get(me.r.POSITION).data,n=t.get(me.r.NORMAL).data;if(n){const t=Ir(e,me.r.NORMAL).data;for(let e=0;e<n.length;e+=3){const r=n[e+1];t[e+1]=-n[e+2],t[e+2]=r}}if(r){const t=Ir(e,me.r.POSITION).data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}}(i),{components:[{attributes:i,objectAndLayerIdColor:void 0,transformation:null,materialId:t,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:e.minScreenSpaceRadius}}))}))(Sr,(e=>function(e,t,r,n,i=!0,s=!0){let a=0;const o=t,l=e;let c=(0,cr.fA)(0,a,0),d=(0,cr.fA)(0,a+l,0),u=(0,cr.fA)(0,-1,0),h=(0,cr.fA)(0,1,0);n&&(a=l,d=(0,cr.fA)(0,0,0),c=(0,cr.fA)(0,a,0),u=(0,cr.fA)(0,1,0),h=(0,cr.fA)(0,-1,0));const f=[d,c],p=[u,h],m=r+2,g=Math.sqrt(l*l+o*o);if(n)for(let e=r-1;e>=0;e--){const t=e*(2*Math.PI/r),n=(0,cr.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(n);const i=(0,cr.fA)(l*Math.cos(t)/g,-o/g,l*Math.sin(t)/g);p.push(i)}else for(let e=0;e<r;e++){const t=e*(2*Math.PI/r),n=(0,cr.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(n);const i=(0,cr.fA)(l*Math.cos(t)/g,o/g,l*Math.sin(t)/g);p.push(i)}const y=new Array,_=new Array;if(i){for(let e=3;e<f.length;e++)y.push(1),y.push(e-1),y.push(e),_.push(0),_.push(0),_.push(0);y.push(f.length-1),y.push(2),y.push(1),_.push(0),_.push(0),_.push(0)}if(s){for(let e=3;e<f.length;e++)y.push(e),y.push(e-1),y.push(0),_.push(e),_.push(e-1),_.push(1);y.push(0),y.push(2),y.push(f.length-1),_.push(1),_.push(2),_.push(p.length-1)}const v=(0,dr.oe)(3*m);for(let e=0;e<m;e++)v[3*e]=f[e][0],v[3*e+1]=f[e][1],v[3*e+2]=f[e][2];const b=(0,dr.oe)(3*m);for(let e=0;e<m;e++)b[3*e]=p[e][0],b[3*e+1]=p[e][1],b[3*e+2]=p[e][2];return[[me.r.POSITION,new er.n(v,y,3,!0)],[me.r.NORMAL,new er.n(b,_,3,!0)]]}(1,.5,e,!1)),!0);case"sphere":case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function Ir(e,t){let r=e.get(t);return r&&!r.exclusive&&(r={...r,exclusive:!0,data:(0,lr.S)(r.data)},e.set(t,r)),r}(0,we.d)(_r,pr,yr),(0,we.d)(vr,pr,mr),(0,we.e)(br,_r,vr),(0,we.n)(br,br),(0,we.d)(_r,mr,yr),(0,we.d)(vr,mr,gr),(0,we.e)(xr,_r,vr),(0,we.n)(xr,xr),(0,we.d)(_r,gr,yr),(0,we.d)(vr,gr,pr),(0,we.e)(wr,_r,vr),(0,we.n)(wr,wr),br[0],br[1],br[2],xr[0],xr[1],xr[2],wr[0],wr[1],wr[2],(0,J.vt)();const Sr=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];var Ar=r(74810);class Tr{constructor(e){this._context=e,this._loaded=!1,this._loadingPromise=null,this._primitive="cone",this._primitiveMaterialId=null,this._lodRendererId=null}_destroy(){this._lodRendererId=null,this._primitiveMaterialId=null}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext,t={usePBR:!0,isSchematic:!0,mrrFactors:Ar.Bt,ambient:J.Un,diffuse:J.Un,hasSlicePlane:!1,castShadows:!0,offsetTransparentBackfaces:!1,screenSizePerspective:{}};t.externalColor=Ce.Un,t.isInstanced=!0;const r=await e.createMaterial({type:"default",parameters:t}),n=Cr(this._primitive,r);this._lodRendererId=await e.createLodRenderer(n),this._primitiveMaterialId=r,this._loaded=!0}async createDestroyCommand(){const{_lodRendererId:e,_primitiveMaterialId:t,_context:r}=this,n=r.renderCommandContext,i=[];return null!=e&&i.push(n.destroyLodRenderer(e)),null!=t&&i.push(n.destroyMaterial(t)),new m(n,n.mergeRenderCommandBuffers(i),[()=>this._destroy()])}async createAddCommand(e){const t=this._context,{renderCommandContext:r,mainThreadDelegate:n}=t;if(null==this._lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:i}=e;if(0===i)return r.createRenderCommandBuffer();const s=(0,K.vt)((0,ir.Fq)(this._primitive)),a=(0,J.ci)((0,K.Ej)(s)),o=(0,J.ci)((0,ir.Bb)(a,{isPrimitive:!0,width:100,depth:null,height:null})),l=new Float64Array(16*i),c=new Float64Array(16*i),d=kt(e),u=await n.applyElevationAlignmentTo(d);for(let e=0;e<i;++e){const t=e,r=u[3*e+0],n=u[3*e+1],i=u[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,Er),d=this._computeLocalTransform(o,a,Rr);this._writeMatrixToTypedBuffer(l,t,d),this._writeMatrixToTypedBuffer(c,t,s)}const h=Lt(e),f=new Uint8Array(i);e.getVisibilityArray(f);const p={featureIds:new Uint32Array(h),visibility:f,localTransforms:l,globalTransforms:c};return r.addLodInstances(this._lodRendererId,e.id,p)}async createRemoveCommand(e){const{_context:t,_lodRendererId:r}=this,n=t.renderCommandContext;return null==r?n.createRenderCommandBuffer():n.removeLodInstances(r,e)}async createUpdateVisibilityCommand(e){const{_lodRendererId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return n.createRenderCommandBuffer();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),n.updateVisibility(t,e.id,i)}async createUpdateLayerOpacityCommand(e){const{_context:t}=this,r=t.renderCommandContext,n=this._primitiveMaterialId;return null==n?r.createRenderCommandBuffer():r.updateMaterial({type:"default",materialId:n,parameters:{opacity:e}})}async createUpdateElevationCommand(e){const{_context:t,_lodRendererId:r}=this,{renderCommandContext:n,mainThreadDelegate:i}=t,{featureCount:s,id:a}=e;if(null==r||0===s)return n.createRenderCommandBuffer();const o=new Float64Array(16*s),l=kt(e),c=await i.applyElevationAlignmentTo(l);for(let e=0;e<s;++e){const t=e,r=c[3*e+0],n=c[3*e+1],i=c[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,Er);this._writeMatrixToTypedBuffer(o,t,s)}return n.updateLodInstancesData(r,a,o)}_writeMatrixToTypedBuffer(e,t,r){let n=16*t;for(let t=0;t<16;t++)e[n++]=r[t]}_computeGlobalTransform(e,t,r,n,i){return Or[0]=e,Or[1]=t,Or[2]=r,(0,nr.l)(n,Or,i,this._context.renderSpatialReference),i}_computeLocalTransform(e,t,r){return(0,de.D_)(r),this._applyObjectScale(e,t,r),r}_applyObjectScale(e,t,r){const n=function(e=J.Un,t,r,n=1){const i=new Array(3);if(null==t||null==r)i[0]=1,i[1]=1,i[2]=1;else{let n,s=0;for(let a=2;a>=0;a--){const o=e[a],l=null!=o,c=0===a&&!n&&!l,d=r[a];let u;"symbol-value"===o||c?u=0!==d?t[a]/d:1:l&&"proportional"!==o&&isFinite(o)&&(u=0!==d?o/d:1),null!=u&&(i[a]=u,n=u,s=Math.max(s,Math.abs(u)))}for(let e=2;e>=0;e--)null==i[e]?i[e]=n:0===i[e]&&(i[e]=.001*s)}for(let e=2;e>=0;e--)i[e]/=n;return(0,J.ci)(i)}(e,e,t,this._context.renderCoordsHelper.unitInMeters);1===n[0]&&1===n[1]&&1===n[2]||(0,de.hs)(r,r,n)}}const Or=(0,J.vt)(),Rr=(0,ue.vt)(),Er=(0,ue.vt)();class Mr{constructor(e){this._symbols=new Array,this._featureDataPartitioning=new Map,this._context=e}async load(){this._symbols[0]=new tr(this._context),this._symbols[1]=new Tr(this._context)}async createAddCommand(e){const t=this._partition(e),r=await Promise.all(t.map((async({index:e,features:t})=>{const r=await this._provisionSymbol(e);return await(r?.createAddCommand(t))}))),n=this._context.renderCommandContext;return new m(n,n.mergeRenderCommandBuffers(r),[()=>this._featureDataPartitioning.set(e.id,t)])}async createRemoveCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e);if(null==i)return new m(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createRemoveCommand(t.id))})));return new m(n,n.mergeRenderCommandBuffers(s),[()=>t.delete(e)])}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e.id);if(null==i)return new m(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateVisibilityCommand(t))})));return new m(n,n.mergeRenderCommandBuffers(s),[])}async createUpdateLayerOpacityCommand(e){const t=this._context.renderCommandContext,r=[];for(let t=0;t<this._symbols.length;++t){const n=this._symbols[t];null!=n&&n.loaded&&r.push(n.createUpdateLayerOpacityCommand(e))}const n=await Promise.all(r);return new m(t,t.mergeRenderCommandBuffers(n),[])}async createUpdateElevationCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=t.renderCommandContext,n=[];for(const t of e.values()){const e=t.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateElevationCommand(t))}));n.push(...e)}const i=await Promise.all(n);return new m(r,r.mergeRenderCommandBuffers(i),[])}async createDestroyCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=t.renderCommandContext,n=[];for(const t of e.keys())n.push(this.createRemoveCommand(t));for(const e of this._symbols)n.push(e.createDestroyCommand());const i=await Promise.all(n);return m.join(r,i)}async _provisionSymbol(e){if(null==e)return null;const t=this._symbols[e];return t?(t.loaded||await t.load(),t):null}_getLoadedSymbol(e){if(null==e)return null;const t=this._symbols[e];return null!=t&&t.loaded?t:null}_partition(e){const t=Lt(e);if(null==t)throw new Error("unable to fetch objectIds");const{featureCount:r}=e,n=[[],[]];for(let e=0;e<r;++e)n[t[e]%2].push(e);return n.map(((t,r)=>new Pr(r,e.subset(new Uint32Array(t))))).filter((e=>e.features.featureCount>0))}}class Pr{constructor(e,t){this.index=e,this.features=t}}function Dr(e,t,r,n,i,s,a){const o=e?.type;if(null==o)return Dr(zr,t,r,n,i,s,a);switch(o){case"simple":return new rr({viewSpatialReference:t,renderSpatialReference:r,renderCoordsHelper:i,renderCommandContext:s,elevationInfo:a,mainThreadDelegate:n});case"uniqueValue":return new Mr({viewSpatialReference:t,renderSpatialReference:r,renderCoordsHelper:i,renderCommandContext:s,elevationInfo:a,mainThreadDelegate:n});default:return Dr(zr,t,r,n,i,s,a)}}const zr={type:"simple"};var Fr=r(73941),Br=r(98764),jr=r(65806);const Vr=(0,J.vt)();var Nr=r(88582),Ur=r(17352),Lr=r(97937);function kr(e,t,r=function(e){return{operations:e,value:e.create()}}(e)){return r.operations=e,e.copy(t,r.value),r}const Hr=2**50;function qr(e,t,r,n){return e.operations.setAltitudeAt(e.value,t,r,n)}function Gr(e,t,r){return e.operations.elevate(e.value,t,r.value)}const $r=(0,J.vt)();(0,J.vt)();var Yr=r(44280),Wr=r(32114);function Xr(e){return"point"===e.type}class Zr{constructor(e,t,r,n){this.viewingMode=e,this.spatialReference=t,this.unitInMeters=r,this._coordinateSystem=n,this._tmpCoordinateSystem=function(e){const{value:t,operations:r}=e;return{operations:r,value:r.create(t)}}(n),this.referenceEllipsoid=(0,Fr.tO)(t),this.sphericalPCPF=(0,Br.lO)(t)}set extent(e){e&&function(e,t,r){e.operations.setExtent(e.value,t,r.value)}(this._coordinateSystem,e,this._coordinateSystem)}get extent(){return function(e,t){return e.operations.getExtent(e.value,t),t}(this._coordinateSystem,(0,C.vt)())}getAltitude(e){return function(e,t){return e.operations.altitudeAt(e.value,t)}(this._coordinateSystem,e)}setAltitude(e,t,r=e){return qr(this._coordinateSystem,r,t,e)}setAltitudeOfTransformation(e,t){!function(e,t,r,n){t!==n&&(0,de.C)(n,t),(0,we.i)($r,n[12],n[13],n[14]),qr(e,$r,r,$r),n[12]=$r[0],n[13]=$r[1],n[14]=$r[2]}(this._coordinateSystem,t,e,t)}worldUpAtPosition(e,t){return function(e,t,r){return e.operations.axisAt(e.value,t,Nr._.Z,r)}(this._coordinateSystem,e,t)}worldBasisAtPosition(e,t,r){return function(e,t,r,n){return e.operations.axisAt(e.value,t,r,n)}(this._coordinateSystem,e,t,r)}basisMatrixAtPosition(e,t){const r=this.worldBasisAtPosition(e,Nr._.X,Wr.rq.get()),n=this.worldBasisAtPosition(e,Nr._.Y,Wr.rq.get()),i=this.worldBasisAtPosition(e,Nr._.Z,Wr.rq.get());return(0,de.hZ)(t,r[0],r[1],r[2],0,n[0],n[1],n[2],0,i[0],i[1],i[2],0,0,0,0,1),t}headingAtPosition(e,t){const r=this.worldUpAtPosition(e,Wr.rq.get()),n=this.worldBasisAtPosition(e,Nr._.Y,Wr.rq.get()),i=(0,Yr.EJ)(t,n,r);return(0,ye.KJ)(i)}intersectManifoldClosestSilhouette(e,t,r){return Gr(this._coordinateSystem,t,this._tmpCoordinateSystem),function(e,t,r){e.operations.intersectRayClosestSilhouette(e.value,t,r)}(this._tmpCoordinateSystem,e,r),r}intersectManifold(e,t,r){Gr(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=Wr.rq.get();return function(e,t,r){return e.operations.intersectRay(e.value,t,r)}(this._tmpCoordinateSystem,e,n)?(0,we.c)(r,n):null}intersectInfiniteManifold(e,t,r){if(this.viewingMode===fe.RT.Global)return this.intersectManifold(e,t,r);Gr(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=this._tmpCoordinateSystem.value,i=Wr.rq.get();return(0,ur.Ui)(n.plane,e,i)?(0,we.c)(r,i):null}toRenderCoords(e,t,r){return Xr(e)?(0,jr.g)(e,t,this.spatialReference):(0,Ut.F)(e,t,r,this.spatialReference)}fromRenderCoords(e,t,r=null){return Xr(t)?(null!=r&&(t.spatialReference=r),function(e,t,r){return!!(0,Ut.F)(e,t,Vr,r.spatialReference)&&(r.x=Vr[0],r.y=Vr[1],r.z=Vr[2],!0)}(e,this.spatialReference,t)?t:null):(0,Ut.F)(e,this.spatialReference,t,r)?t:null}static create(e,t){switch(e){case fe.RT.Local:return new Zr(fe.RT.Local,t,(0,sr.GA)(t),kr(Ur.b,(0,Ur.f)([0,0,0],[Hr,0,0],[0,Hr,0])));case fe.RT.Global:return new Zr(fe.RT.Global,t,1,function(e){return kr(Lr.s,(0,Lr.f)(0,0,0,(0,Fr.tO)(e).radius))}(t))}}static renderUnitScaleFactor(e,t){return(0,sr.KX)(e)/(0,sr.KX)(t)}}let Qr=class extends i.A.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new G,this._actionSynchronizer=new S(g,(e=>this._createCommand(e))),this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null,this._mainThreadDelegate=null,this._viewSpatialReference=null,this._renderSpatialReference=null,this._renderCoordsHelper=null,this._elevationInfo=null,this._renderCommandContext=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,baseQuery:n,url:i,objectIdField:s,capabilities:o,fieldsIndex:l,timeInfo:c,elevationInfoJSON:m,fullExtent:g}){const y=h.A.fromJSON(e);this._viewSpatialReference=y;const _=h.A.fromJSON(t);this._renderSpatialReference=_,this._fetcher=new ce(this._viewSpatialReference,p.A.fromJSON(n),i,s,o),this._queryEngine=new f.do({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:s,fieldsIndex:l,availableFields:[s],spatialReference:e,featureStore:this._featureStore,timeInfo:c}),this._mainThreadDelegate={createTexture:async(e,t)=>{const r={data:e,parameters:t};return await this.remoteClient.invoke("createTexture",r,{transferList:[e.buffer]})},releaseTexture:async e=>{const t={uid:e};await this.remoteClient.invoke("releaseTexture",t)},createMaterial:async e=>{const t={materialJSON:e};await this.remoteClient.invoke("createMaterial",t)},destroyMaterial:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyMaterial",t)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},destroyDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const n={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",n,{transferList:r})},destroyLodRenderer:async e=>{const t={rendererId:e};await this.remoteClient.invoke("destroyLoDRenderer",t)},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};const v=Zr.create(r,_);this._renderCoordsHelper=v;const b=new Mt(r,this._mainThreadDelegate);this._renderCommandContext=b;const x=m??{};this._elevationInfo=x,this._renderer=Dr(null,y,_,this._mainThreadDelegate,v,b,x),this._defaultQueryJSON=new p.A({outSpatialReference:y}).toJSON();let w=null;if(null!=g){const e=d.A.fromJSON(g);await(0,u.initializeProjection)(e.spatialReference,y),w=(0,u.project)(e,y)}return this._tileManager=new F({loadTile:(e,t)=>this._fetcher.fetch(e,t),synchronizer:this._actionSynchronizer,extent:w}),this.addHandles((0,a.wB)((()=>this.updating),(e=>{this.emit("notify-updating",{updating:e})})),a.Vh),null!=this._renderer&&await this._renderer.load(),Kr}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}async onTileTreeChange(e){return await this._tileManager.onTileTreeChange(e),Kr}async onElevationChange(e){return Kr}async onLayerOpacityChange(e){const t=this._renderer;if(null==t)return Kr;const r=await t.createUpdateLayerOpacityCommand(e);return await r.execute(),Kr}async onRendererChange(e){const{_viewSpatialReference:t,_renderSpatialReference:r,_mainThreadDelegate:n,_renderCoordsHelper:i,_renderCommandContext:s,_elevationInfo:a}=this,o=await this._createDestroyRendererCommand();await o.execute();const l=Dr(e,t,r,n,i,s,a);this._renderer=l,await this._renderer.load();const c=[];this._tileManager.forEachTile((e=>{c.push(l.createAddCommand(e))}));const d=await Promise.all(c),u=m.join(s,d);return await u.execute(),Kr}async _createDestroyRendererCommand(){const e=this._renderer;if(null==e)return m.create(this._renderCommandContext);const t=await e.createDestroyCommand();return t.appendPipelineStateCommand((()=>{(0,Fe.vA)(this._renderer===e),this._renderer=null})),t}async _createAddFeatureDataCommand(e,t){const r=this._featureStore,n=this._renderer;let i;return i=null!=n?await n.createAddCommand(e):m.create(this._renderCommandContext),(0,s.Te)(t),i.appendPipelineStateCommand((()=>{r.addTile(e)})),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer;let n;return n=null!=r?await r.createRemoveCommand(e):m.create(this._renderCommandContext),n.appendPipelineStateCommand((()=>{t.removeTile(e)})),n}async _createUpdateFeatureDataVisibilityCommand(e,t){const r=this._renderer;let n;return n=null!=r?await r.createUpdateVisibilityCommand(e):m.create(this._renderCommandContext),(0,s.Te)(t),n}_ensureQuery(e){return e??this._defaultQueryJSON}async _createCommand(e){switch(e.type){case y.ADD:return await this._createAddFeatureDataCommand(e.data);case y.REMOVE:return await this._createRemoveFeatureDataCommand(e.data.id);case y.UPDATE_VISIBILITY:return await this._createUpdateFeatureDataVisibilityCommand(e.data)}}};(0,n._)([(0,o.MZ)()],Qr.prototype,"updating",null),Qr=(0,n._)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],Qr);const Jr=Qr,Kr={result:void 0}},95696:(e,t,r)=>{r.d(t,{A:()=>u});var n,i=r(90237),s=r(69540),a=r(25482),o=r(10107),l=(r(44208),r(53966),r(87811),r(93223)),c=r(40608);let d=class extends(s.A.ClonableMixin(a.A)){static{n=this}constructor(e){super(e),this.type="georeferenced",this.origin=null}static{this.absolute=new n}};(0,i._)([(0,l.e)({georeferenced:"georeferenced"},{readOnly:!0})],d.prototype,"type",void 0),(0,i._)([(0,o.MZ)({type:[Number],nonNullable:!1,json:{write:!0}})],d.prototype,"origin",void 0),d=n=(0,i._)([(0,c.$)("esri.geometry.support.MeshGeoreferencedVertexSpace")],d);const u=d}}]);