@arcgis/core 5.1.0-next.60 → 5.1.0-next.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/{ab223c508f3dd562e7d3.js → 32e9e92bbbd000fbbaf7.js} +2 -2
  3. package/assets/esri/core/workers/chunks/{68475eba323b4aa892a3.js → 354351ab3fc79dedf9a8.js} +1 -1
  4. package/assets/esri/core/workers/chunks/45f1e682668cffc00b44.js +1 -0
  5. package/assets/esri/core/workers/chunks/4dbbf59c79d9e72f20ee.js +1 -0
  6. package/assets/esri/core/workers/chunks/{6172715b2b2853819d8a.js → 5eeb6d3a7b815d41621e.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{2f74147597805828cb38.js → 5ff41f43e57be0557541.js} +22 -29
  8. package/assets/esri/core/workers/chunks/{6355de3ee89916b74dae.js → 6b32b3f98872771ff81e.js} +1 -1
  9. package/assets/esri/core/workers/chunks/71326d16b5cc35c3ff7f.js +1 -0
  10. package/assets/esri/core/workers/chunks/{c69fefe9d51ac7c2b0a6.js → 75f7c1f600c4051bc905.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{8083dface1ca2dbd12b2.js → 811b378fa5bf8a4d3d66.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{8432ffc33843e898bab7.js → 8166ad6bbd7d7a8f91cf.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{58614f12796dbba013f4.js → 9d289cee96e7c7fe1029.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{c4da2ca1dee0c44051d0.js → 9d7ffd83f69d6e639f09.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{0622e238693c257abacb.js → 9eef3cd5f519c8ae88c0.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{2541ac6e0ed1184edc9b.js → af3bd661b355eed3da21.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{e4144ccc85ad4c76a9b7.js → af40e2e6eaf3d2226812.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{0fd191f9c10b3b7c83f4.js → c319c3b85cdec73a9f45.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{7e1ef2a55f8d123f31e2.js → cbb50415f7de8746ee1a.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{48d289db3145ce6c02bb.js → d4368e281c12fa7c17c5.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{266933f1139ed0e8919f.js → e645f992ec6f935ee3a5.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{bf4bad2c9a541cd425f5.js → e9dd60d0220036545ebb.js} +1 -1
  23. package/assets/esri/core/workers/chunks/ed60b5eaa5765bfcb99c.js +1 -0
  24. package/assets/esri/core/workers/chunks/{a226ba96d9a3ecc14e3e.js → f550fc8c078ebd47d7a3.js} +1 -1
  25. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  26. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable.json +1 -1
  27. package/assets/esri/widgets/FeatureTable/t9n/FeatureTable_en.json +1 -1
  28. package/chunks/GlowComposition.glsl.js +4 -5
  29. package/chunks/ShadowHighlight.glsl.js +5 -5
  30. package/config.js +1 -1
  31. package/geometry/libtess.js +1 -1
  32. package/geometry/support/curves/bezierCurveUtils.js +1 -1
  33. package/geometry/support/curves/circularArcUtils.js +1 -1
  34. package/geometry/support/curves/ellipticArc4Utils.js +1 -1
  35. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  36. package/interfaces.d.ts +14 -0
  37. package/kernel.js +1 -1
  38. package/layers/CSVLayer.d.ts +38 -6
  39. package/layers/CatalogLayer.d.ts +39 -8
  40. package/layers/FeatureLayer.d.ts +25 -23
  41. package/layers/GeoJSONLayer.d.ts +36 -6
  42. package/layers/ParquetLayer.d.ts +58 -0
  43. package/layers/SubtypeGroupLayer.d.ts +27 -25
  44. package/layers/WFSLayer.d.ts +51 -8
  45. package/layers/catalog/CatalogFootprintLayer.d.ts +37 -7
  46. package/layers/graphics/sources/csv/csv.js +1 -1
  47. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +41 -17
  48. package/layers/mixins/ArcGISImageService.d.ts +58 -0
  49. package/layers/mixins/ArcGISImageService.js +1 -1
  50. package/layers/raster/datasets/BaseRaster.js +1 -1
  51. package/layers/raster/datasets/ImageAuxRaster.js +1 -1
  52. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  53. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  54. package/layers/raster/formats/JpgPlus.js +1 -1
  55. package/layers/raster/formats/RasterCodec.js +1 -1
  56. package/layers/support/csvUtils.js +1 -1
  57. package/package.json +3 -3
  58. package/popup/Feature.d.ts +33 -35
  59. package/popup/Feature.js +1 -1
  60. package/popup/Features.d.ts +663 -0
  61. package/popup/Features.js +2 -0
  62. package/popup/support/FeatureAbilities.d.ts +30 -0
  63. package/popup/support/FeatureAbilities.js +2 -0
  64. package/support/revision.js +1 -1
  65. package/views/2d/analysis/analysisViewModuleImportUtils.js +1 -1
  66. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  67. package/views/2d/layerViewModuleImportUtils.js +1 -1
  68. package/views/3d/FocusAreasView.js +1 -1
  69. package/views/3d/analysis/analysisViewModuleImportUtils.js +1 -1
  70. package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
  71. package/views/3d/layerViewModuleImportUtils.js +1 -1
  72. package/views/3d/layers/I3SMeshView3D.js +1 -1
  73. package/views/3d/layers/graphics/Graphics3DTextSymbolLayer.js +1 -1
  74. package/views/3d/layers/graphics/tessellationUtils.js +1 -1
  75. package/views/3d/support/renderInfoUtils/polygon.js +1 -1
  76. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -11
  77. package/views/3d/webgl-engine/effects/focusArea/FocusAreaOutlineItem.js +1 -1
  78. package/views/3d/webgl-engine/effects/glow/GlowComposition.glsl.js +1 -1
  79. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  80. package/views/3d/webgl-engine/effects/highlight/{ScreenSpaceShadowHighlight.glsl.js → ShadowHighlightBuffer.glsl.js} +1 -1
  81. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.js +2 -0
  82. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBufferTechnique.js +2 -0
  83. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  84. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  85. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  86. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  87. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  88. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  89. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  90. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  91. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  92. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +11 -11
  93. package/views/3d/webgl-engine/shaders/ReceiveShadowsConfiguration.js +1 -1
  94. package/views/3d/webgl-engine/shaders/ditherNoise.glsl.js +2 -0
  95. package/views/3d/webgl.js +1 -1
  96. package/views/SceneView.js +1 -1
  97. package/views/draw/plugins/TangentArcSegmentPlugin.js +1 -1
  98. package/views/support/AnalysisViewManager.js +1 -1
  99. package/widgets/ElevationProfile/support/ElevationProfileView.js +1 -1
  100. package/widgets/ElevationProfile/support/ElevationProfileView3D.js +1 -1
  101. package/widgets/Feature/FeatureViewModel.d.ts +2 -1
  102. package/widgets/Feature/FeatureViewModel.js +1 -1
  103. package/widgets/Feature.js +1 -1
  104. package/widgets/FeatureTable/ColumnVisibilityMenuVisibleElements.d.ts +27 -0
  105. package/widgets/FeatureTable/ColumnVisibilityMenuVisibleElements.js +2 -0
  106. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +10 -1
  107. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  108. package/widgets/FeatureTable/TableMenuVisibleElements.d.ts +0 -1
  109. package/widgets/FeatureTable/TableMenuVisibleElements.js +1 -1
  110. package/widgets/FeatureTable/VisibleElements.d.ts +23 -1
  111. package/widgets/FeatureTable/VisibleElements.js +1 -1
  112. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  113. package/widgets/FeatureTable.d.ts +10 -1
  114. package/widgets/FeatureTable.js +1 -1
  115. package/widgets/Popup/actionUtils.js +1 -1
  116. package/widgets/Widget.js +1 -1
  117. package/assets/esri/core/workers/chunks/16806f5044a9da553b66.js +0 -1
  118. package/assets/esri/core/workers/chunks/5f3f50fec18d1642fdf9.js +0 -1
  119. package/assets/esri/core/workers/chunks/b42487c6a989e11a2559.js +0 -1
  120. package/assets/esri/core/workers/chunks/dba479176db0a23c8034.js +0 -1
  121. package/views/3d/webgl-engine/effects/highlight/ScreenSpaceShadowHighlightRenderNode.js +0 -2
  122. package/views/3d/webgl-engine/effects/highlight/ScreenSpaceShadowHighlightTechnique.js +0 -2
  123. package/views/3d/webgl-engine/shaders/Dithering.glsl.js +0 -4
  124. /package/assets/esri/core/workers/chunks/{ab223c508f3dd562e7d3.js.LICENSE.txt → 32e9e92bbbd000fbbaf7.js.LICENSE.txt} +0 -0
  125. /package/chunks/{ScreenSpaceShadowHighlight.glsl.js → ShadowHighlightBuffer.glsl.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{ReadDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatPassUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{If as s,glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DBindUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{RayDistanceFalloffPassParameters as d,RayDistanceFalloff as m}from"../views/3d/webgl-engine/effects/raymarching/RayDistanceFalloff.glsl.js";import{Dithering as c}from"../views/3d/webgl-engine/shaders/Dithering.glsl.js";import{oitResolution as p}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ScreenSpacePassAtmosphere as u}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{ToneMapping as g}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";class f extends d{constructor(){super(...arguments),this.glowLod=-1,this.minDisperse=new h([.8,.12,.05,.02,.01,0]),this.dispersionWeight=1,this.distanceModifier=1e-4}}function w(d){const f=new x,w=f.fragment,{blurEnabled:h,tonemappingEnabled:v}=d;return f.include(u,{needUVs:!0,needEyeDirection:!0}),w.include(o),w.include(m),w.include(e),f.outputs.add("fragColor","vec4",0),f.outputs.add("fragEmission","vec3",1),w.include(g),w.include(p,d),w.include(c,d),w.uniforms.add(new a("colorTexture",e=>e.color),new a("emissionTexture",e=>e.emission)),h?(w.uniforms.add(new n("depthTexture",e=>e.mainDepth),new r("distanceModifier",e=>e.distanceModifier),new a("lodTexture0",e=>e.lodTexture0),new a("lodTexture1",e=>e.lodTexture1),new a("lodTexture2",e=>e.lodTexture2),new a("lodTexture3",e=>e.lodTexture3),new a("lodTexture4",e=>e.lodTexture4),new t("glowLod",e=>e.glowLod),new i("minDisperse",6,e=>e.minDisperse.presets),new i("maxDisperse",6,e=>e.maxDisperse.presets),new r("dispersionWeight",e=>e.dispersionWeight)).main.add(l`
2
+ import{ReadDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/output/ReadDepth.glsl.js";import{Gamma as o}from"../views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js";import{FloatPassUniform as r}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{FloatsPassUniform as i}from"../views/3d/webgl-engine/core/shaderModules/FloatsPassUniform.js";import{If as s,glsl as l}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{IntegerPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/IntegerPassUniform.js";import{Texture2DBindUniform as a}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{RayDistanceFalloffPassParameters as d,RayDistanceFalloff as m}from"../views/3d/webgl-engine/effects/raymarching/RayDistanceFalloff.glsl.js";import{ditherNoise as c}from"../views/3d/webgl-engine/shaders/ditherNoise.glsl.js";import{oitResolution as p}from"../views/3d/webgl-engine/shaders/oitResolution.glsl.js";import{ScreenSpacePassAtmosphere as u}from"../views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js";import{ToneMapping as g}from"../views/3d/webgl-engine/shaders/ToneMapping.glsl.js";import{ShaderBuilder as x}from"../views/webgl/ShaderBuilder.js";class w extends d{constructor(){super(...arguments),this.glowLod=-1,this.minDisperse=new h([.8,.12,.05,.02,.01,0]),this.dispersionWeight=1,this.distanceModifier=1e-4}}function f(d){const w=new x,f=w.fragment,{blurEnabled:h,tonemappingEnabled:v}=d;return w.include(u,{needUVs:!0,needEyeDirection:!0}),f.include(o),f.include(m),f.include(e),w.outputs.add("fragColor","vec4",0),w.outputs.add("fragEmission","vec3",1),f.include(g),f.include(p,d),f.include(c,d),f.uniforms.add(new n("colorTexture",e=>e.color),new n("emissionTexture",e=>e.emission)),h?(f.uniforms.add(new a("depthTexture",e=>e.mainDepth),new r("distanceModifier",e=>e.distanceModifier),new n("lodTexture0",e=>e.lodTexture0),new n("lodTexture1",e=>e.lodTexture1),new n("lodTexture2",e=>e.lodTexture2),new n("lodTexture3",e=>e.lodTexture3),new n("lodTexture4",e=>e.lodTexture4),new t("glowLod",e=>e.glowLod),new i("minDisperse",6,e=>e.minDisperse.presets),new i("maxDisperse",6,e=>e.maxDisperse.presets),new r("dispersionWeight",e=>e.dispersionWeight)).main.add(l`
3
3
  vec4 color = texture(colorTexture, uv);
4
4
  color = vec4(linearizeGamma(color.rgb), color.a);
5
5
 
@@ -39,14 +39,13 @@ import{ReadDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/output/Re
39
39
  // only for glow editor lod debugging
40
40
  emission = glowLod == 0 ? lodFactor0 * lod0 : glowLod == 1 ? lodFactor1 * lod1 : glowLod == 2 ? lodFactor2 * lod2 : glowLod == 3 ? lodFactor3 * lod3 : glowLod == 4 ? lodFactor4 * lod4 : glowLod == 5 ? lodFactor5 * lod5 : emission;
41
41
 
42
- fragEmission = emission;
43
- fragEmission.rgb = emission.rgb * floatBlendOutputScale + ditherNoise();
42
+ fragEmission.rgb = emission.rgb * floatBlendOutputScale + ditherNoise(vec4(emission, color.a));
44
43
 
45
44
  // tonemapping is only applied to the emissive part since main color values are not in HDR.
46
45
  ${s(v,"emission = tonemapKhronosNeutral(emission, 1.0);")}
47
46
 
48
47
  fragColor = delinearizeGamma(vec4(color.rgb + emission.rgb, color.w));
49
- `),f):(w.main.add(l`
48
+ `),w):(f.main.add(l`
50
49
  vec4 color = texture(colorTexture, uv);
51
50
  color = vec4(linearizeGamma(color.rgb), color.a);
52
51
 
@@ -55,4 +54,4 @@ import{ReadDepth as e}from"../views/3d/webgl-engine/core/shaderLibrary/output/Re
55
54
 
56
55
  ${s(v,"emission = tonemapKhronosNeutral(emission, 1.0);")}
57
56
  fragColor = delinearizeGamma(vec4(color.rgb + emission, color.w));
58
- `),f)}class h{constructor(e,o=!0){this.presets=e,this.presets=v(e,o)}}function v(e,o,r=1){const i=e[0]+e[1]+e[2]+e[3]+e[4]+e[5];return!o||i<=r?e:[e[0]/i,e[1]/i,e[2]/i,e[3]/i,e[4]/i,e[5]/i]}function b(e,o,r=1){return[e[0]*(1-r)+o[0]*r,e[1]*(1-r)+o[1]*r,e[2]*(1-r)+o[2]*r,e[3]*(1-r)+o[3]*r,e[4]*(1-r)+o[4]*r,e[5]*(1-r)+o[5]*r]}const D=Object.freeze(Object.defineProperty({__proto__:null,GlowCompositionPassParameters:f,GlowLodFactors:h,build:w,mixPreset:b},Symbol.toStringTag,{value:"Module"}));export{f as G,h as a,D as b,w as c,b as m};
57
+ `),w)}class h{constructor(e,o=!0){this.presets=e,this.presets=v(e,o)}}function v(e,o,r=1){const i=e[0]+e[1]+e[2]+e[3]+e[4]+e[5];return!o||i<=r?e:[e[0]/i,e[1]/i,e[2]/i,e[3]/i,e[4]/i,e[5]/i]}function b(e,o,r=1){return[e[0]*(1-r)+o[0]*r,e[1]*(1-r)+o[1]*r,e[2]*(1-r)+o[2]*r,e[3]*(1-r)+o[3]*r,e[4]*(1-r)+o[4]*r,e[5]*(1-r)+o[5]*r]}const D=Object.freeze(Object.defineProperty({__proto__:null,GlowCompositionPassParameters:w,GlowLodFactors:h,build:f,mixPreset:b},Symbol.toStringTag,{value:"Module"}));export{w as G,h as a,D as b,f as c,b as m};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as r}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as o}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ShadowmapFiltering as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js";import{Float3BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as n}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as d}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";const w=.025;function p(r){const p=new m;p.include(a),p.include(l),p.include(t),p.include(o);const v=p.fragment;return v.uniforms.add(new c("shadowMapExcludingHighlight",({shadowMap:e})=>e.getOutput(7)),new s("screenSpaceShadowHighlight",({screenSpaceShadowHighlightFbo:e})=>e?.getTexture()),new s("depthMap",e=>e.mainDepth),new u("highlightTexture",e=>e.highlightTexture),new g("uColor",e=>e.shadowColor),new n("opacity",e=>e.shadowOpacity),new n("occludedOpacity",e=>e.occludedShadowOpacity),new n("terminationFactor",e=>e.opacityElevation*e.dayNightTerminator),new h("lightingMainDirectionView",({lighting:r,camera:o})=>e(f,i(f,r.mainLight.direction,o.viewInverseTransposeMatrix)))),v.main.add(d`
2
+ import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3.js";import{create as o}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{NormalFromDepth as r}from"../views/3d/webgl-engine/core/shaderLibrary/NormalFromDepth.glsl.js";import{ScreenSpacePass as t}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{calculateUVZShadowFromDepthPass as a}from"../views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js";import{ShadowmapFiltering as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js";import{Float3BindUniform as h}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{Float4PassUniform as g}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as d}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as n}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{Texture2DShadowBindUniform as c}from"../views/3d/webgl-engine/core/shaderModules/Texture2DShadowBindUniform.js";import{Texture2DUintPassUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DUintPassUniform.js";import{ShaderBuilder as m}from"../views/webgl/ShaderBuilder.js";const w=.025;function p(o){const p=new m;p.include(a),p.include(l),p.include(t),p.include(r);const v=p.fragment;return v.uniforms.add(new c("shadowMapExcludingHighlight",({shadowMap:e})=>e.getOutput(7)),new s("shadowHighlight",({shadowHighlight:e})=>e?.getTexture()),new s("depthMap",e=>e.mainDepth),new u("highlightTexture",e=>e.highlightTexture),new g("uColor",e=>e.shadowColor),new d("opacity",e=>e.shadowOpacity),new d("occludedOpacity",e=>e.occludedShadowOpacity),new d("terminationFactor",e=>e.opacityElevation*e.dayNightTerminator),new h("lightingMainDirectionView",({lighting:o,camera:r})=>e(f,i(f,o.mainLight.direction,r.viewInverseTransposeMatrix)))),v.main.add(n`
3
3
  ivec2 highlightTextureSize = textureSize(highlightTexture, 0);
4
4
  ivec2 highlightIUV = ivec2(uv * vec2(highlightTextureSize));
5
5
  uvec2 highlightInfo = texelFetch(highlightTexture, highlightIUV, 0).rg;
@@ -14,9 +14,9 @@ import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3
14
14
  return;
15
15
  }
16
16
 
17
- // screenSpaceShadowHighlight is rendered as a full-resolution screen-space buffer, so the current
17
+ // shadowHighlight is rendered as a full-resolution screen-space buffer, so the current
18
18
  // framebuffer pixel maps directly to the corresponding texel in the screen-space highlight texture.
19
- float shadowHighlightFactor = texelFetch(screenSpaceShadowHighlight, ivec2(gl_FragCoord.xy), 0).r;
19
+ float shadowHighlightFactor = texelFetch(shadowHighlight, ivec2(gl_FragCoord.xy), 0).r;
20
20
  if (shadowHighlightFactor == 0.0) {
21
21
  return;
22
22
  }
@@ -35,9 +35,9 @@ import{normalize as e,transformMat4 as i}from"../core/libs/gl-matrix-2/math/vec3
35
35
  float shadowExcludingHighlightFactor = readShadowMapUVZ(uvzShadow, shadowMapExcludingHighlight);
36
36
 
37
37
  vec3 normal = normalFromDepth(depthMap, currentPixelPos.xyz, gl_FragCoord.xy, uv);
38
- bool shaded = dot(normal, lightingMainDirectionView) < ${d.float(w)};
38
+ bool shaded = dot(normal, lightingMainDirectionView) < ${n.float(w)};
39
39
 
40
40
  float occludedFactor = max(shadowExcludingHighlightFactor, shaded ? 1.0 : 0.0);
41
41
  float fragOpacity = mix(opacity, occludedOpacity, occludedFactor);
42
42
  fragColor = vec4(uColor.rgb, uColor.a * fragOpacity * terminationFactor);
43
- `),p}const f=r(),v=Object.freeze(Object.defineProperty({__proto__:null,build:p},Symbol.toStringTag,{value:"Module"}));export{v as S,p as b};
43
+ `),p}const f=o(),v=Object.freeze(Object.defineProperty({__proto__:null,build:p},Symbol.toStringTag,{value:"Module"}));export{v as S,p as b};
package/config.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.60";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
2
+ import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.1.0-next.62";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__addDisposableResource as t,__disposeResources as e}from"tslib";import{getAssetUrl as r}from"../assets.js";import n from"../core/Error.js";import has from"../core/has.js";import{roundUpToNearest as s}from"../core/mathUtils.js";let i=null,o=null,l=null,a=null;const u=100903,c=4,E={vertices:new Float32Array(0),indices:new Uint32Array(0),outlineIndices:new Uint32Array(0),outlineRingLengths:new Uint32Array(0),vertexCount:0,indexCount:0,outlineIndexCount:0,outlineRingCount:0},d={vertices:new Float64Array(0),indices:new Uint32Array(0),outlineIndices:new Uint32Array(0),outlineRingLengths:new Uint32Array(0),vertexCount:0,indexCount:0,outlineIndexCount:0,outlineRingCount:0},h=2,p=2;function g(t,e){const r=t.reduce((t,e)=>t+e,0),n=t.length,i=Math.max(0,t.length-1),o=Math.max(0,r+2*i-2),l=Math.max(0,Math.ceil(r*h)),a=Math.max(0,Math.ceil(3*o*p)),u=s(a,3),c=r>0?Math.max(2,Math.ceil(.25*r)):0,E=r>0?Math.max(1,Math.ceil(c/3)):0;return{maxVertexCount:l,maxIndexCount:u,maxOutlineIndexCount:e?Math.max(0,r+n+c):0,maxOutlineRingCount:e?Math.max(0,n+E):0}}async function y(){return i??=x(),i}function f(){return null!==l}async function b(){return o??=C(),o}function w(){return null!==a}async function x(){const t=await import("../chunks/libtess-f32.js"),e=await t.default({locateFile:t=>r(`esri/core/libs/libtess/${t}`)});l=e}async function C(){const t=await import("../chunks/libtess-f64.js"),e=await t.default({locateFile:t=>r(`esri/core/libs/libtess/${t}`)});a=e}function m(r,s,i=2){const o={stack:[],error:void 0,hasError:!1};try{const e=l;if(!e)throw new n("libtess:not-loaded","libtessF32 not loaded");const a=t(o,P.from(e,r),!1),u=t(o,v.from(e,s),!1),E=c*(r.length/i),d=t(o,new P(e,E*i),!1),h=e.triangulate(a.ptr,u.ptr,u.size,i,d.ptr,E);if(has("esri-tessellation-debug")){const t=e.getError();0!==t&&console.warn("libtess:triangulation",B(t))}return{buffer:d.slice(0,h*i),vertexCount:h}}catch(a){o.error=a,o.hasError=!0}finally{e(o)}}function _(r,s,i=2,o=!0){const a={stack:[],error:void 0,hasError:!1};try{const d=l;if(!d)throw new n("libtess:not-loaded","libtessF32 not loaded");const h=t(a,P.from(d,r),!1),p=t(a,v.from(d,s),!1),y=t(a,new v(d,1),!1),f=t(a,new v(d,1),!1),b=t(a,new v(d,1),!1),w=t(a,new v(d,1),!1),{maxVertexCount:x,maxIndexCount:C,maxOutlineIndexCount:m,maxOutlineRingCount:_}=g(s,o);let I=0,R=0,T=0,A=0,L=0;{const r={stack:[],error:void 0,hasError:!1};try{const e=t(r,new P(d,x*i),!1),n=t(r,new v(d,C),!1),s=t(r,o?new v(d,m):null,!1),l=t(r,o?new v(d,_):null,!1);if(d.triangulateIndexed(h.ptr,p.ptr,p.size,i,e.ptr,x,i,n.ptr,C,y.ptr,f.ptr,s?.ptr??0,m,l?.ptr??0,_,b.ptr,w.ptr),L=d.getError(),I=M(d)[y.ptr/Int32Array.BYTES_PER_ELEMENT],R=M(d)[f.ptr/Int32Array.BYTES_PER_ELEMENT],T=M(d)[b.ptr/Int32Array.BYTES_PER_ELEMENT],A=M(d)[w.ptr/Int32Array.BYTES_PER_ELEMENT],0===L){const t=e.slice(0,I*i),r=n.slice(0,R),a=o&&s?s.slice(0,T):E.outlineIndices;return{vertices:t,indices:r,outlineIndices:a,outlineRingLengths:o&&l?l.slice(0,A):E.outlineRingLengths,vertexCount:I,indexCount:R,outlineIndexCount:o?T:0,outlineRingCount:o?A:0}}}catch(c){r.error=c,r.hasError=!0}finally{e(r)}}if(L!==u)return has("esri-tessellation-debug")&&0!==L&&console.warn("libtess:triangulation",B(L)),E;const S=t(a,new P(d,I*i),!1),N=t(a,new v(d,R),!1),Y=t(a,o?new v(d,T):null,!1),F=t(a,o?new v(d,A):null,!1);if(d.triangulateIndexed(h.ptr,p.ptr,p.size,i,S.ptr,I,i,N.ptr,R,y.ptr,f.ptr,Y?.ptr??0,o?T:0,F?.ptr??0,o?A:0,b.ptr,w.ptr),L=d.getError(),0!==L)return has("esri-tessellation-debug")&&console.warn("libtess:triangulation",B(L)),E;const k=M(d)[y.ptr/Int32Array.BYTES_PER_ELEMENT],z=M(d)[f.ptr/Int32Array.BYTES_PER_ELEMENT],U=M(d)[b.ptr/Int32Array.BYTES_PER_ELEMENT],O=M(d)[w.ptr/Int32Array.BYTES_PER_ELEMENT],j=S.slice(0,k*i),H=N.slice(0,z),V=o&&Y?Y.slice(0,U):E.outlineIndices;return{vertices:j,indices:H,outlineIndices:V,outlineRingLengths:o&&F?F.slice(0,O):E.outlineRingLengths,vertexCount:k,indexCount:z,outlineIndexCount:o?U:0,outlineRingCount:o?O:0}}catch(d){a.error=d,a.hasError=!0}finally{e(a)}}function I(r,s,i=2){const o={stack:[],error:void 0,hasError:!1};try{const e=a;if(!e)throw new n("libtess:not-loaded","libtessF64 not loaded");const l=t(o,S.from(e,r),!1),u=t(o,v.from(e,s),!1),E=c*(r.length/i),d=t(o,new S(e,E*i),!1),h=e.triangulate(l.ptr,u.ptr,u.size,i,d.ptr,E);if(has("esri-tessellation-debug")){const t=e.getError();0!==t&&console.warn("libtess:triangulation",B(t))}return{buffer:d.slice(0,h*i),vertexCount:h}}catch(l){o.error=l,o.hasError=!0}finally{e(o)}}function R(r,s,i=2,o=!0){const l={stack:[],error:void 0,hasError:!1};try{const E=a;if(!E)throw new n("libtess:not-loaded","libtessF64 not loaded");const h=t(l,S.from(E,r),!1),p=t(l,v.from(E,s),!1),y=t(l,new v(E,1),!1),f=t(l,new v(E,1),!1),b=t(l,new v(E,1),!1),w=t(l,new v(E,1),!1),{maxVertexCount:x,maxIndexCount:C,maxOutlineIndexCount:m,maxOutlineRingCount:_}=g(s,o);let I=0,R=0,T=0,A=0,L=0;{const r={stack:[],error:void 0,hasError:!1};try{const e=t(r,new S(E,x*i),!1),n=t(r,new v(E,C),!1),s=t(r,o?new v(E,m):null,!1),l=t(r,o?new v(E,_):null,!1);if(E.triangulateIndexed(h.ptr,p.ptr,p.size,i,e.ptr,x,i,n.ptr,C,y.ptr,f.ptr,s?.ptr??0,m,l?.ptr??0,_,b.ptr,w.ptr),L=E.getError(),I=M(E)[y.ptr/Int32Array.BYTES_PER_ELEMENT],R=M(E)[f.ptr/Int32Array.BYTES_PER_ELEMENT],T=M(E)[b.ptr/Int32Array.BYTES_PER_ELEMENT],A=M(E)[w.ptr/Int32Array.BYTES_PER_ELEMENT],0===L){const t=e.slice(0,I*i),r=n.slice(0,R),a=o&&s?s.slice(0,T):d.outlineIndices;return{vertices:t,indices:r,outlineIndices:a,outlineRingLengths:o&&l?l.slice(0,A):d.outlineRingLengths,vertexCount:I,indexCount:R,outlineIndexCount:o?T:0,outlineRingCount:o?A:0}}}catch(c){r.error=c,r.hasError=!0}finally{e(r)}}if(L!==u)return has("esri-tessellation-debug")&&console.warn("libtess:triangulation",B(L)),d;const P=t(l,new S(E,I*i),!1),N=t(l,new v(E,R),!1),Y=t(l,o?new v(E,T):null,!1),F=t(l,o?new v(E,A):null,!1);if(E.triangulateIndexed(h.ptr,p.ptr,p.size,i,P.ptr,I,i,N.ptr,R,y.ptr,f.ptr,Y?.ptr??0,o?T:0,F?.ptr??0,o?A:0,b.ptr,w.ptr),L=E.getError(),0!==L)return has("esri-tessellation-debug")&&console.warn("libtess:triangulation",B(L)),d;const k=M(E)[y.ptr/Int32Array.BYTES_PER_ELEMENT],z=M(E)[f.ptr/Int32Array.BYTES_PER_ELEMENT],U=M(E)[b.ptr/Int32Array.BYTES_PER_ELEMENT],O=M(E)[w.ptr/Int32Array.BYTES_PER_ELEMENT],j=P.slice(0,k*i),H=N.slice(0,z),V=o&&Y?Y.slice(0,U):d.outlineIndices;return{vertices:j,indices:H,outlineIndices:V,outlineRingLengths:o&&F?F.slice(0,O):d.outlineRingLengths,vertexCount:k,indexCount:z,outlineIndexCount:o?U:0,outlineRingCount:o?O:0}}catch(E){l.error=E,l.hasError=!0}finally{e(l)}}function T(t){return t.HEAPF64}function A(t){return t.HEAPF32}function M(t){return t.HEAP32}function L(t){const e=M(t);return new Uint32Array(e.buffer,e.byteOffset,e.length)}class P{static from(t,e){const r=new P(t,e.length);return r.set(e),r}constructor(t,e){this._libtess=t,this.size=e,this.ptr=t.allocateCoordinateArray(e)}destroy(){this._libtess.destroyCoordinateArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Float32Array.BYTES_PER_ELEMENT}set(t){A(this._libtess).set(t,this.ptr/this.bytesPerCoordinate)}slice(t,e){const r=this.ptr/this.bytesPerCoordinate;return A(this._libtess).slice(r+t,r+e)}}class S{static from(t,e){const r=new S(t,e.length);return r.set(e),r}constructor(t,e){this._libtess=t,this.size=e,this.ptr=t.allocateCoordinateArray(e)}destroy(){this._libtess.destroyCoordinateArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Float64Array.BYTES_PER_ELEMENT}set(t){T(this._libtess).set(t,this.ptr/this.bytesPerCoordinate)}slice(t,e){const r=this.ptr/this.bytesPerCoordinate;return T(this._libtess).slice(r+t,r+e)}}class v{static from(t,e){const r=new v(t,e.length);return r.set(e),r}constructor(t,e){this._libtess=t,this.size=e,this.ptr=t.allocateLengthsArray(e)}destroy(){this._libtess.destroyLengthsArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Int32Array.BYTES_PER_ELEMENT}set(t){M(this._libtess).set(t,this.ptr/this.bytesPerCoordinate)}slice(t,e){const r=this.ptr/this.bytesPerCoordinate;return L(this._libtess).slice(r+t,r+e)}}function B(t){switch(t){case 100903:return"Insufficient output buffer";case 100902:return"Out of memory";case 100151:return"Missing begin polygon";case 100152:return"Missing begin contour";case 100153:return"Missing end polygon";case 100154:return"Missing end countour";case 100155:return"Coordinates too large";case 100156:return"Missing combine callback";default:return`Unknown: ${t}`}}export{f as isLibtessF32Loaded,w as isLibtessF64Loaded,y as loadLibtessF32,b as loadLibtessF64,m as triangulateF32,I as triangulateF64,_ as triangulateIndexedF32,R as triangulateIndexedF64};
2
+ import{__addDisposableResource as t,__disposeResources as e}from"tslib";import{getAssetUrl as r}from"../assets.js";import n from"../core/Error.js";import has from"../core/has.js";import{roundUpToNearest as s}from"../core/mathUtils.js";let i=null,o=null,l=null,a=null;const u=100903,c=4,E={vertices:new Float32Array(0),indices:new Uint32Array(0),outlineIndices:new Uint32Array(0),outlineRingLengths:new Uint32Array(0),vertexCount:0,indexCount:0,outlineIndexCount:0,outlineRingCount:0},d={vertices:new Float64Array(0),indices:new Uint32Array(0),outlineIndices:new Uint32Array(0),outlineRingLengths:new Uint32Array(0),vertexCount:0,indexCount:0,outlineIndexCount:0,outlineRingCount:0},h=2,p=2;function g(t,e){const r=t.reduce((t,e)=>t+e,0),n=t.length,i=Math.max(0,t.length-1),o=Math.max(0,r+2*i-2),l=Math.max(0,Math.ceil(r*h)),a=Math.max(0,Math.ceil(3*o*p)),u=s(a,3),c=r>0?Math.max(2,Math.ceil(.25*r)):0,E=r>0?Math.max(1,Math.ceil(c/3)):0;return{maxVertexCount:l,maxIndexCount:u,maxOutlineIndexCount:e?Math.max(0,r+n+c):0,maxOutlineRingCount:e?Math.max(0,n+E):0}}async function y(){return i??=C(),i}function f(){return null!==l}async function b(){return o??=m(),o}function w(){return null!==a}function x(){i=null,o=null,l=null,a=null}async function C(){const t=await import("../chunks/libtess-f32.js"),e=await t.default({locateFile:t=>r(`esri/core/libs/libtess/${t}`)});l=e}async function m(){const t=await import("../chunks/libtess-f64.js"),e=await t.default({locateFile:t=>r(`esri/core/libs/libtess/${t}`)});a=e}function _(r,s,i=2){const o={stack:[],error:void 0,hasError:!1};try{const e=l;if(!e)throw new n("libtess:not-loaded","libtessF32 not loaded");const a=t(o,S.from(e,r),!1),u=t(o,B.from(e,s),!1),E=c*(r.length/i),d=t(o,new S(e,E*i),!1),h=e.triangulate(a.ptr,u.ptr,u.size,i,d.ptr,E);if(has("esri-tessellation-debug")){const t=e.getError();0!==t&&console.warn("libtess:triangulation",N(t))}return{buffer:d.slice(0,h*i),vertexCount:h}}catch(a){o.error=a,o.hasError=!0}finally{e(o)}}function I(r,s,i=2,o=!0){const a={stack:[],error:void 0,hasError:!1};try{const d=l;if(!d)throw new n("libtess:not-loaded","libtessF32 not loaded");const h=t(a,S.from(d,r),!1),p=t(a,B.from(d,s),!1),y=t(a,new B(d,1),!1),f=t(a,new B(d,1),!1),b=t(a,new B(d,1),!1),w=t(a,new B(d,1),!1),{maxVertexCount:x,maxIndexCount:C,maxOutlineIndexCount:m,maxOutlineRingCount:_}=g(s,o);let I=0,R=0,T=0,A=0,M=0;{const r={stack:[],error:void 0,hasError:!1};try{const e=t(r,new S(d,x*i),!1),n=t(r,new B(d,C),!1),s=t(r,o?new B(d,m):null,!1),l=t(r,o?new B(d,_):null,!1);if(d.triangulateIndexed(h.ptr,p.ptr,p.size,i,e.ptr,x,i,n.ptr,C,y.ptr,f.ptr,s?.ptr??0,m,l?.ptr??0,_,b.ptr,w.ptr),M=d.getError(),I=L(d)[y.ptr/Int32Array.BYTES_PER_ELEMENT],R=L(d)[f.ptr/Int32Array.BYTES_PER_ELEMENT],T=L(d)[b.ptr/Int32Array.BYTES_PER_ELEMENT],A=L(d)[w.ptr/Int32Array.BYTES_PER_ELEMENT],0===M){const t=e.slice(0,I*i),r=n.slice(0,R),a=o&&s?s.slice(0,T):E.outlineIndices;return{vertices:t,indices:r,outlineIndices:a,outlineRingLengths:o&&l?l.slice(0,A):E.outlineRingLengths,vertexCount:I,indexCount:R,outlineIndexCount:o?T:0,outlineRingCount:o?A:0}}}catch(c){r.error=c,r.hasError=!0}finally{e(r)}}if(M!==u)return has("esri-tessellation-debug")&&0!==M&&console.warn("libtess:triangulation",N(M)),E;const P=t(a,new S(d,I*i),!1),v=t(a,new B(d,R),!1),Y=t(a,o?new B(d,T):null,!1),F=t(a,o?new B(d,A):null,!1);if(d.triangulateIndexed(h.ptr,p.ptr,p.size,i,P.ptr,I,i,v.ptr,R,y.ptr,f.ptr,Y?.ptr??0,o?T:0,F?.ptr??0,o?A:0,b.ptr,w.ptr),M=d.getError(),0!==M)return has("esri-tessellation-debug")&&console.warn("libtess:triangulation",N(M)),E;const k=L(d)[y.ptr/Int32Array.BYTES_PER_ELEMENT],z=L(d)[f.ptr/Int32Array.BYTES_PER_ELEMENT],U=L(d)[b.ptr/Int32Array.BYTES_PER_ELEMENT],O=L(d)[w.ptr/Int32Array.BYTES_PER_ELEMENT],j=P.slice(0,k*i),H=v.slice(0,z),V=o&&Y?Y.slice(0,U):E.outlineIndices;return{vertices:j,indices:H,outlineIndices:V,outlineRingLengths:o&&F?F.slice(0,O):E.outlineRingLengths,vertexCount:k,indexCount:z,outlineIndexCount:o?U:0,outlineRingCount:o?O:0}}catch(d){a.error=d,a.hasError=!0}finally{e(a)}}function R(r,s,i=2){const o={stack:[],error:void 0,hasError:!1};try{const e=a;if(!e)throw new n("libtess:not-loaded","libtessF64 not loaded");const l=t(o,v.from(e,r),!1),u=t(o,B.from(e,s),!1),E=c*(r.length/i),d=t(o,new v(e,E*i),!1),h=e.triangulate(l.ptr,u.ptr,u.size,i,d.ptr,E);if(has("esri-tessellation-debug")){const t=e.getError();0!==t&&console.warn("libtess:triangulation",N(t))}return{buffer:d.slice(0,h*i),vertexCount:h}}catch(l){o.error=l,o.hasError=!0}finally{e(o)}}function T(r,s,i=2,o=!0){const l={stack:[],error:void 0,hasError:!1};try{const E=a;if(!E)throw new n("libtess:not-loaded","libtessF64 not loaded");const h=t(l,v.from(E,r),!1),p=t(l,B.from(E,s),!1),y=t(l,new B(E,1),!1),f=t(l,new B(E,1),!1),b=t(l,new B(E,1),!1),w=t(l,new B(E,1),!1),{maxVertexCount:x,maxIndexCount:C,maxOutlineIndexCount:m,maxOutlineRingCount:_}=g(s,o);let I=0,R=0,T=0,A=0,M=0;{const r={stack:[],error:void 0,hasError:!1};try{const e=t(r,new v(E,x*i),!1),n=t(r,new B(E,C),!1),s=t(r,o?new B(E,m):null,!1),l=t(r,o?new B(E,_):null,!1);if(E.triangulateIndexed(h.ptr,p.ptr,p.size,i,e.ptr,x,i,n.ptr,C,y.ptr,f.ptr,s?.ptr??0,m,l?.ptr??0,_,b.ptr,w.ptr),M=E.getError(),I=L(E)[y.ptr/Int32Array.BYTES_PER_ELEMENT],R=L(E)[f.ptr/Int32Array.BYTES_PER_ELEMENT],T=L(E)[b.ptr/Int32Array.BYTES_PER_ELEMENT],A=L(E)[w.ptr/Int32Array.BYTES_PER_ELEMENT],0===M){const t=e.slice(0,I*i),r=n.slice(0,R),a=o&&s?s.slice(0,T):d.outlineIndices;return{vertices:t,indices:r,outlineIndices:a,outlineRingLengths:o&&l?l.slice(0,A):d.outlineRingLengths,vertexCount:I,indexCount:R,outlineIndexCount:o?T:0,outlineRingCount:o?A:0}}}catch(c){r.error=c,r.hasError=!0}finally{e(r)}}if(M!==u)return has("esri-tessellation-debug")&&console.warn("libtess:triangulation",N(M)),d;const P=t(l,new v(E,I*i),!1),S=t(l,new B(E,R),!1),Y=t(l,o?new B(E,T):null,!1),F=t(l,o?new B(E,A):null,!1);if(E.triangulateIndexed(h.ptr,p.ptr,p.size,i,P.ptr,I,i,S.ptr,R,y.ptr,f.ptr,Y?.ptr??0,o?T:0,F?.ptr??0,o?A:0,b.ptr,w.ptr),M=E.getError(),0!==M)return has("esri-tessellation-debug")&&console.warn("libtess:triangulation",N(M)),d;const k=L(E)[y.ptr/Int32Array.BYTES_PER_ELEMENT],z=L(E)[f.ptr/Int32Array.BYTES_PER_ELEMENT],U=L(E)[b.ptr/Int32Array.BYTES_PER_ELEMENT],O=L(E)[w.ptr/Int32Array.BYTES_PER_ELEMENT],j=P.slice(0,k*i),H=S.slice(0,z),V=o&&Y?Y.slice(0,U):d.outlineIndices;return{vertices:j,indices:H,outlineIndices:V,outlineRingLengths:o&&F?F.slice(0,O):d.outlineRingLengths,vertexCount:k,indexCount:z,outlineIndexCount:o?U:0,outlineRingCount:o?O:0}}catch(E){l.error=E,l.hasError=!0}finally{e(l)}}function A(t){return t.HEAPF64}function M(t){return t.HEAPF32}function L(t){return t.HEAP32}function P(t){const e=L(t);return new Uint32Array(e.buffer,e.byteOffset,e.length)}class S{static from(t,e){const r=new S(t,e.length);return r.set(e),r}constructor(t,e){this._libtess=t,this.size=e,this.ptr=t.allocateCoordinateArray(e)}destroy(){this._libtess.destroyCoordinateArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Float32Array.BYTES_PER_ELEMENT}set(t){M(this._libtess).set(t,this.ptr/this.bytesPerCoordinate)}slice(t,e){const r=this.ptr/this.bytesPerCoordinate;return M(this._libtess).slice(r+t,r+e)}}class v{static from(t,e){const r=new v(t,e.length);return r.set(e),r}constructor(t,e){this._libtess=t,this.size=e,this.ptr=t.allocateCoordinateArray(e)}destroy(){this._libtess.destroyCoordinateArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Float64Array.BYTES_PER_ELEMENT}set(t){A(this._libtess).set(t,this.ptr/this.bytesPerCoordinate)}slice(t,e){const r=this.ptr/this.bytesPerCoordinate;return A(this._libtess).slice(r+t,r+e)}}class B{static from(t,e){const r=new B(t,e.length);return r.set(e),r}constructor(t,e){this._libtess=t,this.size=e,this.ptr=t.allocateLengthsArray(e)}destroy(){this._libtess.destroyLengthsArray(this.ptr)}[Symbol.dispose](){this.destroy()}get bytesPerCoordinate(){return Int32Array.BYTES_PER_ELEMENT}set(t){L(this._libtess).set(t,this.ptr/this.bytesPerCoordinate)}slice(t,e){const r=this.ptr/this.bytesPerCoordinate;return P(this._libtess).slice(r+t,r+e)}}function N(t){switch(t){case 100903:return"Insufficient output buffer";case 100902:return"Out of memory";case 100151:return"Missing begin polygon";case 100152:return"Missing begin contour";case 100153:return"Missing end polygon";case 100154:return"Missing end countour";case 100155:return"Coordinates too large";case 100156:return"Missing combine callback";default:return`Unknown: ${t}`}}export{f as isLibtessF32Loaded,w as isLibtessF64Loaded,y as loadLibtessF32,b as loadLibtessF64,_ as triangulateF32,R as triangulateF64,I as triangulateIndexedF32,T as triangulateIndexedF64,x as unload};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{floatEqualRelative as t,floatEqualAbsolute as n}from"../../../core/mathUtils.js";import{expandPointInPlace as o,containsXY as r,expandXInPlace as s,expandYInPlace as c}from"../aaBoundingRect.js";import{distance2 as u,interpolateSegment as e,findClosestAndFurthestCurveParametersToPoint as f}from"./mathUtils.js";const i=[0,0];function a(t){const n=1-t,o=n*n,r=t*t;return[o*n,3*t*o,3*r*n,r*t]}function h(t,n,o,r,s){const[c,u,e,f]=a(s);return[t[0]*c+n[0]*u+o[0]*e+r[0]*f,t[1]*c+n[1]*u+o[1]*e+r[1]*f]}function m(t,n,o,r,s){const[c,u,e,f]=a(s);return t*c+n*u+o*e+r*f}function b(t,n,o){const r=t,[s,c,u]=n.b;return h(r,c,u,s,o)}function p(t,n){const[o,r,s]=n.b;return o[0]!==s[0]||o[1]!==s[1]?[o[0]-s[0],o[1]-s[1]]:o[0]!==r[0]||o[1]!==r[1]?[o[0]-r[0],o[1]-r[1]]:[o[0]-t[0],o[1]-t[1]]}function M(t,n,o){const r=t,[s,c,u]=n.b,f=e([0,0],r,c,o),a=e(i,c,u,o),h=e([0,0],u,s,o),m=e([0,0],f,a,o),b=e([0,0],a,h,o);return[{b:[e([],m,b,o),f,m]},{b:[[...s],b,h]}]}function l(o,r,s){const c=o,[u,e,i]=r.b,a=f(s,[.1,.5,.9],t=>{const n=1-t,[o,r]=h(c,e,i,u,t);return[o,r,3*n*n*(e[0]-c[0])+6*n*t*(i[0]-e[0])+3*t*t*(u[0]-i[0]),3*n*n*(e[1]-c[1])+6*n*t*(i[1]-e[1])+3*t*t*(u[1]-i[1]),6*n*(i[0]-2*e[0]+c[0])+6*t*(u[0]-2*i[0]+e[0]),6*n*(i[1]-2*e[1]+c[1])+6*t*(u[1]-2*i[1]+e[1])]}).map(t=>Math.min(1,Math.max(0,t)));a.push(0,1);let m=1/0;const b=a.map(t=>{const n=h(c,e,i,u,t),[o,r]=n,f=s[0]-o,a=s[1]-r,b=Math.sqrt(f*f+a*a);return m=Math.min(b,m),{t,curvePoint:n,distance:b}}),p=[];for(const f of b){const{t:o,distance:r}=f;t(r,m)&&!p.some(({t})=>n(t,o))&&p.push(f)}return p}function q(t,n,u){const e=n,[f,i,a]=u.b;if(o(t,e),o(t,f),r(t,i[0],i[1])&&r(t,a[0],a[1]))return t;for(const o of d(e[0],i[0],a[0],f[0]))o>0&&o<1&&s(t,m(e[0],i[0],a[0],f[0],o));for(const o of d(e[1],i[1],a[1],f[1]))o>0&&o<1&&c(t,m(e[1],i[1],a[1],f[1],o));return t}function d(t,n,o,r){const s=3*(3*(n-o)-t+r),c=6*(t-2*n+o),u=3*(n-t);if(0===s)return 0!==c?[-u/c]:[];const e=Math.sqrt(c*c-4*s*u);return[(-c+e)/(2*s),(-c-e)/(2*s)]}function j(t,n,o){const r=16;let s=0,c=[n];for(let e=0;e<r;e++){let n=t;const r=[];for(const t of c)r.push(...M(n,t,.5)),n=t.b[0];c=r,n=t,s=0;let e=0;for(const t of c){const[o,r,c]=t.b,f=Math.sqrt(u(n,o));s+=(f+(Math.sqrt(u(n,r))+Math.sqrt(u(r,c))+Math.sqrt(u(c,o))))/2,e+=f,n=o}if(s-e<o)return s}return s}export{q as bezierCurveExtent,j as bezierCurveLength,p as calculateBezierCurveTangent,l as closestPointsOnBezierCurve,b as interpolateBezierCurve,h as interpolateCubicBezier,m as interpolateCubicBezier1D,M as splitBezierCurve};
2
+ import{floatEqualRelative as t,floatEqualAbsolute as n}from"../../../core/mathUtils.js";import{exactEquals as o}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as r,containsXY as s,expandXInPlace as c,expandYInPlace as u}from"../aaBoundingRect.js";import{distance2 as e,interpolateSegment as f,findClosestAndFurthestCurveParametersToPoint as i}from"./mathUtils.js";const a=[0,0];function m(t){const n=1-t,o=n*n,r=t*t;return[o*n,3*t*o,3*r*n,r*t]}function h(t,n,o,r,s){const[c,u,e,f]=m(s);return[t[0]*c+n[0]*u+o[0]*e+r[0]*f,t[1]*c+n[1]*u+o[1]*e+r[1]*f]}function l(t,n,o,r,s){const[c,u,e,f]=m(s);return t*c+n*u+o*e+r*f}function b(t,n,o){const r=t,[s,c,u]=n.b;return h(r,c,u,s,o)}function p(t,n){const[[r,s],c,u]=n.b,e=[r,s];return o(e,u)?o(e,c)?o(e,t)?null:[r-t[0],s-t[1]]:[r-c[0],s-c[1]]:[r-u[0],s-u[1]]}function M(t,n,o){const r=t,[s,c,u]=n.b,e=f([0,0],r,c,o),i=f(a,c,u,o),m=f([0,0],u,s,o),h=f([0,0],e,i,o),l=f([0,0],i,m,o);return[{b:[f([],h,l,o),e,h]},{b:[[...s],l,m]}]}function q(o,r,s){const c=o,[u,e,f]=r.b,a=i(s,[.1,.5,.9],t=>{const n=1-t,[o,r]=h(c,e,f,u,t);return[o,r,3*n*n*(e[0]-c[0])+6*n*t*(f[0]-e[0])+3*t*t*(u[0]-f[0]),3*n*n*(e[1]-c[1])+6*n*t*(f[1]-e[1])+3*t*t*(u[1]-f[1]),6*n*(f[0]-2*e[0]+c[0])+6*t*(u[0]-2*f[0]+e[0]),6*n*(f[1]-2*e[1]+c[1])+6*t*(u[1]-2*f[1]+e[1])]}).map(t=>Math.min(1,Math.max(0,t)));a.push(0,1);let m=1/0;const l=a.map(t=>{const n=h(c,e,f,u,t),[o,r]=n,i=s[0]-o,a=s[1]-r,l=Math.sqrt(i*i+a*a);return m=Math.min(l,m),{t,curvePoint:n,distance:l}}),b=[];for(const i of l){const{t:o,distance:r}=i;t(r,m)&&!b.some(({t})=>n(t,o))&&b.push(i)}return b}function j(t,n,o){const e=n,[f,i,a]=o.b;if(r(t,e),r(t,f),s(t,i[0],i[1])&&s(t,a[0],a[1]))return t;for(const r of d(e[0],i[0],a[0],f[0]))r>0&&r<1&&c(t,l(e[0],i[0],a[0],f[0],r));for(const r of d(e[1],i[1],a[1],f[1]))r>0&&r<1&&u(t,l(e[1],i[1],a[1],f[1],r));return t}function d(t,n,o,r){const s=3*(3*(n-o)-t+r),c=6*(t-2*n+o),u=3*(n-t);if(0===s)return 0!==c?[-u/c]:[];const e=Math.sqrt(c*c-4*s*u);return[(-c+e)/(2*s),(-c-e)/(2*s)]}function x(t,n,o){const r=16;let s=0,c=[n];for(let u=0;u<r;u++){let n=t;const r=[];for(const t of c)r.push(...M(n,t,.5)),n=t.b[0];c=r,n=t,s=0;let u=0;for(const t of c){const[o,r,c]=t.b,f=Math.sqrt(e(n,o));s+=(f+(Math.sqrt(e(n,r))+Math.sqrt(e(r,c))+Math.sqrt(e(c,o))))/2,u+=f,n=o}if(s-u<o)return s}return s}export{j as bezierCurveExtent,x as bezierCurveLength,p as calculateBezierCurveTangent,q as closestPointsOnBezierCurve,b as interpolateBezierCurve,h as interpolateCubicBezier,l as interpolateCubicBezier1D,M as splitBezierCurve};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{set as t,determinant as n}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{DerivedCircle as c,interpolateCircle as o}from"./circleUtils.js";import{interpolateSegment as i,distance2 as s,wrapAtan2 as a}from"./mathUtils.js";const e=r();function m(r,c,o){const[i,a]=r,[m,u]=c,[l,f]=o;t(e,i,m,l,a,u,f,1,1,1);const h=n(e),M=4*h/(s(r,c)+s(c,o)+s(o,r));if(!isFinite(M)||Math.abs(M)<1e-8)return null;const p=i**2+a**2,x=m**2+u**2,b=l**2+f**2;t(e,p,x,b,a,u,f,1,1,1);const d=n(e);t(e,p,x,b,i,m,l,1,1,1);return[d/h*.5,n(e)/h*-.5]}function u(t,n){const[r,o]=n.c,s=m(t,o,r),e=null==s,u=s??i([],t,r,.5),[l,f]=t,[h,M]=o,[p,x]=r,[b,d]=u,j=l-b,g=f-d,I=Math.sqrt(j*j+g*g),y=a(f-d,l-b),E=a(M-d,h-b);let P=a(x-d,p-b);return(E-y)*(P-E)<0&&(P+=2*Math.sign(y-P)*Math.PI),new c(b,d,I,y,P,e)}function l(t,n,r){const c=o(t,r/2),i=o(t,r),s=o(t,(r+1)/2);return[{c:[i,c]},{c:[[...n.c[0]],s]}]}function f(t,n){const[r,c]=n.c[0],{cx:o,cy:i,thetaEnd:s,thetaStart:a}=u(t,n),e=r-o,m=c-i;return s>a?[-m,e]:[m,-e]}function h(t,n){const[r]=n.c,{cx:c,cy:o,thetaStart:i,thetaEnd:s,radius:a,isInvalid:e}=u(t,n);return{a:[r,[c,o],Math.abs(s-i)<Math.PI?1:0,i>s?1:0,e?i:0,a,e?0:1]}}export{f as calculateCircularArcTangent,u as deriveCircleFromCircularArc,l as splitCircularArc,h as toEllipticArc7};
2
+ import{set as t,determinant as n}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{exactEquals as c}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{DerivedCircle as i,interpolateCircle as o}from"./circleUtils.js";import{interpolateSegment as s,distance2 as a,wrapAtan2 as e}from"./mathUtils.js";const l=r();function m(r,c,i){const[o,s]=r,[e,m]=c,[u,f]=i;t(l,o,e,u,s,m,f,1,1,1);const h=n(l),p=4*h/(a(r,c)+a(c,i)+a(i,r));if(!isFinite(p)||Math.abs(p)<1e-8)return null;const x=o**2+s**2,M=e**2+m**2,b=u**2+f**2;t(l,x,M,b,s,m,f,1,1,1);const d=n(l);t(l,x,M,b,o,e,u,1,1,1);return[d/h*.5,n(l)/h*-.5]}function u(t,n){const[r,c]=n.c,o=m(t,c,r),a=null==o,l=o??s([],t,r,.5),[u,f]=t,[h,p]=c,[x,M]=r,[b,d]=l,j=u-b,g=f-d,I=Math.sqrt(j*j+g*g),v=e(f-d,u-b),y=e(p-d,h-b);let E=e(M-d,x-b);return(y-v)*(E-y)<0&&(E+=2*Math.sign(v-E)*Math.PI),new i(b,d,I,v,E,a)}function f(t,n,r){const c=o(t,r/2),i=o(t,r),s=o(t,(r+1)/2);return[{c:[i,c]},{c:[[...n.c[0]],s]}]}function h(t,n){const[r,i]=n.c[0],{cx:o,cy:s,isInvalid:a,thetaEnd:e,thetaStart:l}=u(t,n);if(a)return c([r,i],t)?null:[r-t[0],i-t[1]];const m=r-o,f=i-s;return e>l?[-f,m]:[f,-m]}function p(t,n){const[r]=n.c,{cx:c,cy:i,thetaStart:o,thetaEnd:s,radius:a,isInvalid:e}=u(t,n);return{a:[r,[c,i],Math.abs(s-o)<Math.PI?1:0,o>s?1:0,e?o:0,a,e?0:1]}}export{h as calculateCircularArcTangent,u as deriveCircleFromCircularArc,f as splitCircularArc,p as toEllipticArc7};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{floatEqualRelative as t}from"../../../core/mathUtils.js";import{DerivedCircle as a,interpolateCircle as r}from"./circleUtils.js";import{angularRangeOriented as n,wrapAtan2 as o}from"./mathUtils.js";function c(r,c){const[h,s,e,i]=c.a,[m,M]=r,[f,u]=h,[l,p]=s,j=m-l,x=M-p,U=Math.sqrt(j*j+x*x),b=f-l,d=u-p,q=Math.sqrt(b*b+d*d),y=0===U||0===q||!t(U,q),E=U,[I,P]=n(o(M-p,m-l),Math.atan2(u-p,f-l),e,i);return new a(l,p,E,I,P,y)}function h(t,a,n){const{cx:o,cy:c,thetaStart:h,thetaEnd:s}=t,[e,i,m,M]=a.a,f=h*(1-n)+s*n;return[{a:[r(t,n),[o,c],Math.abs(f-h)<Math.PI?1:0,M]},{a:[[...e],[o,c],Math.abs(s-f)<Math.PI?1:0,M]}]}function s(t,a){const[r,n]=a.a[0],{cx:o,cy:h,thetaEnd:s,thetaStart:e}=c(t,a),i=r-o,m=n-h;return s>e?[-m,i]:[m,-i]}export{s as calculateEllipticArc4Tangent,c as deriveCircleFromEllipticArc4,h as splitEllipticArc4};
2
+ import{floatEqualRelative as t}from"../../../core/mathUtils.js";import{exactEquals as a}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{DerivedCircle as r,interpolateCircle as n}from"./circleUtils.js";import{angularRangeOriented as o,wrapAtan2 as s}from"./mathUtils.js";function c(a,n){const[c,i,e,h]=n.a,[m,l]=a,[f,u]=c,[M,p]=i,j=m-M,x=l-p,b=Math.sqrt(j*j+x*x),d=f-M,I=u-p,U=Math.sqrt(d*d+I*I),q=0===b||0===U||!t(b,U),v=b,[y,E]=o(s(l-p,m-M),Math.atan2(u-p,f-M),e,h);return new r(M,p,v,y,E,q)}function i(t,a,r){const{cx:o,cy:s,thetaStart:c,thetaEnd:i}=t,[e,h,m,l]=a.a,f=c*(1-r)+i*r;return[{a:[n(t,r),[o,s],Math.abs(f-c)<Math.PI?1:0,l]},{a:[[...e],[o,s],Math.abs(i-f)<Math.PI?1:0,l]}]}function e(t,r){const[n,o]=r.a[0],{cx:s,cy:i,isInvalid:e,thetaEnd:h,thetaStart:m}=c(t,r);if(e){const[r,s]=t;return a([n,o],[r,s])?null:[n-r,o-s]}const l=n-s,f=o-i;return h>m?[-f,l]:[f,-l]}export{e as calculateEllipticArc4Tangent,c as deriveCircleFromEllipticArc4,i as splitEllipticArc4};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{set as t,invert as n,transpose as s,multiply as a}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{transformMat3 as o,length as i}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as c}from"../aaBoundingRect.js";import{cloneCurve as u}from"./curveUtils.js";import{angularRangeWrap as h,angularRangeOriented as e,wrapAtan2 as f,angularRange as M,distance2 as l,intersectLineLine as m,findClosestAndFurthestCurveParametersToPoint as b}from"./mathUtils.js";class R{constructor(t,n,s,a,r,o,i,c,u){this.cx=t,this.cy=n,this.a=s,this.b=a,this.cosR=r,this.sinR=o,this.u1=i,this.u2=c,this.isInvalid=u}}function p(t,n){const[s,a,r,o,i,c,u]=n.a,[h,M]=t,[l,m]=s,[b,p]=a,d=c*u,x=Math.cos(i),q=Math.sin(i),[I,g]=e(f(1/d*(M-p)*x-1/d*(h-b)*q,1/c*(M-p)*q+1/c*(h-b)*x),Math.atan2(1/d*(m-p)*x-1/d*(l-b)*q,1/c*(m-p)*q+1/c*(l-b)*x),r,o);return new R(b,p,c,d,x,q,I,g,0===c||0===d)}function d(t,n){const{a:s,b:a,cosR:r,sinR:o,cx:i,cy:c}=t,u=Math.cos(n),h=Math.sin(n);return[s*u*r-a*h*o+i,s*u*o+a*h*r+c]}function x(t,n){const{u1:s,u2:a}=t;return d(t,s*(1-n)+a*n)}function q(t,n){const[s,a]=n.a[0],{a:r,b:o,cx:c,cy:u,cosR:h,sinR:e,isInvalid:f,u1:M,u2:l}=p(t,n);if(f)return[s-t[0],a-t[1]];const m=Math.sqrt(r*r-o*o),b=[c+m*h,u+m*e],R=[c-m*h,u-m*e],d=[s-b[0],a-b[1]],x=[s-R[0],a-R[1]],q=i(d),I=i(x),[g,v]=[d[0]/q+x[0]/I,d[1]/q+x[1]/I];return l>M?[-v,g]:[v,g]}function I(t,n,s){if(s<0||s>1)return[];if(0===s||1===s)return[u(n)];const[a,[r,o],i,c,h,e,f]=n.a,{u1:M,u2:l}=t,m=M*(1-s)+l*s;return[{a:[[...x(t,s)],[r,o],Math.abs(m-M)<Math.PI?1:0,c,h,e,f]},{a:[[...a],[r,o],Math.abs(l-m)<Math.PI?1:0,c,h,e,f]}]}function g(t,n){const{a:s,b:a,cosR:r,sinR:o,u1:i,u2:c}=t,u=Math.PI/6,e=b(n,[1*u,2*u,4*u,5*u,7*u,8*u,10*u,11*u],n=>{const i=Math.cos(n),c=Math.sin(n),[u,h]=d(t,n);return[u,h,-s*r*c-a*o*i,-s*o*c+a*r*i,-s*r*i+a*o*c,-s*o*i-a*r*c]}),f=M(i,c),l=new Set(e.map(t=>h(f,t)).filter(t=>t>f.min&&t<f.max));l.add(i),l.add(c);let m,R,p=1/0;for(const h of l){const s=d(t,h),[a,r]=s,o=n[0]-a,u=n[1]-r,e=o*o+u*u;e<p&&(m=(h-i)/(c-i),R=s,p=e)}return{t:m,curvePoint:R,distance:Math.sqrt(p)}}function v(t,n,s){const a=p(n,s),{a:r,b:o,u1:i,u2:u,cosR:e,sinR:f,isInvalid:l}=a,m=s.a[0];if(c(t,n),c(t,m),l)return t;const b=Math.atan2(-o*f,r*e),R=b+Math.PI,x=Math.atan2(o*e,r*f),q=x+Math.PI,I=M(i,u);for(const M of[b,R,x,q].map(t=>h(I,t)))M>I.min&&M<I.max&&c(t,d(a,M));return t}function j(t,n,s){const[a,r,o,i,c,u,h]=n.a,e=p(t,n),{u1:f,u2:M,isInvalid:b}=e,R=M-f;if(b)return Math.sqrt(l(t,a));const q=14,I=[0,0];let g=0,v=[x(e,0),x(e,.25),x(e,.5),x(e,.75),x(e,1)];for(let p=0;p<q;p++){const t=v.length-1,n=R/(2*t),a=[];for(let s=0;s<t;s++)a.push(v[s]),a.push(d(e,f+(2*s+1)*n));a.push(v[v.length-1]),v=a,g=0;let o=0;for(let s=1;s<v.length;s++){const t=v[s-1],n=v[s];if(g+=Math.sqrt(l(t,n)),s>1){const a=v[s-2],i=m(I,a,t,r,n);o+=i?Math.sqrt(l(t,i)):Math.abs(n[0]-t[0])+Math.abs(n[1]-t[1])}else o+=g}if(o-g<s)return g}return g}const P=r(),y=r(),w=r(),U=r();function B(r,i,c){const[u,h,e,M,m,b,R]=i.a,d=p(r,i),{cosR:x,sinR:q,a:I,b:g,cx:v,cy:j}=d,B=o([0,0],u,c),S=o([0,0],h,c),k=c[0]*c[4]<0?1-M:M;{const n=I*I*q*q+g*g*x*x,s=2*(g*g-I*I)*q*x,a=I*I*x*x+g*g*q*q,r=-2*n*v-s*j,o=-s*v-2*a*j;t(P,n,s/2,r/2,s/2,a,o/2,r/2,o/2,n*v*v+s*v*j+a*j*j-I*I*g*g)}if(n(y,c),null==y){const t=o([0,0],r,c);return{a:[B,S,e,M,f(B[1],B[0]),Math.sqrt(l(B,t))/2,0]}}s(w,y),a(U,a(U,w,P),y);{const t=U[0],n=2*U[1],s=U[4],a=2*U[2],r=2*U[5],o=n*n-4*t*s,i=2*(t*r*r+s*a*a-n*a*r+o*U[8]),c=Math.sqrt((t-s)**2+n*n),u=-Math.sqrt(i*(t+s+c))/o,h=-Math.sqrt(i*(t+s-c))/o;return{a:[B,S,e,k,.5*f(-n,s-t),u,h/u]}}}export{R as DerivedEllipse,q as calculateEllipticArc7Tangent,g as closestPointOnEllipse,p as deriveEllipse,v as ellipticArcExtent,j as ellipticArcLength,x as interpolateEllipse,I as splitEllipticArc7,B as transformEllipticArc};
2
+ import{set as t,invert as n,transpose as s,multiply as a}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{transformMat3 as o,exactEquals as i,normalize as c,add as u}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{expandPointInPlace as h}from"../aaBoundingRect.js";import{cloneCurve as e}from"./curveUtils.js";import{angularRangeWrap as f,angularRangeOriented as l,wrapAtan2 as M,angularRange as m,distance2 as b,intersectLineLine as R,findClosestAndFurthestCurveParametersToPoint as p}from"./mathUtils.js";class d{constructor(t,n,s,a,r,o,i,c,u){this.cx=t,this.cy=n,this.a=s,this.b=a,this.cosR=r,this.sinR=o,this.u1=i,this.u2=c,this.isInvalid=u}}function x(t,n){const[s,a,r,o,i,c,u]=n.a,[h,e]=t,[f,m]=s,[b,R]=a,p=c*u,x=Math.cos(i),q=Math.sin(i),[I,g]=l(M(1/p*(e-R)*x-1/p*(h-b)*q,1/c*(e-R)*q+1/c*(h-b)*x),Math.atan2(1/p*(m-R)*x-1/p*(f-b)*q,1/c*(m-R)*q+1/c*(f-b)*x),r,o);return new d(b,R,c,p,x,q,I,g,0===c||0===p)}function q(t,n){const{a:s,b:a,cosR:r,sinR:o,cx:i,cy:c}=t,u=Math.cos(n),h=Math.sin(n);return[s*u*r-a*h*o+i,s*u*o+a*h*r+c]}function I(t,n){const{u1:s,u2:a}=t;return q(t,s*(1-n)+a*n)}function g(t,n){const[s,a]=n.a[0],{a:r,b:o,cx:h,cy:e,cosR:f,sinR:l,isInvalid:M,u1:m,u2:b}=x(t,n);if(M){const[n,r]=t;return i([n,r],[s,a])?null:[s-n,a-r]}const R=Math.sqrt(r*r-o*o),p=[h+R*f,e+R*l],d=[h-R*f,e-R*l],q=[s-p[0],a-p[1]],I=[s-d[0],a-d[1]];c(q,q),c(I,I);const[g,v]=u(q,q,I);return b>m?[-v,g]:[v,g]}function v(t,n,s){if(s<0||s>1)return[];if(0===s||1===s)return[e(n)];const[a,[r,o],i,c,u,h,f]=n.a,{u1:l,u2:M}=t,m=l*(1-s)+M*s;return[{a:[[...I(t,s)],[r,o],Math.abs(m-l)<Math.PI?1:0,c,u,h,f]},{a:[[...a],[r,o],Math.abs(M-m)<Math.PI?1:0,c,u,h,f]}]}function j(t,n){const{a:s,b:a,cosR:r,sinR:o,u1:i,u2:c}=t,u=Math.PI/6,h=p(n,[1*u,2*u,4*u,5*u,7*u,8*u,10*u,11*u],n=>{const i=Math.cos(n),c=Math.sin(n),[u,h]=q(t,n);return[u,h,-s*r*c-a*o*i,-s*o*c+a*r*i,-s*r*i+a*o*c,-s*o*i-a*r*c]}),e=m(i,c),l=new Set(h.map(t=>f(e,t)).filter(t=>t>e.min&&t<e.max));l.add(i),l.add(c);let M,b,R=1/0;for(const f of l){const s=q(t,f),[a,r]=s,o=n[0]-a,u=n[1]-r,h=o*o+u*u;h<R&&(M=(f-i)/(c-i),b=s,R=h)}return{t:M,curvePoint:b,distance:Math.sqrt(R)}}function P(t,n,s){const a=x(n,s),{a:r,b:o,u1:i,u2:c,cosR:u,sinR:e,isInvalid:l}=a,M=s.a[0];if(h(t,n),h(t,M),l)return t;const b=Math.atan2(-o*e,r*u),R=b+Math.PI,p=Math.atan2(o*u,r*e),d=p+Math.PI,I=m(i,c);for(const m of[b,R,p,d].map(t=>f(I,t)))m>I.min&&m<I.max&&h(t,q(a,m));return t}function y(t,n,s){const[a,r,o,i,c,u,h]=n.a,e=x(t,n),{u1:f,u2:l,isInvalid:M}=e,m=l-f;if(M)return Math.sqrt(b(t,a));const p=14,d=[0,0];let g=0,v=[I(e,0),I(e,.25),I(e,.5),I(e,.75),I(e,1)];for(let x=0;x<p;x++){const t=v.length-1,n=m/(2*t),a=[];for(let s=0;s<t;s++)a.push(v[s]),a.push(q(e,f+(2*s+1)*n));a.push(v[v.length-1]),v=a,g=0;let o=0;for(let s=1;s<v.length;s++){const t=v[s-1],n=v[s];if(g+=Math.sqrt(b(t,n)),s>1){const a=v[s-2],i=R(d,a,t,r,n);o+=i?Math.sqrt(b(t,i)):Math.abs(n[0]-t[0])+Math.abs(n[1]-t[1])}else o+=g}if(o-g<s)return g}return g}const w=r(),U=r(),B=r(),S=r();function k(r,i,c){const[u,h,e,f,l,m,R]=i.a,p=x(r,i),{cosR:d,sinR:q,a:I,b:g,cx:v,cy:j}=p,P=o([0,0],u,c),y=o([0,0],h,c),k=c[0]*c[4]<0?1-f:f;{const n=I*I*q*q+g*g*d*d,s=2*(g*g-I*I)*q*d,a=I*I*d*d+g*g*q*q,r=-2*n*v-s*j,o=-s*v-2*a*j;t(w,n,s/2,r/2,s/2,a,o/2,r/2,o/2,n*v*v+s*v*j+a*j*j-I*I*g*g)}if(n(U,c),null==U){const t=o([0,0],r,c);return{a:[P,y,e,f,M(P[1],P[0]),Math.sqrt(b(P,t))/2,0]}}s(B,U),a(S,a(S,B,w),U);{const t=S[0],n=2*S[1],s=S[4],a=2*S[2],r=2*S[5],o=n*n-4*t*s,i=2*(t*r*r+s*a*a-n*a*r+o*S[8]),c=Math.sqrt((t-s)**2+n*n),u=-Math.sqrt(i*(t+s+c))/o,h=-Math.sqrt(i*(t+s-c))/o;return{a:[P,y,e,k,.5*M(-n,s-t),u,h/u]}}}export{d as DerivedEllipse,g as calculateEllipticArc7Tangent,j as closestPointOnEllipse,x as deriveEllipse,P as ellipticArcExtent,y as ellipticArcLength,I as interpolateEllipse,v as splitEllipticArc7,k as transformEllipticArc};
package/interfaces.d.ts CHANGED
@@ -6350,6 +6350,20 @@ declare namespace __esri {
6350
6350
  export type PopupFeature = import("./popup/Feature.js").default;
6351
6351
  export const PopupFeature: typeof import("./popup/Feature.js").default;
6352
6352
 
6353
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
6354
+ export type PopupFeaturesProperties = import("./popup/Features.js").FeaturesProperties;
6355
+
6356
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
6357
+ export type PopupFeaturesEvents = import("./popup/Features.js").FeaturesEvents;
6358
+
6359
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
6360
+ export type PopupFeatures = import("./popup/Features.js").default;
6361
+ export const PopupFeatures: typeof import("./popup/Features.js").default;
6362
+
6363
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
6364
+ export type PopupFeaturesTriggerAction = import("./popup/Features.js").default;
6365
+ export const PopupFeaturesTriggerAction: typeof import("./popup/Features.js").default;
6366
+
6353
6367
  /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
6354
6368
  export type FieldInfoProperties = import("./popup/FieldInfo.js").FieldInfoProperties;
6355
6369
 
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.60",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
2
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.62",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -927,16 +927,19 @@ export default class CSVLayer extends CSVLayerSuperclass {
927
927
  */
928
928
  createPopupTemplate(options?: CreatePopupTemplateOptions): PopupTemplate | null | undefined;
929
929
  /**
930
- * Creates query parameter object that can be used to fetch features that
931
- * satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/#definitionExpression).
930
+ * Creates query parameter object that can be used to fetch features from feature-based layers or
931
+ * image footprints from ImageryLayer that satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/#definitionExpression).
932
+ * It will return `Z` and `M` values based on the layer's [data capabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/#capabilities).
932
933
  * It sets the query parameter's [Query.outFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outFields) property to `["*"]`.
934
+ * The results will include feature geometries and values for all [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#availableFields) in
935
+ * [queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryFeatures) against the layer views of feature-based layers, or all fields in the layer for
936
+ * [queries against the layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures).
933
937
  *
934
- * @returns The query object representing the layer's definition expression
935
- * and other configurations.
938
+ * @returns The query object representing the layer's definition expression and other configurations.
939
+ * @see [Sample - Query features from a FeatureLayer](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/)
936
940
  * @example
937
941
  * // Get a query object for the layer's current configuration
938
- * // queryParams.outFields will be set to ["*"] to get values
939
- * // for all available fields.
942
+ * queryParams.outFields will be set to ["*"] to get values for all available fields.
940
943
  * const queryParams = layer.createQuery();
941
944
  * // set a geometry for filtering features by a region of interest
942
945
  * queryParams.geometry = extentForRegionOfInterest;
@@ -948,6 +951,35 @@ export default class CSVLayer extends CSVLayerSuperclass {
948
951
  * // prints the array of result graphics to the console
949
952
  * console.log(results.features);
950
953
  * });
954
+ * @example
955
+ * // this snippet shows the query parameter object that is returned
956
+ * // from FeatureLayer.createQuery().
957
+ * const queryParams = new Query();
958
+ * const dataCapabilities = layer.get<DataCapabilities>("capabilities.data");
959
+ *
960
+ * queryParams.gdbVersion = layer.gdbVersion;
961
+ * queryParams.historicMoment = layer.historicMoment;
962
+ * queryParams.returnGeometry = true;
963
+ *
964
+ * if (dataCapabilities) {
965
+ * if (dataCapabilities.supportsZ && layer.returnZ != null) {
966
+ * queryParams.returnZ = layer.returnZ;
967
+ * }
968
+ *
969
+ * if (dataCapabilities.supportsM && layer.returnM != null) {
970
+ * queryParams.returnM = layer.returnM;
971
+ * }
972
+ * }
973
+ *
974
+ * queryParams.outFields = ["*"];
975
+ * queryParams.where = layer.definitionExpression || "1=1";
976
+ * queryParams.multipatchOption = layer.geometryType === "multipatch" ? "xyFootprint" : null;
977
+ * @example
978
+ * // this snippet shows query image footprints from imagery layer
979
+ * // that honors the layer's definitionExpression and other configurations.
980
+ * if (imageryLayer.capabilities.operations.supportsQuery) {
981
+ * const query = imageryLayer.createQuery();
982
+ * const rasters = await imageryLayer.queryRasters(query);
951
983
  */
952
984
  createQuery(): Query;
953
985
  /**
@@ -424,28 +424,59 @@ export default class CatalogLayer extends CatalogLayerSuperclass {
424
424
  */
425
425
  createLayerFromFootprint(footprint: Graphic): Promise<Layer>;
426
426
  /**
427
- * Creates query parameter object that can be used to fetch features that satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#definitionExpression).
427
+ * Creates query parameter object that can be used to fetch features from feature-based layers or
428
+ * image footprints from ImageryLayer that satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#definitionExpression).
428
429
  * It will return `Z` and `M` values based on the layer's [data capabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#capabilities).
429
430
  * It sets the query parameter's [Query.outFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outFields) property to `["*"]`.
430
- * The results will include geometries of features and values for all [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLikeLayerView/#availableFields) for
431
- * [client-side queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLikeLayerView/#queryFeatures) or all fields in the layer for [server side queries](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#queryFeatures).
431
+ * The results will include feature geometries and values for all [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#availableFields) in
432
+ * [queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryFeatures) against the layer views of feature-based layers, or all fields in the layer for
433
+ * [queries against the layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures).
432
434
  *
433
435
  * @returns The query object representing the layer's definition expression and other configurations.
434
- * @see [Sample - Explore data in CatalogLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-cataloglayer-2d/)
436
+ * @see [Sample - Query features from a FeatureLayer](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/)
435
437
  * @example
436
- * // Get a query object for the layer's current configuration and set
437
- * // additional parameters to filter features by a region of interest and type
438
- * const queryParams = footprintLayer.createQuery();
438
+ * // Get a query object for the layer's current configuration
439
+ * queryParams.outFields will be set to ["*"] to get values for all available fields.
440
+ * const queryParams = layer.createQuery();
439
441
  * // set a geometry for filtering features by a region of interest
440
442
  * queryParams.geometry = extentForRegionOfInterest;
441
443
  * // Add to the layer's current definitionExpression
442
444
  * queryParams.where = queryParams.where + " AND TYPE = 'Extreme'";
443
445
  *
444
446
  * // query the layer with the modified params object
445
- * footprintLayer.queryFeatures(queryParams).then((results) =>{
447
+ * layer.queryFeatures(queryParams).then(function(results){
446
448
  * // prints the array of result graphics to the console
447
449
  * console.log(results.features);
448
450
  * });
451
+ * @example
452
+ * // this snippet shows the query parameter object that is returned
453
+ * // from FeatureLayer.createQuery().
454
+ * const queryParams = new Query();
455
+ * const dataCapabilities = layer.get<DataCapabilities>("capabilities.data");
456
+ *
457
+ * queryParams.gdbVersion = layer.gdbVersion;
458
+ * queryParams.historicMoment = layer.historicMoment;
459
+ * queryParams.returnGeometry = true;
460
+ *
461
+ * if (dataCapabilities) {
462
+ * if (dataCapabilities.supportsZ && layer.returnZ != null) {
463
+ * queryParams.returnZ = layer.returnZ;
464
+ * }
465
+ *
466
+ * if (dataCapabilities.supportsM && layer.returnM != null) {
467
+ * queryParams.returnM = layer.returnM;
468
+ * }
469
+ * }
470
+ *
471
+ * queryParams.outFields = ["*"];
472
+ * queryParams.where = layer.definitionExpression || "1=1";
473
+ * queryParams.multipatchOption = layer.geometryType === "multipatch" ? "xyFootprint" : null;
474
+ * @example
475
+ * // this snippet shows query image footprints from imagery layer
476
+ * // that honors the layer's definitionExpression and other configurations.
477
+ * if (imageryLayer.capabilities.operations.supportsQuery) {
478
+ * const query = imageryLayer.createQuery();
479
+ * const rasters = await imageryLayer.queryRasters(query);
449
480
  */
450
481
  createQuery(): Query;
451
482
  /**
@@ -1440,20 +1440,31 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1440
1440
  */
1441
1441
  createPopupTemplate(options?: CreatePopupTemplateOptions): PopupTemplate | null | undefined;
1442
1442
  /**
1443
- * Creates query parameter object that can be used to fetch features that
1444
- * satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#definitionExpression),
1445
- * [gdbVersion](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#gdbVersion), and [historicMoment](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#historicMoment).
1443
+ * Creates query parameter object that can be used to fetch features from feature-based layers or
1444
+ * image footprints from ImageryLayer that satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#definitionExpression).
1446
1445
  * It will return `Z` and `M` values based on the layer's [data capabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities).
1447
1446
  * It sets the query parameter's [Query.outFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outFields) property to `["*"]`.
1448
- * The results will include geometries of features and values for all
1449
- * [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#availableFields) for
1450
- * [client-side queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryFeatures)
1451
- * or all fields in the layer for [server side queries](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures).
1447
+ * The results will include feature geometries and values for all [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#availableFields) in
1448
+ * [queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryFeatures) against the layer views of feature-based layers, or all fields in the layer for
1449
+ * [queries against the layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures).
1452
1450
  *
1453
- * @returns The query object representing the layer's definition expression
1454
- * and other configurations.
1451
+ * @returns The query object representing the layer's definition expression and other configurations.
1455
1452
  * @see [Sample - Query features from a FeatureLayer](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/)
1456
1453
  * @example
1454
+ * // Get a query object for the layer's current configuration
1455
+ * queryParams.outFields will be set to ["*"] to get values for all available fields.
1456
+ * const queryParams = layer.createQuery();
1457
+ * // set a geometry for filtering features by a region of interest
1458
+ * queryParams.geometry = extentForRegionOfInterest;
1459
+ * // Add to the layer's current definitionExpression
1460
+ * queryParams.where = queryParams.where + " AND TYPE = 'Extreme'";
1461
+ *
1462
+ * // query the layer with the modified params object
1463
+ * layer.queryFeatures(queryParams).then(function(results){
1464
+ * // prints the array of result graphics to the console
1465
+ * console.log(results.features);
1466
+ * });
1467
+ * @example
1457
1468
  * // this snippet shows the query parameter object that is returned
1458
1469
  * // from FeatureLayer.createQuery().
1459
1470
  * const queryParams = new Query();
@@ -1477,20 +1488,11 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1477
1488
  * queryParams.where = layer.definitionExpression || "1=1";
1478
1489
  * queryParams.multipatchOption = layer.geometryType === "multipatch" ? "xyFootprint" : null;
1479
1490
  * @example
1480
- * // Get a query object for the layer's current configuration
1481
- * // queryParams.outFields will be set to ["*"] to get values
1482
- * // for all available fields.
1483
- * const queryParams = layer.createQuery();
1484
- * // set a geometry for filtering features by a region of interest
1485
- * queryParams.geometry = extentForRegionOfInterest;
1486
- * // Add to the layer's current definitionExpression
1487
- * queryParams.where = queryParams.where + " AND TYPE = 'Extreme'";
1488
- *
1489
- * // query the layer with the modified params object
1490
- * layer.queryFeatures(queryParams).then(function(results){
1491
- * // prints the array of result graphics to the console
1492
- * console.log(results.features);
1493
- * });
1491
+ * // this snippet shows query image footprints from imagery layer
1492
+ * // that honors the layer's definitionExpression and other configurations.
1493
+ * if (imageryLayer.capabilities.operations.supportsQuery) {
1494
+ * const query = imageryLayer.createQuery();
1495
+ * const rasters = await imageryLayer.queryRasters(query);
1494
1496
  */
1495
1497
  createQuery(): Query;
1496
1498
  /**
@@ -1492,18 +1492,19 @@ export default class GeoJSONLayer extends GeoJSONLayerSuperclass {
1492
1492
  */
1493
1493
  createPopupTemplate(options?: CreatePopupTemplateOptions): PopupTemplate | null | undefined;
1494
1494
  /**
1495
- * Creates query parameter object that can be used to fetch features that
1496
- * satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/#definitionExpression).
1495
+ * Creates query parameter object that can be used to fetch features from feature-based layers or
1496
+ * image footprints from ImageryLayer that satisfy the layer's configurations such as [definitionExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/#definitionExpression).
1497
1497
  * It will return `Z` and `M` values based on the layer's [data capabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/#capabilities).
1498
1498
  * It sets the query parameter's [Query.outFields](https://developers.arcgis.com/javascript/latest/references/core/rest/support/Query/#outFields) property to `["*"]`.
1499
+ * The results will include feature geometries and values for all [available fields](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#availableFields) in
1500
+ * [queries](https://developers.arcgis.com/javascript/latest/references/core/views/layers/FeatureLayerView/#queryFeatures) against the layer views of feature-based layers, or all fields in the layer for
1501
+ * [queries against the layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryFeatures).
1499
1502
  *
1500
- * @returns The query object representing the layer's definition expression
1501
- * and other configurations.
1503
+ * @returns The query object representing the layer's definition expression and other configurations.
1502
1504
  * @see [Sample - Query features from a FeatureLayer](https://developers.arcgis.com/javascript/latest/sample-code/featurelayer-query/)
1503
1505
  * @example
1504
1506
  * // Get a query object for the layer's current configuration
1505
- * // queryParams.outFields will be set to ["*"] to get values
1506
- * // for all available fields.
1507
+ * queryParams.outFields will be set to ["*"] to get values for all available fields.
1507
1508
  * const queryParams = layer.createQuery();
1508
1509
  * // set a geometry for filtering features by a region of interest
1509
1510
  * queryParams.geometry = extentForRegionOfInterest;
@@ -1515,6 +1516,35 @@ export default class GeoJSONLayer extends GeoJSONLayerSuperclass {
1515
1516
  * // prints the array of result graphics to the console
1516
1517
  * console.log(results.features);
1517
1518
  * });
1519
+ * @example
1520
+ * // this snippet shows the query parameter object that is returned
1521
+ * // from FeatureLayer.createQuery().
1522
+ * const queryParams = new Query();
1523
+ * const dataCapabilities = layer.get<DataCapabilities>("capabilities.data");
1524
+ *
1525
+ * queryParams.gdbVersion = layer.gdbVersion;
1526
+ * queryParams.historicMoment = layer.historicMoment;
1527
+ * queryParams.returnGeometry = true;
1528
+ *
1529
+ * if (dataCapabilities) {
1530
+ * if (dataCapabilities.supportsZ && layer.returnZ != null) {
1531
+ * queryParams.returnZ = layer.returnZ;
1532
+ * }
1533
+ *
1534
+ * if (dataCapabilities.supportsM && layer.returnM != null) {
1535
+ * queryParams.returnM = layer.returnM;
1536
+ * }
1537
+ * }
1538
+ *
1539
+ * queryParams.outFields = ["*"];
1540
+ * queryParams.where = layer.definitionExpression || "1=1";
1541
+ * queryParams.multipatchOption = layer.geometryType === "multipatch" ? "xyFootprint" : null;
1542
+ * @example
1543
+ * // this snippet shows query image footprints from imagery layer
1544
+ * // that honors the layer's definitionExpression and other configurations.
1545
+ * if (imageryLayer.capabilities.operations.supportsQuery) {
1546
+ * const query = imageryLayer.createQuery();
1547
+ * const rasters = await imageryLayer.queryRasters(query);
1518
1548
  */
1519
1549
  createQuery(): Query;
1520
1550
  /**