@arcgis/core 5.2.0-next.104 → 5.2.0-next.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/WebScene.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0630e650abdfea1792e4.js +1 -0
- package/assets/esri/core/workers/chunks/{9a084a12afd6f0bbabce.js → 082069f80eee0407b828.js} +1 -1
- package/assets/esri/core/workers/chunks/{ec5542d6ecc0622f7705.js → 1ec01fd6330d011c76d6.js} +1 -1
- package/assets/esri/core/workers/chunks/{4b0e3f83a5f2d3b0478a.js → 20a9d39673d95ed401cc.js} +1 -1
- package/assets/esri/core/workers/chunks/24673aac70d6c949b6fa.js +1 -0
- package/assets/esri/core/workers/chunks/{bba3eb07a2a0065759f9.js → 25bb07d3c32b16a08813.js} +1 -1
- package/assets/esri/core/workers/chunks/{ffca0b2333e760b66d3a.js → 262052dfaec3af8a58b9.js} +1 -1
- package/assets/esri/core/workers/chunks/33e583166ab3943ecf0e.js +1 -0
- package/assets/esri/core/workers/chunks/{98414a10f6de21107a03.js → 3dc5b97408b54daa9a8d.js} +1 -1
- package/assets/esri/core/workers/chunks/{2350f1eb70819cc06bb6.js → 4c00a46bf0345f99a9bb.js} +1 -1
- package/assets/esri/core/workers/chunks/{2165493d36c85b7c9a04.js → 5c8f423812a23c02c1fd.js} +1 -1
- package/assets/esri/core/workers/chunks/{c2d19bb097d074a1ef21.js → 753d1ff177ecee8e2377.js} +1 -1
- package/assets/esri/core/workers/chunks/777fc163530448eea13e.js +1 -0
- package/assets/esri/core/workers/chunks/{09a40fd0e462144c4640.js → 842f993fa60b410cb613.js} +1 -1
- package/assets/esri/core/workers/chunks/{6cf881f793fd0ec93981.js → 8c521caf050a486b6548.js} +1 -1
- package/assets/esri/core/workers/chunks/91e545745706111f5f62.js +1 -0
- package/assets/esri/core/workers/chunks/{c582441200ee1cdf51a7.js → 925a0b29d3ed7165b8dd.js} +1 -1
- package/assets/esri/core/workers/chunks/b013b70e40dfb6ce013e.js +1 -0
- package/assets/esri/core/workers/chunks/{34e04b24942da2b9b87c.js → b56c5883a5468b18b122.js} +1 -1
- package/assets/esri/core/workers/chunks/c7b762bae945f383c723.js +1 -0
- package/assets/esri/core/workers/chunks/d0eb609a214d85d21ed5.js +1 -0
- package/assets/esri/core/workers/chunks/d9b63cf111035b05cd2e.js +1 -0
- package/assets/esri/core/workers/chunks/{23c4ec0bcbc83179013e.js → dc1b38f490142f7273ef.js} +1 -1
- package/assets/esri/core/workers/chunks/f05622413cadfd14553e.js +1 -0
- package/assets/esri/core/workers/chunks/{c91905b5808b8049f96d.js → f3a547f179fe7e655af9.js} +10 -9
- package/chunks/GlobalIllumination.glsl.js +4 -4
- package/config.js +1 -1
- package/kernel.js +1 -1
- package/layers/AnnotationFeatureLayer.d.ts +22 -0
- package/layers/AnnotationFeatureLayer.js +1 -1
- package/layers/DimensionFeatureLayer.js +1 -1
- package/layers/list/Item.d.ts +11 -28
- package/layers/list/Item.js +1 -1
- package/layers/list/LayerItemCollection.js +1 -1
- package/layers/list/types.d.ts +30 -0
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/support/AnnotationFeatureSublayer.d.ts +24 -3
- package/layers/support/AnnotationFeatureSublayer.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/layers/support/layersMapping.js +1 -1
- package/layers/support/telemetryDisplayUtils.js +2 -0
- package/package.json +5 -5
- package/support/revision.js +1 -1
- package/symbols/TextSymbol3DLayer.js +1 -1
- package/symbols/cim/TextRasterizer.js +1 -1
- package/symbols/cim/richTextUtils.js +1 -1
- package/symbols/support/Symbol3DTextBorder.js +2 -0
- package/views/2d/engine/webgl/GlyphWorker.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
- package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
- package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/support/QualityProfile.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +7 -6
- package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/BufferGeometryBaseInstance.js +2 -0
- package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
- package/views/3d/webgl-engine/lib/Buffers.js +2 -0
- package/views/3d/webgl-engine/lib/Intersector.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderParameters.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/VaoWriter.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/assets/esri/core/workers/chunks/0d69a18146722f792b5b.js +0 -1
- package/assets/esri/core/workers/chunks/3a8f6010a9f06a2457ae.js +0 -1
- package/assets/esri/core/workers/chunks/546213fb53fa921a3928.js +0 -1
- package/assets/esri/core/workers/chunks/5ed56ade84a0bea4a0c8.js +0 -1
- package/assets/esri/core/workers/chunks/93375f5f5bb754eca35f.js +0 -1
- package/assets/esri/core/workers/chunks/9e514a58b1165e273202.js +0 -1
- package/assets/esri/core/workers/chunks/a191ddb3b59ec1a7d818.js +0 -1
- package/assets/esri/core/workers/chunks/b24e1c901f7fda2a62ca.js +0 -1
- package/assets/esri/core/workers/chunks/da77257b517119578088.js +0 -1
- package/assets/esri/core/workers/chunks/fbbc5f551115787363d2.js +0 -1
|
@@ -64,7 +64,7 @@
|
|
|
64
64
|
vec3 shadedColor = evaluateSceneLightingPBR(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, mrr, additionalAmbientIrradiance);`:7===j?I.H`vec3 shadedColor = albedo;`:I.H`vec3 shadedColor = evaluateSceneLighting(shadingNormal, albedo, shadow, 1.0 - ssao, additionalLight);`}
|
|
65
65
|
vec4 finalColor = vec4(shadedColor, opacity_);
|
|
66
66
|
outputColorHighlightOLID(applySlice(finalColor, vpos), albedo ${(0,I.If)(L,", snow")});
|
|
67
|
-
`),t}const R=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:"Module"}));r.d(t,["D",0,R])},587(e,t,r){r.d(t,{G:()=>_,c:()=>y});var i=r(82048),n=r(92573),o=r(65261),a=r(98619),s=r(70893),l=r(34845),c=r(33094),u=r(20304),d=r(31821),h=r(58029),m=r(12791),f=r(63761),p=r(94046),v=(r(72458),r(63907)),g=r(65786),x=r(14113);class _ extends g.Y{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=.15,this.rayMarchMaxReach=.5,this.rayMarchWorldReach=25,this.rayMarchMinReachEmissionWeight=1,this.rayMarchMaxReachEmissionWeight=1,this.rayMarchMaxSteps=16,this.colorBleedWeight=.15,this.highQualityIdleColorBlendStart=.3}}function y(e){const t=new x.N5,r=t.fragment;t.include(i.c),t.include(l.Ir),(0,a.Gc)(r),r.include(n.V),r.include(o.C),r.include(p.R),t.include(s.O,e),r.uniforms.add(new f.N("normalMap",e=>e.normalTexture),new f.N("depthMap",e=>e.depthTexture),new m.x("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new m.x("lastFrameDepthTexture",e=>e.reprojection.lastFrameDepth?.attachment),new m.x("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new m.x("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(36065)),new h.F("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new h.F("view",e=>e.camera.viewMatrix),new u.m("accumulatedFrames",e=>e.accumulatedFrames),new u.m("temporalSampleFrame",e=>e.temporalSampleFrame),new u.m("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),r.uniforms.add(new u.m("rayMarchMinReach",e=>e.rayMarchMinReach),new u.m("rayMarchMaxReach",e=>e.rayMarchMaxReach),new u.m("rayMarchWorldReach",e=>e.rayMarchWorldReach),new u.m("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new u.m("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new u.m("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new u.m("colorBleedWeight",e=>e.colorBleedWeight),new u.m("highQualityIdleColorBlendStart",e=>e.highQualityIdleColorBlendStart));const{hasEmission:g,hasColor:_}=e;return g&&r.uniforms.add(new c.U("inputScale",e=>e.reprojection.lastFrameEmission?.attachment.descriptor.internalFormat===v.H0.RGBA8?16:1),new m.x("lastFrameEmissionTexture",e=>e.reprojection.lastFrameEmission?.attachment)),r.constants.add("highQualityIdleColorBlendEnd","float",.008),r.constants.add("highQualityIdleColorBlendFrames","float",150),r.constants.add("highQualityIdleOcclusionBlendEnd","float",.008),r.constants.add("highQualityIdleOcclusionBlendExponent","float",2),r.constants.add("highQualityIdleOcclusionBlendFrames","float",60),r.constants.add("highQualityIdleOcclusionBlendStart","float",.095),r.constants.add("fullColorBleedBlendWeight","float",.012),r.constants.add("accumulationDitherScale","float",.0039),r.constants.add("lowQualityColorBlendWeight","float",5e-4),r.constants.add("lowQualityColorDitherScale","float",.25),r.constants.add("lowQualityOcclusionBlendWeight","float",.008),r.constants.add("reprojectionMismatchThreshold","float",.01),r.constants.add("stableHistoryColorBlendWeight","float",.008),r.constants.add("strongHistoryOcclusionThreshold","float",.02),r.constants.add("weakHistoryOcclusionBlendWeight","float",.1),r.constants.add("weakHistoryOcclusionThreshold","float",.5),r.constants.add("storedColorBlendWeightScale","float",6),r.code.add(d.H`float computeIdleColorBlendWeight(float accumulatedFrames) {
|
|
67
|
+
`),t}const R=Object.freeze(Object.defineProperty({__proto__:null,build:D},Symbol.toStringTag,{value:"Module"}));r.d(t,["D",0,R])},587(e,t,r){r.d(t,{G:()=>_,c:()=>y});var i=r(82048),n=r(92573),o=r(65261),a=r(98619),s=r(70893),l=r(34845),c=r(33094),u=r(20304),d=r(31821),h=r(58029),m=r(12791),f=r(63761),p=r(94046),v=(r(72458),r(63907)),g=r(65786),x=r(14113);class _ extends g.Y{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=.15,this.rayMarchMaxReach=.5,this.rayMarchWorldReach=25,this.rayMarchMinReachEmissionWeight=1,this.rayMarchMaxReachEmissionWeight=1,this.rayMarchMaxSteps=16,this.colorBleedWeight=.15,this.highQualityIdleColorBlendStart=.3}}function y(e){const t=new x.N5,r=t.fragment;t.include(i.c),t.include(l.Ir),(0,a.Gc)(r),r.include(n.V),r.include(o.C),r.include(p.R),t.include(s.O,e),r.uniforms.add(new f.N("normalMap",e=>e.normalTexture),new f.N("depthMap",e=>e.depthTexture),new m.x("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new m.x("lastFrameDepthTexture",e=>e.reprojection.lastFrameDepth?.attachment),new m.x("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new m.x("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(36065)),new h.F("reprojectionProjectionMatrix",e=>e.reprojection.lastFrameCamera.projectionMatrix),new h.F("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new h.F("view",e=>e.camera.viewMatrix),new u.m("accumulatedFrames",e=>e.accumulatedFrames),new u.m("temporalSampleFrame",e=>e.temporalSampleFrame),new u.m("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),r.uniforms.add(new u.m("rayMarchMinReach",e=>e.rayMarchMinReach),new u.m("rayMarchMaxReach",e=>e.rayMarchMaxReach),new u.m("rayMarchWorldReach",e=>e.rayMarchWorldReach),new u.m("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new u.m("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new u.m("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new u.m("colorBleedWeight",e=>e.colorBleedWeight),new u.m("highQualityIdleColorBlendStart",e=>e.highQualityIdleColorBlendStart));const{hasEmission:g,hasColor:_}=e;return g&&r.uniforms.add(new c.U("inputScale",e=>e.reprojection.lastFrameEmission?.attachment.descriptor.internalFormat===v.H0.RGBA8?16:1),new m.x("lastFrameEmissionTexture",e=>e.reprojection.lastFrameEmission?.attachment)),r.constants.add("highQualityIdleColorBlendEnd","float",.008),r.constants.add("highQualityIdleColorBlendFrames","float",150),r.constants.add("highQualityIdleOcclusionBlendEnd","float",.008),r.constants.add("highQualityIdleOcclusionBlendExponent","float",2),r.constants.add("highQualityIdleOcclusionBlendFrames","float",60),r.constants.add("highQualityIdleOcclusionBlendStart","float",.095),r.constants.add("fullColorBleedBlendWeight","float",.012),r.constants.add("accumulationDitherScale","float",.0039),r.constants.add("lowQualityColorBlendWeight","float",5e-4),r.constants.add("lowQualityColorDitherScale","float",.25),r.constants.add("lowQualityOcclusionBlendWeight","float",.008),r.constants.add("reprojectionMismatchThreshold","float",.01),r.constants.add("stableHistoryColorBlendWeight","float",.008),r.constants.add("strongHistoryOcclusionThreshold","float",.02),r.constants.add("weakHistoryOcclusionBlendWeight","float",.1),r.constants.add("weakHistoryOcclusionThreshold","float",.5),r.constants.add("storedColorBlendWeightScale","float",6),r.code.add(d.H`float computeIdleColorBlendWeight(float accumulatedFrames) {
|
|
68
68
|
float idleColorBlendProgress = clamp(accumulatedFrames / highQualityIdleColorBlendFrames, 0.0, 1.0);
|
|
69
69
|
return mix(highQualityIdleColorBlendStart, highQualityIdleColorBlendEnd, pow(idleColorBlendProgress, 1./5.)
|
|
70
70
|
);
|
|
@@ -146,7 +146,7 @@ return value * 2.0 - 1.0;
|
|
|
146
146
|
|
|
147
147
|
// Reproject current view position to last frame
|
|
148
148
|
vec4 reprojectedViewPos = reprojectionViewMatrix * viewPos;
|
|
149
|
-
vec4 reprojectedCoordinate = applyProjectionMat(
|
|
149
|
+
vec4 reprojectedCoordinate = applyProjectionMat(reprojectionProjectionMatrix, reprojectedViewPos.xyz);
|
|
150
150
|
|
|
151
151
|
// Read last frame reprojected depth and GI history
|
|
152
152
|
float lastFrameDepthViewPos = -linearDepthFromTextureLastFrame(lastFrameDepthTexture, reprojectedCoordinate.xy);
|
|
@@ -1487,8 +1487,9 @@ return readShadowMaps(uvzShadow);
|
|
|
1487
1487
|
|
|
1488
1488
|
float previousEstimatedDepthDifference = 0.0;
|
|
1489
1489
|
|
|
1490
|
+
vec2 offsetProjectedPosition = projectedPosition + rayStepOffset * projectedStep;
|
|
1490
1491
|
projectedPosition = clamp(
|
|
1491
|
-
|
|
1492
|
+
offsetProjectedPosition,
|
|
1492
1493
|
vec2(0.0),
|
|
1493
1494
|
vec2(0.999)
|
|
1494
1495
|
);
|
|
@@ -1510,12 +1511,12 @@ return readShadowMaps(uvzShadow);
|
|
|
1510
1511
|
return firstSegmentHit;
|
|
1511
1512
|
}
|
|
1512
1513
|
|
|
1513
|
-
// Preserve the original march result, but remember a
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
float
|
|
1514
|
+
// Preserve the original march result, but remember a first sample within the surface thickness.
|
|
1515
|
+
// A clamped sample no longer matches the UV of the reconstructed ray depth.
|
|
1516
|
+
if (stepIndex == 0 && rayStepOffset > 0.0 && all(equal(projectedPosition, offsetProjectedPosition))) {
|
|
1517
|
+
float firstSegmentDepthDifference = -homogeneousPosition.z / inverseW - sampledDepth;
|
|
1517
1518
|
vec2 firstSegmentPixelOffset = (projectedPosition - projectedCoordStart.xy) * vec2(textureSize(depthMap, 0));
|
|
1518
|
-
if (firstSegmentDepthDifference < 0.025 / abs(inverseW)
|
|
1519
|
+
if (firstSegmentDepthDifference < 0.025 / abs(inverseW) &&
|
|
1519
1520
|
firstSegmentDepthDifference > 0.0 &&
|
|
1520
1521
|
sampledDepth > nearFar[0] &&
|
|
1521
1522
|
sampledDepth < nearFar[1] &&
|
|
@@ -1701,4 +1702,4 @@ return mix(mrr, vec3(0.0, 1.0, 0.04), snow);
|
|
|
1701
1702
|
calculateOcclusionAndOutputHighlight();
|
|
1702
1703
|
${(0,l.If)(_,"outputObjectAndLayerIdColor();")}
|
|
1703
1704
|
}
|
|
1704
|
-
`)}},26934(e,t,r){r.d(t,{Q:()=>n});var i=r(49788);function n(e){e.constants.add("alphaCutoff","float",i.Q),e.constants.add("opacityCutoff","float",i.v)}},58243(e,t,r){function i(e,t){t.useFloatBlend?e.code.add("float ditherNoise(vec4 color) { return 0.0; }"):e.code.add("\n float ditherNoise(vec4 color) {\n vec2 seed = color.rg + color.ba + gl_FragCoord.xy + gl_FragCoord.z;\n return (fract(52.9829189 * fract(dot(seed, vec2(0.06711056, 0.00583715)))) - 0.5) / 255.0;\n }")}r.d(t,{t:()=>i})},72458(e,t,r){r.d(t,{C:()=>o,O:()=>a});var i=r(32198),n=r(51976);class o extends n.K{constructor(){super(...arguments),this.useFloatBlend=!0}}function a(e,t){t.useFloatBlend?(e.constants.add("floatBlendOutputScale","float",1),e.constants.add("floatBlendInputScale","float",1)):(e.constants.add("floatBlendOutputScale","float",1/16),e.constants.add("floatBlendInputScale","float",16)),e.constants.add("maxEmissiveStrength","float",16)}(0,i.Cg)([(0,n.W)()],o.prototype,"useFloatBlend",void 0)},89904(e,t,r){r.d(t,{OG:()=>$e,gP:()=>Ge});var i=r(32198),n=r(69540),o=r(91429);let a=class extends n.Pw{constructor(e){super(e),this.row=0,this.column=0,this.rows=1,this.columns=1}equals(e){return null!=e&&this.row===e.row&&this.rows===e.rows&&this.column===e.column&&this.columns===e.columns}};(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"row",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"column",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"rows",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"columns",void 0),a=(0,i.Cg)([(0,o.$K)("esri.CameraLayout")],a);const s=a;var l=r(69052),c=r(25482),u=r(34727),d=r(78888),h=r(86738),m=r(43937),f=r(36005);let p=class extends((0,n.OU)(c.o)){constructor(...e){super(...e),this.position=new h.A([0,0,0]),this.heading=0,this.tilt=0,this.fov=55,this.layout=new s}normalizeCtorArgs(e,t,r,i){if(e&&"object"==typeof e&&("x"in e||Array.isArray(e))){const n={position:e};return null!=t&&(n.heading=t),null!=r&&(n.tilt=r),null!=i&&(n.fov=i),n}return e}writePosition(e,t,r,i){const n=e.clone();n.x=(0,d.GB)(e.x||0),n.y=(0,d.GB)(e.y||0),n.z=e.hasZ?(0,d.GB)(e.z||0):e.z,t[r]=n.write({},i)}readPosition(e,t){const r=new h.A;return r.read(e,t),r.x=(0,d.GB)(r.x||0),r.y=(0,d.GB)(r.y||0),r.z=r.hasZ?(0,d.GB)(r.z||0):r.z,r}equals(e){return null!=e&&this.tilt===e.tilt&&this.heading===e.heading&&this.fov===e.fov&&this.position.equals(e.position)&&this.layout.equals(e.layout)}};(0,i.Cg)([(0,o.MZ)({type:h.A,json:{write:{isRequired:!0}}})],p.prototype,"position",void 0),(0,i.Cg)([(0,m.K)("position")],p.prototype,"writePosition",null),(0,i.Cg)([(0,f.w)("position")],p.prototype,"readPosition",null),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,o.wg)(e=>l.ie.normalize((0,d.GB)(e)))],p.prototype,"heading",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,o.wg)(e=>(0,u.qE)((0,d.GB)(e),-180,180))],p.prototype,"tilt",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{default:55,write:!0}}),(0,o.wg)(e=>(0,u.qE)((0,d.GB)(e,55),1,170))],p.prototype,"fov",void 0),(0,i.Cg)([(0,o.MZ)({type:s,nonNullable:!0,json:{read:!1,write:!1}})],p.prototype,"layout",void 0),p=(0,i.Cg)([(0,o.$K)("esri.Camera")],p);var v=r(9093),g=r(35522),x=r(51850),_=r(16930),y=(r(48353),r(9762),r(65806)),b=r(27993),w=r(73941),S=(r(19419),r(65720)),M=r(71351),T=r(69622),C=r(53966),I=r(90629),O=r(58083),E=r(37585),P=r(48163),A=r(78955),D=r(91829),R=r(44280);function F(e,t,r){e.worldUpAtPosition(t,B),(0,g.Re)(N,r,t);const i=(0,g.Bw)(N);return 0===i?0:(0,u.XM)((0,g.Om)(N,B)/i)}const B=(0,x.vt)(),N=(0,x.vt)();var z;let H=z=class extends T.A{constructor(e){super(e),this._ray=(0,M.vt)(),this._viewport=(0,D.fA)(0,0,1,1),this._padding=(0,D.fA)(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=(0,P.fA)(1,1e3),this._viewDirty=!0,this._viewMatrix=(0,v.vt)(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=(0,v.vt)(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=(0,v.vt)(),this._frustumDirty=!0,this._frustum=(0,S.vt)(),this._fullViewport=(0,D.vt)(),this._fullViewportDirty=!0,this._pixelRatio=1,this.pixelScale=1,this.row=0,this.column=0,this._rows=1,this._columns=1,this._center=(0,x.vt)(),this._up=(0,x.vt)(),this.relativeElevation=0}get pixelRatio(){return this._pixelRatio}set pixelRatio(e){this._pixelRatio=e>0?e:1}get rows(){return this._rows}set rows(e){this._rows=Math.max(1,e)}get columns(){return this._columns}set columns(e){this._columns=Math.max(1,e)}get eye(){return this._ray.origin}set eye(e){this._compareAndSetView(e,this._ray.origin,"eye")}get center(){return this._center}set center(e){this._compareAndSetView(e,this._center,"_center")}get ray(){return(0,g.Re)(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(e){this._compareAndSetView(e,this._up,"_up")}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(e){(0,O.C)(this._viewMatrix,e),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get inverseViewMatrix(){return(0,O.Qw)((0,v.vt)(),this.viewMatrix)||this._get("inverseViewMatrix")||(0,v.vt)()}get viewForward(){return this._ensureViewClean(),(0,g.hZ)((0,x.vt)(),-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10])}get viewUp(){return this._ensureViewClean(),(0,g.hZ)((0,x.vt)(),this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9])}get viewRight(){return this._ensureViewClean(),(0,g.hZ)((0,x.vt)(),this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8])}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(e){this._nearFar[0]!==e&&(this._nearFar[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get far(){return this._nearFar[1]}set far(e){this._nearFar[1]!==e&&(this._nearFar[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get viewport(){return this._viewport}set viewport(e){this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]}get screenViewport(){if(1===this.pixelRatio)return this._viewport;const e=(0,A.hs)((0,D.vt)(),this._viewport,1/this.pixelRatio),t=this._get("screenViewport");return t&&(0,A.aI)(e,t)?t:e}get screenPadding(){if(1===this.pixelRatio)return this._padding;const e=(0,A.hs)((0,D.vt)(),this._padding,1/this.pixelRatio),t=this._get("screenPadding");return t&&(0,A.aI)(e,t)?t:e}get x(){return this._viewport[0]}set x(e){e+=this._padding[3],this._viewport[0]!==e&&(this._viewport[0]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get y(){return this._viewport[1]}set y(e){e+=this._padding[2],this._viewport[1]!==e&&(this._viewport[1]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get width(){return this._viewport[2]}set width(e){this._viewport[2]!==e&&(this._viewport[2]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get height(){return this._viewport[3]}set height(e){this._viewport[3]!==e&&(this._viewport[3]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get fullWidth(){return this._viewport[2]+this._padding[1]+this._padding[3]}set fullWidth(e){this.width=e-(this._padding[1]+this._padding[3])}get fullHeight(){return this._viewport[3]+this._padding[0]+this._padding[2]}set fullHeight(e){this.height=e-(this._padding[0]+this._padding[2])}get fullViewport(){return this._fullViewportDirty&&(this._fullViewport[0]=this._viewport[0]-this._padding[3],this._fullViewport[1]=this._viewport[1]-this._padding[2],this._fullViewport[2]=this._viewport[2]+this._padding[1]+this._padding[3],this._fullViewport[3]=this._viewport[3]+this._padding[0]+this._padding[2],this._fullViewportDirty=!1),this._fullViewport}get _aspect(){return this.width/this.height}get padding(){return this._padding}set padding(e){(0,A.t2)(this._padding,e)||(this._viewport[0]+=e[3]-this._padding[3],this._viewport[1]+=e[2]-this._padding[2],this._viewport[2]-=e[1]+e[3]-(this._padding[1]+this._padding[3]),this._viewport[3]-=e[0]+e[2]-(this._padding[0]+this._padding[2]),(0,A.C)(this._padding,e),this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_padding"),this.notifyChange("_viewport"))}get viewProjectionMatrix(){return this._viewProjectionDirty&&((0,O.lw)(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){return this._projectionMatrixInternal}get inverseProjectionMatrix(){return(0,O.B8)((0,v.vt)(),this.projectionMatrix)||this._get("inverseProjectionMatrix")||(0,v.vt)()}get fov(){return this._fov}set fov(e){this._fov=e,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(t*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovX(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/t)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(r*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovY(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/r)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return(0,g.Io)(this.center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&((0,O.B8)(this._viewInverseTransposeMatrix,this.viewMatrix),(0,O.mg)(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(e){const{near:t,far:r}=this;return 2*t*r/(r+t-e*(r-t))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}get _projectionMatrixInternal(){const e=this.width,t=this.height,r=this.near*Math.tan(this.fovY/2)*2,i=r*this._aspect,n=r/this.rows,o=i/this.columns,a=-i/2+this.column*o,s=a+o,l=-r/2+this.row*n,c=l+n,u=(0,O.$h)((0,v.vt)(),a*(1+2*this._padding[3]/e),s*(1+2*this._padding[1]/e),l*(1+2*this._padding[2]/t),c*(1+2*this._padding[0]/t),this.near,this.far),d=this._get("projectionMatrix");return d&&(0,O.t2)(d,u)?d:u}copyFrom(e){(0,g.C)(this._ray.origin,e.eye),this.center=e.center,this.up=e.up,(0,A.C)(this._viewport,e.viewport),this.notifyChange("_viewport"),(0,A.C)(this._padding,e.padding),this.notifyChange("_padding"),this._fullViewportDirty=!0,(0,E.C)(this._nearFar,e.nearFar),this.notifyChange("_nearFar"),this._fov=e.fov,this.row=e.row,this.column=e.column,this.rows=e.rows,this.columns=e.columns,this.relativeElevation=e.relativeElevation;const t=e;return this._viewDirty=t._viewDirty,this._viewDirty||((0,O.C)(this._viewMatrix,e.viewMatrix),this.notifyChange("_viewMatrix")),this._viewProjectionDirty=!0,this._frustumDirty=t._frustumDirty,this._frustumDirty||((0,S.C)(this._frustum,e.frustum),this._frustumDirty=!1),t._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:((0,O.C)(this._viewInverseTransposeMatrix,e.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this.pixelRatio=e.pixelRatio,this.pixelScale=e.pixelScale,this}copyViewFrom(e){this.eye=e.eye,this.center=e.center,this.up=e.up,this.fov=e.fov}clone(){return(new z).copyFrom(this)}equals(e){return(0,g.t2)(this.eye,e.eye)&&(0,g.t2)(this.center,e.center)&&(0,g.t2)(this.up,e.up)&&(0,A.t2)(this._viewport,e.viewport)&&(0,A.t2)(this._padding,e.padding)&&(0,E.t2)(this.nearFar,e.nearFar)&&this._fov===e.fov&&this.pixelRatio===e.pixelRatio&&this.relativeElevation===e.relativeElevation&&this.row===e.row&&this.column===e.column&&this.rows===e.rows&&this.columns===e.columns}equalsView(e){return(0,g.t2)(this.eye,e.eye)&&(0,g.t2)(this.center,e.center)&&(0,g.t2)(this.up,e.up)&&this._fov===e.fov}almostEquals(e){const t=Math.max(1,1/this.pixelRatio,1/e.pixelRatio);if(Math.abs(e.fov-this._fov)>=.001||(0,A.hG)(e.screenPadding,this.screenPadding)>=t||(0,A.hG)(this.screenViewport,e.screenViewport)>=t||this.row!==e.row||this.column!==e.column||this.rows!==e.rows||this.columns!==e.columns)return!1;(0,g.jb)(W,e.eye,e.center),(0,g.jb)(U,this.eye,this.center);const r=(0,g.Om)(W,U),i=(0,g.uE)(W),n=(0,g.uE)(U),o=5e-4;return r*r>=(1-1e-10)*i*n&&(0,g.lo)(e.eye,this.eye)<Math.max(i,n)*o*o}computeRenderPixelSizeAt(e){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(e))}computeRenderPixelSizeAtDist(e){return e*this.perRenderPixelRatio}computeScreenPixelSizeAt(e){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(e))}_viewDirectionDistance(e){return Math.abs((0,R.gr)(this.viewForward,(0,g.Re)(W,e,this.eye)))}computeScreenPixelSizeAtDist(e){return e*this.perScreenPixelRatio}computeDistanceFromRadius(e,t){return e/Math.tan(Math.min(this.fovX,this.fovY)/(2*(t||1)))}getScreenCenter(e=(0,I.gs)()){return e[0]=(this.padding[3]+this.width/2)/this.pixelRatio,e[1]=(this.padding[0]+this.height/2)/this.pixelRatio,e}getRenderCenter(e,t=.5,r=.5){return e[0]=this.padding[3]+this.width*t,e[1]=this.padding[2]+this.height*r,e[2]=.5,e}setGLViewport(e){const t=this.viewport,r=this.padding;e.setViewport(t[0]-r[3],t[1]-r[2],t[2]+r[1]+r[3],t[3]+r[0]+r[2])}applyProjection(e,t){e!==L&&(0,g.C)(L,e),L[3]=1,(0,A.Z0)(L,L,this.projectionMatrix);const r=Math.abs(L[3]);(0,g.hs)(L,L,1/r);const i=this.fullViewport;t[0]=(0,u.Cc)(0,i[0]+i[2],.5+.5*L[0]),t[1]=(0,u.Cc)(0,i[1]+i[3],.5+.5*L[1]),t[2]=.5*(L[2]+1),t[3]=r}unapplyProjection(e,t){const r=this.fullViewport;L[0]=(e[0]/(r[0]+r[2])*2-1)*e[3],L[1]=(e[1]/(r[1]+r[3])*2-1)*e[3],L[2]=(2*e[2]-1)*e[3],L[3]=e[3],null!=this.inverseProjectionMatrix&&((0,A.Z0)(L,L,this.inverseProjectionMatrix),t[0]=L[0],t[1]=L[1],t[2]=L[2])}projectToScreen(e,t){return null==this.projectToRenderScreen(e,V)?null:(this.renderToScreen(V,t),t)}projectToRenderScreen(e,t){if(L[0]=e[0],L[1]=e[1],L[2]=e[2],L[3]=1,(0,A.Z0)(L,L,this.viewProjectionMatrix),0===L[3])return null;const r=L;(0,g.hs)(r,r,1/Math.abs(L[3]));const i=this.fullViewport,n=(0,u.Cc)(0,i[0]+i[2],.5+.5*r[0]),o=(0,u.Cc)(0,i[1]+i[3],.5+.5*r[1]);return"x"in t?(t.x=n,t.y=o):(t[0]=n,t[1]=o,t.length>2&&(t[2]=.5*(r[2]+1))),t}unprojectFromScreen(e,t){return this.unprojectFromRenderScreen(this.screenToRender(e,V),t)}unprojectFromRenderScreen(e,t){if((0,O.lw)(j,this.projectionMatrix,this.viewMatrix),!(0,O.B8)(j,j))return null;const r=this.fullViewport;return L[0]=2*(e[0]-r[0])/r[2]-1,L[1]=2*(e[1]-r[1])/r[3]-1,L[2]=2*e[2]-1,L[3]=1,(0,A.Z0)(L,L,j),0===L[3]?null:(t[0]=L[0]/L[3],t[1]=L[1]/L[3],t[2]=L[2]/L[3],t)}constrainWindowSize(e,t,r,i){const n=e*this.pixelRatio,o=t*this.pixelRatio,a=Math.max(n-r/2,0),s=Math.max(this.fullHeight-o-i/2,0),l=-Math.min(n-r/2,0),c=-Math.min(this.fullHeight-o-i/2,0),u=r-l- -Math.min(this.fullWidth-n-r/2,0),d=i-c- -Math.min(o-i/2,0);return[Math.round(a),Math.round(s),Math.round(u),Math.round(d)]}computeUp(e){1===e?this._computeUpGlobal():this._computeUpLocal()}screenToRender(e,t){const r=e[0]*this.pixelRatio,i=this.fullHeight-e[1]*this.pixelRatio;return t[0]=r,t[1]=i,t}renderToScreen(e,t){const r=e[0]/this.pixelRatio,i=(this.fullHeight-e[1])/this.pixelRatio;t[0]=r,t[1]=i}sphereFrustumCoverage(e,t){const{center:r,eye:i,distance:n,fovY:o}=this,a=Math.abs(Math.PI/2-F(t,r,i));return e.frustumCoverage(a,n,o)}_computeUpGlobal(){(0,g.Re)(W,this.center,this.eye);const e=(0,g.Bw)(this.center);e<1?(0,g.t2)(this._up,x.Cb)&&((0,g.C)(this._up,x.Cb),this._markViewDirty(),this.notifyChange("_up")):Math.abs((0,g.Om)(W,this.center))>.9999*(0,g.Bw)(W)*e||((0,g.$A)(U,W,this.center),(0,g.$A)(U,U,W),(0,g.S8)(U,U),(0,g.t2)(this._up,U)||((0,g.C)(this._up,U),this.notifyChange("_up"),this._markViewDirty()))}_computeUpLocal(){(0,g.oW)(W,this.eye,this.center),Math.abs(W[2])<=.9999&&((0,g.hs)(W,W,W[2]),(0,g.hZ)(W,-W[0],-W[1],1-W[2]),(0,g.S8)(W,W),(0,g.t2)(this._up,W)||((0,g.C)(this._up,W),this.notifyChange("_up"),this._markViewDirty()))}_compareAndSetView(e,t,r){"number"==typeof e[0]&&isFinite(e[0])&&"number"==typeof e[1]&&isFinite(e[1])&&"number"==typeof e[2]&&isFinite(e[2])?(0,g.t2)(e,t)||((0,g.C)(t,e),this._markViewDirty(),this.notifyChange(r)):C.A.getLogger("esri.views.3d.webgl-engine.lib.RenderCamera").warn("RenderCamera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&((0,S.ui)(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&((0,O.t5)(this._viewMatrix,this.eye,this.center,this.up),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}};(0,i.Cg)([(0,o.MZ)()],H.prototype,"_viewport",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_padding",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_fov",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_nearFar",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_viewDirty",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_viewMatrix",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"pixelRatio",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_pixelRatio",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"pixelScale",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"row",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"column",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_rows",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"rows",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_columns",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"columns",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"eye",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"center",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_center",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"up",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_up",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"viewMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"inverseViewMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"viewForward",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"viewUp",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"viewRight",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"nearFar",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"near",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"far",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"viewport",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"screenViewport",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"screenPadding",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"x",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"y",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"width",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"height",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fullWidth",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fullHeight",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"_aspect",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"padding",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"projectionMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"inverseProjectionMatrix",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fov",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fovX",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fovY",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"viewInverseTransposeMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"_projectionMatrixInternal",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"relativeElevation",void 0),H=z=(0,i.Cg)([(0,o.$K)("esri.views.3d.webgl.RenderCamera")],H);const L=(0,D.vt)(),j=(0,v.vt)(),W=(0,x.vt)(),U=(0,x.vt)(),V=(0,I.r_)();r(49718),r(6867),r(16396),(0,x.vt)(),(0,x.vt)(),(0,x.vt)();var G=r(5443),k=r(39829),$=r(95108);function Z(e,t,r,i){const n=function(e,t){const r=0===t||2===t?0:1,i=e[t],n=0===t||1===t?1:-1,o=0===r?1:0;return(e,t,a)=>{if(t[r]<i&&a[r]<i)return 1===n?0:1;if(t[r]>i&&a[r]>i)return 1===n?1:0;const s=(a[o]-t[o])/(a[r]-t[r]),l=t[o]+s*(i-t[r]);return e[r]=i,e[o]=l,(t[r]<i?1:-1)*n>0?2:3}}(r,i);if(e.length=0,t.length){1===n(Y,t[0],t[0])&&q(e,t[0]);for(let r=0;r<t.length;r++){const i=t[r===t.length-1?0:r+1];switch(n(Y,t[r],i)){case 1:q(e,i);break;case 3:q(e,(0,P.o8)(Y));break;case 2:q(e,(0,P.o8)(Y)),q(e,i)}}}}function q(e,t){0!==e.length&&(0,E.aI)(e.at(-1),t)||e.push(t)}const Y=(0,P.vt)();var X=r(11964),J=r(27921);const K=(0,x.vt)(),Q=(0,x.vt)();function ee(){return{direction:(0,x.vt)(),up:(0,x.vt)()}}function te(e,t,r,i,n){let o=(0,g.S8)(K,e),a=(0,g.Om)(o,i);const s=a>0;a=Math.abs(a),a>.99&&(a=Math.abs((0,g.Om)(t,i)),a<.99?((0,g.C)(o,t),s&&(0,g.hs)(o,o,-1)):o=null);let l=0;if(o){(0,g.hs)(Q,i,(0,g.Om)(i,o)),(0,g.Re)(o,o,Q);const e=(0,g.Om)(o,n)/((0,g.Bw)(o)*(0,g.Bw)(n));(0,g.$A)(Q,o,n),l=((0,g.Om)(Q,i)>0?1:-1)*(0,u.KJ)((0,u.XM)(e))}const c=(0,u.KJ)((0,u.XM)(-(0,g.Om)(i,e)/(0,g.Bw)(e)));return r?(r.heading=l,r.tilt=c,r):{heading:l,tilt:c}}function re(e,t,r,i){(0,g.Re)(ie,r,t),(0,J.T7)(i,(0,X.LV)(t,ie),e)||e===r||(0,g.C)(e,r)}const ie=(0,x.vt)(),ne=(0,x.fA)(0,1,0),oe=(0,x.fA)(0,0,1),ae=(0,v.vt)(),se=(0,x.vt)(),le=(0,x.vt)();function ce(e,t,r,i=ee()){const{direction:n,up:o}=i;return(0,O.N9)(ae,-(0,u.kU)(t)),(0,O.eL)(ae,ae,(0,u.kU)(r)),(0,g.Z0)(n,oe,ae),(0,g.hs)(n,n,-1),(0,g.Z0)(o,ne,ae),i}function ue(e,t,r,i,n){const o=t.lines[11].direction,a=(n-r.getAltitude(i))/o[2];(0,g.Ln)(e,i,o,a)}const de=(0,x.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){return te(t,r,i,oe,ne)},eyeForCenterWithHeadingTilt:function(e,t,r,i){const n=ce(0,r,i),o=(0,x.vt)();return(0,g.hs)(o,n.direction,-t),(0,g.WQ)(o,o,e),{up:n.up,eye:o,heading:r,tilt:i}},eyeTiltToLookAtTilt:function(e){return(0,u.kU)(e)},headingTiltToDirectionUp:ce,lookAtTiltToEyeTilt:function(e){return(0,u.KJ)(e)},toArea:function(e,t){const r=e.frustum,{renderCoordsHelper:i}=e,n=i.getAltitude(t),o=e.spatialReference,a=e.state.camera.eye,s=[],l=r.planes[5];for(let e=0;e<4;e++){const t=r.lines[e];i.intersectInfiniteManifold((0,M.LV)(t.origin,t.direction),n,de)||ue(de,r,i,t.endpoint,n),re(de,a,de,l),s.push((0,P.fA)(de[0],de[1]))}return function(e,t,r){const i=e.map(e=>((0,g.hZ)(de,e[0],e[1],0),t.fromRenderCoords(de,de,r),[de[0],de[1]]));return i.length<=2?new k.A({spatialReference:r}):(i.push(i[0].slice()),(0,$.$3)(i)||i.reverse(),new k.A({rings:[i],spatialReference:r}))}(function(e,t){const r=[],i=[];return Z(r,e,t,0),Z(i,r,t,1),Z(r,i,t,2),Z(i,r,t,3),i}(s,i.extent),i,o)},toExtent:function(e,t,r,i,n){const o=e.renderSpatialReference,a=e.spatialReference??t.spatialReference;return(0,y.g)(t,se,o),(0,y.g)(t,le,o),se[0]-=r/2,le[0]+=r/2,se[1]-=i/2,le[1]+=i/2,(0,b.F)(se,o,se,a),(0,b.F)(le,o,le,a),n?(n.xmin=se[0],n.ymin=se[1],n.xmax=le[0],n.ymax=le[1],n.spatialReference=a):n=new G.A(se[0],se[1],le[0],le[1],a),n}},Symbol.toStringTag,{value:"Module"}));var he=r(34304),me=r(52039),fe=r(94008),pe=r(28735);class ve{get planes(){return this.frustum}get points(){return this._points}get direction(){return this._direction}get origin(){return this._origin}get boundingSphere(){return this._boundingSphereDirty&&this._updateBoundingSphere(),this._boundingSphere}constructor(e){this.renderCoordsHelper=e,this.frustum=(0,S.vt)(),this._points=(0,S.Qy)(),this.lines=new Array(12),this._origin=(0,x.vt)(),this._direction=(0,x.vt)(),this._boundingSphere=new fe.iy,this._altitude=null,this._boundingSphereDirty=!0;for(let e=0;e<12;e++)this.lines[e]={origin:null,direction:(0,x.vt)(),endpoint:null}}update(e){(0,S.ui)(e.viewMatrix,e.projectionMatrix,this.frustum,this._points),(0,g.C)(this._origin,e.eye),(0,g.C)(this._direction,e.viewForward),this._altitude=this.renderCoordsHelper.getAltitude(this._origin),this._updateLines(),this._boundingSphereDirty=!0}get altitude(){return this._altitude}intersectsSphere(e){return(0,S.m7)(this.frustum,e)}isConvexHullOutsideViewPyramid(e,t){return(0,S.Pi)(this.frustum,e,t)}intersectsRay(e){return(0,S.pw)(this.frustum,e)}intersectsLineSegment(e,t){return(0,S.ST)(this.frustum,e,t)}lineSegmentIntersectsViewPyramid(e,t){return(0,S.LJ)(this.frustum,e,t)}intersectsPoint(e){return(0,S.bU)(this.frustum,e)}_updateLines(){const e=this._points;for(let t=0;t<4;t++){const r=t+4;ge(this.lines[t],e[t],e[r]),ge(this.lines[t+4],e[t],3===t?e[0]:e[t+1]),ge(this.lines[t+8],e[r],3===t?e[4]:e[r+1])}}_updateBoundingSphere(){const{origin:e}=this,t=_e;(0,g.S8)(t,this.direction);const r=xe;(0,g.jb)(r,this.points[4],e);const i=.5*(0,g.Om)(r,r)/(0,g.Om)(t,r),n=this._boundingSphere,o=(0,g.Ln)(ye,e,t,i);n.center=o,n.radius=i}static{this.planePointIndices=S.c8}static{this.nearFarLineIndices=[[0,4],[1,5],[2,6],[3,7]]}}function ge(e,t,r){e.origin=t,e.endpoint=r,(0,g.oW)(e.direction,t,r)}const xe=(0,x.vt)(),_e=(0,x.vt)(),ye=(0,x.vt)();r(86211);const be=(0,x.fA)(5802e-9,13558e-9,331e-7),we=(0,x.fA)(65e-8*3,5643e-9,255e-9);(0,x.fA)(be[0]+we[0],be[1]+we[1],be[2]+we[2]);class Se{constructor(e=1/0,t=-1/0){this.near=e,this.far=t}set(e,t){this.near=e,this.far=t}union(e){return null!=e&&(this.near=Math.min(this.near,e.near),this.far=Math.max(this.far,e.far)),this}within(e){return this.near<=e&&e<=this.far}equals(e){return this.near===e.near&&this.far===e.far}static{this.Zero=new Se(0,0)}static{this.Infinite=new Se}}(0,x.vt)(),(0,x.vt)(),new fe.iy,(0,M.vt)(),new G.A({xmin:0,ymin:0,zmin:0,xmax:0,ymax:0,zmax:0});var Me=r(32728);const Te=(0,x.fA)(0,0,1),Ce=(0,g.S8)((0,x.vt)(),(0,x.fA)(1,1,1)),Ie=(0,v.vt)(),Oe=(0,x.vt)(),Ee=(0,x.vt)();function Pe(e,t,r,i=ee()){(0,g.$A)(Oe,e,Te),0===(0,g.Om)(Oe,Oe)&&(0,g.$A)(Oe,e,Ce),(0,O.$0)(Ie,-(0,u.kU)(t),e),(0,O.e$)(Ie,Ie,-(0,u.kU)(r),Oe);const{up:n,direction:o}=i;return(0,g.$A)(n,Oe,e),(0,g.S8)(n,n),(0,g.Z0)(n,n,Ie),(0,g.S8)(o,e),(0,g.ze)(o,o),(0,g.Z0)(o,o,Ie),i}function Ae(e){const t=e[1];e[1]=-e[2],e[2]=t}function De(e,t){const r=Pe(t,e.heading,e.tilt);return e.up=r.up,e}function Re(e,t){const{renderCoordsHelper:r,state:i}=e;if(1!==i.viewingMode)return 1;const n=r.getAltitude(t),o=r.referenceEllipsoid.radius,a=1+(0,g.Io)(i.camera.eye,t)/(o+n),s=Math.sqrt(a*a-1),{minCurvature:l,maxCurvature:c,minSamples:d,maxSamples:h}=Be,m=(0,u.qE)((s-l)/(c-l),0,1);return Math.round((0,u.Cc)(d,h,m))}function Fe(e,t){const r=[],i=[],n=(0,he.FD)();for(let o=0;o<e.length;o++){const a=e[o],s=o===e.length-1?e[0]:e[o+1],l=(0,X.Cr)(a,s,Ue),c=(0,J.vE)(t,l.origin,l.vector,0,je);switch(c){case 2:r.push(a);break;case 3:i.push(a);break;case 0:case 1:{const[e,o,s]=0===c?[1,r,i]:[-1,i,r],l=(0,J.Qj)(t),u=(0,g.Ln)((0,x.vt)(),je,l,e*n),d=(0,g.Ln)((0,x.vt)(),je,l,e*-n);o.push(a),o.push(u),s.push(d)}}}const o=[];return r.length&&o.push(r),i.length&&o.push(i),o}const Be={minCurvature:(0,u.kU)(5),maxCurvature:(0,u.kU)(50),minSamples:1,maxSamples:6},Ne=(0,x.fA)(1,0,0),ze=(0,x.fA)(0,1,0),He=(0,x.vt)(),Le=(0,x.vt)(),je=(0,x.vt)(),We=new fe.iy,Ue=(0,X.vt)(),Ve=(0,D.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){const n=Oe,o=Ee;return(0,g.S8)(n,e),(0,g.$A)(Ee,n,Te),0===(0,g.Om)(Ee,Ee)&&(0,g.$A)(Ee,n,Ce),(0,g.$A)(o,Ee,n),te(t,r,i,n,o)},eyeForCenterWithHeadingTilt:function(e,t,r,i){const n={eye:(0,x.vt)(),up:null,tilt:i,heading:r},o=Oe;o[0]=e[0],o[1]=e[2],o[2]=-e[1];const a=t,s=(0,u.kU)(r),l=(0,u.kU)(i),c=Math.sin(s),d=Math.cos(s),h=Math.sin(l),m=Math.cos(l),f=(0,g.Bw)(o);let p;if(Math.abs(l)<1e-8)p=a+f;else{const e=f/h,t=(0,u.YN)(a/e),r=Math.PI-l-t;p=e*Math.sin(r)}const v=m*a,_=a*a*(h*h),y=d*d*_,b=p-v,w=b*b,S=y*(y+w-o[1]*o[1]);if(S<0)return(0,g.hs)(n.eye,o,p/f),n.tilt=0,De(n,e);const M=Math.sqrt(S),T=o[1]*b,C=y+w;let I;if(I=d>0?-M+T:M+T,Math.abs(C)<1e-8)return f<1e-8?(n.eye[0]=0,n.eye[1]=0,n.eye[2]=a):(0,g.hs)(n.eye,o,p/f),n.tilt=0,Ae(n.eye),De(n,e);n.eye[1]=I/C;const O=c*c*_,E=h*a,P=d*E*n.eye[1],A=n.eye[1]*n.eye[1],D=1-A,R=Math.sqrt(D),F=y*A+O-2*P*R*b+D*w;return Math.abs(F)<1e-8?((0,g.hs)(n.eye,o,p/f),n.tilt=0,Ae(n.eye),De(n,e)):(n.eye[0]=(D*(p*o[0]-v*o[0])-E*R*(o[0]*n.eye[1]*d+o[2]*c))/F,n.eye[2]=(D*(p*o[2]-v*o[2])-E*R*(o[2]*n.eye[1]*d-o[0]*c))/F,(0,g.hs)(n.eye,n.eye,p),Ae(n.eye),De(n,e))},eyeTiltToLookAtTilt:function(e,t,r){const i=(0,u.kU)(e),n=(0,g.Bw)(t);return(0,u.YN)(r/(n/Math.sin(i)))+i},getCurvatureSamples:Re,headingTiltToDirectionUp:Pe,lookAtTiltToEyeTilt:function(e,t,r){const i=(0,g.Bw)(t),n=Math.sqrt(r*r+i*i-2*r*i*Math.cos(Math.PI-e)),o=(0,u.YN)(r/(n/Math.sin(e)));return(0,u.KJ)(e-o)},toArea:function(e,t){const{renderCoordsHelper:r}=e,i=e.state.camera.clone(),n=new ve(r);i.near=2,n.update(i);const o=r.getAltitude(t),a=e.spatialReference,s=i.eye,l=function(e){const{renderCoordsHelper:t,state:r}=e,i=Math.abs(t.getAltitude(r.camera.center));return We.radius=t.referenceEllipsoid.radius+i,r.camera.sphereFrustumCoverage(We,t)}(e),c=Re(e,t),d=i.aboveGround,h=n.planes[5],m=[],f=(0,J.O_)(x.uY,Ne,(0,J.vt)()),p=(0,J.O_)(x.uY,ze,(0,J.vt)());(0,A.hZ)(Ve,0,0,0,0);const v=e=>{};for(let e=0;e<4;e++){const t=1===e&&!d||3===e&&d?1-l:0,i=1===e&&d||3===e&&!d?l:1,a=n.lines[e],_=n.lines[3===e?0:e+1];for(let n=0;n<c;n++){const l=n/c,d=0===n?0:(0,u.Cc)(t,i,1===e?1-(1-l)**2:3===e?l**2:l),y=(0,g.Cc)(Le,a.origin,_.origin,d),b=(0,Me.nu)(a.direction,_.direction,d,He);r.intersectManifoldClosestSilhouette((0,M.LV)(y,b),o,je),re(je,s,je,h),m.push((0,x.o8)(je)),0!==m.length&&v((0,g.lo)(m.at(-1),je));const w=((0,J.BX)(f,je)?1:0)|((0,J.BX)(p,je)?2:0);Ve[w]=1}}m.length>2&&(0,g.lo)(m[0],m.at(-1));const _=function(e,t,r){const i=2*(0,he.FD)();return e.map(e=>{const n=[];let o=!1;for(const a of e)t.fromRenderCoords(a,je,r),Math.abs(a[0])<i&&Math.abs(a[1])<i?(n.push([null,je[1]]),n.push([null,je[1]]),o=!0):n.push([je[0],je[1]]);if(o)for(let e=0;e<n.length;e++){const t=n[e];if(null!=t[0])continue;const r=n[e+1],i=n.at(0===e?-1:e-1);t[0]=i[0],e++;const o=n.at(e===n.length-1?0:e+1);r[0]=o[0]}return n.push(n[0]),(0,$.$3)(n)||n.reverse(),n})}((0,A.m3)(Ve)>1?function(e,t){const r=[];for(const i of e)r.push(...Fe(i,t));return r}(Fe(m,f),p):[m],r,a);return new k.A({rings:_,spatialReference:a})},toExtent:function(e,t,r,i,n){let o,a,s,c;const d=t.latitude,h=(0,w.tO)(e.spatialReference).radius,m=t.longitude,f=function(e,t,r){const i=t/r,n=(0,u.kU)(e),o=Math.sin(i/2),a=Math.cos(n),s=2*(0,u.YN)(Math.sqrt(o*o/(a*a)));return(0,u.KJ)(s)}(d,r,h)/2;o=m-f,a=m+f;const p=(0,u.kU)(d),v=(1+Math.sin(p))/(1-Math.sin(p)),g=(v+1)*Math.tan(i/h/2),x=g*g;function y(e){const t=Math.PI/2;return(e=l.uC.normalize(e,-t))>t&&(e=Math.PI-e),e}if(s=1.5*Math.PI-2*Math.atan(.5*(g+Math.sqrt(4*v+x))),c=s+i/h,s=y(s),c=y(c),c<s){const e=c;c=s,s=e}if(s=Math.max((0,u.KJ)(s),-90),c=Math.min((0,u.KJ)(c),90),a=me.Y_.monotonic(o,a),a-o>180){const e=(a-o-180)/2;o+=e,a-=e}const b=e.spatialReference&&e.spatialReference.isGeographic?e.spatialReference:_.A.WGS84;return n?(n.xmin=o,n.ymin=s,n.xmax=a,n.ymax=c,n.spatialReference=b):n=new G.A(o,s,a,c,b),e.spatialReference&&e.spatialReference.isWebMercator&&(0,pe.Gh)(n,!1,n),n}},Symbol.toStringTag,{value:"Module"}));const Ge={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},ke=[Ge.FINAL,Ge.COMPOSITE,Ge.OPAQUE,Ge.TRANSPARENT],$e={ANTIALIASING:"antialiasing",CUTFILL:"cutfill",CUTFILL_COMPUTATION:"cutfill-computation",FOCUSAREA:"focusarea",FOCUSAREA_MASK:"focusarea-mask",GAUSSIAN_SPLAT:"gaussian",GAUSSIAN_SPLAT_DEPTH:"gaussian-depth",GROUND_DEPTH:"ground-depth",HIGHLIGHT:"highlight",LASERLINES:"laserlines",TRANSPARENT_NO_DEPTH:"transparent-no-depth",MAGNIFIER:"magnifier",OCCLUDED:"occluded",OPAQUE_OCCLUSION_QUERY:"opaque-occlusion-query",OPAQUE_ENVIRONMENT:"opaque-environment",TRANSPARENT_ENVIRONMENT:"transparent-environment",AMBIENT_ILLUMINATION:"ambient-illumination",SHADOW_ACCUMULATION:"shadow-accumulation",SHADOWMAP:"shadowmap",SHADOW_HIGHLIGHT:"shadow-highlight",VOXEL:"voxel",VIEWSHED:"viewshed",OBJECT_AND_LAYER_ID_COLOR:"olid"};Array.from(Object.values($e)).concat(ke),(0,x.vt)()},90119(e,t,r){r.d(t,{A:()=>A});var i=r(32198),n=r(69622),o=r(49186),a=r(36708),s=r(10107),l=r(64108),c=r(89904),u=r(44208),d=r(53966),h=(r(17676),r(94656)),m=r(63907);r(93637),r(4576),new Set(["GL_OES_standard_derivatives","GL_EXT_frag_depth","GL_EXT_draw_buffers","GL_EXT_shader_texture_lod"]),new Map,(0,u.A)("esri-tests-disable-gpu-memory-measurements"),(0,h.en)();(0,h.en)();r(90644);var f=r(25530),p=r(97768),v=r(48852),g=r(42293);const x=!!(0,u.A)("esri-tests-disable-gpu-memory-measurements");class _{constructor(e,t){this._context=e,this._descriptor=t,this.type=2,this._context.instanceCounter.increment(m.vt.Renderbuffer,this);const r=this._context.gl;this.glName=r.createRenderbuffer(),this._context.bindRenderbuffer(this);const{width:i,height:n,internalFormat:o,multisampled:a}=t;a?r.renderbufferStorageMultisample(r.RENDERBUFFER,this.samples,o,i,n):r.renderbufferStorage(r.RENDERBUFFER,o,i,n),this._context.bindRenderbuffer(null)}get descriptor(){return this._descriptor}get samples(){const e=this._descriptor.samples,t=this._context.parameters.maxSamples;return e?Math.min(e,t):t}get usedMemory(){return x?0:(e=this._descriptor).width<=0||e.height<=0||null==e.internalFormat?0:e.width*e.height*(0,g.MW)(e.internalFormat);var e}resize(e,t){const r=this._descriptor;if(r.width===e&&r.height===t)return;r.width=e,r.height=t;const i=this._context.gl;this._context.bindRenderbuffer(this),r.multisampled?i.renderbufferStorageMultisample(i.RENDERBUFFER,this.samples,r.internalFormat,r.width,r.height):i.renderbufferStorage(i.RENDERBUFFER,r.internalFormat,r.width,r.height),this._context.bindRenderbuffer(null)}dispose(){this._context&&(this._context.gl.deleteRenderbuffer(this.glName),this._context.instanceCounter.decrement(m.vt.Renderbuffer,this),this._context=null)}}class y{constructor(e,t,r){if(this._context=e,this._level=0,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,e.instanceCounter.increment(m.vt.FramebufferObject,this),null!=t){const r=function(e,t){return b(t)||w(t)?t:S(t)?new f.A(e,t):function(e){return 3===M(e)||null!=e&&"samples"in e}(t)?new _(e,t):null}(e,t);null!=r&&(this._colorAttachments.set(36064,r),b(r)?this._validateTextureDescriptor(r.descriptor):this._validateRenderbufferDescriptor(r.descriptor)),this._validateColorAttachmentPoint(36064)}if(null!=r)if(function(e){return b(e)||S(e)}(r))this._depthStencilTexture=b(r)?r:new f.A(e,r),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{const t=w(r)?r:new _(e,r);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}get glName(){return this._glName}get colorTexture(){const e=this._colorAttachments.get(36064);return b(e)?e:null}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){const e=this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer;return e?.descriptor?.width??0}get height(){const e=this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer;return e?.descriptor?.height??0}get usedMemory(){return this._colorAttachments.values().reduce((e,t)=>e+t.usedMemory,this.depthStencil?.usedMemory??0)}get level(){return this._level}set level(e){this._level!==e&&(this._level=e,this._glName&&this._context.temporaryBindFramebuffer(this,()=>this._initializeAttachments()))}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(e){const t=this._colorAttachments.get(e);return t&&b(t)?t:null}get colorAttachments(){return Array.from(this._colorAttachments.keys())}attachColorTexture(e,t=36064){if(!e)return;this._validateColorAttachmentPoint(t);const{descriptor:r}=e;this._validateTextureDescriptor(r),this.detachColorTexture(t)?.dispose(),this._colorAttachments.set(t,e),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,t))}detachColorTexture(e=36064){const t=this._colorAttachments.get(e);if(!t)return;const r=b(t);return this._glName&&this._context.temporaryBindFramebuffer(this,()=>{if(r)this._framebufferTexture2D(null,e);else{const t=this._context.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)}}),this._colorAttachments.delete(e),r?t:void 0}detachColorTextures(...e){if(0!==e.length){if(this._glName){const t=this._context.gl;this._context.temporaryBindFramebuffer(this,()=>{e.forEach(e=>{b(this._colorAttachments.get(e))?this._framebufferTexture2D(null,e):t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)})})}e.forEach(e=>this._colorAttachments.delete(e))}}setColorTextureTarget(e,t=36064,r=0){const i=this._colorAttachments.get(t);i&&(35866===e?this._framebufferTextureLayer(i.glName,t,36160,r):this._framebufferTexture2D(i.glName,t,e,36160))}attachDepthStencil(e){if(e)switch(e.type){case 1:return this._attachDepthStencilTexture(e);case 2:return this._attachDepthStencilBuffer(e)}}_attachDepthStencilTexture(e){if(null==e)return;const{descriptor:t}=e,{pixelFormat:r,dataType:i}=t;34041===r||6402===r?34041!==r||i===m.ld.UNSIGNED_INT_24_8?6402!==r||i===m.ld.UNSIGNED_INT||i===m.ld.UNSIGNED_SHORT?(this._validateTextureDescriptor(t),this._disposeDepthStencilAttachments(),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,I(r))),this._depthStencilTexture?.dispose(),this._depthStencilTexture=e):console.error("Depth texture must have data type of UNSIGNED_INT or UNSIGNED_SHORT!"):console.error("Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!"):console.error("Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!")}detachDepthStencilTexture(){const e=this._depthStencilTexture;return e&&this._glName&&this._context.temporaryBindFramebuffer(this,()=>{this._framebufferTexture2D(null,I(e.descriptor.pixelFormat))}),this._depthStencilTexture=null,e}_attachDepthStencilBuffer(e){if(null==e)return;const t=e.descriptor;if(this._validateRenderbufferDescriptor(t),this._disposeDepthStencilAttachments(),this._glName){this._context.bindFramebuffer(this);const{gl:r}=this._context,i=this._getGLAttachmentPoint(t);r.framebufferRenderbuffer(36160,i,r.RENDERBUFFER,e.glName)}this._depthStencilBuffer=e}detachDepthStencilBuffer(){const e=this._depthStencilBuffer;if(e&&this._glName){const{_context:t}=this,r=t.boundFramebuffer;t.bindFramebuffer(this);const{gl:i}=t,n=this._getGLAttachmentPoint(e.descriptor);i.framebufferRenderbuffer(36160,n,i.RENDERBUFFER,null),t.bindFramebuffer(r)}return this._depthStencilBuffer=null,e}invalidateAttachments(e){const{_context:t}=this;t.temporaryBindFramebuffer(this,()=>t.gl.invalidateFramebuffer(36160,e),!0)}copyToTexture(e,t,r,i,n,o,a){(e<0||t<0||n<0||o<0)&&console.error("Offsets cannot be negative!"),(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!");const s=a.descriptor;3553!==a.descriptor.target&&console.error("Texture target must be TEXTURE_2D!"),(null==s?.width||null==s?.height||e+r>this.width||t+i>this.height||n+r>s.width||o+i>s.height)&&console.error("Bad dimensions, the current input values will attempt to read or copy out of bounds!");const l=this._context,c=l.bindTexture(a,f.A.TEXTURE_UNIT_FOR_UPDATES);l.setActiveTexture(f.A.TEXTURE_UNIT_FOR_UPDATES),l.bindFramebuffer(this),l.gl.copyTexSubImage2D(3553,0,n,o,e,t,r,i),l.bindTexture(c,f.A.TEXTURE_UNIT_FOR_UPDATES)}readPixels(e,t,r,i,n,o,a){(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!"),a||console.error("Target memory is not initialized!"),this._context.bindFramebuffer(this),this._context.gl.readPixels(e,t,r,i,n,o,a)}async readPixelsAsync(e,t,r,i,n,o,a,s){const{gl:l}=this._context,c=v.g.createPixelPack(this._context,35041,a.byteLength);this._context.bindBuffer(c);const u=this._context.boundFramebuffer;this._context.bindFramebuffer(this),l.readPixels(e,t,r,i,n,o,0),this._context.unbindBuffer(35051),this._context.bindFramebuffer(u);try{await c.getSubDataAsync(a,void 0,void 0,void 0,s)}finally{c.dispose()}}resize(e,t){if(this.width===e&&this.height===t)return;const r={width:e,height:t};if(T(r,this._context.parameters.maxTextureSize),this._colorAttachments.forEach(e=>e.resize(r.width,r.height)),this._depthStencilTexture?.resize(r.width,r.height),this._glName&&(T(r,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(r.width,r.height),(0,h.en)())){const{gl:e}=this._context;e.checkFramebufferStatus(36160)!==e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}}initializeAndBind(e=36160){const{gl:t}=this._context;this._glName?t.bindFramebuffer(e,this._glName):(this._glName&&t.deleteFramebuffer(this._glName),this._glName=t.createFramebuffer(),t.bindFramebuffer(e,this._glName),this._initializeAttachments(e))}_initializeAttachments(e=36160){const{gl:t}=this._context;if(this._colorAttachments.forEach((t,r)=>{if(b(t)){const i=C(t);35866===i?this._framebufferTextureLayer(t.glName,r,e):this._framebufferTexture2D(t.glName,r,i,e)}else if(w(t)){const i=this._context.gl;i.framebufferRenderbuffer(e,r,i.RENDERBUFFER,t.glName)}}),this._depthStencilBuffer){const r=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(e,r,t.RENDERBUFFER,this._depthStencilBuffer.glName)}else if(this._depthStencilTexture){const t=I(this._depthStencilTexture.descriptor.pixelFormat);this._framebufferTexture2D(this._depthStencilTexture.glName,t,C(this._depthStencilTexture),e)}(0,h.en)()&&t.checkFramebufferStatus(e)!==t.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}_framebufferTexture2D(e,t=36064,r=3553,i=36160){this._context.gl.framebufferTexture2D(i,t,r,e,this._level)}_framebufferTextureLayer(e,t=36064,r=36160,i=0){this._context.gl.framebufferTextureLayer(r,t,e,this._level,i)}_disposeDepthStencilAttachments(){const e=this._context.gl;if(this._depthStencilBuffer){if(this._glName){this._context.bindFramebuffer(this);const t=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(36160,t,e.RENDERBUFFER,null)}this._depthStencilBuffer=(0,p.WD)(this._depthStencilBuffer)}this._depthStencilTexture&&(this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,I(this._depthStencilTexture.descriptor.pixelFormat))),this._depthStencilTexture=(0,p.WD)(this._depthStencilTexture))}_validateTextureDescriptor(e){3553!==e.target&&34067!==e.target&&35866!==e.target&&console.error("Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!"),T(e,this._context.parameters.maxTextureSize),this._validateBufferDimensions(e)}_validateRenderbufferDescriptor(e){T(e,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(e)}_validateBufferDimensions(e){e.width<=0&&(e.width=this.width),e.height<=0&&(e.height=this.height),this.width>0&&this.height>0&&(this.width===e.width&&this.height===e.height||console.error("Attachment size must match framebuffer size!"))}_getGLAttachmentPoint(e){switch(e.internalFormat){case m.SB.DEPTH_COMPONENT16:case m.SB.DEPTH_COMPONENT24:case m.SB.DEPTH_COMPONENT32F:return 36096;case m.iE.DEPTH24_STENCIL8:case m.iE.DEPTH32F_STENCIL8:return 33306;case 36168:return 36128;default:return 36064}}_validateColorAttachmentPoint(e){if(-1===y._MAX_COLOR_ATTACHMENTS){const{gl:e}=this._context;y._MAX_COLOR_ATTACHMENTS=e.getParameter(e.MAX_COLOR_ATTACHMENTS)}const t=e-36064;t+1>y._MAX_COLOR_ATTACHMENTS&&d.A.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${t+1}. Implementation supports up to ${y._MAX_COLOR_ATTACHMENTS} color attachments`)}}function b(e){return 1===M(e)}function w(e){return 2===M(e)}function S(e){return 0===M(e)}function M(e){return null!=e&&"type"in e?e.type:null}function T(e,t){const r=Math.max(e.width,e.height);if(r>t){d.A.getLogger("esri.views.webgl.FramebufferObject").warnOnce(`Resizing FBO attachment size ${e.width}x${e.height} to device limit ${t}`);const i=t/r;return e.width=Math.round(e.width*i),e.height=Math.round(e.height*i),!1}return!0}function C(e){return 34067===e.descriptor.target?34069:35866===e.descriptor.target?35866:3553}function I(e){return 6402===e?36096:33306}r(67171),r(21818);var O=r(85079);const E=[new(r(74038)._)("position",2,m.pe.UNSIGNED_SHORT,0,4)];(0,O.Xk)(E),r(66289);const P=new Image;P.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",P.width=5,P.height=5,P.decode();let A=class extends n.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=c.gP.COMPOSITE,this._dirty=!0}initialize(){this.addHandles([(0,a.wB)(()=>this.view.ready,e=>{e&&this.view.stage?.renderer.addRenderNode(this)},a.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new o.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return this._bind(t),t}bindRenderTarget(){return this._bind(this._frameBuffer),this._frameBuffer}_bind({fbo:e}){var t;e.initializeAndBind(),this.gl.drawBuffers((t=e)?t.colorAttachments.length>0?t.colorAttachments:[0]:[1029])}requestRender(e){switch(e){case 2:this.view.state.fading=!0;case 1:this.view.stage?.renderView.requestRender(e);case 0:case void 0:this._dirty=!0}}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find(({name:e})=>e===this.produces);try{return this.render(e)}finally{this._frameBuffer=null}}get requireGeometryDepth(){return!1}queryDepthRange(e){return null}get input(){return this._frameBuffer}};(0,i.Cg)([(0,s.MZ)({constructOnly:!0})],A.prototype,"view",void 0),(0,i.Cg)([(0,s.MZ)({constructOnly:!0})],A.prototype,"consumes",void 0),(0,i.Cg)([(0,s.MZ)()],A.prototype,"produces",void 0),(0,i.Cg)([(0,s.MZ)({readOnly:!0})],A.prototype,"techniques",null),A=(0,i.Cg)([(0,l.$)("esri.views.3d.webgl.RenderNode")],A)},48852(e,t,r){r.d(t,{g:()=>m});var i=r(4576),n=r(44208),o=r(53966),a=r(17676),s=r(78659),l=r(34275),c=r(94656),u=r(63907);const d=()=>o.A.getLogger("esri.views.webgl.BufferObject"),h=!!(0,n.A)("esri-tests-disable-gpu-memory-measurements");class m{static createIndex(e,t,r){return new m(e,34963,t,r)}static createUniform(e,t,r){return new m(e,35345,t,r)}static createPixelPack(e,t=35041,r){const i=new m(e,35051,t);return r&&i.setSize(r),i}static createPixelUnpack(e,t=35040,r){return new m(e,35052,t,r)}static createTransformFeedback(e,t=35044,r){const i=new m(e,35982,t);return i.setSize(r),i}constructor(e,t,r,i){this._context=e,this.bufferType=t,this.usage=r,this._glName=null,this._sizeBytes=-1,this._indexType=void 0,e.instanceCounter.increment(u.vt.BufferObject,this),this._glName=this._context.gl.createBuffer(),(0,c.Y2)(this._context.gl),i&&this.setData(i)}get glName(){return this._glName}get size(){if(34963===this.bufferType)switch(this._indexType){case u.pe.UNSIGNED_INT:return this._sizeBytes/4;case u.pe.UNSIGNED_SHORT:return this._sizeBytes/2;case u.pe.UNSIGNED_BYTE:case void 0:case null:break;default:this._indexType}return this._sizeBytes}get indexType(){return this._indexType}get sizeBytes(){return this._sizeBytes}get usedMemory(){return h?0:this.sizeBytes}get _isVAOAware(){return 34963===this.bufferType||34962===this.bufferType}dispose(){this._context?.gl?(this._glName&&(this._context.gl.deleteBuffer(this._glName),this._glName=null),this._context.instanceCounter.decrement(u.vt.BufferObject,this),this._context=null):this._glName&&d().warn("Leaked WebGL buffer object")}setSize(e,t=null){if(34963===this.bufferType&&null!=t)switch(this._indexType=t,t){case u.pe.UNSIGNED_SHORT:e*=2;break;case u.pe.UNSIGNED_INT:e*=4;case u.pe.UNSIGNED_BYTE:}this._setBufferData(e)}setData(e){if(!e)return;const t=e.byteLength;34963===this.bufferType&&((0,l.mg)(e)?this._indexType=u.pe.UNSIGNED_BYTE:(0,l.jq)(e)?this._indexType=u.pe.UNSIGNED_SHORT:(0,l.XJ)(e)&&(this._indexType=u.pe.UNSIGNED_INT)),this._setBufferData(t,e)}setIndexType(e){34963===this.bufferType&&(this._indexType=e)}_setBufferData(e,t=null){this._sizeBytes=e;const r=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const i=this._context.gl;null!=t?i.bufferData(this.bufferType,t,this.usage):i.bufferData(this.bufferType,e,this.usage),(0,c.Y2)(i),this._isVAOAware&&this._context.bindVAO(r)}setSubData(e,t,r,i){if(!e)return;const n=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const{gl:o}=this._context;o.bufferSubData(this.bufferType,t*e.BYTES_PER_ELEMENT,e,r,i-r),(0,c.Y2)(o),this._isVAOAware&&this._context.bindVAO(n)}getSubData(e,t=0,r,n){if(r<0||n<0)return;const o=function(e){return(0,i.Xj)(e)}(e)?e.BYTES_PER_ELEMENT:1;if(o*((r??0)+(n??0))>e.byteLength)return;t+o*(n??0)>this.usedMemory&&d().warn("Potential problem getting subdata: requested data exceeds buffer size!");const a=this._context.gl;35982===this.bufferType?(this._context.bindBuffer(this,35982),a.getBufferSubData(35982,t,e,r,n),this._context.unbindBuffer(35982)):(this._context.bindBuffer(this,36662),a.getBufferSubData(36662,t,e,r,n),this._context.unbindBuffer(36662))}async getSubDataAsync(e,t=0,r,i,n){if(await this._context.clientWaitAsync((0,s.l5)(10),n),!this._context||!this._glName)throw(0,a.NK)();this.getSubData(e,t,r,i)}}},65786(e,t,r){const i=class{};new i,r.d(t,["Y",0,i])},14113(e,t,r){r.d(t,{N5:()=>s});var i=r(49186),n=(r(44208),r(53966));const o=()=>n.A.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class a{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class s extends a{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new m,this.varyings=new f,this.outputs=new p}get attributeNames(){return this.attributes.names}get builder(){return this}generate(e,t=!1){const r=this.attributes.generateSource(e),i=this.varyings.generateSource(e),n="vertex"===e?this.vertex:this.fragment,o=n.uniforms.generateSource(),a=n.code.generateSource(),s=n.main.generateSource(t),l=this.debugName?`// ${this.debugName}\n`:"",c="vertex"===e?x:g,u=n.constants.generateSource(),d=this.outputs.generateSource(e);return`#version 300 es\n${l}\n${c}\n${u.join("\n")}\n${o.join("\n")}\n${r.join("\n")}\n${i.join("\n")}\n${d.join("\n")}\n${a.join("\n")}\n${s.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)});const r=Array.from(t.values()),i=r.length;return t=>{for(let n=0;n<i;++n)r[n](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)});const r=Array.from(t.values()),i=r.length;return(t,n)=>{for(let o=0;o<i;++o)r[o](e,n,t)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)});const r=Array.from(t.values()),i=r.length;return(t,n,o)=>{for(let a=0;a<i;++a)r[a](e,o,t,n)}}}class l{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(e){if(null!=e){if(this._entries.has(e.name)&&!this._entries.get(e.name).equals(e))throw new i.A("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${e.name} for different uniform type`);this._entries.set(e.name,e)}else o().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map(({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`)}get entries(){return Array.from(this._entries.values())}}class c{constructor(){this._entries=new Map}add(e,t){if(this._entries.has(e))throw new i.A("shaderbuilder:duplicate-input",`Duplicate input for ${e}`);this._entries.set(e,t)}get(e){const t=this._entries.get(e);if(null==t)throw new i.A("shaderbuilder:input-resolver-error",`No resolver for input ${e} found.`);return t()}}class u{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(e){if(this._bodies.length>0){const e=[];for(const t of this._bodies)"string"==typeof t?e.push(t):e.push(...t());return[`void main() {\n ${e.join("\n")||""} \n}`]}if(e)throw new i.A("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class d{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){const e=[];for(const t of this._entries)"string"==typeof t?e.push(t):e.push(...t());return e}}class h extends a{constructor(){super(...arguments),this.uniforms=new l(this),this.main=new u(this),this.code=new d(this),this.constants=new v(this),this.inputs=new c}get builder(){return this}}class m{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map(e=>`in ${e[1]} ${e[0]};`)}get names(){return this._entries.map(([e])=>e)}}class f{constructor(){this._entries=new Map}add(e,t,r){this._entries.has(e)?o().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:r?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach((r,i)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("int"===r.type?"flat ":"")+("vertex"===e?"out":"in")+` ${r.type} ${i};`)),t}}class p{constructor(){this._entries=new Map}add(e,t,r=0){const i=this._entries.get(r);i?.name!==e||i?.type!==t?this._entries.set(r,{name:e,type:t}):o().warn(`Fragment shader output location ${r} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:p.DEFAULT_NAME,type:p.DEFAULT_TYPE});const t=new Array;return this._entries.forEach((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`)),t}}class v{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let i="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":i=v._numberToFloatStr(r);break;case"int":i=v._numberToIntStr(r);break;case"uint":i=v._numberToUintStr(r);break;case"bool":i=r.toString();break;case"vec2":i=`vec2(${v._numberToFloatStr(r[0])}, ${v._numberToFloatStr(r[1])})`;break;case"vec3":i=`vec3(${v._numberToFloatStr(r[0])}, ${v._numberToFloatStr(r[1])}, ${v._numberToFloatStr(r[2])})`;break;case"vec4":i=`vec4(${v._numberToFloatStr(r[0])}, ${v._numberToFloatStr(r[1])}, ${v._numberToFloatStr(r[2])}, ${v._numberToFloatStr(r[3])})`;break;case"ivec2":i=`ivec2(${v._numberToIntStr(r[0])}, ${v._numberToIntStr(r[1])})`;break;case"ivec3":i=`ivec3(${v._numberToIntStr(r[0])}, ${v._numberToIntStr(r[1])}, ${v._numberToIntStr(r[2])})`;break;case"ivec4":i=`ivec4(${v._numberToIntStr(r[0])}, ${v._numberToIntStr(r[1])}, ${v._numberToIntStr(r[2])}, ${v._numberToIntStr(r[3])})`;break;case"uvec2":i=`uvec2(${v._numberToUintStr(r[0])}, ${v._numberToUintStr(r[1])})`;break;case"uvec3":i=`uvec3(${v._numberToUintStr(r[0])}, ${v._numberToUintStr(r[1])}, ${v._numberToUintStr(r[2])})`;break;case"uvec4":i=`uvec4(${v._numberToUintStr(r[0])}, ${v._numberToUintStr(r[1])}, ${v._numberToUintStr(r[2])}, ${v._numberToUintStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":i=`${t}(${Array.prototype.map.call(r,e=>v._numberToFloatStr(e)).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${i};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToUintStr(e){return`${e.toFixed(0)}u`}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const g="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n precision mediump sampler2DShadow;\n#endif",x="precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n\n\n invariant gl_Position;\n "},74333(e,t,r){r.d(t,{n:()=>i});class i{constructor(e,t,r,i,n=null){if(this.name=e,this.type=t,this.arraySize=n,this.bind={0:null,1:null,2:null},i)switch(r){case void 0:break;case 0:this.bind[0]=i;break;case 1:this.bind[1]=i;break;case 2:this.bind[2]=i}}equals(e){return this.type===e.type&&this.name===e.name&&this.arraySize===e.arraySize}}},66289(e,t,r){r.d(t,{R:()=>n});var i=r(48852);class n extends i.g{constructor(e,t,r,i=35044){super(e,34962,i,r),this.layout=t}}},90644(e,t,r){function i(e,t,r=32774,i=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:r,opAlpha:r,color:{r:i[0],g:i[1],b:i[2],a:i[3]}}}function n(e,t,r,i,n=32774,o=32774,a=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:r,dstAlpha:i,opRgb:n,opAlpha:o,color:{r:a[0],g:a[1],b:a[2],a:a[3]}}}r.d(t,{Ey:()=>y,nk:()=>d,p3:()=>n}),r(4718);const o=i(0,771),a=(i(1,0),i(1,1),i(1,771)),s=n(770,1,771,771),l=n(0,0,768,0),c={face:1029,mode:2305},u={face:1028,mode:2305};function d(e,t,r){return{ref:e,readMask:t,stencilFront:r,stencilBack:r}}function h(e){return S.intern(e)}function m(e){return T.intern(e)}function f(e){return I.intern(e)}function p(e){return E.intern(e)}function v(e){return A.intern(e)}function g(e){return R.intern(e)}function x(e){return B.intern(e)}function _(e){return z.intern(e)}function y(e){return L.intern(e)}class b{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function w(e){return"["+e.join(",")+"]"}const S=new b(M,e=>({__tag:"Blending",...e}));function M(e){return e?w([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const T=new b(C,e=>({__tag:"Culling",...e}));function C(e){return e?w([e.face,e.mode]):null}const I=new b(O,e=>({__tag:"PolygonOffset",...e}));function O(e){return e?w([e.factor,e.units]):null}const E=new b(P,e=>({__tag:"DepthTest",...e}));function P(e){return e?w([e.func]):null}const A=new b(D,e=>({__tag:"StencilTest",...e}));function D(e){return e?w([e.ref,e.readMask,e.stencilFront.compare,e.stencilFront.fail,e.stencilFront.zFail,e.stencilFront.zPass,e.stencilBack.compare,e.stencilBack.fail,e.stencilBack.zFail,e.stencilBack.zPass]):null}const R=new b(F,e=>({__tag:"DepthWrite",...e}));function F(e){return e?w([e.zNear,e.zFar]):null}const B=new b(N,e=>({__tag:"ColorWrite",...e}));function N(e){return e?w([e.r,e.g,e.b,e.a]):null}const z=new b(H,e=>({__tag:"StencilWrite",...e}));function H(e){return e?w([e.mask]):null}const L=new b(function(e){return e?w([M(e.blending),C(e.culling),O(e.polygonOffset),P(e.depthTest),D(e.stencilTest),F(e.depthWrite),N(e.colorWrite),H(e.stencilWrite)]):null},e=>({blending:h(e.blending),culling:m(e.culling),polygonOffset:f(e.polygonOffset),depthTest:p(e.depthTest),stencilTest:v(e.stencilTest),depthWrite:g(e.depthWrite),colorWrite:x(e.colorWrite),stencilWrite:_(e.stencilWrite)}));r.d(t,["RC",0,a,"T8",0,s,"Uy",0,{zNear:0,zFar:1},"Xt",0,e=>2===e?c:1===e?u:null,"iD",0,o,"kn",0,{r:!0,g:!0,b:!0,a:!0},"uR",0,l])}}]);
|
|
1705
|
+
`)}},26934(e,t,r){r.d(t,{Q:()=>n});var i=r(49788);function n(e){e.constants.add("alphaCutoff","float",i.Q),e.constants.add("opacityCutoff","float",i.v)}},58243(e,t,r){function i(e,t){t.useFloatBlend?e.code.add("float ditherNoise(vec4 color) { return 0.0; }"):e.code.add("\n float ditherNoise(vec4 color) {\n vec2 seed = color.rg + color.ba + gl_FragCoord.xy + gl_FragCoord.z;\n return (fract(52.9829189 * fract(dot(seed, vec2(0.06711056, 0.00583715)))) - 0.5) / 255.0;\n }")}r.d(t,{t:()=>i})},72458(e,t,r){r.d(t,{C:()=>o,O:()=>a});var i=r(32198),n=r(51976);class o extends n.K{constructor(){super(...arguments),this.useFloatBlend=!0}}function a(e,t){t.useFloatBlend?(e.constants.add("floatBlendOutputScale","float",1),e.constants.add("floatBlendInputScale","float",1)):(e.constants.add("floatBlendOutputScale","float",1/16),e.constants.add("floatBlendInputScale","float",16)),e.constants.add("maxEmissiveStrength","float",16)}(0,i.Cg)([(0,n.W)()],o.prototype,"useFloatBlend",void 0)},89904(e,t,r){r.d(t,{OG:()=>$e,gP:()=>Ge});var i=r(32198),n=r(69540),o=r(91429);let a=class extends n.Pw{constructor(e){super(e),this.row=0,this.column=0,this.rows=1,this.columns=1}equals(e){return null!=e&&this.row===e.row&&this.rows===e.rows&&this.column===e.column&&this.columns===e.columns}};(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"row",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"column",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"rows",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{read:!1,write:!1}})],a.prototype,"columns",void 0),a=(0,i.Cg)([(0,o.$K)("esri.CameraLayout")],a);const s=a;var l=r(69052),c=r(25482),u=r(34727),d=r(78888),h=r(86738),m=r(43937),f=r(36005);let p=class extends((0,n.OU)(c.o)){constructor(...e){super(...e),this.position=new h.A([0,0,0]),this.heading=0,this.tilt=0,this.fov=55,this.layout=new s}normalizeCtorArgs(e,t,r,i){if(e&&"object"==typeof e&&("x"in e||Array.isArray(e))){const n={position:e};return null!=t&&(n.heading=t),null!=r&&(n.tilt=r),null!=i&&(n.fov=i),n}return e}writePosition(e,t,r,i){const n=e.clone();n.x=(0,d.GB)(e.x||0),n.y=(0,d.GB)(e.y||0),n.z=e.hasZ?(0,d.GB)(e.z||0):e.z,t[r]=n.write({},i)}readPosition(e,t){const r=new h.A;return r.read(e,t),r.x=(0,d.GB)(r.x||0),r.y=(0,d.GB)(r.y||0),r.z=r.hasZ?(0,d.GB)(r.z||0):r.z,r}equals(e){return null!=e&&this.tilt===e.tilt&&this.heading===e.heading&&this.fov===e.fov&&this.position.equals(e.position)&&this.layout.equals(e.layout)}};(0,i.Cg)([(0,o.MZ)({type:h.A,json:{write:{isRequired:!0}}})],p.prototype,"position",void 0),(0,i.Cg)([(0,m.K)("position")],p.prototype,"writePosition",null),(0,i.Cg)([(0,f.w)("position")],p.prototype,"readPosition",null),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,o.wg)(e=>l.ie.normalize((0,d.GB)(e)))],p.prototype,"heading",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),(0,o.wg)(e=>(0,u.qE)((0,d.GB)(e),-180,180))],p.prototype,"tilt",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,nonNullable:!0,json:{default:55,write:!0}}),(0,o.wg)(e=>(0,u.qE)((0,d.GB)(e,55),1,170))],p.prototype,"fov",void 0),(0,i.Cg)([(0,o.MZ)({type:s,nonNullable:!0,json:{read:!1,write:!1}})],p.prototype,"layout",void 0),p=(0,i.Cg)([(0,o.$K)("esri.Camera")],p);var v=r(9093),g=r(35522),x=r(51850),_=r(16930),y=(r(48353),r(9762),r(65806)),b=r(27993),w=r(73941),S=(r(19419),r(58083)),M=r(65720),T=r(71351),C=r(69622),I=r(53966),O=r(90629),E=r(37585),P=r(48163),A=r(78955),D=r(91829),R=r(44280);function F(e,t,r){e.worldUpAtPosition(t,B),(0,g.Re)(N,r,t);const i=(0,g.Bw)(N);return 0===i?0:(0,u.XM)((0,g.Om)(N,B)/i)}const B=(0,x.vt)(),N=(0,x.vt)();var z;let H=z=class extends C.A{constructor(e){super(e),this._ray=(0,T.vt)(),this._viewport=(0,D.fA)(0,0,1,1),this._padding=(0,D.fA)(0,0,0,0),this._fov=55/180*Math.PI,this._nearFar=(0,P.fA)(1,1e3),this._viewDirty=!0,this._viewMatrix=(0,v.vt)(),this._viewProjectionDirty=!0,this._viewProjectionMatrix=(0,v.vt)(),this._viewInverseTransposeMatrixDirty=!0,this._viewInverseTransposeMatrix=(0,v.vt)(),this._frustumDirty=!0,this._frustum=(0,M.vt)(),this._fullViewport=(0,D.vt)(),this._fullViewportDirty=!0,this._pixelRatio=1,this.pixelScale=1,this.row=0,this.column=0,this._rows=1,this._columns=1,this._center=(0,x.vt)(),this._up=(0,x.vt)(),this.relativeElevation=0}get pixelRatio(){return this._pixelRatio}set pixelRatio(e){this._pixelRatio=e>0?e:1}get rows(){return this._rows}set rows(e){this._rows=Math.max(1,e)}get columns(){return this._columns}set columns(e){this._columns=Math.max(1,e)}get eye(){return this._ray.origin}set eye(e){this._compareAndSetView(e,this._ray.origin,"eye")}get center(){return this._center}set center(e){this._compareAndSetView(e,this._center,"_center")}get ray(){return(0,g.Re)(this._ray.direction,this.center,this.eye),this._ray}get up(){return this._up}set up(e){this._compareAndSetView(e,this._up,"_up")}get viewMatrix(){return this._ensureViewClean(),this._viewMatrix}set viewMatrix(e){(0,S.C)(this._viewMatrix,e),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0}get inverseViewMatrix(){return(0,S.Qw)((0,v.vt)(),this.viewMatrix)||this._get("inverseViewMatrix")||(0,v.vt)()}get viewForward(){return this._ensureViewClean(),(0,g.hZ)((0,x.vt)(),-this._viewMatrix[2],-this._viewMatrix[6],-this._viewMatrix[10])}get viewUp(){return this._ensureViewClean(),(0,g.hZ)((0,x.vt)(),this._viewMatrix[1],this._viewMatrix[5],this._viewMatrix[9])}get viewRight(){return this._ensureViewClean(),(0,g.hZ)((0,x.vt)(),this._viewMatrix[0],this._viewMatrix[4],this._viewMatrix[8])}get nearFar(){return this._nearFar}get near(){return this._nearFar[0]}set near(e){this._nearFar[0]!==e&&(this._nearFar[0]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get far(){return this._nearFar[1]}set far(e){this._nearFar[1]!==e&&(this._nearFar[1]=e,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_nearFar"))}get viewport(){return this._viewport}set viewport(e){this.x=e[0],this.y=e[1],this.width=e[2],this.height=e[3]}get screenViewport(){if(1===this.pixelRatio)return this._viewport;const e=(0,A.hs)((0,D.vt)(),this._viewport,1/this.pixelRatio),t=this._get("screenViewport");return t&&(0,A.aI)(e,t)?t:e}get screenPadding(){if(1===this.pixelRatio)return this._padding;const e=(0,A.hs)((0,D.vt)(),this._padding,1/this.pixelRatio),t=this._get("screenPadding");return t&&(0,A.aI)(e,t)?t:e}get x(){return this._viewport[0]}set x(e){e+=this._padding[3],this._viewport[0]!==e&&(this._viewport[0]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get y(){return this._viewport[1]}set y(e){e+=this._padding[2],this._viewport[1]!==e&&(this._viewport[1]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get width(){return this._viewport[2]}set width(e){this._viewport[2]!==e&&(this._viewport[2]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get height(){return this._viewport[3]}set height(e){this._viewport[3]!==e&&(this._viewport[3]=e,this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_viewport"))}get fullWidth(){return this._viewport[2]+this._padding[1]+this._padding[3]}set fullWidth(e){this.width=e-(this._padding[1]+this._padding[3])}get fullHeight(){return this._viewport[3]+this._padding[0]+this._padding[2]}set fullHeight(e){this.height=e-(this._padding[0]+this._padding[2])}get fullViewport(){return this._fullViewportDirty&&(this._fullViewport[0]=this._viewport[0]-this._padding[3],this._fullViewport[1]=this._viewport[1]-this._padding[2],this._fullViewport[2]=this._viewport[2]+this._padding[1]+this._padding[3],this._fullViewport[3]=this._viewport[3]+this._padding[0]+this._padding[2],this._fullViewportDirty=!1),this._fullViewport}get _aspect(){return this.width/this.height}get padding(){return this._padding}set padding(e){(0,A.t2)(this._padding,e)||(this._viewport[0]+=e[3]-this._padding[3],this._viewport[1]+=e[2]-this._padding[2],this._viewport[2]-=e[1]+e[3]-(this._padding[1]+this._padding[3]),this._viewport[3]-=e[0]+e[2]-(this._padding[0]+this._padding[2]),(0,A.C)(this._padding,e),this._fullViewportDirty=!0,this._viewProjectionDirty=!0,this._frustumDirty=!0,this.notifyChange("_padding"),this.notifyChange("_viewport"))}get viewProjectionMatrix(){return this._viewProjectionDirty&&((0,S.lw)(this._viewProjectionMatrix,this.projectionMatrix,this.viewMatrix),this._viewProjectionDirty=!1),this._viewProjectionMatrix}get projectionMatrix(){return this._projectionMatrixInternal}get inverseProjectionMatrix(){return(0,S.B8)((0,v.vt)(),this.projectionMatrix)||this._get("inverseProjectionMatrix")||(0,v.vt)()}get fov(){return this._fov}set fov(e){this._fov=e,this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovX(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(t*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovX(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/t)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get fovY(){return e=this._fov,t=this.width,r=this.height,2*Math.atan(r*Math.tan(.5*e)/Math.sqrt(t*t+r*r));var e,t,r}set fovY(e){this._fov=function(e,t,r){return 2*Math.atan(Math.sqrt(t*t+r*r)*Math.tan(.5*e)/r)}(e,this.width,this.height),this._viewProjectionDirty=!0,this._frustumDirty=!0}get distance(){return(0,g.Io)(this.center,this.eye)}get frustum(){return this._recomputeFrustum(),this._frustum}get viewInverseTransposeMatrix(){return(this._viewInverseTransposeMatrixDirty||this._viewDirty)&&((0,S.B8)(this._viewInverseTransposeMatrix,this.viewMatrix),(0,S.mg)(this._viewInverseTransposeMatrix,this._viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this._viewInverseTransposeMatrix}depthNDCToWorld(e){const{near:t,far:r}=this;return 2*t*r/(r+t-e*(r-t))}get perRenderPixelRatio(){return Math.tan(this.fovX/2)/(this.width/2)}get perScreenPixelRatio(){return this.perRenderPixelRatio*this.pixelRatio}get aboveGround(){return null!=this.relativeElevation&&this.relativeElevation>=0}get _projectionMatrixInternal(){const e=this.width,t=this.height,r=this.near*Math.tan(this.fovY/2)*2,i=r*this._aspect,n=r/this.rows,o=i/this.columns,a=-i/2+this.column*o,s=a+o,l=-r/2+this.row*n,c=l+n,u=(0,S.$h)((0,v.vt)(),a*(1+2*this._padding[3]/e),s*(1+2*this._padding[1]/e),l*(1+2*this._padding[2]/t),c*(1+2*this._padding[0]/t),this.near,this.far),d=this._get("projectionMatrix");return d&&(0,S.t2)(d,u)?d:u}copyFrom(e){(0,g.C)(this._ray.origin,e.eye),this.center=e.center,this.up=e.up,(0,A.C)(this._viewport,e.viewport),this.notifyChange("_viewport"),(0,A.C)(this._padding,e.padding),this.notifyChange("_padding"),this._fullViewportDirty=!0,(0,E.C)(this._nearFar,e.nearFar),this.notifyChange("_nearFar"),this._fov=e.fov,this.row=e.row,this.column=e.column,this.rows=e.rows,this.columns=e.columns,this.relativeElevation=e.relativeElevation;const t=e;return this._viewDirty=t._viewDirty,this._viewDirty||((0,S.C)(this._viewMatrix,e.viewMatrix),this.notifyChange("_viewMatrix")),this._viewProjectionDirty=!0,this._frustumDirty=t._frustumDirty,this._frustumDirty||((0,M.C)(this._frustum,e.frustum),this._frustumDirty=!1),t._viewInverseTransposeMatrixDirty?this._viewInverseTransposeMatrixDirty=!0:((0,S.C)(this._viewInverseTransposeMatrix,e.viewInverseTransposeMatrix),this._viewInverseTransposeMatrixDirty=!1),this.pixelRatio=e.pixelRatio,this.pixelScale=e.pixelScale,this}copyViewFrom(e){this.eye=e.eye,this.center=e.center,this.up=e.up,this.fov=e.fov}clone(){return(new z).copyFrom(this)}equals(e){return(0,g.t2)(this.eye,e.eye)&&(0,g.t2)(this.center,e.center)&&(0,g.t2)(this.up,e.up)&&(0,A.t2)(this._viewport,e.viewport)&&(0,A.t2)(this._padding,e.padding)&&(0,E.t2)(this.nearFar,e.nearFar)&&this._fov===e.fov&&this.pixelRatio===e.pixelRatio&&this.relativeElevation===e.relativeElevation&&this.row===e.row&&this.column===e.column&&this.rows===e.rows&&this.columns===e.columns}equalsView(e){return(0,g.t2)(this.eye,e.eye)&&(0,g.t2)(this.center,e.center)&&(0,g.t2)(this.up,e.up)&&this._fov===e.fov}almostEquals(e){const t=Math.max(1,1/this.pixelRatio,1/e.pixelRatio);if(Math.abs(e.fov-this._fov)>=.001||(0,A.hG)(e.screenPadding,this.screenPadding)>=t||(0,A.hG)(this.screenViewport,e.screenViewport)>=t||this.row!==e.row||this.column!==e.column||this.rows!==e.rows||this.columns!==e.columns)return!1;(0,g.jb)(W,e.eye,e.center),(0,g.jb)(U,this.eye,this.center);const r=(0,g.Om)(W,U),i=(0,g.uE)(W),n=(0,g.uE)(U),o=5e-4;return r*r>=(1-1e-10)*i*n&&(0,g.lo)(e.eye,this.eye)<Math.max(i,n)*o*o}computeRenderPixelSizeAt(e){return this.computeRenderPixelSizeAtDist(this._viewDirectionDistance(e))}computeRenderPixelSizeAtDist(e){return e*this.perRenderPixelRatio}computeScreenPixelSizeAt(e){return this.computeScreenPixelSizeAtDist(this._viewDirectionDistance(e))}_viewDirectionDistance(e){return Math.abs((0,R.gr)(this.viewForward,(0,g.Re)(W,e,this.eye)))}computeScreenPixelSizeAtDist(e){return e*this.perScreenPixelRatio}computeDistanceFromRadius(e,t){return e/Math.tan(Math.min(this.fovX,this.fovY)/(2*(t||1)))}getScreenCenter(e=(0,O.gs)()){return e[0]=(this.padding[3]+this.width/2)/this.pixelRatio,e[1]=(this.padding[0]+this.height/2)/this.pixelRatio,e}getRenderCenter(e,t=.5,r=.5){return e[0]=this.padding[3]+this.width*t,e[1]=this.padding[2]+this.height*r,e[2]=.5,e}setGLViewport(e){const t=this.viewport,r=this.padding;e.setViewport(t[0]-r[3],t[1]-r[2],t[2]+r[1]+r[3],t[3]+r[0]+r[2])}applyProjection(e,t){e!==L&&(0,g.C)(L,e),L[3]=1,(0,A.Z0)(L,L,this.projectionMatrix);const r=Math.abs(L[3]);(0,g.hs)(L,L,1/r);const i=this.fullViewport;t[0]=(0,u.Cc)(0,i[0]+i[2],.5+.5*L[0]),t[1]=(0,u.Cc)(0,i[1]+i[3],.5+.5*L[1]),t[2]=.5*(L[2]+1),t[3]=r}unapplyProjection(e,t){const r=this.fullViewport;L[0]=(e[0]/(r[0]+r[2])*2-1)*e[3],L[1]=(e[1]/(r[1]+r[3])*2-1)*e[3],L[2]=(2*e[2]-1)*e[3],L[3]=e[3],null!=this.inverseProjectionMatrix&&((0,A.Z0)(L,L,this.inverseProjectionMatrix),t[0]=L[0],t[1]=L[1],t[2]=L[2])}projectToScreen(e,t){return null==this.projectToRenderScreen(e,V)?null:(this.renderToScreen(V,t),t)}projectToRenderScreen(e,t){if(L[0]=e[0],L[1]=e[1],L[2]=e[2],L[3]=1,(0,A.Z0)(L,L,this.viewProjectionMatrix),0===L[3])return null;const r=L;(0,g.hs)(r,r,1/Math.abs(L[3]));const i=this.fullViewport,n=(0,u.Cc)(0,i[0]+i[2],.5+.5*r[0]),o=(0,u.Cc)(0,i[1]+i[3],.5+.5*r[1]);return"x"in t?(t.x=n,t.y=o):(t[0]=n,t[1]=o,t.length>2&&(t[2]=.5*(r[2]+1))),t}unprojectFromScreen(e,t){return this.unprojectFromRenderScreen(this.screenToRender(e,V),t)}unprojectFromRenderScreen(e,t){if((0,S.lw)(j,this.projectionMatrix,this.viewMatrix),!(0,S.B8)(j,j))return null;const r=this.fullViewport;return L[0]=2*(e[0]-r[0])/r[2]-1,L[1]=2*(e[1]-r[1])/r[3]-1,L[2]=2*e[2]-1,L[3]=1,(0,A.Z0)(L,L,j),0===L[3]?null:(t[0]=L[0]/L[3],t[1]=L[1]/L[3],t[2]=L[2]/L[3],t)}constrainWindowSize(e,t,r,i){const n=e*this.pixelRatio,o=t*this.pixelRatio,a=Math.max(n-r/2,0),s=Math.max(this.fullHeight-o-i/2,0),l=-Math.min(n-r/2,0),c=-Math.min(this.fullHeight-o-i/2,0),u=r-l- -Math.min(this.fullWidth-n-r/2,0),d=i-c- -Math.min(o-i/2,0);return[Math.round(a),Math.round(s),Math.round(u),Math.round(d)]}computeUp(e){1===e?this._computeUpGlobal():this._computeUpLocal()}screenToRender(e,t){const r=e[0]*this.pixelRatio,i=this.fullHeight-e[1]*this.pixelRatio;return t[0]=r,t[1]=i,t}renderToScreen(e,t){const r=e[0]/this.pixelRatio,i=(this.fullHeight-e[1])/this.pixelRatio;t[0]=r,t[1]=i}sphereFrustumCoverage(e,t){const{center:r,eye:i,distance:n,fovY:o}=this,a=Math.abs(Math.PI/2-F(t,r,i));return e.frustumCoverage(a,n,o)}_computeUpGlobal(){(0,g.Re)(W,this.center,this.eye);const e=(0,g.Bw)(this.center);e<1?(0,g.t2)(this._up,x.Cb)&&((0,g.C)(this._up,x.Cb),this._markViewDirty(),this.notifyChange("_up")):Math.abs((0,g.Om)(W,this.center))>.9999*(0,g.Bw)(W)*e||((0,g.$A)(U,W,this.center),(0,g.$A)(U,U,W),(0,g.S8)(U,U),(0,g.t2)(this._up,U)||((0,g.C)(this._up,U),this.notifyChange("_up"),this._markViewDirty()))}_computeUpLocal(){(0,g.oW)(W,this.eye,this.center),Math.abs(W[2])<=.9999&&((0,g.hs)(W,W,W[2]),(0,g.hZ)(W,-W[0],-W[1],1-W[2]),(0,g.S8)(W,W),(0,g.t2)(this._up,W)||((0,g.C)(this._up,W),this.notifyChange("_up"),this._markViewDirty()))}_compareAndSetView(e,t,r){"number"==typeof e[0]&&isFinite(e[0])&&"number"==typeof e[1]&&isFinite(e[1])&&"number"==typeof e[2]&&isFinite(e[2])?(0,g.t2)(e,t)||((0,g.C)(t,e),this._markViewDirty(),this.notifyChange(r)):I.A.getLogger("esri.views.3d.webgl-engine.lib.RenderCamera").warn("RenderCamera vector contains invalid number, ignoring value")}_markViewDirty(){this._viewDirty=!0,this._frustumDirty=!0,this._viewProjectionDirty=!0}_recomputeFrustum(){this._frustumDirty&&((0,M.ui)(this.viewMatrix,this.projectionMatrix,this._frustum),this._frustumDirty=!1)}_ensureViewClean(){this._viewDirty&&((0,S.t5)(this._viewMatrix,this.eye,this.center,this.up),this.notifyChange("_viewMatrix"),this._viewDirty=!1,this._viewInverseTransposeMatrixDirty=!0)}};(0,i.Cg)([(0,o.MZ)()],H.prototype,"_viewport",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_padding",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_fov",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_nearFar",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_viewDirty",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_viewMatrix",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"pixelRatio",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_pixelRatio",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"pixelScale",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"row",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"column",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_rows",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"rows",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_columns",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"columns",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"eye",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"center",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_center",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"up",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"_up",void 0),(0,i.Cg)([(0,o.MZ)()],H.prototype,"viewMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"inverseViewMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"viewForward",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"viewUp",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"viewRight",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"nearFar",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"near",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"far",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"viewport",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"screenViewport",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"screenPadding",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"x",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"y",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"width",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"height",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fullWidth",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fullHeight",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"_aspect",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"padding",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"projectionMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"inverseProjectionMatrix",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fov",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fovX",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"fovY",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"viewInverseTransposeMatrix",null),(0,i.Cg)([(0,o.MZ)({readOnly:!0})],H.prototype,"_projectionMatrixInternal",null),(0,i.Cg)([(0,o.MZ)()],H.prototype,"relativeElevation",void 0),H=z=(0,i.Cg)([(0,o.$K)("esri.views.3d.webgl.RenderCamera")],H);const L=(0,D.vt)(),j=(0,v.vt)(),W=(0,x.vt)(),U=(0,x.vt)(),V=(0,O.r_)();r(49718),r(6867),r(16396),(0,v.vt)(),(0,x.vt)(),(0,x.vt)(),(0,x.vt)();var G=r(5443),k=r(39829),$=r(95108);function Z(e,t,r,i){const n=function(e,t){const r=0===t||2===t?0:1,i=e[t],n=0===t||1===t?1:-1,o=0===r?1:0;return(e,t,a)=>{if(t[r]<i&&a[r]<i)return 1===n?0:1;if(t[r]>i&&a[r]>i)return 1===n?1:0;const s=(a[o]-t[o])/(a[r]-t[r]),l=t[o]+s*(i-t[r]);return e[r]=i,e[o]=l,(t[r]<i?1:-1)*n>0?2:3}}(r,i);if(e.length=0,t.length){1===n(Y,t[0],t[0])&&q(e,t[0]);for(let r=0;r<t.length;r++){const i=t[r===t.length-1?0:r+1];switch(n(Y,t[r],i)){case 1:q(e,i);break;case 3:q(e,(0,P.o8)(Y));break;case 2:q(e,(0,P.o8)(Y)),q(e,i)}}}}function q(e,t){0!==e.length&&(0,E.aI)(e.at(-1),t)||e.push(t)}const Y=(0,P.vt)();var X=r(11964),J=r(27921);const K=(0,x.vt)(),Q=(0,x.vt)();function ee(){return{direction:(0,x.vt)(),up:(0,x.vt)()}}function te(e,t,r,i,n){let o=(0,g.S8)(K,e),a=(0,g.Om)(o,i);const s=a>0;a=Math.abs(a),a>.99&&(a=Math.abs((0,g.Om)(t,i)),a<.99?((0,g.C)(o,t),s&&(0,g.hs)(o,o,-1)):o=null);let l=0;if(o){(0,g.hs)(Q,i,(0,g.Om)(i,o)),(0,g.Re)(o,o,Q);const e=(0,g.Om)(o,n)/((0,g.Bw)(o)*(0,g.Bw)(n));(0,g.$A)(Q,o,n),l=((0,g.Om)(Q,i)>0?1:-1)*(0,u.KJ)((0,u.XM)(e))}const c=(0,u.KJ)((0,u.XM)(-(0,g.Om)(i,e)/(0,g.Bw)(e)));return r?(r.heading=l,r.tilt=c,r):{heading:l,tilt:c}}function re(e,t,r,i){(0,g.Re)(ie,r,t),(0,J.T7)(i,(0,X.LV)(t,ie),e)||e===r||(0,g.C)(e,r)}const ie=(0,x.vt)(),ne=(0,x.fA)(0,1,0),oe=(0,x.fA)(0,0,1),ae=(0,v.vt)(),se=(0,x.vt)(),le=(0,x.vt)();function ce(e,t,r,i=ee()){const{direction:n,up:o}=i;return(0,S.N9)(ae,-(0,u.kU)(t)),(0,S.eL)(ae,ae,(0,u.kU)(r)),(0,g.Z0)(n,oe,ae),(0,g.hs)(n,n,-1),(0,g.Z0)(o,ne,ae),i}function ue(e,t,r,i,n){const o=t.lines[11].direction,a=(n-r.getAltitude(i))/o[2];(0,g.Ln)(e,i,o,a)}const de=(0,x.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){return te(t,r,i,oe,ne)},eyeForCenterWithHeadingTilt:function(e,t,r,i){const n=ce(0,r,i),o=(0,x.vt)();return(0,g.hs)(o,n.direction,-t),(0,g.WQ)(o,o,e),{up:n.up,eye:o,heading:r,tilt:i}},eyeTiltToLookAtTilt:function(e){return(0,u.kU)(e)},headingTiltToDirectionUp:ce,lookAtTiltToEyeTilt:function(e){return(0,u.KJ)(e)},toArea:function(e,t){const r=e.frustum,{renderCoordsHelper:i}=e,n=i.getAltitude(t),o=e.spatialReference,a=e.state.camera.eye,s=[],l=r.planes[5];for(let e=0;e<4;e++){const t=r.lines[e];i.intersectInfiniteManifold((0,T.LV)(t.origin,t.direction),n,de)||ue(de,r,i,t.endpoint,n),re(de,a,de,l),s.push((0,P.fA)(de[0],de[1]))}return function(e,t,r){const i=e.map(e=>((0,g.hZ)(de,e[0],e[1],0),t.fromRenderCoords(de,de,r),[de[0],de[1]]));return i.length<=2?new k.A({spatialReference:r}):(i.push(i[0].slice()),(0,$.$3)(i)||i.reverse(),new k.A({rings:[i],spatialReference:r}))}(function(e,t){const r=[],i=[];return Z(r,e,t,0),Z(i,r,t,1),Z(r,i,t,2),Z(i,r,t,3),i}(s,i.extent),i,o)},toExtent:function(e,t,r,i,n){const o=e.renderSpatialReference,a=e.spatialReference??t.spatialReference;return(0,y.g)(t,se,o),(0,y.g)(t,le,o),se[0]-=r/2,le[0]+=r/2,se[1]-=i/2,le[1]+=i/2,(0,b.F)(se,o,se,a),(0,b.F)(le,o,le,a),n?(n.xmin=se[0],n.ymin=se[1],n.xmax=le[0],n.ymax=le[1],n.spatialReference=a):n=new G.A(se[0],se[1],le[0],le[1],a),n}},Symbol.toStringTag,{value:"Module"}));var he=r(34304),me=r(52039),fe=r(94008),pe=r(28735);class ve{get planes(){return this.frustum}get points(){return this._points}get direction(){return this._direction}get origin(){return this._origin}get boundingSphere(){return this._boundingSphereDirty&&this._updateBoundingSphere(),this._boundingSphere}constructor(e){this.renderCoordsHelper=e,this.frustum=(0,M.vt)(),this._points=(0,M.Qy)(),this.lines=new Array(12),this._origin=(0,x.vt)(),this._direction=(0,x.vt)(),this._boundingSphere=new fe.iy,this._altitude=null,this._boundingSphereDirty=!0;for(let e=0;e<12;e++)this.lines[e]={origin:null,direction:(0,x.vt)(),endpoint:null}}update(e){(0,M.ui)(e.viewMatrix,e.projectionMatrix,this.frustum,this._points),(0,g.C)(this._origin,e.eye),(0,g.C)(this._direction,e.viewForward),this._altitude=this.renderCoordsHelper.getAltitude(this._origin),this._updateLines(),this._boundingSphereDirty=!0}get altitude(){return this._altitude}intersectsSphere(e){return(0,M.m7)(this.frustum,e)}isConvexHullOutsideViewPyramid(e,t){return(0,M.Pi)(this.frustum,e,t)}intersectsRay(e){return(0,M.pw)(this.frustum,e)}intersectsLineSegment(e,t){return(0,M.ST)(this.frustum,e,t)}lineSegmentIntersectsViewPyramid(e,t){return(0,M.LJ)(this.frustum,e,t)}intersectsPoint(e){return(0,M.bU)(this.frustum,e)}_updateLines(){const e=this._points;for(let t=0;t<4;t++){const r=t+4;ge(this.lines[t],e[t],e[r]),ge(this.lines[t+4],e[t],3===t?e[0]:e[t+1]),ge(this.lines[t+8],e[r],3===t?e[4]:e[r+1])}}_updateBoundingSphere(){const{origin:e}=this,t=_e;(0,g.S8)(t,this.direction);const r=xe;(0,g.jb)(r,this.points[4],e);const i=.5*(0,g.Om)(r,r)/(0,g.Om)(t,r),n=this._boundingSphere,o=(0,g.Ln)(ye,e,t,i);n.center=o,n.radius=i}static{this.planePointIndices=M.c8}static{this.nearFarLineIndices=[[0,4],[1,5],[2,6],[3,7]]}}function ge(e,t,r){e.origin=t,e.endpoint=r,(0,g.oW)(e.direction,t,r)}const xe=(0,x.vt)(),_e=(0,x.vt)(),ye=(0,x.vt)();r(86211);const be=(0,x.fA)(5802e-9,13558e-9,331e-7),we=(0,x.fA)(65e-8*3,5643e-9,255e-9);(0,x.fA)(be[0]+we[0],be[1]+we[1],be[2]+we[2]);class Se{constructor(e=1/0,t=-1/0){this.near=e,this.far=t}set(e,t){this.near=e,this.far=t}union(e){return null!=e&&(this.near=Math.min(this.near,e.near),this.far=Math.max(this.far,e.far)),this}within(e){return this.near<=e&&e<=this.far}equals(e){return this.near===e.near&&this.far===e.far}static{this.Zero=new Se(0,0)}static{this.Infinite=new Se}}(0,x.vt)(),(0,x.vt)(),new fe.iy,(0,T.vt)(),new G.A({xmin:0,ymin:0,zmin:0,xmax:0,ymax:0,zmax:0});var Me=r(32728);const Te=(0,x.fA)(0,0,1),Ce=(0,g.S8)((0,x.vt)(),(0,x.fA)(1,1,1)),Ie=(0,v.vt)(),Oe=(0,x.vt)(),Ee=(0,x.vt)();function Pe(e,t,r,i=ee()){(0,g.$A)(Oe,e,Te),0===(0,g.Om)(Oe,Oe)&&(0,g.$A)(Oe,e,Ce),(0,S.$0)(Ie,-(0,u.kU)(t),e),(0,S.e$)(Ie,Ie,-(0,u.kU)(r),Oe);const{up:n,direction:o}=i;return(0,g.$A)(n,Oe,e),(0,g.S8)(n,n),(0,g.Z0)(n,n,Ie),(0,g.S8)(o,e),(0,g.ze)(o,o),(0,g.Z0)(o,o,Ie),i}function Ae(e){const t=e[1];e[1]=-e[2],e[2]=t}function De(e,t){const r=Pe(t,e.heading,e.tilt);return e.up=r.up,e}function Re(e,t){const{renderCoordsHelper:r,state:i}=e;if(1!==i.viewingMode)return 1;const n=r.getAltitude(t),o=r.referenceEllipsoid.radius,a=1+(0,g.Io)(i.camera.eye,t)/(o+n),s=Math.sqrt(a*a-1),{minCurvature:l,maxCurvature:c,minSamples:d,maxSamples:h}=Be,m=(0,u.qE)((s-l)/(c-l),0,1);return Math.round((0,u.Cc)(d,h,m))}function Fe(e,t){const r=[],i=[],n=(0,he.FD)();for(let o=0;o<e.length;o++){const a=e[o],s=o===e.length-1?e[0]:e[o+1],l=(0,X.Cr)(a,s,Ue),c=(0,J.vE)(t,l.origin,l.vector,0,je);switch(c){case 2:r.push(a);break;case 3:i.push(a);break;case 0:case 1:{const[e,o,s]=0===c?[1,r,i]:[-1,i,r],l=(0,J.Qj)(t),u=(0,g.Ln)((0,x.vt)(),je,l,e*n),d=(0,g.Ln)((0,x.vt)(),je,l,e*-n);o.push(a),o.push(u),s.push(d)}}}const o=[];return r.length&&o.push(r),i.length&&o.push(i),o}const Be={minCurvature:(0,u.kU)(5),maxCurvature:(0,u.kU)(50),minSamples:1,maxSamples:6},Ne=(0,x.fA)(1,0,0),ze=(0,x.fA)(0,1,0),He=(0,x.vt)(),Le=(0,x.vt)(),je=(0,x.vt)(),We=new fe.iy,Ue=(0,X.vt)(),Ve=(0,D.vt)();Object.freeze(Object.defineProperty({__proto__:null,directionToHeadingTilt:function(e,t,r,i){const n=Oe,o=Ee;return(0,g.S8)(n,e),(0,g.$A)(Ee,n,Te),0===(0,g.Om)(Ee,Ee)&&(0,g.$A)(Ee,n,Ce),(0,g.$A)(o,Ee,n),te(t,r,i,n,o)},eyeForCenterWithHeadingTilt:function(e,t,r,i){const n={eye:(0,x.vt)(),up:null,tilt:i,heading:r},o=Oe;o[0]=e[0],o[1]=e[2],o[2]=-e[1];const a=t,s=(0,u.kU)(r),l=(0,u.kU)(i),c=Math.sin(s),d=Math.cos(s),h=Math.sin(l),m=Math.cos(l),f=(0,g.Bw)(o);let p;if(Math.abs(l)<1e-8)p=a+f;else{const e=f/h,t=(0,u.YN)(a/e),r=Math.PI-l-t;p=e*Math.sin(r)}const v=m*a,_=a*a*(h*h),y=d*d*_,b=p-v,w=b*b,S=y*(y+w-o[1]*o[1]);if(S<0)return(0,g.hs)(n.eye,o,p/f),n.tilt=0,De(n,e);const M=Math.sqrt(S),T=o[1]*b,C=y+w;let I;if(I=d>0?-M+T:M+T,Math.abs(C)<1e-8)return f<1e-8?(n.eye[0]=0,n.eye[1]=0,n.eye[2]=a):(0,g.hs)(n.eye,o,p/f),n.tilt=0,Ae(n.eye),De(n,e);n.eye[1]=I/C;const O=c*c*_,E=h*a,P=d*E*n.eye[1],A=n.eye[1]*n.eye[1],D=1-A,R=Math.sqrt(D),F=y*A+O-2*P*R*b+D*w;return Math.abs(F)<1e-8?((0,g.hs)(n.eye,o,p/f),n.tilt=0,Ae(n.eye),De(n,e)):(n.eye[0]=(D*(p*o[0]-v*o[0])-E*R*(o[0]*n.eye[1]*d+o[2]*c))/F,n.eye[2]=(D*(p*o[2]-v*o[2])-E*R*(o[2]*n.eye[1]*d-o[0]*c))/F,(0,g.hs)(n.eye,n.eye,p),Ae(n.eye),De(n,e))},eyeTiltToLookAtTilt:function(e,t,r){const i=(0,u.kU)(e),n=(0,g.Bw)(t);return(0,u.YN)(r/(n/Math.sin(i)))+i},getCurvatureSamples:Re,headingTiltToDirectionUp:Pe,lookAtTiltToEyeTilt:function(e,t,r){const i=(0,g.Bw)(t),n=Math.sqrt(r*r+i*i-2*r*i*Math.cos(Math.PI-e)),o=(0,u.YN)(r/(n/Math.sin(e)));return(0,u.KJ)(e-o)},toArea:function(e,t){const{renderCoordsHelper:r}=e,i=e.state.camera.clone(),n=new ve(r);i.near=2,n.update(i);const o=r.getAltitude(t),a=e.spatialReference,s=i.eye,l=function(e){const{renderCoordsHelper:t,state:r}=e,i=Math.abs(t.getAltitude(r.camera.center));return We.radius=t.referenceEllipsoid.radius+i,r.camera.sphereFrustumCoverage(We,t)}(e),c=Re(e,t),d=i.aboveGround,h=n.planes[5],m=[],f=(0,J.O_)(x.uY,Ne,(0,J.vt)()),p=(0,J.O_)(x.uY,ze,(0,J.vt)());(0,A.hZ)(Ve,0,0,0,0);const v=e=>{};for(let e=0;e<4;e++){const t=1===e&&!d||3===e&&d?1-l:0,i=1===e&&d||3===e&&!d?l:1,a=n.lines[e],_=n.lines[3===e?0:e+1];for(let n=0;n<c;n++){const l=n/c,d=0===n?0:(0,u.Cc)(t,i,1===e?1-(1-l)**2:3===e?l**2:l),y=(0,g.Cc)(Le,a.origin,_.origin,d),b=(0,Me.nu)(a.direction,_.direction,d,He);r.intersectManifoldClosestSilhouette((0,T.LV)(y,b),o,je),re(je,s,je,h),m.push((0,x.o8)(je)),0!==m.length&&v((0,g.lo)(m.at(-1),je));const w=((0,J.BX)(f,je)?1:0)|((0,J.BX)(p,je)?2:0);Ve[w]=1}}m.length>2&&(0,g.lo)(m[0],m.at(-1));const _=function(e,t,r){const i=2*(0,he.FD)();return e.map(e=>{const n=[];let o=!1;for(const a of e)t.fromRenderCoords(a,je,r),Math.abs(a[0])<i&&Math.abs(a[1])<i?(n.push([null,je[1]]),n.push([null,je[1]]),o=!0):n.push([je[0],je[1]]);if(o)for(let e=0;e<n.length;e++){const t=n[e];if(null!=t[0])continue;const r=n[e+1],i=n.at(0===e?-1:e-1);t[0]=i[0],e++;const o=n.at(e===n.length-1?0:e+1);r[0]=o[0]}return n.push(n[0]),(0,$.$3)(n)||n.reverse(),n})}((0,A.m3)(Ve)>1?function(e,t){const r=[];for(const i of e)r.push(...Fe(i,t));return r}(Fe(m,f),p):[m],r,a);return new k.A({rings:_,spatialReference:a})},toExtent:function(e,t,r,i,n){let o,a,s,c;const d=t.latitude,h=(0,w.tO)(e.spatialReference).radius,m=t.longitude,f=function(e,t,r){const i=t/r,n=(0,u.kU)(e),o=Math.sin(i/2),a=Math.cos(n),s=2*(0,u.YN)(Math.sqrt(o*o/(a*a)));return(0,u.KJ)(s)}(d,r,h)/2;o=m-f,a=m+f;const p=(0,u.kU)(d),v=(1+Math.sin(p))/(1-Math.sin(p)),g=(v+1)*Math.tan(i/h/2),x=g*g;function y(e){const t=Math.PI/2;return(e=l.uC.normalize(e,-t))>t&&(e=Math.PI-e),e}if(s=1.5*Math.PI-2*Math.atan(.5*(g+Math.sqrt(4*v+x))),c=s+i/h,s=y(s),c=y(c),c<s){const e=c;c=s,s=e}if(s=Math.max((0,u.KJ)(s),-90),c=Math.min((0,u.KJ)(c),90),a=me.Y_.monotonic(o,a),a-o>180){const e=(a-o-180)/2;o+=e,a-=e}const b=e.spatialReference&&e.spatialReference.isGeographic?e.spatialReference:_.A.WGS84;return n?(n.xmin=o,n.ymin=s,n.xmax=a,n.ymax=c,n.spatialReference=b):n=new G.A(o,s,a,c,b),e.spatialReference&&e.spatialReference.isWebMercator&&(0,pe.Gh)(n,!1,n),n}},Symbol.toStringTag,{value:"Module"}));const Ge={OPAQUE:"opaque-color",TRANSPARENT:"transparent-color",COMPOSITE:"composite-color",FINAL:"final-color"},ke=[Ge.FINAL,Ge.COMPOSITE,Ge.OPAQUE,Ge.TRANSPARENT],$e={ANTIALIASING:"antialiasing",CUTFILL:"cutfill",CUTFILL_COMPUTATION:"cutfill-computation",FOCUSAREA:"focusarea",FOCUSAREA_MASK:"focusarea-mask",GAUSSIAN_SPLAT:"gaussian",GAUSSIAN_SPLAT_DEPTH:"gaussian-depth",GROUND_DEPTH:"ground-depth",HIGHLIGHT:"highlight",LASERLINES:"laserlines",TRANSPARENT_NO_DEPTH:"transparent-no-depth",MAGNIFIER:"magnifier",OCCLUDED:"occluded",OPAQUE_OCCLUSION_QUERY:"opaque-occlusion-query",OPAQUE_ENVIRONMENT:"opaque-environment",TRANSPARENT_ENVIRONMENT:"transparent-environment",AMBIENT_ILLUMINATION:"ambient-illumination",SHADOW_ACCUMULATION:"shadow-accumulation",SHADOWMAP:"shadowmap",SHADOW_HIGHLIGHT:"shadow-highlight",VOXEL:"voxel",VIEWSHED:"viewshed",OBJECT_AND_LAYER_ID_COLOR:"olid"};Array.from(Object.values($e)).concat(ke),(0,x.vt)()},90119(e,t,r){r.d(t,{A:()=>A});var i=r(32198),n=r(69622),o=r(49186),a=r(36708),s=r(10107),l=r(64108),c=r(89904),u=r(44208),d=r(53966),h=(r(17676),r(94656)),m=r(63907);r(93637),r(4576),new Set(["GL_OES_standard_derivatives","GL_EXT_frag_depth","GL_EXT_draw_buffers","GL_EXT_shader_texture_lod"]),new Map,(0,u.A)("esri-tests-disable-gpu-memory-measurements"),(0,h.en)();(0,h.en)();r(90644);var f=r(25530),p=r(97768),v=r(48852),g=r(42293);const x=!!(0,u.A)("esri-tests-disable-gpu-memory-measurements");class _{constructor(e,t){this._context=e,this._descriptor=t,this.type=2,this._context.instanceCounter.increment(m.vt.Renderbuffer,this);const r=this._context.gl;this.glName=r.createRenderbuffer(),this._context.bindRenderbuffer(this);const{width:i,height:n,internalFormat:o,multisampled:a}=t;a?r.renderbufferStorageMultisample(r.RENDERBUFFER,this.samples,o,i,n):r.renderbufferStorage(r.RENDERBUFFER,o,i,n),this._context.bindRenderbuffer(null)}get descriptor(){return this._descriptor}get samples(){const e=this._descriptor.samples,t=this._context.parameters.maxSamples;return e?Math.min(e,t):t}get usedMemory(){return x?0:(e=this._descriptor).width<=0||e.height<=0||null==e.internalFormat?0:e.width*e.height*(0,g.MW)(e.internalFormat);var e}resize(e,t){const r=this._descriptor;if(r.width===e&&r.height===t)return;r.width=e,r.height=t;const i=this._context.gl;this._context.bindRenderbuffer(this),r.multisampled?i.renderbufferStorageMultisample(i.RENDERBUFFER,this.samples,r.internalFormat,r.width,r.height):i.renderbufferStorage(i.RENDERBUFFER,r.internalFormat,r.width,r.height),this._context.bindRenderbuffer(null)}dispose(){this._context&&(this._context.gl.deleteRenderbuffer(this.glName),this._context.instanceCounter.decrement(m.vt.Renderbuffer,this),this._context=null)}}class y{constructor(e,t,r){if(this._context=e,this._level=0,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,e.instanceCounter.increment(m.vt.FramebufferObject,this),null!=t){const r=function(e,t){return b(t)||w(t)?t:S(t)?new f.A(e,t):function(e){return 3===M(e)||null!=e&&"samples"in e}(t)?new _(e,t):null}(e,t);null!=r&&(this._colorAttachments.set(36064,r),b(r)?this._validateTextureDescriptor(r.descriptor):this._validateRenderbufferDescriptor(r.descriptor)),this._validateColorAttachmentPoint(36064)}if(null!=r)if(function(e){return b(e)||S(e)}(r))this._depthStencilTexture=b(r)?r:new f.A(e,r),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{const t=w(r)?r:new _(e,r);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}get glName(){return this._glName}get colorTexture(){const e=this._colorAttachments.get(36064);return b(e)?e:null}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){const e=this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer;return e?.descriptor?.width??0}get height(){const e=this._colorAttachments.get(36064)??this._depthStencilTexture??this._depthStencilBuffer;return e?.descriptor?.height??0}get usedMemory(){return this._colorAttachments.values().reduce((e,t)=>e+t.usedMemory,this.depthStencil?.usedMemory??0)}get level(){return this._level}set level(e){this._level!==e&&(this._level=e,this._glName&&this._context.temporaryBindFramebuffer(this,()=>this._initializeAttachments()))}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(e){const t=this._colorAttachments.get(e);return t&&b(t)?t:null}get colorAttachments(){return Array.from(this._colorAttachments.keys())}attachColorTexture(e,t=36064){if(!e)return;this._validateColorAttachmentPoint(t);const{descriptor:r}=e;this._validateTextureDescriptor(r),this.detachColorTexture(t)?.dispose(),this._colorAttachments.set(t,e),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,t))}detachColorTexture(e=36064){const t=this._colorAttachments.get(e);if(!t)return;const r=b(t);return this._glName&&this._context.temporaryBindFramebuffer(this,()=>{if(r)this._framebufferTexture2D(null,e);else{const t=this._context.gl;t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)}}),this._colorAttachments.delete(e),r?t:void 0}detachColorTextures(...e){if(0!==e.length){if(this._glName){const t=this._context.gl;this._context.temporaryBindFramebuffer(this,()=>{e.forEach(e=>{b(this._colorAttachments.get(e))?this._framebufferTexture2D(null,e):t.framebufferRenderbuffer(t.FRAMEBUFFER,e,t.RENDERBUFFER,null)})})}e.forEach(e=>this._colorAttachments.delete(e))}}setColorTextureTarget(e,t=36064,r=0){const i=this._colorAttachments.get(t);i&&(35866===e?this._framebufferTextureLayer(i.glName,t,36160,r):this._framebufferTexture2D(i.glName,t,e,36160))}attachDepthStencil(e){if(e)switch(e.type){case 1:return this._attachDepthStencilTexture(e);case 2:return this._attachDepthStencilBuffer(e)}}_attachDepthStencilTexture(e){if(null==e)return;const{descriptor:t}=e,{pixelFormat:r,dataType:i}=t;34041===r||6402===r?34041!==r||i===m.ld.UNSIGNED_INT_24_8?6402!==r||i===m.ld.UNSIGNED_INT||i===m.ld.UNSIGNED_SHORT?(this._validateTextureDescriptor(t),this._disposeDepthStencilAttachments(),this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(e.glName,I(r))),this._depthStencilTexture?.dispose(),this._depthStencilTexture=e):console.error("Depth texture must have data type of UNSIGNED_INT or UNSIGNED_SHORT!"):console.error("Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!"):console.error("Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!")}detachDepthStencilTexture(){const e=this._depthStencilTexture;return e&&this._glName&&this._context.temporaryBindFramebuffer(this,()=>{this._framebufferTexture2D(null,I(e.descriptor.pixelFormat))}),this._depthStencilTexture=null,e}_attachDepthStencilBuffer(e){if(null==e)return;const t=e.descriptor;if(this._validateRenderbufferDescriptor(t),this._disposeDepthStencilAttachments(),this._glName){this._context.bindFramebuffer(this);const{gl:r}=this._context,i=this._getGLAttachmentPoint(t);r.framebufferRenderbuffer(36160,i,r.RENDERBUFFER,e.glName)}this._depthStencilBuffer=e}detachDepthStencilBuffer(){const e=this._depthStencilBuffer;if(e&&this._glName){const{_context:t}=this,r=t.boundFramebuffer;t.bindFramebuffer(this);const{gl:i}=t,n=this._getGLAttachmentPoint(e.descriptor);i.framebufferRenderbuffer(36160,n,i.RENDERBUFFER,null),t.bindFramebuffer(r)}return this._depthStencilBuffer=null,e}invalidateAttachments(e){const{_context:t}=this;t.temporaryBindFramebuffer(this,()=>t.gl.invalidateFramebuffer(36160,e),!0)}copyToTexture(e,t,r,i,n,o,a){(e<0||t<0||n<0||o<0)&&console.error("Offsets cannot be negative!"),(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!");const s=a.descriptor;3553!==a.descriptor.target&&console.error("Texture target must be TEXTURE_2D!"),(null==s?.width||null==s?.height||e+r>this.width||t+i>this.height||n+r>s.width||o+i>s.height)&&console.error("Bad dimensions, the current input values will attempt to read or copy out of bounds!");const l=this._context,c=l.bindTexture(a,f.A.TEXTURE_UNIT_FOR_UPDATES);l.setActiveTexture(f.A.TEXTURE_UNIT_FOR_UPDATES),l.bindFramebuffer(this),l.gl.copyTexSubImage2D(3553,0,n,o,e,t,r,i),l.bindTexture(c,f.A.TEXTURE_UNIT_FOR_UPDATES)}readPixels(e,t,r,i,n,o,a){(r<=0||i<=0)&&console.error("Copy width and height must be greater than zero!"),a||console.error("Target memory is not initialized!"),this._context.bindFramebuffer(this),this._context.gl.readPixels(e,t,r,i,n,o,a)}async readPixelsAsync(e,t,r,i,n,o,a,s){const{gl:l}=this._context,c=v.g.createPixelPack(this._context,35041,a.byteLength);this._context.bindBuffer(c);const u=this._context.boundFramebuffer;this._context.bindFramebuffer(this),l.readPixels(e,t,r,i,n,o,0),this._context.unbindBuffer(35051),this._context.bindFramebuffer(u);try{await c.getSubDataAsync(a,void 0,void 0,void 0,s)}finally{c.dispose()}}resize(e,t){if(this.width===e&&this.height===t)return;const r={width:e,height:t};if(T(r,this._context.parameters.maxTextureSize),this._colorAttachments.forEach(e=>e.resize(r.width,r.height)),this._depthStencilTexture?.resize(r.width,r.height),this._glName&&(T(r,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(r.width,r.height),(0,h.en)())){const{gl:e}=this._context;e.checkFramebufferStatus(36160)!==e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}}initializeAndBind(e=36160){const{gl:t}=this._context;this._glName?t.bindFramebuffer(e,this._glName):(this._glName&&t.deleteFramebuffer(this._glName),this._glName=t.createFramebuffer(),t.bindFramebuffer(e,this._glName),this._initializeAttachments(e))}_initializeAttachments(e=36160){const{gl:t}=this._context;if(this._colorAttachments.forEach((t,r)=>{if(b(t)){const i=C(t);35866===i?this._framebufferTextureLayer(t.glName,r,e):this._framebufferTexture2D(t.glName,r,i,e)}else if(w(t)){const i=this._context.gl;i.framebufferRenderbuffer(e,r,i.RENDERBUFFER,t.glName)}}),this._depthStencilBuffer){const r=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(e,r,t.RENDERBUFFER,this._depthStencilBuffer.glName)}else if(this._depthStencilTexture){const t=I(this._depthStencilTexture.descriptor.pixelFormat);this._framebufferTexture2D(this._depthStencilTexture.glName,t,C(this._depthStencilTexture),e)}(0,h.en)()&&t.checkFramebufferStatus(e)!==t.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}_framebufferTexture2D(e,t=36064,r=3553,i=36160){this._context.gl.framebufferTexture2D(i,t,r,e,this._level)}_framebufferTextureLayer(e,t=36064,r=36160,i=0){this._context.gl.framebufferTextureLayer(r,t,e,this._level,i)}_disposeDepthStencilAttachments(){const e=this._context.gl;if(this._depthStencilBuffer){if(this._glName){this._context.bindFramebuffer(this);const t=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(36160,t,e.RENDERBUFFER,null)}this._depthStencilBuffer=(0,p.WD)(this._depthStencilBuffer)}this._depthStencilTexture&&(this._glName&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,I(this._depthStencilTexture.descriptor.pixelFormat))),this._depthStencilTexture=(0,p.WD)(this._depthStencilTexture))}_validateTextureDescriptor(e){3553!==e.target&&34067!==e.target&&35866!==e.target&&console.error("Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!"),T(e,this._context.parameters.maxTextureSize),this._validateBufferDimensions(e)}_validateRenderbufferDescriptor(e){T(e,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(e)}_validateBufferDimensions(e){e.width<=0&&(e.width=this.width),e.height<=0&&(e.height=this.height),this.width>0&&this.height>0&&(this.width===e.width&&this.height===e.height||console.error("Attachment size must match framebuffer size!"))}_getGLAttachmentPoint(e){switch(e.internalFormat){case m.SB.DEPTH_COMPONENT16:case m.SB.DEPTH_COMPONENT24:case m.SB.DEPTH_COMPONENT32F:return 36096;case m.iE.DEPTH24_STENCIL8:case m.iE.DEPTH32F_STENCIL8:return 33306;case 36168:return 36128;default:return 36064}}_validateColorAttachmentPoint(e){if(-1===y._MAX_COLOR_ATTACHMENTS){const{gl:e}=this._context;y._MAX_COLOR_ATTACHMENTS=e.getParameter(e.MAX_COLOR_ATTACHMENTS)}const t=e-36064;t+1>y._MAX_COLOR_ATTACHMENTS&&d.A.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${t+1}. Implementation supports up to ${y._MAX_COLOR_ATTACHMENTS} color attachments`)}}function b(e){return 1===M(e)}function w(e){return 2===M(e)}function S(e){return 0===M(e)}function M(e){return null!=e&&"type"in e?e.type:null}function T(e,t){const r=Math.max(e.width,e.height);if(r>t){d.A.getLogger("esri.views.webgl.FramebufferObject").warnOnce(`Resizing FBO attachment size ${e.width}x${e.height} to device limit ${t}`);const i=t/r;return e.width=Math.round(e.width*i),e.height=Math.round(e.height*i),!1}return!0}function C(e){return 34067===e.descriptor.target?34069:35866===e.descriptor.target?35866:3553}function I(e){return 6402===e?36096:33306}r(67171),r(21818);var O=r(85079);const E=[new(r(74038)._)("position",2,m.pe.UNSIGNED_SHORT,0,4)];(0,O.Xk)(E),r(66289);const P=new Image;P.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",P.width=5,P.height=5,P.decode();let A=class extends n.A{constructor(e){super(e),this.view=null,this.consumes={required:[]},this.produces=c.gP.COMPOSITE,this._dirty=!0}initialize(){this.addHandles([(0,a.wB)(()=>this.view.ready,e=>{e&&this.view.stage?.renderer.addRenderNode(this)},a.Vh)])}destroy(){this.view.stage?.renderer?.removeRenderNode(this)}precompile(){}render(){throw new o.A("RenderNode:render-function-not-implemented","render() is not implemented.")}get camera(){return this.view.state.camera.clone()}get sunLight(){return this.bindParameters.lighting.legacy}get gl(){return this.view.stage.renderView.renderingContext.gl}get techniques(){return this.view.stage.renderView.techniques}acquireOutputFramebuffer(){const e=this._frameBuffer?.getTexture()?.descriptor,t=this.view.stage.renderer.fboCache.acquire(e?.width??640,e?.height??480,this.produces);return this._bind(t),t}bindRenderTarget(){return this._bind(this._frameBuffer),this._frameBuffer}_bind({fbo:e}){var t;e.initializeAndBind(),this.gl.drawBuffers((t=e)?t.colorAttachments.length>0?t.colorAttachments:[0]:[1029])}requestRender(e){switch(e){case 2:this.view.state.fading=!0;case 1:this.view.stage?.renderView.requestRender(e);case 0:case void 0:this._dirty=!0}}resetWebGLState(){this.renderingContext.resetState(),this.renderingContext.bindFramebuffer(this._frameBuffer?.fbo)}get fboCache(){return this.view.stage.renderer.fboCache}get bindParameters(){return this.renderContext.bind}get renderingContext(){return this.view.stage.renderView.renderingContext}get renderContext(){return this.view.stage?.renderer.renderContext}updateAnimation(e){return!!this._dirty&&(this._dirty=!1,!0)}doRender(e){this._frameBuffer=e.find(({name:e})=>e===this.produces);try{return this.render(e)}finally{this._frameBuffer=null}}get requireGeometryDepth(){return!1}queryDepthRange(e){return null}get input(){return this._frameBuffer}};(0,i.Cg)([(0,s.MZ)({constructOnly:!0})],A.prototype,"view",void 0),(0,i.Cg)([(0,s.MZ)({constructOnly:!0})],A.prototype,"consumes",void 0),(0,i.Cg)([(0,s.MZ)()],A.prototype,"produces",void 0),(0,i.Cg)([(0,s.MZ)({readOnly:!0})],A.prototype,"techniques",null),A=(0,i.Cg)([(0,l.$)("esri.views.3d.webgl.RenderNode")],A)},48852(e,t,r){r.d(t,{g:()=>m});var i=r(4576),n=r(44208),o=r(53966),a=r(17676),s=r(78659),l=r(34275),c=r(94656),u=r(63907);const d=()=>o.A.getLogger("esri.views.webgl.BufferObject"),h=!!(0,n.A)("esri-tests-disable-gpu-memory-measurements");class m{static createIndex(e,t,r){return new m(e,34963,t,r)}static createUniform(e,t,r){return new m(e,35345,t,r)}static createPixelPack(e,t=35041,r){const i=new m(e,35051,t);return r&&i.setSize(r),i}static createPixelUnpack(e,t=35040,r){return new m(e,35052,t,r)}static createTransformFeedback(e,t=35044,r){const i=new m(e,35982,t);return i.setSize(r),i}constructor(e,t,r,i){this._context=e,this.bufferType=t,this.usage=r,this._glName=null,this._sizeBytes=-1,this._indexType=void 0,e.instanceCounter.increment(u.vt.BufferObject,this),this._glName=this._context.gl.createBuffer(),(0,c.Y2)(this._context.gl),i&&this.setData(i)}get glName(){return this._glName}get size(){if(34963===this.bufferType)switch(this._indexType){case u.pe.UNSIGNED_INT:return this._sizeBytes/4;case u.pe.UNSIGNED_SHORT:return this._sizeBytes/2;case u.pe.UNSIGNED_BYTE:case void 0:case null:break;default:this._indexType}return this._sizeBytes}get indexType(){return this._indexType}get sizeBytes(){return this._sizeBytes}get usedMemory(){return h?0:this.sizeBytes}get _isVAOAware(){return 34963===this.bufferType||34962===this.bufferType}dispose(){this._context?.gl?(this._glName&&(this._context.gl.deleteBuffer(this._glName),this._glName=null),this._context.instanceCounter.decrement(u.vt.BufferObject,this),this._context=null):this._glName&&d().warn("Leaked WebGL buffer object")}setSize(e,t=null){if(34963===this.bufferType&&null!=t)switch(this._indexType=t,t){case u.pe.UNSIGNED_SHORT:e*=2;break;case u.pe.UNSIGNED_INT:e*=4;case u.pe.UNSIGNED_BYTE:}this._setBufferData(e)}setData(e){if(!e)return;const t=e.byteLength;34963===this.bufferType&&((0,l.mg)(e)?this._indexType=u.pe.UNSIGNED_BYTE:(0,l.jq)(e)?this._indexType=u.pe.UNSIGNED_SHORT:(0,l.XJ)(e)&&(this._indexType=u.pe.UNSIGNED_INT)),this._setBufferData(t,e)}setIndexType(e){34963===this.bufferType&&(this._indexType=e)}_setBufferData(e,t=null){this._sizeBytes=e;const r=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const i=this._context.gl;null!=t?i.bufferData(this.bufferType,t,this.usage):i.bufferData(this.bufferType,e,this.usage),(0,c.Y2)(i),this._isVAOAware&&this._context.bindVAO(r)}setSubData(e,t,r,i){if(!e)return;const n=this._context.getBoundVAO();this._isVAOAware&&this._context.bindVAO(null),this._context.bindBuffer(this);const{gl:o}=this._context;o.bufferSubData(this.bufferType,t*e.BYTES_PER_ELEMENT,e,r,i-r),(0,c.Y2)(o),this._isVAOAware&&this._context.bindVAO(n)}getSubData(e,t=0,r,n){if(r<0||n<0)return;const o=function(e){return(0,i.Xj)(e)}(e)?e.BYTES_PER_ELEMENT:1;if(o*((r??0)+(n??0))>e.byteLength)return;t+o*(n??0)>this.usedMemory&&d().warn("Potential problem getting subdata: requested data exceeds buffer size!");const a=this._context.gl;35982===this.bufferType?(this._context.bindBuffer(this,35982),a.getBufferSubData(35982,t,e,r,n),this._context.unbindBuffer(35982)):(this._context.bindBuffer(this,36662),a.getBufferSubData(36662,t,e,r,n),this._context.unbindBuffer(36662))}async getSubDataAsync(e,t=0,r,i,n){if(await this._context.clientWaitAsync((0,s.l5)(10),n),!this._context||!this._glName)throw(0,a.NK)();this.getSubData(e,t,r,i)}}},65786(e,t,r){const i=class{};new i,r.d(t,["Y",0,i])},14113(e,t,r){r.d(t,{N5:()=>s});var i=r(49186),n=(r(44208),r(53966));const o=()=>n.A.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");class a{constructor(){this._includedModules=new Map}include(e,t){this._includedModules.has(e)?this._includedModules.get(e):(this._includedModules.set(e,t),e(this.builder,t))}}class s extends a{constructor(){super(...arguments),this.vertex=new h,this.fragment=new h,this.attributes=new m,this.varyings=new f,this.outputs=new p}get attributeNames(){return this.attributes.names}get builder(){return this}generate(e,t=!1){const r=this.attributes.generateSource(e),i=this.varyings.generateSource(e),n="vertex"===e?this.vertex:this.fragment,o=n.uniforms.generateSource(),a=n.code.generateSource(),s=n.main.generateSource(t),l=this.debugName?`// ${this.debugName}\n`:"",c="vertex"===e?x:g,u=n.constants.generateSource(),d=this.outputs.generateSource(e);return`#version 300 es\n${l}\n${c}\n${u.join("\n")}\n${o.join("\n")}\n${r.join("\n")}\n${i.join("\n")}\n${d.join("\n")}\n${a.join("\n")}\n${s.join("\n")}`}generateBind(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[0];r&&t.set(e.name,r)});const r=Array.from(t.values()),i=r.length;return t=>{for(let n=0;n<i;++n)r[n](e,t)}}generateBindPass(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[1];r&&t.set(e.name,r)});const r=Array.from(t.values()),i=r.length;return(t,n)=>{for(let o=0;o<i;++o)r[o](e,n,t)}}generateBindDraw(e){const t=new Map;this.vertex.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)}),this.fragment.uniforms.entries.forEach(e=>{const r=e.bind[2];r&&t.set(e.name,r)});const r=Array.from(t.values()),i=r.length;return(t,n,o)=>{for(let a=0;a<i;++a)r[a](e,o,t,n)}}}class l{constructor(e){this._stage=e,this._entries=new Map}add(...e){for(const t of e)this._add(t);return this._stage}get(e){return this._entries.get(e)}_add(e){if(null!=e){if(this._entries.has(e.name)&&!this._entries.get(e.name).equals(e))throw new i.A("shaderbuilder:duplicate-uniform",`Duplicate uniform name ${e.name} for different uniform type`);this._entries.set(e.name,e)}else o().error(`Trying to add null Uniform from ${(new Error).stack}.`)}generateSource(){return Array.from(this._entries.values()).map(({name:e,arraySize:t,type:r})=>null!=t?`uniform ${r} ${e}[${t}];`:`uniform ${r} ${e};`)}get entries(){return Array.from(this._entries.values())}}class c{constructor(){this._entries=new Map}add(e,t){if(this._entries.has(e))throw new i.A("shaderbuilder:duplicate-input",`Duplicate input for ${e}`);this._entries.set(e,t)}get(e){const t=this._entries.get(e);if(null==t)throw new i.A("shaderbuilder:input-resolver-error",`No resolver for input ${e} found.`);return t()}}class u{constructor(e){this._stage=e,this._bodies=new Array}add(e){return this._bodies.push(e),this._stage}generateSource(e){if(this._bodies.length>0){const e=[];for(const t of this._bodies)"string"==typeof t?e.push(t):e.push(...t());return[`void main() {\n ${e.join("\n")||""} \n}`]}if(e)throw new i.A("shaderbuilder:missing-main","Shader does not contain main function body.");return[]}}class d{constructor(e){this._stage=e,this._entries=new Array}add(e){return this._entries.push(e),this._stage}generateSource(){const e=[];for(const t of this._entries)"string"==typeof t?e.push(t):e.push(...t());return e}}class h extends a{constructor(){super(...arguments),this.uniforms=new l(this),this.main=new u(this),this.code=new d(this),this.constants=new v(this),this.inputs=new c}get builder(){return this}}class m{constructor(){this._entries=new Array}add(e,t){this._entries.push([e,t])}generateSource(e){return"fragment"===e?[]:this._entries.map(e=>`in ${e[1]} ${e[0]};`)}get names(){return this._entries.map(([e])=>e)}}class f{constructor(){this._entries=new Map}add(e,t,r){this._entries.has(e)?o().warn(`Ignoring duplicate varying ${t} ${e}`):this._entries.set(e,{type:t,invariant:r?.invariant??!1})}generateSource(e){const t=new Array;return this._entries.forEach((r,i)=>t.push((r.invariant&&"vertex"===e?"invariant ":"")+("int"===r.type?"flat ":"")+("vertex"===e?"out":"in")+` ${r.type} ${i};`)),t}}class p{constructor(){this._entries=new Map}add(e,t,r=0){const i=this._entries.get(r);i?.name!==e||i?.type!==t?this._entries.set(r,{name:e,type:t}):o().warn(`Fragment shader output location ${r} occupied`)}static{this.DEFAULT_TYPE="vec4"}static{this.DEFAULT_NAME="fragColor"}generateSource(e){if("vertex"===e)return[];0===this._entries.size&&this._entries.set(0,{name:p.DEFAULT_NAME,type:p.DEFAULT_TYPE});const t=new Array;return this._entries.forEach((e,r)=>t.push(`layout(location = ${r}) out ${e.type} ${e.name};`)),t}}class v{constructor(e){this._stage=e,this._entries=new Set}add(e,t,r){let i="ERROR_CONSTRUCTOR_STRING";switch(t){case"float":i=v._numberToFloatStr(r);break;case"int":i=v._numberToIntStr(r);break;case"uint":i=v._numberToUintStr(r);break;case"bool":i=r.toString();break;case"vec2":i=`vec2(${v._numberToFloatStr(r[0])}, ${v._numberToFloatStr(r[1])})`;break;case"vec3":i=`vec3(${v._numberToFloatStr(r[0])}, ${v._numberToFloatStr(r[1])}, ${v._numberToFloatStr(r[2])})`;break;case"vec4":i=`vec4(${v._numberToFloatStr(r[0])}, ${v._numberToFloatStr(r[1])}, ${v._numberToFloatStr(r[2])}, ${v._numberToFloatStr(r[3])})`;break;case"ivec2":i=`ivec2(${v._numberToIntStr(r[0])}, ${v._numberToIntStr(r[1])})`;break;case"ivec3":i=`ivec3(${v._numberToIntStr(r[0])}, ${v._numberToIntStr(r[1])}, ${v._numberToIntStr(r[2])})`;break;case"ivec4":i=`ivec4(${v._numberToIntStr(r[0])}, ${v._numberToIntStr(r[1])}, ${v._numberToIntStr(r[2])}, ${v._numberToIntStr(r[3])})`;break;case"uvec2":i=`uvec2(${v._numberToUintStr(r[0])}, ${v._numberToUintStr(r[1])})`;break;case"uvec3":i=`uvec3(${v._numberToUintStr(r[0])}, ${v._numberToUintStr(r[1])}, ${v._numberToUintStr(r[2])})`;break;case"uvec4":i=`uvec4(${v._numberToUintStr(r[0])}, ${v._numberToUintStr(r[1])}, ${v._numberToUintStr(r[2])}, ${v._numberToUintStr(r[3])})`;break;case"mat2":case"mat3":case"mat4":i=`${t}(${Array.prototype.map.call(r,e=>v._numberToFloatStr(e)).join(", ")})`}return this._entries.add(`const ${t} ${e} = ${i};`),this._stage}static _numberToIntStr(e){return e.toFixed(0)}static _numberToUintStr(e){return`${e.toFixed(0)}u`}static _numberToFloatStr(e){return Number.isInteger(e)?e.toFixed(1):e.toString()}generateSource(){return Array.from(this._entries)}}const g="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n#else\n precision mediump float;\n precision mediump int;\n precision mediump sampler2D;\n precision mediump usampler2D;\n precision mediump sampler2DArray;\n precision mediump sampler2DShadow;\n#endif",x="precision highp float;\n precision highp int;\n precision highp sampler2D;\n precision highp usampler2D;\n precision highp sampler2DArray;\n precision highp sampler2DShadow;\n\n\n invariant gl_Position;\n "},74333(e,t,r){r.d(t,{n:()=>i});class i{constructor(e,t,r,i,n=null){if(this.name=e,this.type=t,this.arraySize=n,this.bind={0:null,1:null,2:null},i)switch(r){case void 0:break;case 0:this.bind[0]=i;break;case 1:this.bind[1]=i;break;case 2:this.bind[2]=i}}equals(e){return this.type===e.type&&this.name===e.name&&this.arraySize===e.arraySize}}},66289(e,t,r){r.d(t,{R:()=>n});var i=r(48852);class n extends i.g{constructor(e,t,r,i=35044){super(e,34962,i,r),this.layout=t}}},90644(e,t,r){function i(e,t,r=32774,i=[0,0,0,0]){return{srcRgb:e,srcAlpha:e,dstRgb:t,dstAlpha:t,opRgb:r,opAlpha:r,color:{r:i[0],g:i[1],b:i[2],a:i[3]}}}function n(e,t,r,i,n=32774,o=32774,a=[0,0,0,0]){return{srcRgb:e,srcAlpha:t,dstRgb:r,dstAlpha:i,opRgb:n,opAlpha:o,color:{r:a[0],g:a[1],b:a[2],a:a[3]}}}r.d(t,{Ey:()=>y,nk:()=>d,p3:()=>n}),r(4718);const o=i(0,771),a=(i(1,0),i(1,1),i(1,771)),s=n(770,1,771,771),l=n(0,0,768,0),c={face:1029,mode:2305},u={face:1028,mode:2305};function d(e,t,r){return{ref:e,readMask:t,stencilFront:r,stencilBack:r}}function h(e){return S.intern(e)}function m(e){return T.intern(e)}function f(e){return I.intern(e)}function p(e){return E.intern(e)}function v(e){return A.intern(e)}function g(e){return R.intern(e)}function x(e){return B.intern(e)}function _(e){return z.intern(e)}function y(e){return L.intern(e)}class b{constructor(e,t){this._makeKey=e,this._makeRef=t,this._interns=new Map}intern(e){if(!e)return null;const t=this._makeKey(e),r=this._interns;return r.has(t)||r.set(t,this._makeRef(e)),r.get(t)??null}}function w(e){return"["+e.join(",")+"]"}const S=new b(M,e=>({__tag:"Blending",...e}));function M(e){return e?w([e.srcRgb,e.srcAlpha,e.dstRgb,e.dstAlpha,e.opRgb,e.opAlpha,e.color.r,e.color.g,e.color.b,e.color.a]):null}const T=new b(C,e=>({__tag:"Culling",...e}));function C(e){return e?w([e.face,e.mode]):null}const I=new b(O,e=>({__tag:"PolygonOffset",...e}));function O(e){return e?w([e.factor,e.units]):null}const E=new b(P,e=>({__tag:"DepthTest",...e}));function P(e){return e?w([e.func]):null}const A=new b(D,e=>({__tag:"StencilTest",...e}));function D(e){return e?w([e.ref,e.readMask,e.stencilFront.compare,e.stencilFront.fail,e.stencilFront.zFail,e.stencilFront.zPass,e.stencilBack.compare,e.stencilBack.fail,e.stencilBack.zFail,e.stencilBack.zPass]):null}const R=new b(F,e=>({__tag:"DepthWrite",...e}));function F(e){return e?w([e.zNear,e.zFar]):null}const B=new b(N,e=>({__tag:"ColorWrite",...e}));function N(e){return e?w([e.r,e.g,e.b,e.a]):null}const z=new b(H,e=>({__tag:"StencilWrite",...e}));function H(e){return e?w([e.mask]):null}const L=new b(function(e){return e?w([M(e.blending),C(e.culling),O(e.polygonOffset),P(e.depthTest),D(e.stencilTest),F(e.depthWrite),N(e.colorWrite),H(e.stencilWrite)]):null},e=>({blending:h(e.blending),culling:m(e.culling),polygonOffset:f(e.polygonOffset),depthTest:p(e.depthTest),stencilTest:v(e.stencilTest),depthWrite:g(e.depthWrite),colorWrite:x(e.colorWrite),stencilWrite:_(e.stencilWrite)}));r.d(t,["RC",0,a,"T8",0,s,"Uy",0,{zNear:0,zFar:1},"Xt",0,e=>2===e?c:1===e?u:null,"iD",0,o,"kn",0,{r:!0,g:!0,b:!0,a:!0},"uR",0,l])}}]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as
|
|
2
|
+
import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{ReadDepthLastFrame as a}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import{Gamma as t}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{addMainLightDirection as i}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{ScreenSpaceRayMarching as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import{CameraSpace as o}from"../views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js";import{FloatBindUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatBindUniform.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as c,If as s}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as d}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as m}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{GlobalIlluminationColorQuantization as u}from"../views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js";import{floatBlendReductionFactor as p}from"../views/3d/webgl-engine/shaders/floatBlendScale.glsl.js";import{ColorAttachment1 as g,SizedPixelFormat as f}from"../views/webgl/enums.js";import{NoParameters as y}from"../views/webgl/NoParameters.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";const v=.01,M=.008,b=5e-4,w=.5,S=.02,B=.1,W=.008,F=.3,I=.008,D=150,C=.095,j=.008,R=60,O=2,z=.0039,G=.25,P=.012,T=6,E=.15,Q=25,L=.15,H=.5,V=1,k=1,U=16;class N extends y{constructor(){super(...arguments),this.projScale=1,this.scaleGlobalIllumination=1,this.accumulatedFrames=0,this.temporalSampleFrame=0,this.rayMarchMinReach=L,this.rayMarchMaxReach=H,this.rayMarchWorldReach=Q,this.rayMarchMinReachEmissionWeight=V,this.rayMarchMaxReachEmissionWeight=k,this.rayMarchMaxSteps=U,this.colorBleedWeight=E,this.highQualityIdleColorBlendStart=F}}function _(y){const F=new x,E=F.fragment;F.include(e),F.include(o),i(E),E.include(a),E.include(t),E.include(u),F.include(l,y),E.uniforms.add(new m("normalMap",e=>e.normalTexture),new m("depthMap",e=>e.depthTexture),new d("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new d("lastFrameDepthTexture",e=>e.reprojection.lastFrameDepth?.attachment),new d("lastFrameGlobalIlluminationTexture",e=>e.globalIllumination?.getTexture()),new d("lastFrameGlobalIlluminationWeightTexture",e=>e.globalIllumination?.getTexture(g)),new h("reprojectionProjectionMatrix",e=>e.reprojection.lastFrameCamera.projectionMatrix),new h("reprojectionViewMatrix",e=>e.reprojection.viewMatrix),new h("view",e=>e.camera.viewMatrix),new n("accumulatedFrames",e=>e.accumulatedFrames),new n("temporalSampleFrame",e=>e.temporalSampleFrame),new n("scaleGlobalIllumination",e=>e.scaleGlobalIllumination)),E.uniforms.add(new n("rayMarchMinReach",e=>e.rayMarchMinReach),new n("rayMarchMaxReach",e=>e.rayMarchMaxReach),new n("rayMarchWorldReach",e=>e.rayMarchWorldReach),new n("rayMarchMinReachEmissionWeight",e=>e.rayMarchMinReachEmissionWeight),new n("rayMarchMaxReachEmissionWeight",e=>e.rayMarchMaxReachEmissionWeight),new n("rayMarchMaxSteps",e=>e.rayMarchMaxSteps),new n("colorBleedWeight",e=>e.colorBleedWeight),new n("highQualityIdleColorBlendStart",e=>e.highQualityIdleColorBlendStart));const{hasEmission:Q,hasColor:L}=y;return Q&&E.uniforms.add(new r("inputScale",e=>e.reprojection.lastFrameEmission?.attachment.descriptor.internalFormat===f.RGBA8?p:1),new d("lastFrameEmissionTexture",e=>e.reprojection.lastFrameEmission?.attachment)),E.constants.add("highQualityIdleColorBlendEnd","float",I),E.constants.add("highQualityIdleColorBlendFrames","float",D),E.constants.add("highQualityIdleOcclusionBlendEnd","float",j),E.constants.add("highQualityIdleOcclusionBlendExponent","float",O),E.constants.add("highQualityIdleOcclusionBlendFrames","float",R),E.constants.add("highQualityIdleOcclusionBlendStart","float",C),E.constants.add("fullColorBleedBlendWeight","float",P),E.constants.add("accumulationDitherScale","float",z),E.constants.add("lowQualityColorBlendWeight","float",b),E.constants.add("lowQualityColorDitherScale","float",G),E.constants.add("lowQualityOcclusionBlendWeight","float",M),E.constants.add("reprojectionMismatchThreshold","float",v),E.constants.add("stableHistoryColorBlendWeight","float",W),E.constants.add("strongHistoryOcclusionThreshold","float",S),E.constants.add("weakHistoryOcclusionBlendWeight","float",B),E.constants.add("weakHistoryOcclusionThreshold","float",w),E.constants.add("storedColorBlendWeightScale","float",T),E.code.add(c`float computeIdleColorBlendWeight(float accumulatedFrames) {
|
|
3
3
|
float idleColorBlendProgress = clamp(accumulatedFrames / highQualityIdleColorBlendFrames, 0.0, 1.0);
|
|
4
4
|
return mix(highQualityIdleColorBlendStart, highQualityIdleColorBlendEnd, pow(idleColorBlendProgress, 1./5.)
|
|
5
5
|
);
|
|
@@ -49,7 +49,7 @@ blueNoiseDitherValue(pixel, frame, vec2(0.25881904, 0.9659258), 0.37),
|
|
|
49
49
|
blueNoiseDitherValue(pixel, frame, vec2(1.0, 0.0), 0.61)
|
|
50
50
|
);
|
|
51
51
|
return value * 2.0 - 1.0;
|
|
52
|
-
}`),
|
|
52
|
+
}`),F.outputs.add("fragGlobalIllumination","vec4",0),F.outputs.add("fragWeight","vec2",1),E.main.add(c`
|
|
53
53
|
float depth = depthFromTexture(depthMap, uv);
|
|
54
54
|
|
|
55
55
|
// Early out if depth is out of range, such as in the sky
|
|
@@ -81,7 +81,7 @@ return value * 2.0 - 1.0;
|
|
|
81
81
|
|
|
82
82
|
// Reproject current view position to last frame
|
|
83
83
|
vec4 reprojectedViewPos = reprojectionViewMatrix * viewPos;
|
|
84
|
-
vec4 reprojectedCoordinate = applyProjectionMat(
|
|
84
|
+
vec4 reprojectedCoordinate = applyProjectionMat(reprojectionProjectionMatrix, reprojectedViewPos.xyz);
|
|
85
85
|
|
|
86
86
|
// Read last frame reprojected depth and GI history
|
|
87
87
|
float lastFrameDepthViewPos = -linearDepthFromTextureLastFrame(lastFrameDepthTexture, reprojectedCoordinate.xy);
|
|
@@ -213,4 +213,4 @@ return value * 2.0 - 1.0;
|
|
|
213
213
|
fragGlobalIllumination.a = mix(lastFrameGlobalIllumination.a + accumulationDither, fragGlobalIllumination.a, occlusionBlendWeight);
|
|
214
214
|
|
|
215
215
|
fragWeight = vec2(occlusionBlendWeight, colorBlendWeight * storedColorBlendWeightScale);
|
|
216
|
-
`),
|
|
216
|
+
`),F}const q=Object.freeze(Object.defineProperty({__proto__:null,GlobalIlluminationPassParameters:N,build:_,defaultColorBleedWeight:E,defaultRayMarchMaxReach:H,defaultRayMarchMaxReachEmissionWeight:k,defaultRayMarchMaxSteps:U,defaultRayMarchMinReach:L,defaultRayMarchMinReachEmissionWeight:V,defaultRayMarchWorldReach:Q},Symbol.toStringTag,{value:"Module"}));export{N as G,q as a,U as b,_ as c,H as d,E as e,k as f,L as g,V as h,Q as i};
|
package/config.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.
|
|
2
|
+
import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.2.0-next.106";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let r,s=e;function i(o){r=o}function t(e){const s=r?.findCredential(e);return s?.token?o(e,"token",s.token):e}s="5.2.0-next.
|
|
2
|
+
import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.2";let r,s=e;function i(o){r=o}function t(e){const s=r?.findCredential(e);return s?.token?o(e,"token",s.token):e}s="5.2.0-next.106",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,s as fullVersion,r as id,i as setId,e as version};
|
|
@@ -5,11 +5,13 @@ import type Extent from "../geometry/Extent.js";
|
|
|
5
5
|
import type Layer from "./Layer.js";
|
|
6
6
|
import type AnnotationFeatureSublayer from "./support/AnnotationFeatureSublayer.js";
|
|
7
7
|
import type Field from "./support/Field.js";
|
|
8
|
+
import type PortalItem from "../portal/PortalItem.js";
|
|
8
9
|
import type FeatureSet from "../rest/support/FeatureSet.js";
|
|
9
10
|
import type Query from "../rest/support/Query.js";
|
|
10
11
|
import type { ClonableMixin } from "../core/Clonable.js";
|
|
11
12
|
import type { MultiOriginJSONSupportMixin } from "../core/MultiOriginJSONSupport.js";
|
|
12
13
|
import type { LayerEvents, LayerProperties } from "./Layer.js";
|
|
14
|
+
import type { LayerSaveAsOptions, LayerSaveOptions } from "./types.js";
|
|
13
15
|
import type { APIKeyMixin, APIKeyMixinProperties } from "./mixins/APIKeyMixin.js";
|
|
14
16
|
import type { BlendLayer, BlendLayerProperties } from "./mixins/BlendLayer.js";
|
|
15
17
|
import type { CustomParametersMixin, CustomParametersMixinProperties } from "./mixins/CustomParametersMixin.js";
|
|
@@ -20,6 +22,7 @@ import type { PortalLayer, PortalLayerProperties } from "./mixins/PortalLayer.js
|
|
|
20
22
|
import type { RefreshableLayer, RefreshableLayerEvents, RefreshableLayerProperties } from "./mixins/RefreshableLayer.js";
|
|
21
23
|
import type { ScaleRangeLayer, ScaleRangeLayerProperties } from "./mixins/ScaleRangeLayer.js";
|
|
22
24
|
import type { TemporalLayer, TemporalLayerProperties } from "./mixins/TemporalLayer.js";
|
|
25
|
+
import type { PortalItemProperties } from "../portal/PortalItem.js";
|
|
23
26
|
import type { RequestOptions } from "../request/types.js";
|
|
24
27
|
import type { QueryProperties } from "../rest/support/Query.js";
|
|
25
28
|
import type { CreatePopupTemplateOptions } from "../support/popupUtils.js";
|
|
@@ -433,5 +436,24 @@ export default class AnnotationFeatureLayer extends AnnotationFeatureLayerSuperc
|
|
|
433
436
|
* ```
|
|
434
437
|
*/
|
|
435
438
|
queryObjectIds(query?: QueryProperties | null | undefined, options?: RequestOptions): Promise<ObjectId[]>;
|
|
439
|
+
/**
|
|
440
|
+
* Saves the layer to its existing portal item in the [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/) authenticated within the user's current session. If the layer is not saved to a [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/), then you should use [saveAs()](https://developers.arcgis.com/javascript/latest/references/core/layers/AnnotationFeatureLayer/#saveAs).
|
|
441
|
+
*
|
|
442
|
+
* @param options - Various options for saving the layer.
|
|
443
|
+
* @returns When resolved, returns the portal item to which the layer is saved.
|
|
444
|
+
* @example const portalItem = await layer.save();
|
|
445
|
+
*/
|
|
446
|
+
save(options?: LayerSaveOptions): Promise<PortalItem>;
|
|
447
|
+
/**
|
|
448
|
+
* Saves the layer to a new portal item in the [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/) authenticated within the user's current session.
|
|
449
|
+
*
|
|
450
|
+
* @param portalItem - The portal item to which the layer will be saved.
|
|
451
|
+
* @param options - Various options for saving the layer.
|
|
452
|
+
* @returns When resolved, returns the portal item to which the layer is saved.
|
|
453
|
+
* @example
|
|
454
|
+
* const portalItem = new PortalItem();
|
|
455
|
+
* await layer.saveAs(portalItem);
|
|
456
|
+
*/
|
|
457
|
+
saveAs(portalItem: PortalItemProperties, options?: LayerSaveAsOptions): Promise<PortalItem>;
|
|
436
458
|
}
|
|
437
459
|
declare const AnnotationFeatureLayerSuperclass: typeof Layer & typeof ClonableMixin & typeof APIKeyMixin & typeof CustomParametersMixin & typeof MultiOriginJSONSupportMixin & typeof PortalLayer & typeof OperationalLayer & typeof RefreshableLayer & typeof ScaleRangeLayer & typeof EditBusLayer & typeof TemporalLayer & typeof BlendLayer & typeof FeatureLayerBase
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import i from"../PopupTemplate.js";import s from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as u}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as d,whenOrAbort as y,onAbort as m}from"../core/promiseUtils.js";import{watch as h,sync as c}from"../core/reactiveUtils.js";import{property as f,subclass as b}from"../core/accessorSupport/decorators.js";import v from"../geometry/SpatialReference.js";import g from"../graphic/AnnotationFeatureGraphicOrigin.js";import S from"./Layer.js";import{APIKeyMixin as j}from"./mixins/APIKeyMixin.js";import{ArcGISService as F}from"./mixins/ArcGISService.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{CustomParametersMixin as w}from"./mixins/CustomParametersMixin.js";import{DataElementMixin as I}from"./mixins/DataElementMixin.js";import{EditBusLayer as x}from"./mixins/EditBusLayer.js";import{FeatureLayerBase as E}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as O}from"./mixins/OperationalLayer.js";import{PortalLayer as T}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as C}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as _}from"./mixins/TemporalLayer.js";import A from"./support/AnnotationFeatureSublayer.js";import{parse as q,cleanTitle as k,titleFromUrlAndName as D}from"./support/arcgisLayerUrl.js";import{barrierWeight as M,id as U,popupEnabled as G}from"./support/commonProperties.js";import{ensureLayerCredential as R,createQuery as N,getFieldDomain as Q,hasDataChanged as H}from"./support/featureLayerUtils.js";import{defineFieldProperties as J}from"./support/fieldProperties.js";import{fixTimeInfoFields as $}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as V}from"./support/versionUtils.js";import B from"../rest/support/Query.js";import{createPopupTemplate as K}from"../support/popupUtils.js";import{reader as W}from"../core/accessorSupport/decorators/reader.js";const Z="annotation-feature-layer",z=J(),X=a.ofType(A);let Y=class extends(I(E(L(_(x(C(P(F(O(T(u(w(j(o(S))))))))))))))){constructor(e){super(e),this._sublayerLookup=new Map,this.barrierWeight="high",this.elementField="element",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new g(this,null),this.operationalLayerType="ArcGISAnnotationLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.referenceScale=0,this.source=null,this.statusField="status",this.sublayers=new X,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Annotation Layer"]),this.symbolCollection=null,this.type="annotation-feature",this.unplacedAnnotationsVisible=!1,this.addHandles(h(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),c))}destroy(){this.source?.destroy()}load(e){const t=e?.signal,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(d).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url)throw new n(`${Z}:missing-url`,"AnnotationFeatureLayer must be created with a url");return Promise.all([this.loadDataElement(e).then(()=>{if(!this.symbolCollection)throw new n(`${Z}:missing-symbol-collection`,"Invalid service with no symbol collection")}),this.initLayerProperties(await this.createGraphicsSource(t))])}).then(()=>R(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readSublayers(e,t){const r=new X(t.subtypes.map(({code:e})=>new A({subtypeCode:e})).reverse());if(this.visibleLayers){const e=new Set(this.visibleLayers);r.forEach(t=>{t.visible=e.has(t.subtypeCode)})}return r}readTitleFromService(e,t){const{url:r}=this,i=t.name||q(r)?.title;switch(this.sublayerTitleMode){case"item-title":if(r)return D(r,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=k(e),i?`${e} - ${k(i)}`:e;break}}return i?k(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get visibleLayers(){return 0===this.sublayers.length?this._get("visibleLayers")??null:Array.from(new Set(this.sublayers?.toArray().filter(e=>e.visible).map(e=>e.subtypeCode).sort((e,t)=>e-t)??null))}set visibleLayers(e){this._set("visibleLayers",e)}createPopupTemplate(e){return K(this,e)}async createGraphicsSource(r){const i={stack:[],error:void 0,hasError:!1};try{const{default:t}=await y(import("./graphics/sources/FeatureLayerSource.js"),r),s=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,l(m(r,()=>s.cancelLoad())??p()),!1);return await s.load({signal:r}),s}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}createQuery(){const e=N(this);return e.where=this.definitionExpression||"1=1",e}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){return Q(this,e,t,this.getField(e)?.domain??null)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(B.from(e)??r.createQuery(),t);if(i?.features)for(const s of i.features){const e=this.findSublayerForFeature(s);s.origin=e?.graphicOrigin??this.graphicOrigin,s.layer=s.sourceLayer=this}return i}async queryObjectIds(e,t){const r=await this.load();return r.source.queryObjectIds(B.from(e)??r.createQuery(),t)}async queryFeatureCount(e,t){const r=await this.load();return r.source.queryFeatureCount(B.from(e)??r.createQuery(),t)}async queryExtent(e,t){const r=await this.load();return r.source.queryExtent(B.from(e)??r.createQuery(),t)}serviceSupportsSpatialReference(e){return this.loaded&&V(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),$(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return H(this)}_verifySource(){if(this.version&&this.version<10.8)throw new n(Z+":unsupported-version","The feature service must be version 10.8 or above.");const e=["ZOrder","AnnotationClassID","Element","SymbolID","Status"],t=e.filter(e=>!this.fieldsIndex.has(e));if(this.fieldsIndex.has("FeatureID")||this.fieldsIndex.has("FeatureGlobalID")||t.unshift("FeatureID","FeatureGlobalID"),t.length)throw new n(Z+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:t})}_fetchFirstValidLayerId(e){return s(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(!t)return;this.applyPreferredHost(t);const r=[...t.layers||[],...t.tables||[]];return r.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}};r([f({type:v,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],Y.prototype,"attributeSpatialReference",void 0),r([f(M)],Y.prototype,"barrierWeight",void 0),r([f({json:{write:!0}})],Y.prototype,"editingEnabled",null),r([f({readOnly:!0})],Y.prototype,"elementField",void 0),r([f({readOnly:!0})],Y.prototype,"effectiveEditingEnabled",null),r([f({...z.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],Y.prototype,"fields",void 0),r([f(z.fieldsIndex)],Y.prototype,"fieldsIndex",void 0),r([f({readOnly:!0})],Y.prototype,"graphicOrigin",void 0),r([f(U)],Y.prototype,"id",void 0),r([f({type:["ArcGISAnnotationLayer"]})],Y.prototype,"operationalLayerType",void 0),r([f(z.outFields)],Y.prototype,"outFields",void 0),r([f(G)],Y.prototype,"popupEnabled",void 0),r([f({type:i,json:{name:"popupInfo",write:!0}})],Y.prototype,"popupTemplate",void 0),r([f({readOnly:!0})],Y.prototype,"defaultPopupTemplate",null),r([f({readOnly:!0})],Y.prototype,"referenceScale",void 0),r([f({clonable:!1,readOnly:!0})],Y.prototype,"source",void 0),r([f({readOnly:!0})],Y.prototype,"statusField",void 0),r([f({type:X})],Y.prototype,"sublayers",void 0),r([W("service","sublayers",["subtypes"])],Y.prototype,"readSublayers",null),r([f({type:String})],Y.prototype,"sublayerTitleMode",void 0),r([f({readOnly:!0})],Y.prototype,"symbolCollection",void 0),r([W("service","title",["name"])],Y.prototype,"readTitleFromService",null),r([W("portal-item","title")],Y.prototype,"readTitleFromPortalItem",null),r([f({json:{read:!1},value:"annotation-feature",readOnly:!0})],Y.prototype,"type",void 0),r([f()],Y.prototype,"unplacedAnnotationsVisible",void 0),r([f({type:[Number],json:{write:{ignoreOrigin:!0}}})],Y.prototype,"visibleLayers",null),Y=r([b("esri.layers.AnnotationFeatureLayer")],Y);const ee=Y;export{ee as default};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import i from"../PopupTemplate.js";import s from"../request.js";import{ClonableMixin as o}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p}from"../core/handleUtils.js";import{MultiOriginJSONSupportMixin as u}from"../core/MultiOriginJSONSupport.js";import{debounce as d,throwIfAbortError as y,whenOrAbort as c,onAbort as h}from"../core/promiseUtils.js";import{watch as m,sync as f}from"../core/reactiveUtils.js";import{property as b,subclass as v}from"../core/accessorSupport/decorators.js";import g from"../geometry/SpatialReference.js";import S from"../graphic/AnnotationFeatureGraphicOrigin.js";import j from"./Layer.js";import{APIKeyMixin as F}from"./mixins/APIKeyMixin.js";import{ArcGISService as w}from"./mixins/ArcGISService.js";import{BlendLayer as L}from"./mixins/BlendLayer.js";import{CustomParametersMixin as I}from"./mixins/CustomParametersMixin.js";import{DataElementMixin as O}from"./mixins/DataElementMixin.js";import{EditBusLayer as x}from"./mixins/EditBusLayer.js";import{FeatureLayerBase as E}from"./mixins/FeatureLayerBase.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as P}from"./mixins/PortalLayer.js";import{RefreshableLayer as _}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as C}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as A}from"./mixins/TemporalLayer.js";import q from"./support/AnnotationFeatureSublayer.js";import{parse as M,cleanTitle as k,titleFromUrlAndName as D}from"./support/arcgisLayerUrl.js";import{barrierWeight as U,id as G,popupEnabled as R}from"./support/commonProperties.js";import{ensureLayerCredential as N,createQuery as Q,getFieldDomain as H,hasDataChanged as J}from"./support/featureLayerUtils.js";import{defineFieldProperties as $}from"./support/fieldProperties.js";import{fixTimeInfoFields as V}from"./support/fieldUtils.js";import{serviceSupportsSpatialReference as B}from"./support/versionUtils.js";import K from"../rest/support/Query.js";import{createPopupTemplate as W}from"../support/popupUtils.js";import{reader as Z}from"../core/accessorSupport/decorators/reader.js";const z="annotation-feature-layer",X=$(),Y=a.ofType(q);function ee(e){return e.sublayers?.toArray().filter(e=>e.visible).map(e=>e.subtypeCode).sort((e,t)=>e-t)??null}let te=class extends(O(E(L(A(x(C(_(w(T(P(u(I(F(o(j))))))))))))))){constructor(e){super(e),this._sublayerLookup=new Map,this.barrierWeight="high",this.elementField="element",this.fields=null,this.fieldsIndex=null,this.graphicOrigin=new S(this,null),this.operationalLayerType="ArcGISAnnotationLayer",this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.referenceScale=0,this.source=null,this.statusField="status",this.sublayers=new Y,this.sublayerTitleMode="item-title",this.supportedSourceTypes=new Set(["Annotation Layer"]),this.symbolCollection=null,this.type="annotation-feature",this.unplacedAnnotationsVisible=!1,this._debouncedSaveOperations=d(async(e,t,r)=>{const{save:i,saveAs:s}=await(import("./save/featureLayerUtils.js"));switch(e){case 0:return i(this,t);case 1:return s(this,r,t)}}),this.addHandles(m(()=>this.sublayers,(e,t)=>this._handleSublayersChange(e,t),f))}destroy(){this.source?.destroy()}load(e){const t=e?.signal,r=this.loadFromPortal({supportedTypes:["Feature Service"]},e).catch(y).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url)throw new n(`${z}:missing-url`,"AnnotationFeatureLayer must be created with a url");return Promise.all([this.loadDataElement(e).then(()=>{if(!this.symbolCollection)throw new n(`${z}:missing-symbol-collection`,"Invalid service with no symbol collection")}),this.initLayerProperties(await this.createGraphicsSource(t))])}).then(()=>N(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get editingEnabled(){return this._isOverridden("editingEnabled")?this._get("editingEnabled"):this.loaded&&null!=this.capabilities&&this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}get effectiveEditingEnabled(){return!1}get defaultPopupTemplate(){return this.createPopupTemplate()}readSublayers(e,t){const r=new Y(t.subtypes.map(({code:e})=>new q({subtypeCode:e})).reverse());if(this.visibleLayers){const e=new Set(this.visibleLayers);r.forEach(t=>{t.visible=e.has(t.subtypeCode)})}return r}readTitleFromService(e,t){const{url:r}=this,i=t.name||M(r)?.title;switch(this.sublayerTitleMode){case"item-title":if(r)return D(r,i);break;case"item-title-and-service-name":{let e=this.portalItem?.title;if(e&&e!==i)return e=k(e),i?`${e} - ${k(i)}`:e;break}}return i?k(i):void 0}readTitleFromPortalItem(e){return"item-title"===this.sublayerTitleMode?e:void 0}get visibleLayers(){return 0===this.sublayers.length?this._get("visibleLayers")??null:Array.from(new Set(ee(this)))}set visibleLayers(e){this._set("visibleLayers",e)}createPopupTemplate(e){return W(this,e)}async createGraphicsSource(r){const i={stack:[],error:void 0,hasError:!1};try{const{default:t}=await c(import("./graphics/sources/FeatureLayerSource.js"),r),s=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,l(h(r,()=>s.cancelLoad())??p()),!1);return await s.load({signal:r}),s}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}createQuery(){const e=Q(this);return e.where=this.definitionExpression||"1=1",e}findSublayerForFeature(e){const t=this.fieldsIndex.get(this.subtypeField),r=e.attributes[t.name];return this.findSublayerForSubtypeCode(r)}findSublayerForSubtypeCode(e){return this._sublayerLookup.get(e)}getFieldDomain(e,t){return H(this,e,t,this.getField(e)?.domain??null)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(K.from(e)??r.createQuery(),t);if(i?.features)for(const s of i.features){const e=this.findSublayerForFeature(s);s.origin=e?.graphicOrigin??this.graphicOrigin,s.layer=s.sourceLayer=this}return i}async queryObjectIds(e,t){const r=await this.load();return r.source.queryObjectIds(K.from(e)??r.createQuery(),t)}async queryFeatureCount(e,t){const r=await this.load();return r.source.queryFeatureCount(K.from(e)??r.createQuery(),t)}async queryExtent(e,t){const r=await this.load();return r.source.queryExtent(K.from(e)??r.createQuery(),t)}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}serviceSupportsSpatialReference(e){return this.loaded&&B(this,e)}async initLayerProperties(e){this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),V(this.timeInfo,this.fieldsIndex)}async hasDataChanged(){return J(this)}_verifySource(){if(this.version&&this.version<10.8)throw new n(z+":unsupported-version","The feature service must be version 10.8 or above.");const e=["ZOrder","AnnotationClassID","Element","SymbolID","Status"],t=e.filter(e=>!this.fieldsIndex.has(e));if(this.fieldsIndex.has("FeatureID")||this.fieldsIndex.has("FeatureGlobalID")||t.unshift("FeatureID","FeatureGlobalID"),t.length)throw new n(z+":missing-fields","There are missing fields to operate properly",{requiredFields:e,missingFields:t})}_fetchFirstValidLayerId(e){return s(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(!t)return;this.applyPreferredHost(t);const r=[...t.layers||[],...t.tables||[]];return r.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id})}_handleSublayersChange(e,t){t&&(t.forEach(e=>{e.parent=null}),this.removeHandles("sublayers-owner"),this._sublayerLookup.clear()),e&&(e.forEach(e=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,this._sublayerLookup.set(e.subtypeCode,e)}),e.on("after-remove",({item:e})=>{e.parent=null,this._sublayerLookup.delete(e.subtypeCode)})],"sublayers-owner"))}};r([b({type:g,json:{origins:{service:{read:{source:"sourceSpatialReference"}}}}})],te.prototype,"attributeSpatialReference",void 0),r([b(U)],te.prototype,"barrierWeight",void 0),r([b({nonNullable:!0,json:{name:"enableEditing",write:!0}})],te.prototype,"editingEnabled",null),r([b({readOnly:!0})],te.prototype,"effectiveEditingEnabled",null),r([b({readOnly:!0})],te.prototype,"elementField",void 0),r([b({...X.fields,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],te.prototype,"fields",void 0),r([b(X.fieldsIndex)],te.prototype,"fieldsIndex",void 0),r([b({readOnly:!0,clonable:!1})],te.prototype,"graphicOrigin",void 0),r([b(G)],te.prototype,"id",void 0),r([b({type:["show","hide","hide-children"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],te.prototype,"listMode",void 0),r([b({type:["ArcGISAnnotationLayer"],json:{origins:{"portal-item":{name:"layerType",write:{enabled:!0,ignoreOrigin:!0,isRequired:!0}}}}})],te.prototype,"operationalLayerType",void 0),r([b(X.outFields)],te.prototype,"outFields",void 0),r([b(R)],te.prototype,"popupEnabled",void 0),r([b({type:i,json:{name:"popupInfo",write:!0}})],te.prototype,"popupTemplate",void 0),r([b({readOnly:!0})],te.prototype,"defaultPopupTemplate",null),r([b({readOnly:!0})],te.prototype,"referenceScale",void 0),r([b({clonable:!1,readOnly:!0})],te.prototype,"source",void 0),r([b({readOnly:!0})],te.prototype,"statusField",void 0),r([b({type:Y,json:{name:"layers",write:{ignoreOrigin:!0}}})],te.prototype,"sublayers",void 0),r([Z("service","sublayers",["subtypes"])],te.prototype,"readSublayers",null),r([b({type:String})],te.prototype,"sublayerTitleMode",void 0),r([b({readOnly:!0})],te.prototype,"symbolCollection",void 0),r([Z("service","title",["name"])],te.prototype,"readTitleFromService",null),r([Z("portal-item","title")],te.prototype,"readTitleFromPortalItem",null),r([b({json:{read:!1},value:"annotation-feature",readOnly:!0})],te.prototype,"type",void 0),r([b()],te.prototype,"unplacedAnnotationsVisible",void 0),r([b({type:[Number]})],te.prototype,"visibleLayers",null),te=r([v("esri.layers.AnnotationFeatureLayer")],te);const re=te;export{re as default};
|