@arcgis/core 5.2.0-next.111 → 5.2.0-next.112

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 (258) hide show
  1. package/assets/components/assets/icon/alignBottom16.json +1 -0
  2. package/assets/components/assets/icon/alignBottom24.json +1 -0
  3. package/assets/components/assets/icon/alignBottom32.json +1 -0
  4. package/assets/components/assets/icon/alignCenterHorizontal16.json +1 -0
  5. package/assets/components/assets/icon/alignCenterHorizontal24.json +1 -0
  6. package/assets/components/assets/icon/alignCenterHorizontal32.json +1 -0
  7. package/assets/components/assets/icon/alignCenterVertical16.json +1 -0
  8. package/assets/components/assets/icon/alignCenterVertical24.json +1 -0
  9. package/assets/components/assets/icon/alignCenterVertical32.json +1 -0
  10. package/assets/components/assets/icon/alignLeft16.json +1 -0
  11. package/assets/components/assets/icon/alignLeft24.json +1 -0
  12. package/assets/components/assets/icon/alignLeft32.json +1 -0
  13. package/assets/components/assets/icon/alignRight16.json +1 -0
  14. package/assets/components/assets/icon/alignRight24.json +1 -0
  15. package/assets/components/assets/icon/alignRight32.json +1 -0
  16. package/assets/components/assets/icon/alignTop16.json +1 -0
  17. package/assets/components/assets/icon/alignTop24.json +1 -0
  18. package/assets/components/assets/icon/alignTop32.json +1 -0
  19. package/assets/components/assets/icon/columnGroup16.json +1 -0
  20. package/assets/components/assets/icon/columnGroup24.json +1 -0
  21. package/assets/components/assets/icon/columnGroup32.json +1 -0
  22. package/assets/components/assets/icon/columnRemove16.json +1 -0
  23. package/assets/components/assets/icon/columnRemove24.json +1 -0
  24. package/assets/components/assets/icon/columnRemove32.json +1 -0
  25. package/assets/components/assets/icon/columnUngroup16.json +1 -0
  26. package/assets/components/assets/icon/columnUngroup24.json +1 -0
  27. package/assets/components/assets/icon/columnUngroup32.json +1 -0
  28. package/assets/components/assets/icon/envelopeOpen16.json +1 -0
  29. package/assets/components/assets/icon/envelopeOpen24.json +1 -0
  30. package/assets/components/assets/icon/envelopeOpen32.json +1 -0
  31. package/assets/components/assets/icon/handDraw16.json +1 -0
  32. package/assets/components/assets/icon/handDraw24.json +1 -0
  33. package/assets/components/assets/icon/handDraw32.json +1 -0
  34. package/assets/components/assets/icon/monitorShare16.json +1 -0
  35. package/assets/components/assets/icon/monitorShare24.json +1 -0
  36. package/assets/components/assets/icon/monitorShare32.json +1 -0
  37. package/assets/components/assets/icon/pi16.json +1 -0
  38. package/assets/components/assets/icon/pi24.json +1 -0
  39. package/assets/components/assets/icon/pi32.json +1 -0
  40. package/assets/components/assets/icon/rowGroup16.json +1 -0
  41. package/assets/components/assets/icon/rowGroup24.json +1 -0
  42. package/assets/components/assets/icon/rowGroup32.json +1 -0
  43. package/assets/components/assets/icon/rowRemove16.json +1 -0
  44. package/assets/components/assets/icon/rowRemove24.json +1 -0
  45. package/assets/components/assets/icon/rowRemove32.json +1 -0
  46. package/assets/components/assets/icon/rowUngroup16.json +1 -0
  47. package/assets/components/assets/icon/rowUngroup24.json +1 -0
  48. package/assets/components/assets/icon/rowUngroup32.json +1 -0
  49. package/assets/components/assets/icon/sdCard16.json +1 -0
  50. package/assets/components/assets/icon/sdCard24.json +1 -0
  51. package/assets/components/assets/icon/sdCard32.json +1 -0
  52. package/assets/components/assets/icon/spaceAroundHorizontal16.json +1 -0
  53. package/assets/components/assets/icon/spaceAroundHorizontal24.json +1 -0
  54. package/assets/components/assets/icon/spaceAroundHorizontal32.json +1 -0
  55. package/assets/components/assets/icon/spaceAroundVertical16.json +1 -0
  56. package/assets/components/assets/icon/spaceAroundVertical24.json +1 -0
  57. package/assets/components/assets/icon/spaceAroundVertical32.json +1 -0
  58. package/assets/components/assets/icon/spaceBetweenHorizontal16.json +1 -0
  59. package/assets/components/assets/icon/spaceBetweenHorizontal24.json +1 -0
  60. package/assets/components/assets/icon/spaceBetweenHorizontal32.json +1 -0
  61. package/assets/components/assets/icon/spaceBetweenVertical16.json +1 -0
  62. package/assets/components/assets/icon/spaceBetweenVertical24.json +1 -0
  63. package/assets/components/assets/icon/spaceBetweenVertical32.json +1 -0
  64. package/assets/components/assets/icon/spacedEvenlyHorizontal16.json +1 -0
  65. package/assets/components/assets/icon/spacedEvenlyHorizontal24.json +1 -0
  66. package/assets/components/assets/icon/spacedEvenlyHorizontal32.json +1 -0
  67. package/assets/components/assets/icon/spacedEvenlyVertical16.json +1 -0
  68. package/assets/components/assets/icon/spacedEvenlyVertical24.json +1 -0
  69. package/assets/components/assets/icon/spacedEvenlyVertical32.json +1 -0
  70. package/assets/components/assets/icon/stretchHorizontal16.json +1 -0
  71. package/assets/components/assets/icon/stretchHorizontal24.json +1 -0
  72. package/assets/components/assets/icon/stretchHorizontal32.json +1 -0
  73. package/assets/components/assets/icon/stretchVertical16.json +1 -0
  74. package/assets/components/assets/icon/stretchVertical24.json +1 -0
  75. package/assets/components/assets/icon/stretchVertical32.json +1 -0
  76. package/assets/components/assets/icon/swatchPalette16.json +1 -0
  77. package/assets/components/assets/icon/swatchPalette24.json +1 -0
  78. package/assets/components/assets/icon/swatchPalette32.json +1 -0
  79. package/assets/components/assets/icon/thermometer16.json +1 -0
  80. package/assets/components/assets/icon/thermometer24.json +1 -0
  81. package/assets/components/assets/icon/thermometer32.json +1 -0
  82. package/assets/components/assets/icon/webCamera16.json +1 -0
  83. package/assets/components/assets/icon/webCamera24.json +1 -0
  84. package/assets/components/assets/icon/webCamera32.json +1 -0
  85. package/assets/esri/core/workers/RemoteClient.js +1 -1
  86. package/assets/esri/core/workers/chunks/078ed48eb055dd213ee6.js +1 -0
  87. package/assets/esri/core/workers/chunks/186350d720352bd5ff33.js +1 -0
  88. package/assets/esri/core/workers/chunks/21c0743b2f612e7e7de3.js +1 -0
  89. package/assets/esri/core/workers/chunks/25cc6d7178a52f2f46b7.js +1 -0
  90. package/assets/esri/core/workers/chunks/{6010799e05d239073de0.js → 25ecf94d776c3b6db0f3.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{10d33b4f248864225f85.js → 2728eda8178e02fbca47.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{4c9df8ae9238454969b8.js → 2c21f4744e19b925a6ae.js} +1 -1
  93. package/assets/esri/core/workers/chunks/32fc7d1db4b311f6b880.js +1 -0
  94. package/assets/esri/core/workers/chunks/3acc1299c1382c3b034d.js +1 -0
  95. package/assets/esri/core/workers/chunks/{c2684fcde2923c9830e0.js → 42c4d0c1c08bf111e5a4.js} +1 -1
  96. package/assets/esri/core/workers/chunks/430802108b63194b7ddd.js +2 -0
  97. package/assets/esri/core/workers/chunks/{f5e8ccbd6b4c0a386903.js → 448f068a14f24f2f8a43.js} +1 -1
  98. package/assets/esri/core/workers/chunks/49c6dc487714f9cd55c7.js +1 -0
  99. package/assets/esri/core/workers/chunks/{70e0ead69a722fd964b8.js → 49e8ff5ed079a9e3be4b.js} +1 -1
  100. package/assets/esri/core/workers/chunks/{69921d068add041b5dcb.js → 5134241be1f1bf25231a.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{54bb3678570ca032f051.js → 5762746cfb02a4119d82.js} +1 -1
  102. package/assets/esri/core/workers/chunks/{434c5b54e89ace974cbd.js → 5965a947f68b707eaa6b.js} +2 -2
  103. package/assets/esri/core/workers/chunks/6c25c929bcde7e3a2af1.js +1 -0
  104. package/assets/esri/core/workers/chunks/7610dd0b46948b7bd840.js +1 -0
  105. package/assets/esri/core/workers/chunks/7be56ac60e580c806a5d.js +1 -0
  106. package/assets/esri/core/workers/chunks/7f2ac03efaa4a4898ba2.js +2 -0
  107. package/assets/esri/core/workers/chunks/{847781aefed049493444.js → 9f760dc4492a03e0504c.js} +1 -1
  108. package/assets/esri/core/workers/chunks/{013c9cc198736a72f7f2.js → 9fb46ccd4be4c3b61c31.js} +1 -1
  109. package/assets/esri/core/workers/chunks/bdcca906fdfb8e179abb.js +2 -0
  110. package/assets/esri/core/workers/chunks/c5ceceb0683671f92efa.js +1 -0
  111. package/assets/esri/core/workers/chunks/c5e288d57bacb8451e2d.js +2 -0
  112. package/assets/esri/core/workers/chunks/{b92b7d6c1e693c97a3eb.js → d1f54b0079fb71a15612.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{72be81c1394285b51ed3.js → d45483dd0dc2853b18b7.js} +212 -216
  114. package/assets/esri/core/workers/chunks/d5e3f8e5b8d2576d3cb3.js +2 -0
  115. package/assets/esri/core/workers/chunks/{21d4219844ae5654618b.js → d926bffc3ff9f87e9081.js} +1 -1
  116. package/assets/esri/core/workers/chunks/{abcda435bc83ef4240f9.js → e6dae16208f6978b59e0.js} +1 -1
  117. package/assets/esri/core/workers/chunks/e755075ac2e02e881fad.js +1 -0
  118. package/assets/esri/core/workers/chunks/{058d4c927486a361e633.js → ea9e770efc85594e4dd2.js} +1 -1
  119. package/assets/esri/core/workers/chunks/eff99e45d818e58fd443.js +1 -0
  120. package/assets/esri/core/workers/chunks/{a49147203e55609630cc.js → f453dc4a075d2f900c7d.js} +1 -1
  121. package/assets/esri/core/workers/chunks/f465fb26541372fdc908.js +2 -0
  122. package/assets/esri/core/workers/chunks/{b7809ef3e1dabd921339.js → f72f4413fc7461e11a2a.js} +1 -1
  123. package/assets/esri/themes/base/widgets/_BasemapLayerList.scss +1 -0
  124. package/assets/esri/themes/base/widgets/_Bookmarks.scss +1 -0
  125. package/assets/esri/themes/dark/main.css +1 -1
  126. package/assets/esri/themes/light/main.css +1 -1
  127. package/assets/esri/themes/light/view.css +1 -1
  128. package/chunks/ChapmanAtmosphere.glsl.js +1 -1
  129. package/chunks/Component.glsl.js +57 -56
  130. package/chunks/DefaultMaterial.glsl.js +19 -23
  131. package/chunks/GaussianSplat.glsl.js +13 -11
  132. package/chunks/GlobalIllumination.glsl.js +1 -1
  133. package/chunks/Haze.glsl.js +1 -1
  134. package/chunks/Path.glsl.js +21 -24
  135. package/chunks/RealisticTree.glsl.js +42 -41
  136. package/chunks/RibbonLine.glsl.js +65 -56
  137. package/chunks/SimpleAtmosphere.glsl.js +1 -1
  138. package/chunks/Terrain.glsl.js +25 -25
  139. package/chunks/Water.glsl.js +4 -4
  140. package/config.js +1 -1
  141. package/core/units.js +1 -1
  142. package/geometry/support/heightModelInfoUtils.js +1 -1
  143. package/kernel.js +1 -1
  144. package/layers/GaussianSplatLayer.js +1 -1
  145. package/layers/ImageryTileLayer.js +1 -1
  146. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  147. package/layers/mixins/TiledImagery.d.ts +6 -0
  148. package/layers/mixins/TiledImagery.js +1 -1
  149. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  150. package/layers/raster/datasets/RasterFactory.js +1 -1
  151. package/layers/support/domainUtils.d.ts +2 -0
  152. package/layers/support/domainUtils.js +1 -1
  153. package/layers/support/fieldUtils.d.ts +10 -0
  154. package/layers/support/fieldUtils.js +1 -1
  155. package/package.json +6 -6
  156. package/support/revision.js +1 -1
  157. package/symbols/LineStyleMarker3D.d.ts +3 -4
  158. package/symbols/LineSymbol3D.d.ts +19 -2
  159. package/symbols/LineSymbol3D.js +1 -1
  160. package/symbols/LineSymbol3DLayer.d.ts +13 -6
  161. package/symbols/Symbol3DLayer.d.ts +1 -1
  162. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  163. package/views/2d/engine/webgl/shaderGraph/techniques/animated/clipping.js +2 -0
  164. package/views/2d/input/MapViewInputManager.js +1 -1
  165. package/views/2d/input/handlers/KeyPan.js +1 -1
  166. package/views/2d/layers/support/annodime/DimensionInfo.js +1 -1
  167. package/views/2d/layers/support/annodime/dimensionUtils.js +1 -1
  168. package/views/3d/input/SceneInputManager.js +1 -1
  169. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  170. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  171. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  172. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  173. package/views/3d/support/MemoryController.js +1 -1
  174. package/views/3d/support/gaussianSplatting/GaussianSplatDataStore.js +1 -1
  175. package/views/3d/webgl-engine/collections/Component/ComponentDrawParameters.js +1 -1
  176. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  177. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  178. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +3 -3
  179. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +3 -3
  180. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +4 -4
  181. package/views/3d/webgl-engine/core/shaderLibrary/output/getEmissions.glsl.js +2 -2
  182. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +57 -58
  183. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +5 -3
  184. package/views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js +2 -2
  185. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +7 -6
  186. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -3
  187. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -10
  188. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +10 -48
  189. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +16 -22
  190. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +6 -6
  191. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +5 -3
  192. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrGlobals.glsl.js +19 -0
  193. package/views/3d/webgl-engine/core/shaderLibrary/shading/pbrShadingInfo.glsl.js +24 -0
  194. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
  195. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +2 -2
  196. package/views/3d/webgl-engine/effects/snowcover/SnowCover.glsl.js +4 -4
  197. package/views/3d/webgl-engine/lib/GaussianSplatDepthRenderer.js +1 -1
  198. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  199. package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
  200. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  201. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  202. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  203. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  204. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  205. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  206. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  207. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  208. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  209. package/views/3d/webgl-engine/materials/VisualVariablePassParameters.js +1 -1
  210. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  211. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  212. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +19 -22
  213. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  214. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  215. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  216. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  217. package/views/3d/webgl-engine/shaders/SlicePlaneMaterialTechniqueConfiguration.js +1 -1
  218. package/views/MapView.d.ts +1 -0
  219. package/views/SceneView.d.ts +1 -0
  220. package/views/View.js +1 -1
  221. package/views/support/DefaultsFromMap.js +1 -1
  222. package/widgets/BasemapLayerList.js +1 -1
  223. package/widgets/BatchAttributeForm/ReactiveContingentValuesManager.js +1 -1
  224. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  225. package/widgets/BatchAttributeForm/inputs/support/MultipleChoiceController.js +1 -1
  226. package/widgets/BatchAttributeForm.js +1 -1
  227. package/widgets/Bookmarks.js +1 -1
  228. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  229. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  230. package/widgets/Search/LocatorSearchSource.d.ts +4 -3
  231. package/widgets/support/forms/formUtils.d.ts +5 -0
  232. package/widgets/support/forms/formUtils.js +1 -1
  233. package/widgets/support/forms/types.d.ts +7 -1
  234. package/assets/esri/core/workers/chunks/075eb62465edb9cbf907.js +0 -1
  235. package/assets/esri/core/workers/chunks/0ff13f7a18b0123d253e.js +0 -1
  236. package/assets/esri/core/workers/chunks/1082bb0858585bd4fa21.js +0 -2
  237. package/assets/esri/core/workers/chunks/19ac6f4664f97fb3821c.js +0 -1
  238. package/assets/esri/core/workers/chunks/1ec01fd6330d011c76d6.js +0 -1
  239. package/assets/esri/core/workers/chunks/2e2349387a2b9903f13c.js +0 -2
  240. package/assets/esri/core/workers/chunks/349e9f3d3e3267d02988.js +0 -1
  241. package/assets/esri/core/workers/chunks/3ffc852db1a820ed143b.js +0 -1
  242. package/assets/esri/core/workers/chunks/411bbdecba340df11d95.js +0 -2
  243. package/assets/esri/core/workers/chunks/4490dd8bae0dd2769d99.js +0 -1
  244. package/assets/esri/core/workers/chunks/476535cfb06ced74d611.js +0 -2
  245. package/assets/esri/core/workers/chunks/5e56a004b4407b8066eb.js +0 -1
  246. package/assets/esri/core/workers/chunks/6df29716f75696434807.js +0 -1
  247. package/assets/esri/core/workers/chunks/a322afbb48898ce35851.js +0 -1
  248. package/assets/esri/core/workers/chunks/b82b523b6837ed1f28d3.js +0 -2
  249. package/assets/esri/core/workers/chunks/c7b762bae945f383c723.js +0 -1
  250. package/assets/esri/core/workers/chunks/ef24fd6c0322e5de9fdf.js +0 -2
  251. package/assets/esri/core/workers/chunks/f9e5740b05de24ba81be.js +0 -1
  252. package/assets/esri/core/workers/chunks/fc622f9e33e3b48113c8.js +0 -1
  253. /package/assets/esri/core/workers/chunks/{476535cfb06ced74d611.js.LICENSE.txt → 430802108b63194b7ddd.js.LICENSE.txt} +0 -0
  254. /package/assets/esri/core/workers/chunks/{b82b523b6837ed1f28d3.js.LICENSE.txt → 7f2ac03efaa4a4898ba2.js.LICENSE.txt} +0 -0
  255. /package/assets/esri/core/workers/chunks/{ef24fd6c0322e5de9fdf.js.LICENSE.txt → bdcca906fdfb8e179abb.js.LICENSE.txt} +0 -0
  256. /package/assets/esri/core/workers/chunks/{1082bb0858585bd4fa21.js.LICENSE.txt → c5e288d57bacb8451e2d.js.LICENSE.txt} +0 -0
  257. /package/assets/esri/core/workers/chunks/{2e2349387a2b9903f13c.js.LICENSE.txt → d5e3f8e5b8d2576d3cb3.js.LICENSE.txt} +0 -0
  258. /package/assets/esri/core/workers/chunks/{411bbdecba340df11d95.js.LICENSE.txt → f465fb26541372fdc908.js.LICENSE.txt} +0 -0
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../core/Error.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{addMainLightDirection as s,addMainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDrawFragment as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{WaterColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addCameraPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as j}from"../webscene/support/AlphaCutoff.js";function C(C){const L=new y,{vertex:P,fragment:x,varyings:S}=L,{output:_,draped:O,receiveShadows:M}=C;p(P,C),L.include(i),L.attributes.add("position","vec3"),L.attributes.add("uv0","vec2");const D=new w("waterColor",e=>e.color);if(S.add("vpos","vec3",{invariant:!0}),P.uniforms.add(D),o(_)){if(O)return P.main.add(h`
2
+ import e from"../core/Error.js";import{isColor as o}from"../views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js";import{SliceDraw as r}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as i}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{ObjectAndLayerIdColor as a}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js";import{OutputHighlight as t}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{EvaluateAmbientLighting as n}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import{mainLightDirection as s,mainLightIntensity as l}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as d}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDrawFragment as m}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{WaterColor as c}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js";import{WaterDistortion as g}from"../views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js";import{ColorConversion as v}from"../views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js";import{addProjViewLocalOrigin as p,addCameraPosition as u}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float4PassUniform as w}from"../views/3d/webgl-engine/core/shaderModules/Float4PassUniform.js";import{FloatPassUniform as f}from"../views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js";import{glsl as h}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{outputColorHighlightOLID as b}from"../views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js";import{ShaderBuilder as y}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as j}from"../webscene/support/AlphaCutoff.js";function C(C){const L=new y,{vertex:P,fragment:x,varyings:S}=L,{output:_,draped:O,receiveShadows:M}=C;p(P,C),L.include(i),L.attributes.add("position","vec3"),L.attributes.add("uv0","vec2");const D=new w("waterColor",e=>e.color);if(S.add("vpos","vec3",{invariant:!0}),P.uniforms.add(D),o(_)){if(O)return P.main.add(h`
3
3
  if (waterColor.a < ${h.float(j)}) {
4
4
  // Discard this vertex
5
5
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
@@ -7,7 +7,7 @@ import e from"../core/Error.js";import{isColor as o}from"../views/3d/webgl-engin
7
7
  }
8
8
 
9
9
  vpos = position;
10
- gl_Position = transformPosition(proj, view, vpos);`),x.uniforms.add(D),x.main.add(h`fragColor = waterColor;`),L;L.include(d,C),S.add("vuv","vec2"),S.add("vnormal","vec3"),S.add("vtbnMatrix","mat3"),P.main.add(h`
10
+ gl_Position = transformPosition(proj, view, vpos);`),x.uniforms.add(D),x.main.add(h`fragColor = waterColor;`),L;P.include(d,C),S.add("vuv","vec2"),S.add("vnormal","vec3"),S.add("vtbnMatrix","mat3"),P.main.add(h`
11
11
  if (waterColor.a < ${h.float(j)}) {
12
12
  // Discard this vertex
13
13
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
@@ -21,7 +21,7 @@ import e from"../core/Error.js";import{isColor as o}from"../views/3d/webgl-engin
21
21
  vtbnMatrix = getTBNMatrix(vnormal);
22
22
 
23
23
  gl_Position = transformPosition(proj, view, vpos);
24
- forwardLinearDepthToReadShadowMap();`)}switch(L.include(m,C),_){case 0:case 1:case 2:x.include(n,{pbrMode:0}),L.include(g),L.include(c,C),x.include(r,C),L.include(b,C),x.include(v),u(x,C),s(x),l(x),x.uniforms.add(D,new f("timeElapsed",({timeElapsed:e})=>e),P.uniforms.get("view"),P.uniforms.get("localOrigin")).main.add(h`
24
+ forwardLinearDepthToReadShadowMap();`)}switch(L.include(m,C),_){case 0:case 1:case 2:x.include(n,{pbrMode:0}),L.include(g),L.include(c,C),x.include(r,C),L.include(b,C),x.include(v),u(x,C),x.uniforms.add(s,l,D,new f("timeElapsed",({timeElapsed:e})=>e),P.uniforms.get("view"),P.uniforms.get("localOrigin")).main.add(h`
25
25
  discardBySlice(vpos);
26
26
  vec3 localUp = vnormal;
27
27
  // the created normal is in tangent space
@@ -35,7 +35,7 @@ import e from"../core/Error.js";import{isColor as o}from"../views/3d/webgl-engin
35
35
  vec4 final = vec4(getWaterColor(n, v, mainLightDirection, waterColor.rgb, mainLightIntensity, localUp, shadow, tangentNormalFoam.w, vPosView.xyz, vpos + localOrigin), waterColor.w);
36
36
 
37
37
  fragColor = delinearizeGamma(final);
38
- outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:L.include(d,C),L.include(g,C),x.include(r,C),S.add("vuv","vec2"),P.main.add(h`
38
+ outputColorHighlightOLID(applySlice(fragColor, vpos), final.rgb);`);break;case 4:P.include(d,C),L.include(g,C),x.include(r,C),S.add("vuv","vec2"),P.main.add(h`
39
39
  if (waterColor.a < ${h.float(j)}) {
40
40
  // Discard this vertex
41
41
  gl_Position = vec4(1e38, 1e38, 1e38, 1.0);
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.111";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.2.0-next.112";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
package/core/units.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{strict as e}from"./jsonMap.js";import{getReferenceEllipsoid as s,isEarth as i}from"../geometry/ellipsoidUtils.js";import{earth as t,mars as n,moon as r}from"../geometry/support/Ellipsoid.js";import{isWKIDFromMars as a,isWKIDFromMoon as c,isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import{vcsLookup as l}from"../geometry/support/vcsLookup.js";import o from"../geometry/support/WKIDUnitConversion.js";const m=39.37,f=t.radius*Math.PI/200,d=/(?:LENGTH)?UNIT\[([^\]]+)]]$/i,U=o,b=/UNIT\[([^\]]+)]/i,B=new Set([4305,4807,4810,4811,4812,4816,4819,4821,4901,4902,37225,104025,104026,104139,104140]),k=e()({millimeter:"millimeters",centimeter:"centimeters",meter:"meters",meter_german:"german-meters",kilometer:"kilometers",decimeter:"decimeters",micrometer:"micrometers",nanometer:"nanometers","50_kilometers":"50-kilometers","150_kilometers":"150-kilometers",foot:"feet",foot_us:"us-feet",foot_clarke:"clarke-feet",fathom:"fathoms",nautical_mile:"nautical-miles",chain_us:"us-chains",link_us:"us-links",mile_us:"us-miles",yard_clarke:"clarke-yards",chain_clarke:"clarke-chains",link_clarke:"clarke-links",yard_sears:"sears-yards",foot_sears:"sears-feet",chain_sears:"sears-chains",link_sears:"sears-links",yard_benoit_1895_a:"benoit-1895-a-yards",foot_benoit_1895_a:"benoit-1895-a-feet",chain_benoit_1895_a:"benoit-1895-a-chains",link_benoit_1895_a:"benoit-1895-a-links",yard_benoit_1895_b:"benoit-1895-b-yards",foot_benoit_1895_b:"benoit-1895-b-feet",chain_benoit_1895_b:"benoit-1895-b-chains",link_benoit_1895_b:"benoit-1895-b-links",foot_1865:"1865-feet",foot_indian:"indian-feet",foot_indian_1937:"indian-1937-feet",foot_indian_1962:"indian-1962-feet",foot_indian_1975:"indian-1975-feet",yard_indian:"indian-yards",yard_indian_1937:"indian-1937-yards",yard_indian_1962:"indian-1962-yards",yard_indian_1975:"indian-1975-yards",statute_mile:"statute-miles",foot_gold_coast:"gold-coast-feet",foot_british_1936:"british-1936-feet",yard:"yards",chain:"chains",link:"links",yard_sears_1922_truncated:"sears-1922-truncated-yards",foot_sears_1922_truncated:"sears-1922-truncated-feet",chain_sears_1922_truncated:"sears-1922-truncated-chains",link_sears_1922_truncated:"sears-1922-truncated-links",yard_us:"us-yards",inch:"inches",inch_us:"us-inches",rod:"rods",rod_us:"us-rods",nautical_mile_us:"us-nautical-miles",nautical_mile_uk:"uk-nautical-miles",smoot:"smoots",vara_tx:"tx-vara",point:"points"}),h=e=>e*e,_=e=>e*e*e,q={length:{baseUnit:"meters",units:{millimeters:{inBaseUnits:.001},centimeters:{inBaseUnits:.01},meters:{inBaseUnits:1},feet:{inBaseUnits:.3048},"us-feet":{inBaseUnits:.3048006096012192},"clarke-feet":{inBaseUnits:.3047972654},fathoms:{inBaseUnits:1.8288},"nautical-miles":{inBaseUnits:1852},"german-meters":{inBaseUnits:1.0000135965},"us-chains":{inBaseUnits:20.11684023368047},"us-links":{inBaseUnits:.2011684023368047},"us-miles":{inBaseUnits:1609.347218694438},kilometers:{inBaseUnits:1e3},"clarke-yards":{inBaseUnits:.9143917962},"clarke-chains":{inBaseUnits:20.1166195164},"clarke-links":{inBaseUnits:.201166195164},"sears-yards":{inBaseUnits:.9143984146160287},"sears-feet":{inBaseUnits:.3047994715386762},"sears-chains":{inBaseUnits:20.11676512155263},"sears-links":{inBaseUnits:.2011676512155263},"benoit-1895-a-yards":{inBaseUnits:.9143992},"benoit-1895-a-feet":{inBaseUnits:.3047997333333333},"benoit-1895-a-chains":{inBaseUnits:20.1167824},"benoit-1895-a-links":{inBaseUnits:.201167824},"benoit-1895-b-yards":{inBaseUnits:.9143992042898124},"benoit-1895-b-feet":{inBaseUnits:.3047997347632708},"benoit-1895-b-chains":{inBaseUnits:20.11678249437587},"benoit-1895-b-links":{inBaseUnits:.2011678249437587},"1865-feet":{inBaseUnits:.3048008333333334},"indian-feet":{inBaseUnits:.3047995102481469},"indian-1937-feet":{inBaseUnits:.30479841},"indian-1962-feet":{inBaseUnits:.3047996},"indian-1975-feet":{inBaseUnits:.3047995},"indian-yards":{inBaseUnits:.9143985307444408},"indian-1937-yards":{inBaseUnits:.91439523},"indian-1962-yards":{inBaseUnits:.9143988},"indian-1975-yards":{inBaseUnits:.9143985},miles:{inBaseUnits:1609.344},"statute-miles":{inBaseUnits:1609.344},"gold-coast-feet":{inBaseUnits:.3047997101815088},"british-1936-feet":{inBaseUnits:.3048007491},yards:{inBaseUnits:.9144},chains:{inBaseUnits:20.1168},links:{inBaseUnits:.201168},"sears-1922-truncated-yards":{inBaseUnits:.914398},"sears-1922-truncated-feet":{inBaseUnits:.3047993333333334},"sears-1922-truncated-chains":{inBaseUnits:20.116756},"sears-1922-truncated-links":{inBaseUnits:.20116756},"us-yards":{inBaseUnits:.9144018288036576},decimeters:{inBaseUnits:.1},inches:{inBaseUnits:.0254},"us-inches":{inBaseUnits:.0254000508001016},rods:{inBaseUnits:5.0292},"us-rods":{inBaseUnits:5.029210058420118},"us-nautical-miles":{inBaseUnits:1853.248},"uk-nautical-miles":{inBaseUnits:1853.184},smoots:{inBaseUnits:1.7018},"tx-vara":{inBaseUnits:.8466683600033867},points:{inBaseUnits:.0003527777777777778},micrometers:{inBaseUnits:1e-6},nanometers:{inBaseUnits:1e-9},"50-kilometers":{inBaseUnits:5e4},"150-kilometers":{inBaseUnits:15e4}}},area:{baseUnit:"square-meters",units:{"square-millimeters":{inBaseUnits:h(.001)},"square-centimeters":{inBaseUnits:h(.01)},"square-decimeters":{inBaseUnits:h(.1)},"square-meters":{inBaseUnits:1},"square-kilometers":{inBaseUnits:h(1e3)},"square-inches":{inBaseUnits:h(.0254)},"square-feet":{inBaseUnits:h(.3048)},"square-yards":{inBaseUnits:h(.9144)},"square-miles":{inBaseUnits:h(1609.344)},"square-nautical-miles":{inBaseUnits:h(1852)},"square-us-feet":{inBaseUnits:h(1200/3937)},acres:{inBaseUnits:.0015625*h(1609.344)},ares:{inBaseUnits:100},hectares:{inBaseUnits:1e4}}},volume:{baseUnit:"liters",units:{liters:{inBaseUnits:1},megaliters:{inBaseUnits:1e6},gigaliters:{inBaseUnits:1e9},"cubic-millimeters":{inBaseUnits:1e3*_(.001)},"cubic-centimeters":{inBaseUnits:1e3*_(.01)},"cubic-decimeters":{inBaseUnits:1e3*_(.1)},"cubic-meters":{inBaseUnits:1e3},"cubic-kilometers":{inBaseUnits:1e3*_(1e3)},"cubic-inches":{inBaseUnits:1e3*_(.0254)},"cubic-feet":{inBaseUnits:1e3*_(.3048)},"cubic-yards":{inBaseUnits:1e3*_(.9144)},"cubic-miles":{inBaseUnits:1e3*_(1609.344)},"cubic-us-feet":{inBaseUnits:1e3*_(1200/3937)}}},angle:{baseUnit:"radians",units:{radians:{inBaseUnits:1},degrees:{inBaseUnits:Math.PI/180}}}},y=(()=>{const e={};for(const s in q)for(const i in q[s].units)e[i]=s;return e})();function p(e,s,i){return e*q[i].units[s].inBaseUnits}function g(e,s,i){return e/q[i].units[s].inBaseUnits}const w=["inches","feet","yards","miles","nautical-miles","us-feet","millimeters","centimeters","decimeters","meters","kilometers"],M=["square-inches","square-feet","square-yards","square-miles","square-nautical-miles","square-us-feet","square-millimeters","square-centimeters","square-decimeters","square-meters","square-kilometers","acres","ares","hectares"],v=["cubic-inches","cubic-feet","cubic-yards","cubic-miles","cubic-us-feet","liters","megaliters","gigaliters","cubic-millimeters","cubic-centimeters","cubic-decimeters","cubic-meters","cubic-kilometers"],S=["metric","imperial"],D=[...S,...M],C=[...S,...w],E=[...S,...v],P=new Map([["meters","square-meters"],["feet","square-feet"],["us-feet","square-us-feet"]]);function x(e){return"imperial"===e||"metric"===e}function W(e){const s=y[e];if(!s)throw new Error("unknown type");return s}function I(e){return q[e].baseUnit}function j(e){return I(W(e))}function R(e,s=null){return s=s||W(e),q[s].baseUnit===e}function F(e,s,i){if(s===i)return e;const t=W(s);if(t!==W(i))throw new Error("incompatible units");const n=R(s,t)?e:p(e,s,t);return R(i,t)?n:g(n,i,t)}function N(e,s,i,t=!1){if(!t&&u(s))throw new Error("Unable to convert from an angular unit to a linear unit.");const n=me(s);return n!==i&&(e=n?F(e,n,i):F(e*=ae(s),"meters",i)),e}function O(e,s,i,t=!1){if(!t&&u(i))throw new Error("Unable to convert from a linear unit to an angular unit.");const n=me(i);return s!==n&&(e=n?F(e,s,n):F(e,s,"meters")/ae(i)),e}function J(e){switch(e){case"metric":return"meters";case"imperial":return"feet";default:return e}}function T(e){return J(e)}function V(e){switch(e){case"metric":return"square-meters";case"imperial":return"square-feet";default:return e}}function K(e){switch(e){case"metric":return"cubic-meters";case"imperial":return"cubic-feet";default:return e}}function L(e,s,i){switch(i){case"metric":return G(e,s);case"imperial":return Y(e,s);default:return i}}function A(e,s,i){switch(i){case"metric":return H(e,s);case"imperial":return $(e,s);default:return i}}function G(e,s){const i=F(e,s,"meters");return Math.abs(i)<3e3?"meters":"kilometers"}function H(e,s){const i=F(e,s,"meters");return Math.abs(i)<1e5?"meters":"kilometers"}function Y(e,s){const i=F(e,s,"feet");return Math.abs(i)<1e3?"feet":"miles"}function $(e,s){const i=F(e,s,"feet");return Math.abs(i)<1e5?"feet":"miles"}function z(e,s){const i=F(e,s,"square-meters");return Math.abs(i)<3e6?"square-meters":"square-kilometers"}function Q(e,s){const i=F(e,s,"square-feet");return Math.abs(i)<1e6?"square-feet":"square-miles"}function X(e,s,i){switch(i){case"metric":return z(e,s);case"imperial":return Q(e,s);default:return i}}function Z(e,s){const i=F(e,s,"cubic-meters");return Math.abs(i)<3e8?"cubic-meters":"cubic-kilometers"}function ee(e,s){const i=F(e,s,"cubic-feet");return Math.abs(i)<1e8?"cubic-feet":"cubic-miles"}function se(e,s,i){switch(i){case"metric":return Z(e,s);case"imperial":return ee(e,s);default:return i}}function ie(e,s,i){return F(e,s,"meters")/(i*Math.PI/180)}function te(e){return k.fromJSON(e.toLowerCase())||null}function ne(e){const s=(e?.latestVcsWkid?l.get(e.latestVcsWkid):null)??(e?.vcsWkid?l.get(e.vcsWkid):null);return s?s.unit.conversionFactor:null==e||i(e)?ce(e,!1)??1:1}function re(e){const i=(e?.latestVcsWkid?l.get(e.latestVcsWkid):null)??(e?.vcsWkid?l.get(e.vcsWkid):null);if(i)return te(i.unit.name);return ae(e)>=s(e).metersPerDegree?"meters":me(e)}function ae(e,s=t.metersPerDegree){return ce(e,!0)??s}function ce(e,s=!1){const i=e?.wkid??null,t=e?.wkt2??e?.wkt??null;let u=null;if(i){if(a(i))return n.metersPerDegree;if(c(i))return r.metersPerDegree;u=U.values[U[i]],!u&&s&&B.has(i)&&(u=f)}else t&&(Be(t)?u=le(d.exec(t),u):be(t)&&(u=le(b.exec(t),u)));return u}function ue(e){return u(e)?1:ae(e)}function le(e,s){return e?.[1]?oe(e[1]):s}function oe(e){return parseFloat(e.split(",")[1])}function me(e){const s=e?.wkid??null,i=e?.wkt2??e?.wkt??null;let t=null;if(s)t=U.units[U[s]];else if(i){const e=Be(i)?d:be(i)?b:null;if(e){const s=e.exec(i);s?.[1]&&(t=he(s[1]))}}return null!=t?te(t):null}function fe(e){const s=me(e);return null!=s&&C.includes(s)?s:null}function de(e){const s=re(e);return null!=s&&C.includes(s)?s:null}function Ue(e){const s=me(e);return null==s?null:P.get(s)}function be(e){return/^GEOCCS/i.test(e)}function Be(e){return/^\s*(?:PROJCS|PROJCRS|PROJECTEDCRS)/i.test(e)}const ke=1e-7;function he(e){const s=/[\\"']([^\\"']+)/.exec(e);let i=s?.[1];if(!i||!te(i)){const s=oe(e);i=null;const t=U.values;for(let e=0;e<t.length;++e)if(Math.abs(s-t[e])<ke){i=U.units[e];break}}return i}function _e(e){const s=me(e);if(null==s)return null;switch(s){case"feet":case"us-feet":case"clarke-feet":case"fathoms":case"nautical-miles":case"us-chains":case"us-links":case"us-miles":case"clarke-yards":case"clarke-chains":case"clarke-links":case"sears-yards":case"sears-feet":case"sears-chains":case"sears-links":case"benoit-1895-a-yards":case"benoit-1895-a-feet":case"benoit-1895-a-chains":case"benoit-1895-a-links":case"benoit-1895-b-yards":case"benoit-1895-b-feet":case"benoit-1895-b-chains":case"benoit-1895-b-links":case"1865-feet":case"indian-feet":case"indian-1937-feet":case"indian-1962-feet":case"indian-1975-feet":case"indian-yards":case"indian-1937-yards":case"indian-1962-yards":case"indian-1975-yards":case"statute-miles":case"gold-coast-feet":case"british-1936-feet":case"yards":case"chains":case"links":case"sears-1922-truncated-yards":case"sears-1922-truncated-feet":case"sears-1922-truncated-chains":case"sears-1922-truncated-links":case"us-yards":case"inches":case"us-inches":case"rods":case"us-rods":case"us-nautical-miles":case"uk-nautical-miles":case"smoots":case"tx-vara":case"points":return"imperial";case"millimeters":case"centimeters":case"meters":case"german-meters":case"kilometers":case"decimeters":case"micrometers":case"nanometers":case"50-kilometers":case"150-kilometers":return"metric"}return null}const qe={esriAcres:"acres",esriAres:"ares",esriHectares:"hectares",esriSquareCentimeters:"square-centimeters",esriSquareDecimeters:"square-decimeters",esriSquareFeet:"square-feet",esriSquareInches:"square-inches",esriSquareKilometers:"square-kilometers",esriSquareMeters:"square-meters",esriSquareMiles:"square-miles",esriSquareMillimeters:"square-millimeters",esriSquareUsFeet:"square-us-feet",esriSquareYards:"square-yards"},ye={esriCentimeters:"centimeters",esriDecimeters:"decimeters",esriFeet:"feet",esriInches:"inches",esriKilometers:"kilometers",esriMeters:"meters",esriMiles:"miles",esriMillimeters:"millimeters",esriNauticalMiles:"nautical-miles",esriYards:"yards"},pe={esriDUDecimalDegrees:"degrees",esriDURadians:"radians"},ge=e()(qe),we=e()(ye),Me=e()(pe);function ve(e){switch(e){case"metric":case"ares":case"hectares":return"metric";case"imperial":case"acres":return"imperial";case"square-inches":return"inches";case"square-feet":return"feet";case"square-yards":return"yards";case"square-miles":return"miles";case"square-nautical-miles":return"nautical-miles";case"square-us-feet":return"us-feet";case"square-millimeters":return"millimeters";case"square-centimeters":return"centimeters";case"square-decimeters":return"decimeters";case"square-meters":return"meters";case"square-kilometers":return"kilometers"}throw new Error("unhandled area unit")}export{X as adaptiveAreaUnit,Q as adaptiveImperialAreaUnit,Y as adaptiveImperialLengthUnit,$ as adaptiveImperialVerticalLengthUnit,ee as adaptiveImperialVolumeUnit,L as adaptiveLengthUnit,z as adaptiveMetricAreaUnit,G as adaptiveMetricLengthUnit,H as adaptiveMetricVerticalLengthUnit,Z as adaptiveMetricVolumeUnit,A as adaptiveVerticalLengthUnit,se as adaptiveVolumeUnit,Me as angleUnitsJSONMap,Ue as areaUnitFromSpatialReference,ge as areaUnitsJSONMap,j as baseUnitForUnit,I as baseUnitForUnitType,N as convertFromSpatialReferenceUnit,O as convertToSpatialReferenceUnit,F as convertUnit,V as defaultAreaUnit,J as defaultLengthUnit,T as defaultVerticalLengthUnit,K as defaultVolumeUnit,ve as deriveLengthUnitFromAreaUnit,_e as getDefaultUnitSystem,ue as getMetersPerCartesianUnitForSR,ce as getMetersPerUnit,ae as getMetersPerUnitForSR,ne as getMetersPerVerticalUnitForSR,me as getUnitString,re as getVerticalUnitStringForSR,B as gradGcsIds,m as inchesPerMeter,R as isBaseUnit,x as isMeasurementSystem,Be as isProjectedWKT,ie as lengthToDegrees,fe as lengthUnitFromSpatialReference,w as lengthUnits,we as lengthUnitsJSONMap,D as measurementAreaUnits,C as measurementLengthUnits,E as measurementVolumeUnits,te as unitFromRESTJSON,W as unitType,de as verticalLengthUnitFromSpatialReference};
2
+ import{strict as e}from"./jsonMap.js";import{getReferenceEllipsoid as s,isEarth as i}from"../geometry/ellipsoidUtils.js";import{earth as t,mars as n,moon as r}from"../geometry/support/Ellipsoid.js";import{isWKIDFromMars as a,isWKIDFromMoon as c,isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import{vcsLookup as l}from"../geometry/support/vcsLookup.js";import o from"../geometry/support/WKIDUnitConversion.js";const m=39.37,f=t.radius*Math.PI/200,d=/(?:LENGTH)?UNIT\[([^\]]+)]]$/i,U=o,b=/UNIT\[([^\]]+)]/i,B=new Set([4305,4807,4810,4811,4812,4816,4819,4821,4901,4902,37225,104025,104026,104139,104140]),h=e()({millimeter:"millimeters",centimeter:"centimeters",meter:"meters",meter_german:"german-meters",kilometer:"kilometers",decimeter:"decimeters",micrometer:"micrometers",nanometer:"nanometers","50_kilometers":"50-kilometers","150_kilometers":"150-kilometers",foot:"feet",foot_us:"us-feet",foot_clarke:"clarke-feet",fathom:"fathoms",nautical_mile:"nautical-miles",chain_us:"us-chains",link_us:"us-links",mile_us:"us-miles",yard_clarke:"clarke-yards",chain_clarke:"clarke-chains",link_clarke:"clarke-links",yard_sears:"sears-yards",foot_sears:"sears-feet",chain_sears:"sears-chains",link_sears:"sears-links",yard_benoit_1895_a:"benoit-1895-a-yards",foot_benoit_1895_a:"benoit-1895-a-feet",chain_benoit_1895_a:"benoit-1895-a-chains",link_benoit_1895_a:"benoit-1895-a-links",yard_benoit_1895_b:"benoit-1895-b-yards",foot_benoit_1895_b:"benoit-1895-b-feet",chain_benoit_1895_b:"benoit-1895-b-chains",link_benoit_1895_b:"benoit-1895-b-links",foot_1865:"1865-feet",foot_indian:"indian-feet",foot_indian_1937:"indian-1937-feet",foot_indian_1962:"indian-1962-feet",foot_indian_1975:"indian-1975-feet",yard_indian:"indian-yards",yard_indian_1937:"indian-1937-yards",yard_indian_1962:"indian-1962-yards",yard_indian_1975:"indian-1975-yards",statute_mile:"statute-miles",foot_gold_coast:"gold-coast-feet",foot_british_1936:"british-1936-feet",yard:"yards",chain:"chains",link:"links",yard_sears_1922_truncated:"sears-1922-truncated-yards",foot_sears_1922_truncated:"sears-1922-truncated-feet",chain_sears_1922_truncated:"sears-1922-truncated-chains",link_sears_1922_truncated:"sears-1922-truncated-links",yard_us:"us-yards",inch:"inches",inch_us:"us-inches",rod:"rods",rod_us:"us-rods",nautical_mile_us:"us-nautical-miles",nautical_mile_uk:"uk-nautical-miles",smoot:"smoots",vara_tx:"tx-vara",point:"points"}),k=new Map([[9001,"meters"],[9002,"feet"],[9003,"us-feet"],[9030,"nautical-miles"],[9035,"us-miles"],[9036,"kilometers"],[9093,"statute-miles"],[9096,"yards"],[109002,"us-yards"],[109005,"decimeters"],[109006,"centimeters"],[109007,"millimeters"],[109008,"inches"],[109009,"us-inches"],[109012,"us-nautical-miles"],[109016,"points"]]),_=e=>e*e,q=e=>e*e*e,y={length:{baseUnit:"meters",units:{millimeters:{inBaseUnits:.001},centimeters:{inBaseUnits:.01},meters:{inBaseUnits:1},feet:{inBaseUnits:.3048},"us-feet":{inBaseUnits:.3048006096012192},"clarke-feet":{inBaseUnits:.3047972654},fathoms:{inBaseUnits:1.8288},"nautical-miles":{inBaseUnits:1852},"german-meters":{inBaseUnits:1.0000135965},"us-chains":{inBaseUnits:20.11684023368047},"us-links":{inBaseUnits:.2011684023368047},"us-miles":{inBaseUnits:1609.347218694438},kilometers:{inBaseUnits:1e3},"clarke-yards":{inBaseUnits:.9143917962},"clarke-chains":{inBaseUnits:20.1166195164},"clarke-links":{inBaseUnits:.201166195164},"sears-yards":{inBaseUnits:.9143984146160287},"sears-feet":{inBaseUnits:.3047994715386762},"sears-chains":{inBaseUnits:20.11676512155263},"sears-links":{inBaseUnits:.2011676512155263},"benoit-1895-a-yards":{inBaseUnits:.9143992},"benoit-1895-a-feet":{inBaseUnits:.3047997333333333},"benoit-1895-a-chains":{inBaseUnits:20.1167824},"benoit-1895-a-links":{inBaseUnits:.201167824},"benoit-1895-b-yards":{inBaseUnits:.9143992042898124},"benoit-1895-b-feet":{inBaseUnits:.3047997347632708},"benoit-1895-b-chains":{inBaseUnits:20.11678249437587},"benoit-1895-b-links":{inBaseUnits:.2011678249437587},"1865-feet":{inBaseUnits:.3048008333333334},"indian-feet":{inBaseUnits:.3047995102481469},"indian-1937-feet":{inBaseUnits:.30479841},"indian-1962-feet":{inBaseUnits:.3047996},"indian-1975-feet":{inBaseUnits:.3047995},"indian-yards":{inBaseUnits:.9143985307444408},"indian-1937-yards":{inBaseUnits:.91439523},"indian-1962-yards":{inBaseUnits:.9143988},"indian-1975-yards":{inBaseUnits:.9143985},miles:{inBaseUnits:1609.344},"statute-miles":{inBaseUnits:1609.344},"gold-coast-feet":{inBaseUnits:.3047997101815088},"british-1936-feet":{inBaseUnits:.3048007491},yards:{inBaseUnits:.9144},chains:{inBaseUnits:20.1168},links:{inBaseUnits:.201168},"sears-1922-truncated-yards":{inBaseUnits:.914398},"sears-1922-truncated-feet":{inBaseUnits:.3047993333333334},"sears-1922-truncated-chains":{inBaseUnits:20.116756},"sears-1922-truncated-links":{inBaseUnits:.20116756},"us-yards":{inBaseUnits:.9144018288036576},decimeters:{inBaseUnits:.1},inches:{inBaseUnits:.0254},"us-inches":{inBaseUnits:.0254000508001016},rods:{inBaseUnits:5.0292},"us-rods":{inBaseUnits:5.029210058420118},"us-nautical-miles":{inBaseUnits:1853.248},"uk-nautical-miles":{inBaseUnits:1853.184},smoots:{inBaseUnits:1.7018},"tx-vara":{inBaseUnits:.8466683600033867},points:{inBaseUnits:.0003527777777777778},micrometers:{inBaseUnits:1e-6},nanometers:{inBaseUnits:1e-9},"50-kilometers":{inBaseUnits:5e4},"150-kilometers":{inBaseUnits:15e4}}},area:{baseUnit:"square-meters",units:{"square-millimeters":{inBaseUnits:_(.001)},"square-centimeters":{inBaseUnits:_(.01)},"square-decimeters":{inBaseUnits:_(.1)},"square-meters":{inBaseUnits:1},"square-kilometers":{inBaseUnits:_(1e3)},"square-inches":{inBaseUnits:_(.0254)},"square-feet":{inBaseUnits:_(.3048)},"square-yards":{inBaseUnits:_(.9144)},"square-miles":{inBaseUnits:_(1609.344)},"square-nautical-miles":{inBaseUnits:_(1852)},"square-us-feet":{inBaseUnits:_(1200/3937)},acres:{inBaseUnits:.0015625*_(1609.344)},ares:{inBaseUnits:100},hectares:{inBaseUnits:1e4}}},volume:{baseUnit:"liters",units:{liters:{inBaseUnits:1},megaliters:{inBaseUnits:1e6},gigaliters:{inBaseUnits:1e9},"cubic-millimeters":{inBaseUnits:1e3*q(.001)},"cubic-centimeters":{inBaseUnits:1e3*q(.01)},"cubic-decimeters":{inBaseUnits:1e3*q(.1)},"cubic-meters":{inBaseUnits:1e3},"cubic-kilometers":{inBaseUnits:1e3*q(1e3)},"cubic-inches":{inBaseUnits:1e3*q(.0254)},"cubic-feet":{inBaseUnits:1e3*q(.3048)},"cubic-yards":{inBaseUnits:1e3*q(.9144)},"cubic-miles":{inBaseUnits:1e3*q(1609.344)},"cubic-us-feet":{inBaseUnits:1e3*q(1200/3937)}}},angle:{baseUnit:"radians",units:{radians:{inBaseUnits:1},degrees:{inBaseUnits:Math.PI/180}}}},p=(()=>{const e={};for(const s in y)for(const i in y[s].units)e[i]=s;return e})();function g(e,s,i){return e*y[i].units[s].inBaseUnits}function w(e,s,i){return e/y[i].units[s].inBaseUnits}const M=["inches","feet","yards","miles","nautical-miles","us-feet","millimeters","centimeters","decimeters","meters","kilometers"],v=["square-inches","square-feet","square-yards","square-miles","square-nautical-miles","square-us-feet","square-millimeters","square-centimeters","square-decimeters","square-meters","square-kilometers","acres","ares","hectares"],S=["cubic-inches","cubic-feet","cubic-yards","cubic-miles","cubic-us-feet","liters","megaliters","gigaliters","cubic-millimeters","cubic-centimeters","cubic-decimeters","cubic-meters","cubic-kilometers"],D=["metric","imperial"],C=[...D,...v],E=[...D,...M],P=[...D,...S],x=new Map([["meters","square-meters"],["feet","square-feet"],["us-feet","square-us-feet"]]);function W(e){return"imperial"===e||"metric"===e}function I(e){const s=p[e];if(!s)throw new Error("unknown type");return s}function j(e){return y[e].baseUnit}function R(e){return j(I(e))}function F(e,s=null){return s=s||I(e),y[s].baseUnit===e}function N(e,s,i){if(s===i)return e;const t=I(s);if(t!==I(i))throw new Error("incompatible units");const n=F(s,t)?e:g(e,s,t);return F(i,t)?n:w(n,i,t)}function O(e,s,i,t=!1){if(!t&&u(s))throw new Error("Unable to convert from an angular unit to a linear unit.");const n=de(s);return n!==i&&(e=n?N(e,n,i):N(e*=ue(s),"meters",i)),e}function J(e,s,i,t=!1){if(!t&&u(i))throw new Error("Unable to convert from a linear unit to an angular unit.");const n=de(i);return s!==n&&(e=n?N(e,s,n):N(e,s,"meters")/ue(i)),e}function T(e){switch(e){case"metric":return"meters";case"imperial":return"feet";default:return e}}function V(e){return T(e)}function K(e){switch(e){case"metric":return"square-meters";case"imperial":return"square-feet";default:return e}}function L(e){switch(e){case"metric":return"cubic-meters";case"imperial":return"cubic-feet";default:return e}}function A(e,s,i){switch(i){case"metric":return H(e,s);case"imperial":return $(e,s);default:return i}}function G(e,s,i){switch(i){case"metric":return Y(e,s);case"imperial":return z(e,s);default:return i}}function H(e,s){const i=N(e,s,"meters");return Math.abs(i)<3e3?"meters":"kilometers"}function Y(e,s){const i=N(e,s,"meters");return Math.abs(i)<1e5?"meters":"kilometers"}function $(e,s){const i=N(e,s,"feet");return Math.abs(i)<1e3?"feet":"miles"}function z(e,s){const i=N(e,s,"feet");return Math.abs(i)<1e5?"feet":"miles"}function Q(e,s){const i=N(e,s,"square-meters");return Math.abs(i)<3e6?"square-meters":"square-kilometers"}function X(e,s){const i=N(e,s,"square-feet");return Math.abs(i)<1e6?"square-feet":"square-miles"}function Z(e,s,i){switch(i){case"metric":return Q(e,s);case"imperial":return X(e,s);default:return i}}function ee(e,s){const i=N(e,s,"cubic-meters");return Math.abs(i)<3e8?"cubic-meters":"cubic-kilometers"}function se(e,s){const i=N(e,s,"cubic-feet");return Math.abs(i)<1e8?"cubic-feet":"cubic-miles"}function ie(e,s,i){switch(i){case"metric":return ee(e,s);case"imperial":return se(e,s);default:return i}}function te(e,s,i){return N(e,s,"meters")/(i*Math.PI/180)}function ne(e){return h.fromJSON(e.toLowerCase())||null}function re(e){return k.get(e)??null}function ae(e){const s=(e?.latestVcsWkid?l.get(e.latestVcsWkid):null)??(e?.vcsWkid?l.get(e.vcsWkid):null);return s?s.unit.conversionFactor:null==e||i(e)?le(e,!1)??1:1}function ce(e){const i=(e?.latestVcsWkid?l.get(e.latestVcsWkid):null)??(e?.vcsWkid?l.get(e.vcsWkid):null);if(i)return ne(i.unit.name);return ue(e)>=s(e).metersPerDegree?"meters":de(e)}function ue(e,s=t.metersPerDegree){return le(e,!0)??s}function le(e,s=!1){const i=e?.wkid??null,t=e?.wkt2??e?.wkt??null;let u=null;if(i){if(a(i))return n.metersPerDegree;if(c(i))return r.metersPerDegree;u=U.values[U[i]],!u&&s&&B.has(i)&&(u=f)}else t&&(ke(t)?u=me(d.exec(t),u):he(t)&&(u=me(b.exec(t),u)));return u}function oe(e){return u(e)?1:ue(e)}function me(e,s){return e?.[1]?fe(e[1]):s}function fe(e){return parseFloat(e.split(",")[1])}function de(e){const s=e?.wkid??null,i=e?.wkt2??e?.wkt??null;let t=null;if(s)t=U.units[U[s]];else if(i){const e=ke(i)?d:he(i)?b:null;if(e){const s=e.exec(i);s?.[1]&&(t=qe(s[1]))}}return null!=t?ne(t):null}function Ue(e){const s=de(e);return null!=s&&E.includes(s)?s:null}function be(e){const s=ce(e);return null!=s&&E.includes(s)?s:null}function Be(e){const s=de(e);return null==s?null:x.get(s)}function he(e){return/^GEOCCS/i.test(e)}function ke(e){return/^\s*(?:PROJCS|PROJCRS|PROJECTEDCRS)/i.test(e)}const _e=1e-7;function qe(e){const s=/[\\"']([^\\"']+)/.exec(e);let i=s?.[1];if(!i||!ne(i)){const s=fe(e);i=null;const t=U.values;for(let e=0;e<t.length;++e)if(Math.abs(s-t[e])<_e){i=U.units[e];break}}return i}function ye(e){const s=de(e);if(null==s)return null;switch(s){case"feet":case"us-feet":case"clarke-feet":case"fathoms":case"nautical-miles":case"us-chains":case"us-links":case"us-miles":case"clarke-yards":case"clarke-chains":case"clarke-links":case"sears-yards":case"sears-feet":case"sears-chains":case"sears-links":case"benoit-1895-a-yards":case"benoit-1895-a-feet":case"benoit-1895-a-chains":case"benoit-1895-a-links":case"benoit-1895-b-yards":case"benoit-1895-b-feet":case"benoit-1895-b-chains":case"benoit-1895-b-links":case"1865-feet":case"indian-feet":case"indian-1937-feet":case"indian-1962-feet":case"indian-1975-feet":case"indian-yards":case"indian-1937-yards":case"indian-1962-yards":case"indian-1975-yards":case"statute-miles":case"gold-coast-feet":case"british-1936-feet":case"yards":case"chains":case"links":case"sears-1922-truncated-yards":case"sears-1922-truncated-feet":case"sears-1922-truncated-chains":case"sears-1922-truncated-links":case"us-yards":case"inches":case"us-inches":case"rods":case"us-rods":case"us-nautical-miles":case"uk-nautical-miles":case"smoots":case"tx-vara":case"points":return"imperial";case"millimeters":case"centimeters":case"meters":case"german-meters":case"kilometers":case"decimeters":case"micrometers":case"nanometers":case"50-kilometers":case"150-kilometers":return"metric"}return null}const pe={esriAcres:"acres",esriAres:"ares",esriHectares:"hectares",esriSquareCentimeters:"square-centimeters",esriSquareDecimeters:"square-decimeters",esriSquareFeet:"square-feet",esriSquareInches:"square-inches",esriSquareKilometers:"square-kilometers",esriSquareMeters:"square-meters",esriSquareMiles:"square-miles",esriSquareMillimeters:"square-millimeters",esriSquareUsFeet:"square-us-feet",esriSquareYards:"square-yards"},ge={esriCentimeters:"centimeters",esriDecimeters:"decimeters",esriFeet:"feet",esriInches:"inches",esriKilometers:"kilometers",esriMeters:"meters",esriMiles:"miles",esriMillimeters:"millimeters",esriNauticalMiles:"nautical-miles",esriYards:"yards"},we={esriDUDecimalDegrees:"degrees",esriDURadians:"radians"},Me=e()(pe),ve=e()(ge),Se=e()(we);function De(e){switch(e){case"metric":case"ares":case"hectares":return"metric";case"imperial":case"acres":return"imperial";case"square-inches":return"inches";case"square-feet":return"feet";case"square-yards":return"yards";case"square-miles":return"miles";case"square-nautical-miles":return"nautical-miles";case"square-us-feet":return"us-feet";case"square-millimeters":return"millimeters";case"square-centimeters":return"centimeters";case"square-decimeters":return"decimeters";case"square-meters":return"meters";case"square-kilometers":return"kilometers"}throw new Error("unhandled area unit")}export{Z as adaptiveAreaUnit,X as adaptiveImperialAreaUnit,$ as adaptiveImperialLengthUnit,z as adaptiveImperialVerticalLengthUnit,se as adaptiveImperialVolumeUnit,A as adaptiveLengthUnit,Q as adaptiveMetricAreaUnit,H as adaptiveMetricLengthUnit,Y as adaptiveMetricVerticalLengthUnit,ee as adaptiveMetricVolumeUnit,G as adaptiveVerticalLengthUnit,ie as adaptiveVolumeUnit,Se as angleUnitsJSONMap,Be as areaUnitFromSpatialReference,Me as areaUnitsJSONMap,R as baseUnitForUnit,j as baseUnitForUnitType,O as convertFromSpatialReferenceUnit,J as convertToSpatialReferenceUnit,N as convertUnit,K as defaultAreaUnit,T as defaultLengthUnit,V as defaultVerticalLengthUnit,L as defaultVolumeUnit,De as deriveLengthUnitFromAreaUnit,ye as getDefaultUnitSystem,oe as getMetersPerCartesianUnitForSR,le as getMetersPerUnit,ue as getMetersPerUnitForSR,ae as getMetersPerVerticalUnitForSR,de as getUnitString,ce as getVerticalUnitStringForSR,B as gradGcsIds,m as inchesPerMeter,F as isBaseUnit,W as isMeasurementSystem,ke as isProjectedWKT,te as lengthToDegrees,Ue as lengthUnitFromSpatialReference,M as lengthUnits,ve as lengthUnitsJSONMap,C as measurementAreaUnits,E as measurementLengthUnits,P as measurementVolumeUnits,ne as unitFromRESTJSON,re as unitFromUnitWkid,I as unitType,be as verticalLengthUnitFromSpatialReference};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Error.js";import t from"../HeightModelInfo.js";import{parse as n}from"../../layers/support/arcgisLayerUrl.js";function i(n,i){if(!n)return null;if(!o(n))return new e("webscene:unsupported-height-model-info","The vertical coordinate system of the scene is not supported",{heightModelInfo:n});const a=n.heightUnit,r=t.deriveUnitFromSR(n,i).heightUnit;return a!==r?new e("webscene:incompatible-height-unit",`The vertical units of the scene (${a}) must match the horizontal units of the scene (${r})`,{verticalUnit:a,horizontalUnit:r}):null}function a(n,i,a){const o=c(n),l=i,h=r(o,l,a);if(o){const i=t.deriveUnitFromSR(o,n.spatialReference).heightUnit;if(!a&&i!==o.heightUnit){const t=new e("layerview:unmatched-height-unit",`The vertical units of the layer must match the horizontal units (${i})`,{horizontalUnit:i});return new e("layerview:unsupported-height-model-info","The vertical coordinate system of the layer is not supported",{heightModelInfo:o,error:t})}}if(!s(n)||4===h)return new e("layerview:unsupported-height-model-info","The vertical coordinate system of the layer is not supported",{heightModelInfo:o});switch(h){case 1:{const t=o?.heightUnit||"unknown",n=l?.heightUnit||"unknown",i=new e("layerview:incompatible-height-unit",`The vertical units of the layer (${t}) must match the vertical units of the scene (${n})`,{layerUnit:t,sceneUnit:n});return new e("layerview:incompatible-height-model-info","The vertical coordinate system of the layer is incompatible with the scene",{layerHeightModelInfo:o,sceneHeightModelInfo:l,error:i})}case 2:{const t=o?.heightModel||"unknown",n=l?.heightModel||"unknown",i=new e("layerview:incompatible-height-model",`The height model of the layer (${t}) must match the height model of the scene (${n})`,{layerHeightModel:t,sceneHeightModel:n});return new e("layerview:incompatible-height-model-info","The vertical coordinate system of the layer is incompatible with the scene",{layerHeightModelInfo:o,sceneHeightModelInfo:l,error:i})}case 3:{const t=o?.vertCRS||"unknown",n=l?.vertCRS||"unknown",i=new e("layerview:incompatible-vertical-datum",`The vertical datum of the layer (${t}) must match the vertical datum of the scene (${n})`,{layerDatum:t,sceneDatum:n});return new e("layerview:incompatible-height-model-info","The vertical coordinate system of the layer is incompatible with the scene",{layerHeightModelInfo:o,sceneHeightModelInfo:l,error:i})}}return null}function r(e,t,n){if(!o(e)||!o(t))return 4;if(null==e||null==t)return 0;if(!n&&e.heightUnit!==t.heightUnit)return 1;if(e.heightModel!==t.heightModel)return 2;switch(e.heightModel){case"gravity-related-height":return 0;case"ellipsoidal":return e.vertCRS===t.vertCRS?0:3;default:return 4}}function o(e){return null==e||null!=e.heightModel&&null!=e.heightUnit}function s(e){return"heightModelInfo"in e&&null!=e.heightModelInfo||null!=e.spatialReference||!u(e)}function c(e){if("integrated-mesh-3dtiles"===e.type||"gaussian-splat"===e.type)return null;const i=e.url?n(e.url):void 0,a=e.spatialReference?.vcsWkid;return!(null==a&&null!=i&&"ImageServer"===i.serverType)&&l(e)&&e.heightModelInfo?e.heightModelInfo:u(e)?t.deriveUnitFromSR(f,e.spatialReference):null}function l(e){return"heightModelInfo"in e}function h(e){if("unknown"===e.type||!("capabilities"in e))return!1;switch(e.type){case"annotation-feature":case"catalog":case"catalog-footprint":case"csv":case"feature":case"dimension-feature":case"geojson":case"subtype-group":case"ogc-feature":case"oriented-imagery":case"wfs":case"knowledge-graph-sublayer":return!0;default:return!1}}function u(e){return h(e)?!!(e.capabilities&&e.capabilities.data&&e.capabilities.data.supportsZ):d(e)}function g(e){return null!=e.layers||d(e)||h(e)||l(e)}function d(e){switch(e.type){case"annotation-feature":case"building-scene":case"elevation":case"gaussian-splat":case"integrated-mesh":case"integrated-mesh-3dtiles":case"point-cloud":case"scene":case"voxel":return!0;case"base-dynamic":case"base-elevation":case"base-tile":case"bing-maps":case"catalog":case"catalog-footprint":case"catalog-dynamic-group":case"csv":case"dimension":case"dimension-feature":case"geojson":case"feature":case"subtype-group":case"geo-rss":case"graphics":case"group":case"imagery":case"imagery-tile":case"kml":case"knowledge-graph":case"link-chart":case"knowledge-graph-sublayer":case"line-of-sight":case"map-image":case"map-notes":case"media":case"ogc-feature":case"open-street-map":case"oriented-imagery":case"parquet":case"route":case"stream":case"tile":case"unknown":case"unsupported":case"vector-tile":case"video":case"viewshed":case"wcs":case"web-tile":case"wfs":case"wms":case"wmts":case null:return!1}return!1}const f=new t({heightModel:"gravity-related-height"});export{c as deriveHeightModelInfoFromLayer,r as isCompatible,a as rejectLayerError,g as supportsHeightModelInfo,i as validateWebSceneError};
2
+ import e from"../../core/Error.js";import t from"../HeightModelInfo.js";import{parse as n}from"../../layers/support/arcgisLayerUrl.js";function i(n,i){if(!n)return null;if(!o(n))return new e("webscene:unsupported-height-model-info","The vertical coordinate system of the scene is not supported",{heightModelInfo:n});const a=n.heightUnit,r=t.deriveUnitFromSR(n,i).heightUnit;return a!==r?new e("webscene:incompatible-height-unit",`The vertical units of the scene (${a}) must match the horizontal units of the scene (${r})`,{verticalUnit:a,horizontalUnit:r}):null}function a(n,i,a){const o=l(n),c=i,h=r(o,c,a);if(o){const i=t.deriveUnitFromSR(o,n.spatialReference).heightUnit;if(!a&&i!==o.heightUnit){const t=new e("layerview:unmatched-height-unit",`The vertical units of the layer must match the horizontal units (${i})`,{horizontalUnit:i});return new e("layerview:unsupported-height-model-info","The vertical coordinate system of the layer is not supported",{heightModelInfo:o,error:t})}}if(!s(n)||4===h)return new e("layerview:unsupported-height-model-info","The vertical coordinate system of the layer is not supported",{heightModelInfo:o});switch(h){case 1:{const t=o?.heightUnit||"unknown",n=c?.heightUnit||"unknown",i=new e("layerview:incompatible-height-unit",`The vertical units of the layer (${t}) must match the vertical units of the scene (${n})`,{layerUnit:t,sceneUnit:n});return new e("layerview:incompatible-height-model-info","The vertical coordinate system of the layer is incompatible with the scene",{layerHeightModelInfo:o,sceneHeightModelInfo:c,error:i})}case 2:{const t=o?.heightModel||"unknown",n=c?.heightModel||"unknown",i=new e("layerview:incompatible-height-model",`The height model of the layer (${t}) must match the height model of the scene (${n})`,{layerHeightModel:t,sceneHeightModel:n});return new e("layerview:incompatible-height-model-info","The vertical coordinate system of the layer is incompatible with the scene",{layerHeightModelInfo:o,sceneHeightModelInfo:c,error:i})}case 3:{const t=o?.vertCRS||"unknown",n=c?.vertCRS||"unknown",i=new e("layerview:incompatible-vertical-datum",`The vertical datum of the layer (${t}) must match the vertical datum of the scene (${n})`,{layerDatum:t,sceneDatum:n});return new e("layerview:incompatible-height-model-info","The vertical coordinate system of the layer is incompatible with the scene",{layerHeightModelInfo:o,sceneHeightModelInfo:c,error:i})}}return null}function r(e,t,n){if(!o(e)||!o(t))return 4;if(null==e||null==t)return 0;if(!n&&e.heightUnit!==t.heightUnit)return 1;if(e.heightModel!==t.heightModel)return 2;switch(e.heightModel){case"gravity-related-height":return 0;case"ellipsoidal":return e.vertCRS===t.vertCRS?0:3;default:return 4}}function o(e){return null==e||null!=e.heightModel&&null!=e.heightUnit}function s(e){return"heightModelInfo"in e&&null!=e.heightModelInfo||null!=e.spatialReference||!g(e)}function c(e){const t=e.url?n(e.url):void 0,i=e.spatialReference?.vcsWkid;return!(null==i&&null!=t&&"ImageServer"===t.serverType)&&h(e)&&e.heightModelInfo?e.heightModelInfo:null}function l(e,n){if("integrated-mesh-3dtiles"===e.type||"gaussian-splat"===e.type)return null;const i=c(e);return i||(g(e)?t.deriveUnitFromSR(m,n??e.spatialReference):null)}function h(e){return"heightModelInfo"in e}function u(e){if("unknown"===e.type||!("capabilities"in e))return!1;switch(e.type){case"annotation-feature":case"catalog":case"catalog-footprint":case"csv":case"feature":case"dimension-feature":case"geojson":case"subtype-group":case"ogc-feature":case"oriented-imagery":case"wfs":case"knowledge-graph-sublayer":return!0;default:return!1}}function g(e){return u(e)?!!(e.capabilities&&e.capabilities.data&&e.capabilities.data.supportsZ):f(e)}function d(e){return null!=e.layers||f(e)||u(e)||h(e)}function f(e){switch(e.type){case"annotation-feature":case"building-scene":case"elevation":case"gaussian-splat":case"integrated-mesh":case"integrated-mesh-3dtiles":case"point-cloud":case"scene":case"voxel":return!0;case"base-dynamic":case"base-elevation":case"base-tile":case"bing-maps":case"catalog":case"catalog-footprint":case"catalog-dynamic-group":case"csv":case"dimension":case"dimension-feature":case"geojson":case"feature":case"subtype-group":case"geo-rss":case"graphics":case"group":case"imagery":case"imagery-tile":case"kml":case"knowledge-graph":case"link-chart":case"knowledge-graph-sublayer":case"line-of-sight":case"map-image":case"map-notes":case"media":case"ogc-feature":case"open-street-map":case"oriented-imagery":case"parquet":case"route":case"stream":case"tile":case"unknown":case"unsupported":case"vector-tile":case"video":case"viewshed":case"wcs":case"web-tile":case"wfs":case"wms":case"wmts":case null:return!1}return!1}const m=new t({heightModel:"gravity-related-height"});export{l as deriveHeightModelInfoFromLayer,c as getLayerHeightModelInfo,r as isCompatible,a as rejectLayerError,d as supportsHeightModelInfo,i as validateWebSceneError};
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.111",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};
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.112",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};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import i from"../core/Error.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{property as a,subclass as l}from"../core/accessorSupport/decorators.js";import p from"../geometry/Extent.js";import n from"../geometry/SpatialReference.js";import m from"./Layer.js";import{APIKeyMixin as y}from"./mixins/APIKeyMixin.js";import{ArcGISService as u}from"./mixins/ArcGISService.js";import{CustomParametersMixin as c}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as d}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as f}from"./mixins/ScaleRangeLayer.js";import{url as S,elevationInfo as v}from"./support/commonProperties.js";import{default3DTilesFullExtent as x,default3DTilesSpatialReference as g,initFullExtent as j,hasEsriCrs as w}from"./support/tiles3DUtils.js";import{logInvalidElevationInfoWarning as E,elevationModeRequiredMessage as L,featureExpressionUnsupportedMessage as R}from"../support/elevationInfoUtils.js";let T=class extends(u(d(h(f(s(c(y(m)))))))){constructor(e){super(e),this.operationalLayerType="GaussianSplatLayer",this.type="gaussian-splat",this.opacity=1,this.minScale=0,this.maxScale=0,this.url=null,this.rootTilesetJSON=null,this.fullExtent=x,this.spatialReference=g,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null}get supportedSpatialReferences(){return this.initialized&&this.esriCrsSpatialReference?[g,this.esriCrsSpatialReference]:[g]}get fullExtents(){return this.initialized&&this.esriCrsFullExtent?[x,this.esriCrsFullExtent]:[x]}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}async _doLoad(e){const r=null!=e?e.signal:null;try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("GaussianSplat"))return!0;throw new i("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service"})}},e)}catch(s){o(s)}if(this.url){const e=t(this.url,{query:{...this.customParameters,token:this.apiKey},responseType:"json",signal:r}).then(e=>{this.rootTilesetJSON=e.data,this.fullExtent=j(this.rootTilesetJSON,!1);w(this.rootTilesetJSON)&&(this.esriCrsFullExtent=j(this.rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference)},e=>{o(e)});await e}}_validateElevationInfo(e){const t="Gaussian Splat layers";E(r.getLogger(this),L(t,"absolute-height",e)),E(r.getLogger(this),R(t,e))}};e([a({type:["GaussianSplatLayer"]})],T.prototype,"operationalLayerType",void 0),e([a({readOnly:!0})],T.prototype,"type",void 0),e([a({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],T.prototype,"opacity",void 0),e([a({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],T.prototype,"minScale",void 0),e([a({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],T.prototype,"maxScale",void 0),e([a(S)],T.prototype,"url",void 0),e([a({type:p})],T.prototype,"fullExtent",void 0),e([a({type:n})],T.prototype,"spatialReference",void 0),e([a({readOnly:!0})],T.prototype,"supportedSpatialReferences",null),e([a({type:[p]})],T.prototype,"fullExtents",null),e([a({type:["show","hide"]})],T.prototype,"listMode",void 0),e([a(v)],T.prototype,"elevationInfo",null),T=e([l("esri.layers.GaussianSplatLayer")],T);const C=T;export{C as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import i from"../core/Error.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{property as a,subclass as l}from"../core/accessorSupport/decorators.js";import p from"../geometry/Extent.js";import n from"../geometry/SpatialReference.js";import m from"./Layer.js";import{APIKeyMixin as y}from"./mixins/APIKeyMixin.js";import{ArcGISService as u}from"./mixins/ArcGISService.js";import{CustomParametersMixin as c}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as d}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as f}from"./mixins/ScaleRangeLayer.js";import{url as S,elevationInfo as v}from"./support/commonProperties.js";import{default3DTilesFullExtent as x,default3DTilesSpatialReference as g,initFullExtent as j,hasEsriCrs as w}from"./support/tiles3DUtils.js";import{logInvalidElevationInfoWarning as E,elevationModeRequiredMessage as L,featureExpressionUnsupportedMessage as R}from"../support/elevationInfoUtils.js";let T=class extends(u(d(h(f(s(c(y(m)))))))){constructor(e){super(e),this.operationalLayerType="GaussianSplatLayer",this.type="gaussian-splat",this.opacity=1,this.minScale=0,this.maxScale=0,this.url=null,this.rootTilesetJSON=null,this.fullExtent=x,this.spatialReference=g,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null}get supportedSpatialReferences(){return this.initialized&&this.esriCrsSpatialReference?[n.WGS84,this.esriCrsSpatialReference]:[n.WGS84]}get fullExtents(){return this.initialized&&this.esriCrsFullExtent?[x,this.esriCrsFullExtent]:[x]}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}async _doLoad(e){const r=null!=e?e.signal:null;try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("GaussianSplat"))return!0;throw new i("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service"})}},e)}catch(s){o(s)}if(this.url){const e=t(this.url,{query:{...this.customParameters,token:this.apiKey},responseType:"json",signal:r}).then(e=>{this.rootTilesetJSON=e.data,this.fullExtent=j(this.rootTilesetJSON,!1);w(this.rootTilesetJSON)&&(this.esriCrsFullExtent=j(this.rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference)},e=>{o(e)});await e}}_validateElevationInfo(e){const t="Gaussian Splat layers";E(r.getLogger(this),L(t,"absolute-height",e)),E(r.getLogger(this),R(t,e))}};e([a({type:["GaussianSplatLayer"]})],T.prototype,"operationalLayerType",void 0),e([a({readOnly:!0})],T.prototype,"type",void 0),e([a({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],T.prototype,"opacity",void 0),e([a({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],T.prototype,"minScale",void 0),e([a({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],T.prototype,"maxScale",void 0),e([a(S)],T.prototype,"url",void 0),e([a({type:p})],T.prototype,"fullExtent",void 0),e([a({type:n})],T.prototype,"spatialReference",void 0),e([a({readOnly:!0})],T.prototype,"supportedSpatialReferences",null),e([a({type:[p]})],T.prototype,"fullExtents",null),e([a({type:["show","hide"]})],T.prototype,"listMode",void 0),e([a(v)],T.prototype,"elevationInfo",null),T=e([l("esri.layers.GaussianSplatLayer")],T);const C=T;export{C as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{ClonableMixin as t}from"../core/Clonable.js";import s from"../core/Error.js";import i from"../core/Logger.js";import{removeMaybe as o}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{debounce as n,throwIfAbortError as p}from"../core/promiseUtils.js";import{watch as l}from"../core/reactiveUtils.js";import{property as c,subclass as m}from"../core/accessorSupport/decorators.js";import{ensureClass as u}from"../core/accessorSupport/ensureType.js";import h from"../graphic/ImageryTileGraphicOrigin.js";import d from"./Layer.js";import{ArcGISService as y}from"./mixins/ArcGISService.js";import{BlendLayer as f}from"./mixins/BlendLayer.js";import{CustomParametersMixin as g}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as v}from"./mixins/OperationalLayer.js";import{PortalLayer as w}from"./mixins/PortalLayer.js";import{RasterJobHandlerMixin as R}from"./mixins/RasterJobHandlerMixin.js";import{RasterPresetRendererMixin as S}from"./mixins/RasterPresetRendererMixin.js";import{RefreshableLayer as j}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as _}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as I}from"./mixins/TemporalLayer.js";import{TiledImagery as O}from"./mixins/TiledImagery.js";import{isFunctionRaster as F,getPrimaryRasters as b}from"./raster/datasets/datasetUtils.js";import T from"./raster/datasets/FunctionRaster.js";import P from"./raster/datasets/RasterFactory.js";import{getPrimaryRasterUrls as J,create as N}from"./raster/functions/rasterFunctionHelper.js";import{legendEnabled as x,screenSizePerspectiveEnabled as L}from"./support/commonProperties.js";import C from"./support/Field.js";import{getServicePixelValueField as E,getRawServicePixelValueField as M,getRasterAttributeTableFields as W,getMagnitudeField as U,getDirectionField as H,getMultidimensionalFields as k,commonRasterFieldNames as z,setDefaultRasterFieldFormats as A}from"./support/rasterFieldUtils.js";import B from"./support/RasterFunction.js";import{getRasterJobHandler as D,releaseRasterJobHandler as G}from"./support/rasterJobHelper.js";import V from"./support/TileInfo.js";import{logInvalidElevationInfoWarning as $,elevationModeUnsupportedMessage as Y,featureExpressionUnsupportedMessage as q}from"../support/elevationInfoUtils.js";import{createPopupTemplate as K}from"../support/popupUtils.js";import Q from"../symbols/support/ElevationInfo.js";import{addLayerUnsupportedError as X}from"../webdoc/support/unsupportedErrors.js";let Z=class extends(f(_(v(w(S(g(O(R(I(y(j(a(t(d)))))))))))))){constructor(...e){super(...e),this._primaryRasters=[],this.charts=null,this.graphicOrigin=new h(this),this.legendEnabled=!0,this.isReference=null,this.listMode="show",this.sourceJSON=null,this.version=null,this.type="imagery-tile",this.operationalLayerType="ArcGISTiledImageServiceLayer",this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.fields=null,this.source=void 0,this._debouncedSaveOperations=n(async(e,r,t)=>{const{save:s,saveAs:i}=await(import("./save/imageryUtils.js"));switch(e){case 0:return s(this,r);case 1:return i(this,t,r)}})}normalizeCtorArgs(e,r){return"string"==typeof e?{url:e,...r}:e}load(e){const r=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Image Service"]},e).catch(p).then(()=>this._openRaster(r))),Promise.resolve(this)}destroy(){super.destroy(),this._releaseWorkerHandle=o(this._releaseWorkerHandle)}set elevationInfo(e){"relative-to-scene"!==e?.mode&&this._set("elevationInfo",e),this._validateElevationInfo(e)}get defaultPopupTemplate(){return this.createPopupTemplate()}get rasterFields(){const e=[E("Pixel Value"),M("Raw Pixel Value")],r=this.raster?.rasterInfo??this.serviceRasterInfo,t=r?.attributeTable;if(t){const r=W(t);e.push(...r)}const s=r?.dataType,i=r?.multidimensionalInfo;if(("vector-magdir"===s||"vector-uv"===s)&&null!=i){const r=i.variables[0].unit?.trim(),t=U(r),s=H();e.push(t,s)}if(i){const r=k(i);e.push(...r)}return e}get renderer(){return super.renderer}set renderer(e){super.renderer=e}createPopupTemplate(e){const{rasterFields:r}=this,t=e?.visibleFieldNames??new Set(r.map(({name:e})=>e).filter(e=>e!==z.rawServicePixelValue)),s=K({fields:r,title:this.title},{...e,visibleFieldNames:t}),{rasterInfo:i}=this.raster;return s?.fieldInfos&&i&&A(s.fieldInfos,i),s}async generateRasterInfo(e,r){const t=u(B,e);if(await this.load(),!t||"none"===t.functionName?.toLowerCase())return this.serviceRasterInfo;try{const{rasterInfo:e}=await this._openFunctionRaster(t,r);return e}catch(i){if(i instanceof s)throw i;throw new s("imagery-tile-layer","the given raster function is not supported")}}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,r){return this._debouncedSaveOperations(1,r,e)}supportsExportMapTiles(){const e=this._primaryRasters[0]??this.raster,r="RasterTileServer"===e?.datasetFormat,t=!!this.sourceJSON?.exportTilesAllowed,s=this.sourceJSON?.datasetFormat?.toLowerCase(),i=!/\/tiledimageservices[^.]*\.arcgis\.com/i.test(this.url)&&"Raster"===e?.tileType&&("cache/jpegplus"===s||"cache/jpegpng"===s);return r&&t&&("Map"===e?.tileType||i)}supportsWrite(){const e=this._primaryRasters[0]??this.raster;return!!(this.loaded?"RasterTileServer"===e.datasetFormat&&("Raster"===e.tileType||"Map"===e.tileType):this.url&&/\/ImageServer(\/|\/?$)/i.test(this.url))}write(e,r){return this.supportsWrite()?super.write(e,r):(X(r,this),null)}async hasDataChanged(){try{const e=this._primaryRasters[0]??this.raster,{dataChanged:r,updates:t}=await e.refresh();return r&&(this.serviceRasterInfo!==e.rasterInfo&&this._set("serviceRasterInfo",e.rasterInfo),e.sourceJSON&&this.sourceJSON!==e.sourceJSON&&(this.sourceJSON=e.sourceJSON),t&&this.read(t,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0})),r}catch{return!1}}async _openRaster(e){let r=!1;if(this.raster)await this._openFromRaster(this.raster,e),r=F(this.raster),!r&&this.rasterFunction&&(this._primaryRasters=[this.raster],await this._initializeWithFunctionRaster(this.rasterFunction));else{const{url:r,rasterFunction:t,source:i}=this;if(!r&&!i)throw new s("imagery-tile-layer:open","missing url or source parameter");i?await this._openFromSource(i,e):t?await this._openFromUrlWithRasterFunction(r,t,e):await this._openFromUrl(r,e)}const t=this.raster.rasterInfo;if(!t)throw new s("imagery-tile-layer:load","cannot load resources on "+this.url);if(this._set("serviceRasterInfo",r?t:this._primaryRasters[0].rasterInfo),this._set("spatialReference",t.spatialReference),this.sourceJSON=this.sourceJSON||this.raster.sourceJSON,null!=this.sourceJSON){const e="Map"===this.raster.tileType&&null!=this.sourceJSON.minLOD&&null!=this.sourceJSON.maxLOD?this.sourceJSON:{...this.sourceJSON,minScale:0,maxScale:0};this.read(e,{origin:"service"})}else this.read({tileInfo:this.serviceRasterInfo?.storageInfo.tileInfo.toJSON()},{origin:"service"});this.title||(this.title=this.raster.datasetName),"Map"===this.raster.tileType&&(this.popupEnabled=!1),this._configDefaultSettings(),this.addHandles(l(()=>this.customParameters,e=>{this.raster&&(this.raster.ioConfig.customFetchParameters=e)}))}async _openFromRaster(e,r){e.rasterInfo||await e.open({signal:r}),this._primaryRasters=b(e),this.url||(this.url=this._primaryRasters[0].url)}async _openFromUrlWithRasterFunction(e,r,t){const i=[e];let o;r&&J(r.toJSON(),i),i.some(e=>re(e))&&(o=await D(),this._releaseWorkerHandle={remove:()=>G()});const a=await Promise.all(i.map(e=>P.open({url:e,sourceJSON:this.sourceJSON,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},rasterJobHandler:o,signal:t}))),n=a.findIndex(e=>null==e);if(n>-1)throw new s("imagery-tile-layer:open",`cannot open raster: ${i[n]}`);return this._primaryRasters=a,this._initializeWithFunctionRaster(r)}async _openFromUrl(e,r){let t;re(e)&&(t=await D(),this._releaseWorkerHandle={remove:()=>G()});const i=await P.open({url:e,sourceJSON:this.sourceJSON,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},rasterJobHandler:t,signal:r});if(null==i)throw new s("imagery-tile-layer:open",`cannot open raster: ${e}`);this._primaryRasters=[i],this.raster=i}async _openFromSource(e,r){const t="the tiled imagery data source is not supported",i="coverage"===e.type?.toLowerCase()?"CovJSON":e.extent&&e.pixelBlock?"MEMORY":null;if(!i)throw new s("imagery-tile-layer:open",t);"MEMORY"===i&&(e={...e,pixelBlock:void 0,pixelBlocks:[e.pixelBlock]});const o=await P.open({url:"",source:e,datasetFormat:i,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},signal:r});if(null==o)throw new s("imagery-tile-layer:open",t);this._primaryRasters=[o],this.rasterFunction?await this._initializeWithFunctionRaster(this.rasterFunction):this.raster=o}async _openFunctionRaster(e,r){const t={raster:this._primaryRasters[0]};this._primaryRasters.length>1&&this._primaryRasters.forEach(e=>t[e.url]=e);const s=N(e.functionDefinition?.toJSON()??e.toJSON(),t),i=new T({rasterFunction:s});return await i.open(r),i}async _initializeWithFunctionRaster(e,r){try{this.raster=await this._openFunctionRaster(e,r)}catch(t){t instanceof s&&i.getLogger(this).error("imagery-tile-layer:open",t.message),i.getLogger(this).warn("imagery-tile-layer:open","the raster function cannot be applied and is removed"),this._set("rasterFunction",null),this.raster=this._primaryRasters[0]}}_validateElevationInfo(e){$(i.getLogger(this),Y("ImageryTile layers","relative-to-scene",e)),$(i.getLogger(this),q("ImageryTile layers",e))}};e([c({clonable:!1})],Z.prototype,"_primaryRasters",void 0),e([c({clonable:!1})],Z.prototype,"_releaseWorkerHandle",void 0),e([c({json:{origins:{"web-scene":{write:!1}},write:!0}})],Z.prototype,"charts",void 0),e([c({type:Q,value:null,json:{name:"layerDefinition.elevationInfo",write:!0,origins:{"portal-item":{read:!1,write:!1},"web-map":{read:!1,write:!1}}}})],Z.prototype,"elevationInfo",null),e([c({type:V})],Z.prototype,"tileInfo",void 0),e([c({readOnly:!0,clonable:!1})],Z.prototype,"graphicOrigin",void 0),e([c(x)],Z.prototype,"legendEnabled",void 0),e([c({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],Z.prototype,"isReference",void 0),e([c({type:["show","hide"]})],Z.prototype,"listMode",void 0),e([c({json:{read:!0,write:!0}})],Z.prototype,"blendMode",void 0),e([c({type:B,json:{name:"renderingRule",write:!0}})],Z.prototype,"rasterFunction",void 0),e([c()],Z.prototype,"sourceJSON",void 0),e([c({readOnly:!0,json:{origins:{service:{read:{source:"currentVersion"}}}}})],Z.prototype,"version",void 0),e([c({readOnly:!0,json:{read:!1}})],Z.prototype,"type",void 0),e([c({type:["ArcGISTiledImageServiceLayer"]})],Z.prototype,"operationalLayerType",void 0),e([c({type:Boolean,value:!0,json:{read:{source:"disablePopup",reader:(e,r)=>!r.disablePopup},write:{target:"disablePopup",overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType}},writer(e,r,t){r[t]=!e}}}})],Z.prototype,"popupEnabled",void 0),e([c({type:r,json:{read:{source:"popupInfo"},write:{target:"popupInfo",overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType}}}}})],Z.prototype,"popupTemplate",void 0),e([c({readOnly:!0})],Z.prototype,"defaultPopupTemplate",null),e([c(L)],Z.prototype,"screenSizePerspectiveEnabled",void 0),e([c({readOnly:!0,type:[C]})],Z.prototype,"fields",void 0),e([c({readOnly:!0,type:[C]})],Z.prototype,"rasterFields",null),e([c({constructOnly:!0})],Z.prototype,"source",void 0),Z=e([m("esri.layers.ImageryTileLayer")],Z);const ee=Z;function re(e){return/\.(jpe?g|png)$/i.test(e)}export{ee as default};
2
+ import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{ClonableMixin as t}from"../core/Clonable.js";import s from"../core/Error.js";import i from"../core/Logger.js";import{removeMaybe as o}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{debounce as n,throwIfAbortError as l}from"../core/promiseUtils.js";import{watch as p}from"../core/reactiveUtils.js";import{property as c,subclass as m}from"../core/accessorSupport/decorators.js";import{ensureClass as u}from"../core/accessorSupport/ensureType.js";import h from"../graphic/ImageryTileGraphicOrigin.js";import d from"./Layer.js";import{ArcGISService as y}from"./mixins/ArcGISService.js";import{BlendLayer as f}from"./mixins/BlendLayer.js";import{CustomParametersMixin as g}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as v}from"./mixins/OperationalLayer.js";import{PortalLayer as w}from"./mixins/PortalLayer.js";import{RasterJobHandlerMixin as R}from"./mixins/RasterJobHandlerMixin.js";import{RasterPresetRendererMixin as S}from"./mixins/RasterPresetRendererMixin.js";import{RefreshableLayer as j}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as I}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as _}from"./mixins/TemporalLayer.js";import{TiledImagery as O}from"./mixins/TiledImagery.js";import{isFunctionRaster as F,getPrimaryRasters as b}from"./raster/datasets/datasetUtils.js";import T from"./raster/datasets/FunctionRaster.js";import P from"./raster/datasets/RasterFactory.js";import{getPrimaryRasterUrls as J,create as N}from"./raster/functions/rasterFunctionHelper.js";import{legendEnabled as x,screenSizePerspectiveEnabled as L}from"./support/commonProperties.js";import C from"./support/Field.js";import{getServicePixelValueField as E,getRawServicePixelValueField as M,getRasterAttributeTableFields as W,getMagnitudeField as U,getDirectionField as H,getMultidimensionalFields as k,commonRasterFieldNames as z,setDefaultRasterFieldFormats as A}from"./support/rasterFieldUtils.js";import B from"./support/RasterFunction.js";import{getRasterJobHandler as D,releaseRasterJobHandler as G}from"./support/rasterJobHelper.js";import V from"./support/TileInfo.js";import{logInvalidElevationInfoWarning as $,elevationModeUnsupportedMessage as Y,featureExpressionUnsupportedMessage as q}from"../support/elevationInfoUtils.js";import{createPopupTemplate as K}from"../support/popupUtils.js";import Q from"../symbols/support/ElevationInfo.js";import{addLayerUnsupportedError as X}from"../webdoc/support/unsupportedErrors.js";let Z=class extends(f(I(v(w(S(g(O(R(_(y(j(a(t(d)))))))))))))){constructor(...e){super(...e),this._primaryRasters=[],this.charts=null,this.graphicOrigin=new h(this),this.legendEnabled=!0,this.isReference=null,this.listMode="show",this.sourceJSON=null,this.version=null,this.type="imagery-tile",this.operationalLayerType="ArcGISTiledImageServiceLayer",this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.fields=null,this.source=void 0,this._debouncedSaveOperations=n(async(e,r,t)=>{const{save:s,saveAs:i}=await(import("./save/imageryUtils.js"));switch(e){case 0:return s(this,r);case 1:return i(this,t,r)}})}normalizeCtorArgs(e,r){return"string"==typeof e?{url:e,...r}:e}load(e){const r=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Image Service"]},e).catch(l).then(()=>this._openRaster(r))),Promise.resolve(this)}destroy(){super.destroy(),this._releaseWorkerHandle=o(this._releaseWorkerHandle)}set elevationInfo(e){"relative-to-scene"!==e?.mode&&this._set("elevationInfo",e),this._validateElevationInfo(e)}get defaultPopupTemplate(){return this.createPopupTemplate()}get rasterFields(){const e=[E("Pixel Value"),M("Raw Pixel Value")],r=this.raster?.rasterInfo??this.serviceRasterInfo,t=r?.attributeTable;if(t){const r=W(t);e.push(...r)}const s=r?.dataType,i=r?.multidimensionalInfo;if(("vector-magdir"===s||"vector-uv"===s)&&null!=i){const r=i.variables[0].unit?.trim(),t=U(r),s=H();e.push(t,s)}if(i){const r=k(i);e.push(...r)}return e}get renderer(){return super.renderer}set renderer(e){super.renderer=e}createPopupTemplate(e){const{rasterFields:r}=this,t=e?.visibleFieldNames??new Set(r.map(({name:e})=>e).filter(e=>e!==z.rawServicePixelValue)),s=K({fields:r,title:this.title},{...e,visibleFieldNames:t}),{rasterInfo:i}=this.raster;return s?.fieldInfos&&i&&A(s.fieldInfos,i),s}async generateRasterInfo(e,r){const t=u(B,e);if(await this.load(),!t||"none"===t.functionName?.toLowerCase())return this.serviceRasterInfo;try{const{rasterInfo:e}=await this._openFunctionRaster(t,r);return e}catch(i){if(i instanceof s)throw i;throw new s("imagery-tile-layer","the given raster function is not supported")}}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,r){return this._debouncedSaveOperations(1,r,e)}supportsExportMapTiles(){const e=this._primaryRasters[0]??this.raster,r="RasterTileServer"===e?.datasetFormat,t=!!this.sourceJSON?.exportTilesAllowed,s=this.sourceJSON?.datasetFormat?.toLowerCase(),i=!/\/tiledimageservices[^.]*\.arcgis\.com/i.test(this.url)&&"Raster"===e?.tileType&&("cache/jpegplus"===s||"cache/jpegpng"===s);return r&&t&&("Map"===e?.tileType||i)}supportsWrite(){const e=this._primaryRasters[0]??this.raster;return!!(this.loaded?"RasterTileServer"===e.datasetFormat&&("Raster"===e.tileType||"Map"===e.tileType):this.url&&/\/ImageServer(\/|\/?$)/i.test(this.url))}write(e,r){return this.supportsWrite()?super.write(e,r):(X(r,this),null)}async hasDataChanged(){try{const e=this._primaryRasters[0]??this.raster,{dataChanged:r,updates:t}=await e.refresh();return r&&(this.serviceRasterInfo!==e.rasterInfo&&this._set("serviceRasterInfo",e.rasterInfo),e.sourceJSON&&this.sourceJSON!==e.sourceJSON&&(this.sourceJSON=e.sourceJSON),t&&this.read(t,{origin:"service",url:this.parsedUrl,ignoreDefaults:!0})),r}catch{return!1}}async _openRaster(e){let r=!1;if(this.raster)await this._openFromRaster(this.raster,e),r=F(this.raster),!r&&this.rasterFunction&&(this._primaryRasters=[this.raster],await this._initializeWithFunctionRaster(this.rasterFunction));else{const{url:r,rasterFunction:t,source:i}=this;if(!r&&!i)throw new s("imagery-tile-layer:open","missing url or source parameter");i?await this._openFromSource(i,e):t?await this._openFromUrlWithRasterFunction(r,t,e):await this._openFromUrl(r,e)}const t=this.raster.rasterInfo;if(!t)throw new s("imagery-tile-layer:load","cannot load resources on "+this.url);if(this._set("serviceRasterInfo",r?t:this._primaryRasters[0].rasterInfo),this._set("spatialReference",t.spatialReference),this.sourceJSON=this.sourceJSON||this.raster.sourceJSON,null!=this.sourceJSON){const e="Map"===this.raster.tileType&&null!=this.sourceJSON.minLOD&&null!=this.sourceJSON.maxLOD?this.sourceJSON:{...this.sourceJSON,minScale:0,maxScale:0};this.read(e,{origin:"service"})}else this.read({tileInfo:this.serviceRasterInfo?.storageInfo.tileInfo.toJSON()},{origin:"service"});this.title||(this.title=this.raster.datasetName),"Map"===this.raster.tileType&&(this.popupEnabled=!1),this._configDefaultSettings(),this.addHandles(p(()=>this.customParameters,e=>{this.raster&&(this.raster.ioConfig.customFetchParameters=e)}))}async _openFromRaster(e,r){e.rasterInfo||await e.open({signal:r}),this._primaryRasters=b(e),this.url||(this.url=this._primaryRasters[0].url)}async _openFromUrlWithRasterFunction(e,r,t){const i=[e];let o;r&&J(r.toJSON(),i),i.some(e=>re(e))&&(o=await D(),this._releaseWorkerHandle={remove:()=>G()});const a=await Promise.all(i.map(e=>P.open({url:e,rasterInfo:1===i.length?this.serviceRasterInfo:void 0,sourceJSON:1===i.length?this.sourceJSON:void 0,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},rasterJobHandler:o,signal:t}))),n=a.findIndex(e=>null==e);if(n>-1)throw new s("imagery-tile-layer:open",`cannot open raster: ${i[n]}`);return this._primaryRasters=a,this._initializeWithFunctionRaster(r)}async _openFromUrl(e,r){let t;re(e)&&(t=await D(),this._releaseWorkerHandle={remove:()=>G()});const i=await P.open({url:e,rasterInfo:this.serviceRasterInfo,sourceJSON:this.sourceJSON,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},rasterJobHandler:t,signal:r});if(null==i)throw new s("imagery-tile-layer:open",`cannot open raster: ${e}`);this._primaryRasters=[i],this.raster=i}async _openFromSource(e,r){const t="the tiled imagery data source is not supported",i="coverage"===e.type?.toLowerCase()?"CovJSON":e.extent&&e.pixelBlock?"MEMORY":null;if(!i)throw new s("imagery-tile-layer:open",t);"MEMORY"===i&&(e={...e,pixelBlock:void 0,pixelBlocks:[e.pixelBlock]});const o=await P.open({url:"",source:e,datasetFormat:i,ioConfig:{sampling:"closest",...this.ioConfig,customFetchParameters:this.customParameters},signal:r});if(null==o)throw new s("imagery-tile-layer:open",t);this._primaryRasters=[o],this.rasterFunction?await this._initializeWithFunctionRaster(this.rasterFunction):this.raster=o}async _openFunctionRaster(e,r){const t={raster:this._primaryRasters[0]};this._primaryRasters.length>1&&this._primaryRasters.forEach(e=>t[e.url]=e);const s=N(e.functionDefinition?.toJSON()??e.toJSON(),t),i=new T({rasterFunction:s});return await i.open(r),i}async _initializeWithFunctionRaster(e,r){try{this.raster=await this._openFunctionRaster(e,r)}catch(t){t instanceof s&&i.getLogger(this).error("imagery-tile-layer:open",t.message),i.getLogger(this).warn("imagery-tile-layer:open","the raster function cannot be applied and is removed"),this._set("rasterFunction",null),this.raster=this._primaryRasters[0]}}_validateElevationInfo(e){$(i.getLogger(this),Y("ImageryTile layers","relative-to-scene",e)),$(i.getLogger(this),q("ImageryTile layers",e))}};e([c({clonable:!1})],Z.prototype,"_primaryRasters",void 0),e([c({clonable:!1})],Z.prototype,"_releaseWorkerHandle",void 0),e([c({json:{origins:{"web-scene":{write:!1}},write:!0}})],Z.prototype,"charts",void 0),e([c({type:Q,value:null,json:{name:"layerDefinition.elevationInfo",write:!0,origins:{"portal-item":{read:!1,write:!1},"web-map":{read:!1,write:!1}}}})],Z.prototype,"elevationInfo",null),e([c({type:V})],Z.prototype,"tileInfo",void 0),e([c({readOnly:!0,clonable:!1})],Z.prototype,"graphicOrigin",void 0),e([c(x)],Z.prototype,"legendEnabled",void 0),e([c({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],Z.prototype,"isReference",void 0),e([c({type:["show","hide"]})],Z.prototype,"listMode",void 0),e([c({json:{read:!0,write:!0}})],Z.prototype,"blendMode",void 0),e([c({type:B,json:{name:"renderingRule",write:!0}})],Z.prototype,"rasterFunction",void 0),e([c()],Z.prototype,"sourceJSON",void 0),e([c({readOnly:!0,json:{origins:{service:{read:{source:"currentVersion"}}}}})],Z.prototype,"version",void 0),e([c({readOnly:!0,json:{read:!1}})],Z.prototype,"type",void 0),e([c({type:["ArcGISTiledImageServiceLayer"]})],Z.prototype,"operationalLayerType",void 0),e([c({type:Boolean,value:!0,json:{read:{source:"disablePopup",reader:(e,r)=>!r.disablePopup},write:{target:"disablePopup",overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType}},writer(e,r,t){r[t]=!e}}}})],Z.prototype,"popupEnabled",void 0),e([c({type:r,json:{read:{source:"popupInfo"},write:{target:"popupInfo",overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType}}}}})],Z.prototype,"popupTemplate",void 0),e([c({readOnly:!0})],Z.prototype,"defaultPopupTemplate",null),e([c(L)],Z.prototype,"screenSizePerspectiveEnabled",void 0),e([c({readOnly:!0,type:[C]})],Z.prototype,"fields",void 0),e([c({readOnly:!0,type:[C]})],Z.prototype,"rasterFields",null),e([c({constructOnly:!0})],Z.prototype,"source",void 0),Z=e([m("esri.layers.ImageryTileLayer")],Z);const ee=Z;function re(e){return/\.(jpe?g|png)$/i.test(e)}export{ee as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as i}from"../core/Clonable.js";import o from"../core/Error.js";import"../core/has.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as n}from"../core/promiseUtils.js";import{on as a,sync as l,watch as p}from"../core/reactiveUtils.js";import{property as c,subclass as m}from"../core/accessorSupport/decorators.js";import{persistable as d}from"../core/accessorSupport/decorators/persistable.js";import u from"../geometry/Extent.js";import h from"../geometry/SpatialReference.js";import f from"./Layer.js";import{APIKeyMixin as y}from"./mixins/APIKeyMixin.js";import{ArcGISService as g}from"./mixins/ArcGISService.js";import{CustomParametersMixin as S}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as _}from"./mixins/OperationalLayer.js";import{PortalLayer as v}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as j}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as T,url as x}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as R,default3DTilesFullExtent as E,initFullExtent as b,hasEsriCrs as L}from"./support/tiles3DUtils.js";import k from"../portal/Portal.js";import{getElevationOffsetInMeters as P,logInvalidElevationInfoWarning as G,elevationModeRequiredMessage as I,featureExpressionUnsupportedMessage as D}from"../support/elevationInfoUtils.js";import{f as O}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{initialize as C,switchMeshModificationPolygonVCSSync as M}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as q,fromWasmModification as N}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as A}from"../core/accessorSupport/decorators/reader.js";let J=class extends(g(_(v(j(s(S(y(i(f))))))))){readModifications(e,t,i){this._modificationsSource={url:O(e,i),context:i}}initialize(){this.addHandles([a(()=>this.modifications,"after-changes",()=>{this.modifications=this.modifications,this._modificationsGeneration++},l),p(()=>this.modifications,()=>this._modificationsGeneration++)])}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=R,this.fullExtent=E,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null,this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null,this._modificationsGeneration=0,this._simulateGoogleUrl=!1}get supportedSpatialReferences(){return this.initialized&&this.esriCrsSpatialReference?[R,this.esriCrsSpatialReference]:[R]}get fullExtents(){return this.initialized&&this.esriCrsFullExtent?[E,this.esriCrsFullExtent]:[E]}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[o,r]of Object.entries(e)){if("uri"===o)try{const e=new URL("https://tmp"+r).searchParams.get("session");if(e)return e}catch(i){}"object"==typeof r&&null!==r&&t.push(r)}}return null}async requestRootAndSession(e){const i=(e,t)=>new o("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((o,s)=>{this.url||s(i("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,o)=>{if(this.replacesTerrain&&!this._key){const r=this.portalItem?.portal||this.parent?.portalItem?.portal||k.getDefault();r.signIn().then(()=>{r.g3dTilesEnabled?t(r.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>o(i("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):o(i("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+r.url))},()=>o(i("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void s(i("root-parse-failed","Error parsing root tile, details: "+t))}if(!this._rootTilesetJSON)return void s(i("root-is-null","Root tile is null."));this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=b(this._rootTilesetJSON);L(this._rootTilesetJSON)&&(this.esriCrsFullExtent=b(this._rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference),o(),this._rootRequestPromise=null},e=>{n(e),s(i("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,r.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>s(e))})),this._rootRequestPromise}_haveWGS84ZModifications(e){for(const t of e){if(!t.geometry?.spatialReference)return!0;if(115700===t.geometry?.spatialReference.vcsWkid&&4326===t.geometry?.spatialReference.wkid)return!0}return!1}async _doLoad(e){const t=null!=e?e.signal:null;try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new o("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(i){n(i)}if(null!=this._modificationsSource){const t=await w.fromUrl(this._modificationsSource.url,this.spatialReference,e,!0);if(this._haveWGS84ZModifications(t)){await C();try{const e=q(null,t.toArray(),h.WGS84),i=M({modifications:e,inVCS:115700});i.success&&i.modifications&&N(i.modifications,t)}catch(s){r.getLogger(this).error("convert-mesh-modification-z-error","Error when converting:",s)}}this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}async beforeSave(){if(null==this._modificationsSource){const{modifications:e}=this;return void(e&&e.length>0&&await C())}await this.load().then(()=>{},()=>{})}get memoizedElevationQueryDependencies(){return[this.loadStatus,null!=this.queryElevationCallback,P(this.elevationInfo),this._modificationsGeneration]}get hasAttributionData(){return!1}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";G(r.getLogger(this),I(t,"absolute-height",e)),G(r.getLogger(this),D(t,e))}get replacesTerrain(){return this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return U(this.parent)}get hasGoogleUrl(){return this._simulateGoogleUrl||!!this.url?.match(/.+\.googleapis.com/)}get test(){}};e([c({type:["IntegratedMesh3DTilesLayer"]})],J.prototype,"operationalLayerType",void 0),e([c({type:w,clonable:e=>e?.clone()??null}),d({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],J.prototype,"modifications",void 0),e([c({clonable:e=>e?{...e}:null})],J.prototype,"_modificationsSource",void 0),e([A(["web-scene","portal-item"],"modifications")],J.prototype,"readModifications",null),e([c({type:h})],J.prototype,"spatialReference",void 0),e([c({type:u})],J.prototype,"fullExtent",void 0),e([c({readOnly:!0})],J.prototype,"supportedSpatialReferences",null),e([c({type:[u]})],J.prototype,"fullExtents",null),e([c(T)],J.prototype,"elevationInfo",null),e([c({type:["show","hide"]})],J.prototype,"listMode",void 0),e([c(x)],J.prototype,"url",void 0),e([c({readOnly:!0})],J.prototype,"type",void 0),e([c({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],J.prototype,"path",void 0),e([c({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],J.prototype,"minScale",void 0),e([c({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],J.prototype,"maxScale",void 0),e([c()],J.prototype,"queryElevationCallback",void 0),e([c()],J.prototype,"_modificationsGeneration",void 0),e([c()],J.prototype,"memoizedElevationQueryDependencies",null),e([c({readOnly:!0})],J.prototype,"hasAttributionData",null),e([c()],J.prototype,"replacesTerrain",null),e([c()],J.prototype,"isUsedAsGroundLayer",null),e([c()],J.prototype,"hasGoogleUrl",null),e([c()],J.prototype,"_simulateGoogleUrl",void 0),J=e([m("esri.layers.IntegratedMesh3DTilesLayer")],J);const z=J;export{z as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as i}from"../core/Clonable.js";import o from"../core/Error.js";import"../core/has.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as n}from"../core/promiseUtils.js";import{on as a,sync as l,watch as p}from"../core/reactiveUtils.js";import{property as c,subclass as m}from"../core/accessorSupport/decorators.js";import{persistable as d}from"../core/accessorSupport/decorators/persistable.js";import u from"../geometry/Extent.js";import h from"../geometry/SpatialReference.js";import f from"./Layer.js";import{APIKeyMixin as y}from"./mixins/APIKeyMixin.js";import{ArcGISService as g}from"./mixins/ArcGISService.js";import{CustomParametersMixin as S}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as _}from"./mixins/OperationalLayer.js";import{PortalLayer as v}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as j}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as T,url as x}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as R,default3DTilesFullExtent as E,initFullExtent as b,hasEsriCrs as L}from"./support/tiles3DUtils.js";import k from"../portal/Portal.js";import{getElevationOffsetInMeters as G,logInvalidElevationInfoWarning as P,elevationModeRequiredMessage as I,featureExpressionUnsupportedMessage as D}from"../support/elevationInfoUtils.js";import{f as O}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{initialize as C,switchMeshModificationPolygonVCSSync as M}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as q,fromWasmModification as N}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as A}from"../core/accessorSupport/decorators/reader.js";let J=class extends(g(_(v(j(s(S(y(i(f))))))))){readModifications(e,t,i){this._modificationsSource={url:O(e,i),context:i}}initialize(){this.addHandles([a(()=>this.modifications,"after-changes",()=>{this.modifications=this.modifications,this._modificationsGeneration++},l),p(()=>this.modifications,()=>this._modificationsGeneration++)])}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=R,this.fullExtent=E,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null,this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null,this._modificationsGeneration=0,this._simulateGoogleUrl=!1}get supportedSpatialReferences(){return this.initialized&&this.esriCrsSpatialReference?[h.WGS84,this.esriCrsSpatialReference]:[h.WGS84]}get fullExtents(){return this.initialized&&this.esriCrsFullExtent?[E,this.esriCrsFullExtent]:[E]}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[o,r]of Object.entries(e)){if("uri"===o)try{const e=new URL("https://tmp"+r).searchParams.get("session");if(e)return e}catch(i){}"object"==typeof r&&null!==r&&t.push(r)}}return null}async requestRootAndSession(e){const i=(e,t)=>new o("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((o,s)=>{this.url||s(i("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,o)=>{if(this.replacesTerrain&&!this._key){const r=this.portalItem?.portal||this.parent?.portalItem?.portal||k.getDefault();r.signIn().then(()=>{r.g3dTilesEnabled?t(r.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>o(i("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):o(i("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+r.url))},()=>o(i("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void s(i("root-parse-failed","Error parsing root tile, details: "+t))}if(!this._rootTilesetJSON)return void s(i("root-is-null","Root tile is null."));this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=b(this._rootTilesetJSON);L(this._rootTilesetJSON)&&(this.esriCrsFullExtent=b(this._rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference),o(),this._rootRequestPromise=null},e=>{n(e),s(i("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,r.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>s(e))})),this._rootRequestPromise}_haveWGS84ZModifications(e){for(const t of e){if(!t.geometry?.spatialReference)return!0;if(115700===t.geometry?.spatialReference.vcsWkid&&4326===t.geometry?.spatialReference.wkid)return!0}return!1}async _doLoad(e){const t=null!=e?e.signal:null;try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new o("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(i){n(i)}if(null!=this._modificationsSource){const t=await w.fromUrl(this._modificationsSource.url,this.spatialReference,e,!0);if(this._haveWGS84ZModifications(t)){await C();try{const e=q(null,t.toArray(),h.WGS84),i=M({modifications:e,inVCS:115700});i.success&&i.modifications&&N(i.modifications,t)}catch(s){r.getLogger(this).error("convert-mesh-modification-z-error","Error when converting:",s)}}this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}async beforeSave(){if(null==this._modificationsSource){const{modifications:e}=this;return void(e&&e.length>0&&await C())}await this.load().then(()=>{},()=>{})}get memoizedElevationQueryDependencies(){return[this.loadStatus,null!=this.queryElevationCallback,G(this.elevationInfo),this._modificationsGeneration]}get hasAttributionData(){return!1}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";P(r.getLogger(this),I(t,"absolute-height",e)),P(r.getLogger(this),D(t,e))}get replacesTerrain(){return this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return U(this.parent)}get hasGoogleUrl(){return this._simulateGoogleUrl||!!this.url?.match(/.+\.googleapis.com/)}get test(){}};e([c({type:["IntegratedMesh3DTilesLayer"]})],J.prototype,"operationalLayerType",void 0),e([c({type:w,clonable:e=>e?.clone()??null}),d({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],J.prototype,"modifications",void 0),e([c({clonable:e=>e?{...e}:null})],J.prototype,"_modificationsSource",void 0),e([A(["web-scene","portal-item"],"modifications")],J.prototype,"readModifications",null),e([c({type:h})],J.prototype,"spatialReference",void 0),e([c({type:u})],J.prototype,"fullExtent",void 0),e([c({readOnly:!0})],J.prototype,"supportedSpatialReferences",null),e([c({type:[u]})],J.prototype,"fullExtents",null),e([c(T)],J.prototype,"elevationInfo",null),e([c({type:["show","hide"]})],J.prototype,"listMode",void 0),e([c(x)],J.prototype,"url",void 0),e([c({readOnly:!0})],J.prototype,"type",void 0),e([c({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],J.prototype,"path",void 0),e([c({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],J.prototype,"minScale",void 0),e([c({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],J.prototype,"maxScale",void 0),e([c()],J.prototype,"queryElevationCallback",void 0),e([c()],J.prototype,"_modificationsGeneration",void 0),e([c()],J.prototype,"memoizedElevationQueryDependencies",null),e([c({readOnly:!0})],J.prototype,"hasAttributionData",null),e([c()],J.prototype,"replacesTerrain",null),e([c()],J.prototype,"isUsedAsGroundLayer",null),e([c()],J.prototype,"hasGoogleUrl",null),e([c()],J.prototype,"_simulateGoogleUrl",void 0),J=e([m("esri.layers.IntegratedMesh3DTilesLayer")],J);const W=J;export{W as default};
@@ -103,6 +103,12 @@ export interface TiledImageryProperties extends Partial<Pick<TiledImagery, "band
103
103
  * @see [Sample - Transposed multidimensional ImageryTileLayer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
104
104
  */
105
105
  renderer?: ((ClassBreaksRendererProperties & { type: "class-breaks" }) | (FlowRendererProperties & { type: "flow" }) | (RasterColormapRendererProperties & { type: "raster-colormap" }) | (RasterShadedReliefRendererProperties & { type: "raster-shaded-relief" }) | (RasterStretchRendererProperties & { type: "raster-stretch" }) | (UniqueValueRendererProperties & { type: "unique-value" }) | (VectorFieldRendererProperties & { type: "vector-field" })) | null;
106
+ /**
107
+ * Raster information retrieved from tiled imagery data source.
108
+ *
109
+ * @since 4.29
110
+ */
111
+ serviceRasterInfo?: RasterInfo | null;
106
112
  }
107
113
 
108
114
  /** TiledImagery is a mixin that adds common properties and methods to [ImageryTileLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryTileLayer/) and [WCSLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/WCSLayer/). */
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../request.js";import r from"../../core/Error.js";import i from"../../core/Logger.js";import{property as s,subclass as n}from"../../core/accessorSupport/decorators.js";import{Integer as o,ensureClass as a}from"../../core/accessorSupport/ensureType.js";import l from"../../geometry/Point.js";import u from"../../geometry/SpatialReference.js";import{getInfo as m}from"../../geometry/support/spatialReferenceUtils.js";import{isFunctionRaster as c}from"../raster/datasets/datasetUtils.js";import d from"../raster/datasets/FunctionRaster.js";import{getEffectiveMultidimensionalDefinition as p,getDefaultVariableInfo as h,isMultiSliceOrRangeDefinition as f,convertOleDateTimeToEpoch as y,getSubsetVariablesFromMdInfo as g,getDefaultMultidimensionalDefinition as R}from"../raster/datasets/multidimensionalUtils.js";import{snapToRaster as b,clip as I}from"../raster/functions/clipUtils.js";import{create as w}from"../raster/functions/rasterFunctionHelper.js";import{load as x,projectExtent as S,projectPolygon as _}from"../raster/functions/rasterProjectionHelper.js";import{computeStatisticsHistograms as F}from"../raster/functions/stretchUtils.js";import{sanitizeUrl as v}from"../support/arcgisLayerUrl.js";import{url as J}from"../support/commonProperties.js";import j from"../support/DimensionalDefinition.js";import{createTileBitmap as D}from"../support/imageBitmapUtils.js";import N from"../support/MultidimensionalSubset.js";import{interpolationKebab as T}from"../support/rasterEnums.js";import H from"../support/RasterFunction.js";import C from"../support/RasterJobHandler.js";import O from"../support/TileInfo.js";import{getVariableRasterInfo as P,getDefaultInterpolation as z,matchPresetRenderer as E,getDefaultBandCombination as B,getFunctionColorRamp as U,createDefaultRenderer as M,normalizeRendererJSON as A}from"../../renderers/support/rasterRendererHelper.js";import q from"../../renderers/support/RasterSymbolizer.js";import{rasterRendererTypes as k,websceneRasterRendererTypes as L,read as V}from"../../renderers/support/rasterTypeUtils.js";import $ from"../../rest/support/ImageHistogramParameters.js";import G from"../../rest/support/ImageSample.js";import W from"../../rest/support/ImageSampleParameters.js";import K from"../../rest/support/ImageSampleResult.js";import{enumeration as Q}from"../../core/accessorSupport/decorators/enumeration.js";import{reader as X}from"../../core/accessorSupport/decorators/reader.js";const Y=1e3,Z=Z=>{const ee=Z;let te=class extends ee{constructor(...e){super(...e),this._draRasterConfig=null,this._isConstructedFromFunctionRaster=!1,this.bandIds=null,this.copyright=null,this.interpolation=null,this.multidimensionalSubset=null,this.raster=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.spatialReference=null,this.symbolizer=null,this._isConstructedFromFunctionRaster=c(e[0]?.raster)}destroy(){this._draRasterConfig?.rasterJobHandler?.destroy(),this._shutdownJobHandler()}get fullExtent(){return this.serviceRasterInfo?.extent}set multidimensionalDefinition(e){this._set("multidimensionalDefinition",e),this.updateRenderer()}set rasterFunction(e){"none"===e?.functionName?.toLowerCase()&&(e=void 0),this._set("rasterFunction",e),this.updateRasterFunction()}set url(e){this._set("url",v(e,i.getLogger(this)))}get renderer(){if("imagery-tile"!==this.type)return this.internalRenderer;const{activePresetRendererName:e,presetRenderers:t}=this;if(e){const r=t?.find(({name:t})=>t===e);return r?.renderer.clone()}return this.internalRenderer}set renderer(e){"imagery-tile"===this.type&&(this.activePresetRendererName=null),this.internalRenderer=e}set internalRenderer(e){null==e&&null==this.rasterFunction?this._configDefaultRenderer("override"):(this._set("internalRenderer",e),this.updateRenderer())}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;return V(i,r)||void 0}async computeStatisticsHistograms(e,t){await this.load(t),e=a($,e).clone();const{serviceRasterInfo:i}=this;if(null==i)throw new r("imagery-tile-mixin:compute-statistics-histograms","serviceRasterInfo must be specified");const{geometry:s}=e;if(null==s)throw new r("imagery-tile-mixin:compute-statistics-histograms","geometry must be specified");let n=s;const{spatialReference:o}=i;if(!s.spatialReference.equals(o)){await x();const e="extent"===s.type?S(s,o):_(s,o);if(null==e)throw new r("imagery-tile-mixin:compute-statistics-histograms","geometry cannot be projected to the data source");n=e}const u=e.pixelSize??new l({x:i.pixelSize.x,y:i.pixelSize.y,spatialReference:o}),{extent:m,width:c,height:d}=b(i,n,u),p=await this.fetchPixels(m,c,d,{...t,interpolation:"nearest"});if(null==p.pixelBlock)throw new r("imagery-tile-mixin:compute-statistics-histograms","failed to fetch pixels");const h=await I(p.pixelBlock,m,n),f=this._rasterJobHandler;return f?f.computeStatisticsHistograms({pixelBlock:h},t):F(h)}normalizeRasterFetchOptions(e){const{multidimensionalInfo:t}=this.serviceRasterInfo??{};if(null==t)return e;const r=p({rasterInfo:this.raster.rasterInfo,multidimensionalDefinition:e.multidimensionalDefinition||this.multidimensionalDefinition,timeExtent:e.timeExtent??this.timeExtent,multidimensionalSubset:this.multidimensionalSubset});return{...e,multidimensionalDefinition:r,timeExtent:void 0}}async updateRasterFunction(){return this.loaded&&"imagery-tile"===this.type&&(this.rasterFunction||this._cachedRasterFunctionJson)&&JSON.stringify(this.rasterFunction)!==JSON.stringify(this._cachedRasterFunctionJson)?(this._cachedRasterFunctionJson=this.rasterFunction?.toJSON(),this._rasterFunctionUpdatePromise=this._updateRasterFunction(),this._rasterFunctionUpdatePromise):this._rasterFunctionUpdatePromise}async updateRenderer(){const{loaded:e,symbolizer:t,renderer:r}=this;if(!e||!t||!r)return;const{rasterInfo:i}=this.raster,s=h(i,{multidimensionalDefinition:this.multidimensionalDefinition,multidimensionalSubset:this.multidimensionalSubset}),n=s?.name,o=P(i,n);return this._updateSymbolizer(t,r,n,o)}async applyRenderer(e,t,r){const i=e?.pixelBlock;if(!(null!=i&&i.pixels&&i.pixels.length>0))return null;await this.updateRenderer();const s=this.bandIds??[],{pixelBlock:n}=await this._symbolize({pixelData:e,simpleStretchParams:t,bandIds:s,symbolizer:this.symbolizer},r);return n}getRawDisplayBandIds(){let{bandIds:e,raster:t}=this;if(this.rasterFunction&&c(t)){const r=t.rasterFunction.rawInputBandIds;e=e?.length&&r?.length&&1!==t.rasterInfo.bandCount?e.map(e=>r[Math.min(e,r.length-1)]):r}return e&&e.length>3&&e.every((e,t)=>e===t)?null:e}getTileUrl(e,t,r){return"RasterTileServer"===this.raster.datasetFormat?`${this.url}/tile/${e}/${t}/${r}`:""}getCompatibleTileInfo(e,t,r=!1){if(!this.loaded||null==t)return null;if(r&&e.equals(this.spatialReference))return this.tileInfo;const i=m(e);return O.create({size:256,spatialReference:e,origin:i?{x:i.origin[0],y:i.origin[1]}:{x:t.xmin,y:t.ymax}})}getCompatibleFullExtent(e){return this.loaded?(this._compatibleFullExtent?.spatialReference.equals(e)||(this._compatibleFullExtent=this.raster.computeExtent(e)),this._compatibleFullExtent):null}async fetchTile(e,r,i,s={}){if(re(this),s.requestAsImageElement){const n=this.getTileUrl(e,r,i),{data:o}=await t(n,{responseType:"image",query:{...this.refreshParameters,...this.raster.ioConfig.customFetchParameters},signal:s.signal});return o}const{serviceRasterInfo:n}=this;if(null!=n.multidimensionalInfo&&null==(s=this.normalizeRasterFetchOptions(s)).multidimensionalDefinition){const t=s.tileInfo||n.storageInfo.tileInfo,o=this.raster.getTileExtentFromTileInfo(e,r,i,t);if(o)return{extent:o,pixelBlock:null}}return await this._initJobHandler(),await this.updateRasterFunction(),"raster-shaded-relief"===this.renderer?.type&&(s={...s,buffer:{cols:1,rows:1}}),s={...s,refreshParameters:this.refreshParameters},this.raster.fetchTile(e,r,i,s)}async fetchImageBitmapTile(e,r,i,s={}){re(this);const n=this.getTileUrl(e,r,i),{data:o}=await t(n,{responseType:"blob",query:{...this.refreshParameters,...this.raster.ioConfig.customFetchParameters},signal:s?.signal});return D(o,e,r,i,s)}async fetchPixels(e,t,r,i={}){if(null!=this.serviceRasterInfo.multidimensionalInfo&&null==(i=this.normalizeRasterFetchOptions(i)).multidimensionalDefinition)return{extent:e,pixelBlock:null};await this._initJobHandler(),await this.updateRasterFunction(),t=Math.round(t),r=Math.round(r);const s=await this.raster.fetchPixels(e,t,r,i);return i.bandIds?.length&&!this.raster.rasterInfo.storageInfo.isBsqTile&&(s.pixelBlock=s.pixelBlock?.extractBands(i.bandIds)),s}async getSamples(e,t){await this.load();const i=a(W,e).clone();if(i.interpolation&&"nearest"!==i.interpolation)throw new r("imagery-tile-mixin:get-samples","only nearest interpolation is currently supported");const s=i.mosaicRule?.multidimensionalDefinition,n={...t,multidimensionalDefinition:s},o=(await this._getSampleLocations(i)).map(e=>this.identify(e,n).then(t=>(t.location=e,t))),l=(await Promise.all(o)).flatMap((e,t)=>this._convertRasterIdentifyResultToSample(e,t));return new K({samples:l})}async identify(e,t={}){await this.load();const i=a(l,e).clone().normalize(),{raster:s,serviceRasterInfo:n}=this;if(null!=n?.multidimensionalInfo){if(!(n.hasMultidimensionalTranspose&&!(!f(t.multidimensionalDefinition)&&!t.transposedVariableName))&&null==(t=this.normalizeRasterFetchOptions(t)).multidimensionalDefinition)return{location:i,value:null}}const o=this.multidimensionalSubset?.areaOfInterest;if(o&&!o.contains(i))throw new r("imagery-tile-mixin:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");let u;if(this.serviceRasterInfo?.storageInfo.isBsqTile){const e=c(s)?this.getRawDisplayBandIds():this.bandIds;u=e?.length?e:void 0}return s.identify(i,{...t,bandIds:u})}hasStandardTime(){const e=this.serviceRasterInfo?.multidimensionalInfo;if(null==e||"standard-time"!==this.serviceRasterInfo?.dataType)return!1;const t=this.multidimensionalDefinition,r=t?.[0]?.variableName;return e.variables.some(e=>e.name===r&&(!t?.[0].dimensionName||e.dimensions.some(e=>"StdTime"===e.name)))}getStandardTimeValue(e){return new Date(y(e)).toISOString()}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo?.multidimensionalInfo;return g(this.multidimensionalSubset,t)}async getDynamicRangeInputRaster(){if(!this.rasterFunction||!c(this.raster)||!this._cachedRasterFunctionJson)return null;const e=JSON.stringify(this._cachedRasterFunctionJson);if(this._draRasterConfig?.functionJson===e)return this._draRasterConfig;const t=this.raster.rasterFunction.queryRasterFunction(e=>"Stretch"===e.functionName&&e.functionArguments.dynamicRangeAdjustment);if(!t)return null;const r=t.toJSON(),i=this.raster.primaryRasters.rasters,s=t.functionArguments.raster,n=r.rasterFunctionArguments;if(!s||"object"!=typeof s||!("functionName"in s))return this._draRasterConfig={functionJson:e,raster:i[0],functionArguments:n,rasterJobHandler:this._draRasterConfig?.rasterJobHandler},this._draRasterConfig;const o={raster:i[0]};i.length>1&&i.forEach(e=>o[e.url]=e);const a=w(s.toJSON(),o),l=new d({rasterFunction:a});await l.open();let u=this._draRasterConfig?.rasterJobHandler;try{u||(u=new C,await u.initialize()),l.rasterJobHandler=u,await l.syncJobHandler()}catch{}return this._draRasterConfig={functionJson:e,raster:l,functionArguments:n,rasterJobHandler:u},this._draRasterConfig}_configDefaultSettings(){this._configDefaultInterpolation(),this.multidimensionalDefinition||(this.multidimensionalDefinition=R(this.raster.rasterInfo,{multidimensionalSubset:this.multidimensionalSubset})),this.rasterFunction&&c(this.raster)&&(this._cachedRasterFunctionJson=this.rasterFunction.toJSON()),this._configDefaultRenderer()}async _initJobHandler(){if(!this._rasterJobHandler)return super._initJobHandler().then(async()=>{if(!this._rasterJobHandler)return;re(this);const{raster:e}=this;e.rasterJobHandler!==this._rasterJobHandler&&(e.rasterJobHandler=this._rasterJobHandler,c(e)&&e.syncJobHandler(),this.rasterFunction&&await this.updateRasterFunction().catch(()=>{}),this.renderer&&this.updateRenderer())}).catch(()=>{})}_shutdownJobHandler(){super._shutdownJobHandler(),this.raster&&(this.raster.rasterJobHandler=null)}async _getSampleLocations(e){const{geometry:t}=e;if("point"===t.type)return[t];const{spatialReference:r,type:i}=t;if("multipoint"===i)return t.points.map(e=>new l({x:e[0],y:e[1],spatialReference:r}));if("polyline"===i){let i=t;if(e.sampleCount||e.sampleDistance){const{densifyExecute:r}=await(import("../../geometry/operators/densifyOperator.js")),{lengthExecute:s}=await(import("../../geometry/operators/lengthOperator.js")),n=s(t,{unit:"meters"}),o=Math.min(e.sampleCount||100,Y);let a=e.sampleDistance;if(!a){a=n/(o+(2===i.paths[0].length?1:0))}i=r(t,a,{unit:"meters"})}return i.paths.flatMap(e=>e.map(e=>new l({x:e[0],y:e[1],spatialReference:r})))}const s=Math.min(e.sampleCount||100,Y),n="extent"===t.type,o=n?t:t.extent,a=Math.sqrt(o.width*o.height/s),u=o.height/a,m=o.width/a,{xmin:c,ymax:d}=o,p=[];for(let h=0;h<u;h++)for(let e=0;e<m;e++){const i=new l({x:c+(e+.5)*a,y:d-(h+.5)*a,spatialReference:r});(n||t.contains(i))&&p.push(i)}return p}_configDefaultInterpolation(){if(null==this.interpolation){re(this);const{raster:e}=this,t=z(e.rasterInfo,e.tileType,this.sourceJSON?.defaultResamplingMethod);this._set("interpolation",t)}}_configDefaultRenderer(e="no"){re(this);const{rasterInfo:t}=this.raster,r=h(t,{multidimensionalDefinition:this.multidimensionalDefinition,multidimensionalSubset:this.multidimensionalSubset}),s=r?.name,n=E({variableName:s,rasterFunctionName:this.rasterFunction?.functionName,presetRenderers:this.presetRenderers});if(!this.bandIds&&t.bandCount>1&&(this.bandIds=n?.bandIds??B(t)),!this.renderer||"override"===e){const e=U(this.raster),r=n?.renderer??M(t,{bandIds:this.bandIds,variableName:s,rasterFunctionColorRamp:e}),i=t.statistics,o=i&&i.length>0?i[0]:null,a=o?.max??0,l=o?.min??0;"WCSServer"===this.raster.datasetFormat&&"raster-stretch"===r.type&&(a>1e24||l<-1e24)&&(r.dynamicRangeAdjustment=!0,r.customStatistics=null,"none"===r.stretchType&&(r.stretchType="min-max")),this.renderer=r}const o=A({...this.renderer.toJSON(),variableName:s}),a=P(t,s);this.symbolizer?(this.symbolizer.rendererJSON=o,this.symbolizer.rasterInfo=a):this.symbolizer=new q({rendererJSON:o,rasterInfo:a});const l=this.symbolizer.bind();if(l.success){if("auto"===e){const{colormap:e}=this.raster.rasterInfo,t=this.renderer;if(null!=e&&"raster-colormap"===t.type){const e=M(this.raster.rasterInfo);JSON.stringify(e)!==JSON.stringify(t)&&this._configDefaultRenderer("override")}else if("raster-stretch"===t.type){const e=this.bandIds?.length,r=t.customStatistics?.length;!t.dynamicRangeAdjustment&&r&&e&&r!==e&&this._configDefaultRenderer("override")}}}else i.getLogger(this).warn("imagery-tile-mixin",l.error||"The given renderer is not supported by the layer."),"auto"===e&&this._configDefaultRenderer("override")}async _updateRasterFunction(){if(this._isConstructedFromFunctionRaster&&c(this.raster)){const e=this.raster.rasterFunction.toJSON();return void(!this.rasterFunction&&e&&this._set("rasterFunction",H.fromJSON(e)))}let e,t=this.raster,r=!1;c(t)?(e=t.primaryRasters.rasters,t=e[0],r=!0):e=[t];const{rasterFunction:i}=this;if(i){const r={raster:t};e.length>1&&e.forEach(e=>r[e.url]=e);const s=w(i.functionDefinition?.toJSON()??i.toJSON(),r),n=new d({rasterFunction:s});n.rasterJobHandler=this._rasterJobHandler,await n.open(),this.raster=n}else this.raster=t,await t.open();if(this._cachedRendererJson=void 0,!r&&!i)return;const{bandIds:s}=this,{bandCount:n}=this.raster.rasterInfo,o=s?.length?s.some(e=>e>=n):n>=3;s&&(o||this.renderer&&"raster-stretch"!==this.renderer.type)&&this._set("bandIds",null),this._configDefaultRenderer("auto")}_convertRasterIdentifyResultToSample(e,t){const{rasterInfo:r}=this.raster,i=r.storageInfo.pyramidScalingFactor**(e.pyramidLevel??0),s=(r.pixelSize.x+r.pixelSize.y)/2*i;if(!e.dataSeries?.length)return[new G({location:e.location,pixelValue:e.value,locationId:t,resolution:s})];const n=[];return e.dataSeries.forEach(({value:r,multidimensionalDefinition:i},o)=>{const a={Variables:i[0].variableName,Dimensions:i.flatMap(({dimensionName:e})=>e).join(",")};for(const{dimensionName:e,values:t}of i){a[e]=Array.isArray(t[0])?t[0][0]:t[0];const r=t[t.length-1];a[`${e}_Max`]=Array.isArray(r)?r[r.length-1]:r}const l=new G({location:e.location,pixelValue:r,rasterId:o,locationId:t,resolution:s,attributes:a});n.push(l)}),n}};function re(e){if(!e.raster||!e.serviceRasterInfo)throw new r("imagery-tile","no raster")}return e([s({clonable:!1})],te.prototype,"_cachedRasterFunctionJson",void 0),e([s({clonable:!1})],te.prototype,"_compatibleFullExtent",void 0),e([s({clonable:!1})],te.prototype,"_draRasterConfig",void 0),e([s({clonable:!1})],te.prototype,"_isConstructedFromFunctionRaster",void 0),e([s({clonable:!1})],te.prototype,"_rasterFunctionUpdatePromise",void 0),e([s({type:[o],json:{write:{overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType||"0,1,2"!==this.bandIds?.join(",")}}}}})],te.prototype,"bandIds",void 0),e([s({json:{origins:{service:{read:{source:"copyrightText"}}}}})],te.prototype,"copyright",void 0),e([s({json:{read:!1}})],te.prototype,"fullExtent",null),e([s({json:{write:{overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType||"bilinear"!==this.interpolation}}}}}),Q(T)],te.prototype,"interpolation",void 0),e([s()],te.prototype,"ioConfig",void 0),e([s({type:[j],json:{write:!0}})],te.prototype,"multidimensionalDefinition",null),e([s({type:N,json:{write:!0}})],te.prototype,"multidimensionalSubset",void 0),e([s()],te.prototype,"raster",void 0),e([s({type:H})],te.prototype,"rasterFunction",null),e([s()],te.prototype,"serviceRasterInfo",void 0),e([s()],te.prototype,"sourceJSON",void 0),e([s({readOnly:!0,type:u,json:{read:!1}})],te.prototype,"spatialReference",void 0),e([s({type:O})],te.prototype,"tileInfo",void 0),e([s(J)],te.prototype,"url",null),e([s({types:k})],te.prototype,"renderer",null),e([s({types:k,json:{name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy(){const e="raster-stretch"===this.renderer?.type&&"none"===this.renderer.stretchType&&!this.renderer.useGamma;return{enabled:!this.loaded||"Raster"===this.raster.tileType||!e}}},origins:{"web-scene":{types:L,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],te.prototype,"internalRenderer",null),e([X("internalRenderer")],te.prototype,"readRenderer",null),e([s({clonable:!1})],te.prototype,"symbolizer",void 0),te=e([n("esri.layers.mixins.TiledImagery")],te),te};export{Z as TiledImagery};
2
+ import{__decorate as e}from"tslib";import t from"../../request.js";import r from"../../core/Error.js";import i from"../../core/Logger.js";import{property as s,subclass as n}from"../../core/accessorSupport/decorators.js";import{Integer as o,ensureClass as a}from"../../core/accessorSupport/ensureType.js";import l from"../../geometry/Point.js";import u from"../../geometry/SpatialReference.js";import{getInfo as m}from"../../geometry/support/spatialReferenceUtils.js";import{isFunctionRaster as c}from"../raster/datasets/datasetUtils.js";import d from"../raster/datasets/FunctionRaster.js";import{getEffectiveMultidimensionalDefinition as p,getDefaultVariableInfo as h,isMultiSliceOrRangeDefinition as f,convertOleDateTimeToEpoch as y,getSubsetVariablesFromMdInfo as g,getDefaultMultidimensionalDefinition as R}from"../raster/datasets/multidimensionalUtils.js";import{snapToRaster as b,clip as I}from"../raster/functions/clipUtils.js";import{create as w}from"../raster/functions/rasterFunctionHelper.js";import{load as x,projectExtent as S,projectPolygon as _}from"../raster/functions/rasterProjectionHelper.js";import{computeStatisticsHistograms as F}from"../raster/functions/stretchUtils.js";import{sanitizeUrl as v}from"../support/arcgisLayerUrl.js";import{url as J}from"../support/commonProperties.js";import j from"../support/DimensionalDefinition.js";import{createTileBitmap as D}from"../support/imageBitmapUtils.js";import N from"../support/MultidimensionalSubset.js";import{interpolationKebab as T}from"../support/rasterEnums.js";import H from"../support/RasterFunction.js";import C from"../support/RasterJobHandler.js";import O from"../support/TileInfo.js";import{getVariableRasterInfo as P,getDefaultInterpolation as z,matchPresetRenderer as E,getDefaultBandCombination as B,getFunctionColorRamp as U,createDefaultRenderer as M,normalizeRendererJSON as A}from"../../renderers/support/rasterRendererHelper.js";import q from"../../renderers/support/RasterSymbolizer.js";import{rasterRendererTypes as k,websceneRasterRendererTypes as L,read as V}from"../../renderers/support/rasterTypeUtils.js";import $ from"../../rest/support/ImageHistogramParameters.js";import G from"../../rest/support/ImageSample.js";import W from"../../rest/support/ImageSampleParameters.js";import K from"../../rest/support/ImageSampleResult.js";import{enumeration as Q}from"../../core/accessorSupport/decorators/enumeration.js";import{reader as X}from"../../core/accessorSupport/decorators/reader.js";const Y=1e3,Z=Z=>{const ee=Z;let te=class extends ee{constructor(...e){super(...e),this._draRasterConfig=null,this._isConstructedFromFunctionRaster=!1,this.bandIds=null,this.copyright=null,this.interpolation=null,this.multidimensionalSubset=null,this.raster=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.spatialReference=null,this.symbolizer=null,this._isConstructedFromFunctionRaster=c(e[0]?.raster)}destroy(){this._draRasterConfig?.rasterJobHandler?.destroy(),this._shutdownJobHandler()}get fullExtent(){return this.serviceRasterInfo?.extent}set multidimensionalDefinition(e){this._set("multidimensionalDefinition",e),this.updateRenderer()}set rasterFunction(e){"none"===e?.functionName?.toLowerCase()&&(e=void 0),this._set("rasterFunction",e),this.updateRasterFunction()}set url(e){this._set("url",v(e,i.getLogger(this)))}get renderer(){if("imagery-tile"!==this.type)return this.internalRenderer;const{activePresetRendererName:e,presetRenderers:t}=this;if(e){const r=t?.find(({name:t})=>t===e);return r?.renderer.clone()}return this.internalRenderer}set renderer(e){"imagery-tile"===this.type&&(this.activePresetRendererName=null),this.internalRenderer=e}set internalRenderer(e){null==e&&null==this.rasterFunction?this._configDefaultRenderer("override"):(this._set("internalRenderer",e),this.updateRenderer())}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;return V(i,r)||void 0}async computeStatisticsHistograms(e,t){await this.load(t),e=a($,e).clone();const{serviceRasterInfo:i}=this;if(null==i)throw new r("imagery-tile-mixin:compute-statistics-histograms","serviceRasterInfo must be specified");const{geometry:s}=e;if(null==s)throw new r("imagery-tile-mixin:compute-statistics-histograms","geometry must be specified");let n=s;const{spatialReference:o}=i;if(!s.spatialReference.equals(o)){await x();const e="extent"===s.type?S(s,o):_(s,o);if(null==e)throw new r("imagery-tile-mixin:compute-statistics-histograms","geometry cannot be projected to the data source");n=e}const u=e.pixelSize??new l({x:i.pixelSize.x,y:i.pixelSize.y,spatialReference:o}),{extent:m,width:c,height:d}=b(i,n,u),p=await this.fetchPixels(m,c,d,{...t,interpolation:"nearest"});if(null==p.pixelBlock)throw new r("imagery-tile-mixin:compute-statistics-histograms","failed to fetch pixels");const h=await I(p.pixelBlock,m,n),f=this._rasterJobHandler;return f?f.computeStatisticsHistograms({pixelBlock:h},t):F(h)}normalizeRasterFetchOptions(e){const{multidimensionalInfo:t}=this.serviceRasterInfo??{};if(null==t)return e;const r=p({rasterInfo:this.raster.rasterInfo,multidimensionalDefinition:e.multidimensionalDefinition||this.multidimensionalDefinition,timeExtent:e.timeExtent??this.timeExtent,multidimensionalSubset:this.multidimensionalSubset});return{...e,multidimensionalDefinition:r,timeExtent:void 0}}async updateRasterFunction(){return this.loaded&&"imagery-tile"===this.type&&(this.rasterFunction||this._cachedRasterFunctionJson)&&JSON.stringify(this.rasterFunction)!==JSON.stringify(this._cachedRasterFunctionJson)?(this._cachedRasterFunctionJson=this.rasterFunction?.toJSON(),this._rasterFunctionUpdatePromise=this._updateRasterFunction(),this._rasterFunctionUpdatePromise):this._rasterFunctionUpdatePromise}async updateRenderer(){const{loaded:e,symbolizer:t,renderer:r}=this;if(!e||!t||!r)return;const{rasterInfo:i}=this.raster,s=h(i,{multidimensionalDefinition:this.multidimensionalDefinition,multidimensionalSubset:this.multidimensionalSubset}),n=s?.name,o=P(i,n);return this._updateSymbolizer(t,r,n,o)}async applyRenderer(e,t,r){const i=e?.pixelBlock;if(!(null!=i&&i.pixels&&i.pixels.length>0))return null;await this.updateRenderer();const s=this.bandIds??[],{pixelBlock:n}=await this._symbolize({pixelData:e,simpleStretchParams:t,bandIds:s,symbolizer:this.symbolizer},r);return n}getRawDisplayBandIds(){let{bandIds:e,raster:t}=this;if(this.rasterFunction&&c(t)){const r=t.rasterFunction.rawInputBandIds;e=e?.length&&r?.length&&1!==t.rasterInfo.bandCount?e.map(e=>r[Math.min(e,r.length-1)]):r}return e&&e.length>3&&e.every((e,t)=>e===t)?null:e}getTileUrl(e,t,r){return"RasterTileServer"===this.raster.datasetFormat?`${this.url}/tile/${e}/${t}/${r}`:""}getCompatibleTileInfo(e,t,r=!1){if(!this.loaded||null==t)return null;if(r&&e.equals(this.spatialReference))return this.tileInfo;const i=m(e);return O.create({size:256,spatialReference:e,origin:i?{x:i.origin[0],y:i.origin[1]}:{x:t.xmin,y:t.ymax}})}getCompatibleFullExtent(e){return this.loaded?(this._compatibleFullExtent?.spatialReference.equals(e)||(this._compatibleFullExtent=this.raster.computeExtent(e)),this._compatibleFullExtent):null}async fetchTile(e,r,i,s={}){if(re(this),s.requestAsImageElement){const n=this.getTileUrl(e,r,i),{data:o}=await t(n,{responseType:"image",query:{...this.refreshParameters,...this.raster.ioConfig.customFetchParameters},signal:s.signal});return o}const{serviceRasterInfo:n}=this;if(null!=n.multidimensionalInfo&&null==(s=this.normalizeRasterFetchOptions(s)).multidimensionalDefinition){const t=s.tileInfo||n.storageInfo.tileInfo,o=this.raster.getTileExtentFromTileInfo(e,r,i,t);if(o)return{extent:o,pixelBlock:null}}return await this._initJobHandler(),await this.updateRasterFunction(),"raster-shaded-relief"===this.renderer?.type&&(s={...s,buffer:{cols:1,rows:1}}),s={...s,refreshParameters:this.refreshParameters},this.raster.fetchTile(e,r,i,s)}async fetchImageBitmapTile(e,r,i,s={}){re(this);const n=this.getTileUrl(e,r,i),{data:o}=await t(n,{responseType:"blob",query:{...this.refreshParameters,...this.raster.ioConfig.customFetchParameters},signal:s?.signal});return D(o,e,r,i,s)}async fetchPixels(e,t,r,i={}){if(null!=this.serviceRasterInfo.multidimensionalInfo&&null==(i=this.normalizeRasterFetchOptions(i)).multidimensionalDefinition)return{extent:e,pixelBlock:null};await this._initJobHandler(),await this.updateRasterFunction(),t=Math.round(t),r=Math.round(r);const s=await this.raster.fetchPixels(e,t,r,i);return i.bandIds?.length&&!this.raster.rasterInfo.storageInfo.isBsqTile&&(s.pixelBlock=s.pixelBlock?.extractBands(i.bandIds)),s}async getSamples(e,t){await this.load();const i=a(W,e).clone();if(i.interpolation&&"nearest"!==i.interpolation)throw new r("imagery-tile-mixin:get-samples","only nearest interpolation is currently supported");const s=i.mosaicRule?.multidimensionalDefinition,n={...t,multidimensionalDefinition:s},o=(await this._getSampleLocations(i)).map(e=>this.identify(e,n).then(t=>(t.location=e,t))),l=(await Promise.all(o)).flatMap((e,t)=>this._convertRasterIdentifyResultToSample(e,t));return new K({samples:l})}async identify(e,t={}){await this.load();const i=a(l,e).clone().normalize(),{raster:s,serviceRasterInfo:n}=this;if(null!=n?.multidimensionalInfo){if(!(n.hasMultidimensionalTranspose&&!(!f(t.multidimensionalDefinition)&&!t.transposedVariableName))&&null==(t=this.normalizeRasterFetchOptions(t)).multidimensionalDefinition)return{location:i,value:null}}const o=this.multidimensionalSubset?.areaOfInterest;if(o&&!o.contains(i))throw new r("imagery-tile-mixin:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");let u;if(this.serviceRasterInfo?.storageInfo.isBsqTile){const e=c(s)?this.getRawDisplayBandIds():this.bandIds;u=e?.length?e:void 0}return s.identify(i,{...t,bandIds:u})}hasStandardTime(){const e=this.serviceRasterInfo?.multidimensionalInfo;if(null==e||"standard-time"!==this.serviceRasterInfo?.dataType)return!1;const t=this.multidimensionalDefinition,r=t?.[0]?.variableName;return e.variables.some(e=>e.name===r&&(!t?.[0].dimensionName||e.dimensions.some(e=>"StdTime"===e.name)))}getStandardTimeValue(e){return new Date(y(e)).toISOString()}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo?.multidimensionalInfo;return g(this.multidimensionalSubset,t)}async getDynamicRangeInputRaster(){if(!this.rasterFunction||!c(this.raster)||!this._cachedRasterFunctionJson)return null;const e=JSON.stringify(this._cachedRasterFunctionJson);if(this._draRasterConfig?.functionJson===e)return this._draRasterConfig;const t=this.raster.rasterFunction.queryRasterFunction(e=>"Stretch"===e.functionName&&e.functionArguments.dynamicRangeAdjustment);if(!t)return null;const r=t.toJSON(),i=this.raster.primaryRasters.rasters,s=t.functionArguments.raster,n=r.rasterFunctionArguments;if(!s||"object"!=typeof s||!("functionName"in s))return this._draRasterConfig={functionJson:e,raster:i[0],functionArguments:n,rasterJobHandler:this._draRasterConfig?.rasterJobHandler},this._draRasterConfig;const o={raster:i[0]};i.length>1&&i.forEach(e=>o[e.url]=e);const a=w(s.toJSON(),o),l=new d({rasterFunction:a});await l.open();let u=this._draRasterConfig?.rasterJobHandler;try{u||(u=new C,await u.initialize()),l.rasterJobHandler=u,await l.syncJobHandler()}catch{}return this._draRasterConfig={functionJson:e,raster:l,functionArguments:n,rasterJobHandler:u},this._draRasterConfig}_configDefaultSettings(){this._configDefaultInterpolation(),this.multidimensionalDefinition||(this.multidimensionalDefinition=R(this.raster.rasterInfo,{multidimensionalSubset:this.multidimensionalSubset})),this.rasterFunction&&c(this.raster)&&(this._cachedRasterFunctionJson=this.rasterFunction.toJSON()),this._configDefaultRenderer()}async _initJobHandler(){if(!this._rasterJobHandler)return super._initJobHandler().then(async()=>{if(!this._rasterJobHandler)return;re(this);const{raster:e}=this;e.rasterJobHandler!==this._rasterJobHandler&&(e.rasterJobHandler=this._rasterJobHandler,c(e)&&e.syncJobHandler(),this.rasterFunction&&await this.updateRasterFunction().catch(()=>{}),this.renderer&&this.updateRenderer())}).catch(()=>{})}_shutdownJobHandler(){super._shutdownJobHandler(),this.raster&&(this.raster.rasterJobHandler=null)}async _getSampleLocations(e){const{geometry:t}=e;if("point"===t.type)return[t];const{spatialReference:r,type:i}=t;if("multipoint"===i)return t.points.map(e=>new l({x:e[0],y:e[1],spatialReference:r}));if("polyline"===i){let i=t;if(e.sampleCount||e.sampleDistance){const{densifyExecute:r}=await(import("../../geometry/operators/densifyOperator.js")),{lengthExecute:s}=await(import("../../geometry/operators/lengthOperator.js")),n=s(t,{unit:"meters"}),o=Math.min(e.sampleCount||100,Y);let a=e.sampleDistance;if(!a){a=n/(o+(2===i.paths[0].length?1:0))}i=r(t,a,{unit:"meters"})}return i.paths.flatMap(e=>e.map(e=>new l({x:e[0],y:e[1],spatialReference:r})))}const s=Math.min(e.sampleCount||100,Y),n="extent"===t.type,o=n?t:t.extent,a=Math.sqrt(o.width*o.height/s),u=o.height/a,m=o.width/a,{xmin:c,ymax:d}=o,p=[];for(let h=0;h<u;h++)for(let e=0;e<m;e++){const i=new l({x:c+(e+.5)*a,y:d-(h+.5)*a,spatialReference:r});(n||t.contains(i))&&p.push(i)}return p}_configDefaultInterpolation(){if(null==this.interpolation){re(this);const{raster:e}=this,t=z(e.rasterInfo,e.tileType,this.sourceJSON?.defaultResamplingMethod);this._set("interpolation",t)}}_configDefaultRenderer(e="no"){re(this);const{rasterInfo:t}=this.raster,r=h(t,{multidimensionalDefinition:this.multidimensionalDefinition,multidimensionalSubset:this.multidimensionalSubset}),s=r?.name,n=E({variableName:s,rasterFunctionName:this.rasterFunction?.functionName,presetRenderers:this.presetRenderers});if(!this.bandIds&&t.bandCount>1&&(this.bandIds=n?.bandIds??B(t)),!this.renderer||"override"===e){const e=U(this.raster),r=n?.renderer??M(t,{bandIds:this.bandIds,variableName:s,rasterFunctionColorRamp:e}),i=t.statistics,o=i&&i.length>0?i[0]:null,a=o?.max??0,l=o?.min??0;"WCSServer"===this.raster.datasetFormat&&"raster-stretch"===r.type&&(a>1e24||l<-1e24)&&(r.dynamicRangeAdjustment=!0,r.customStatistics=null,"none"===r.stretchType&&(r.stretchType="min-max")),this.renderer=r}const o=A({...this.renderer.toJSON(),variableName:s}),a=P(t,s);this.symbolizer?(this.symbolizer.rendererJSON=o,this.symbolizer.rasterInfo=a):this.symbolizer=new q({rendererJSON:o,rasterInfo:a});const l=this.symbolizer.bind();if(l.success){if("auto"===e){const{colormap:e}=this.raster.rasterInfo,t=this.renderer;if(null!=e&&"raster-colormap"===t.type){const e=M(this.raster.rasterInfo);JSON.stringify(e)!==JSON.stringify(t)&&this._configDefaultRenderer("override")}else if("raster-stretch"===t.type){const e=this.bandIds?.length,r=t.customStatistics?.length;!t.dynamicRangeAdjustment&&r&&e&&r!==e&&this._configDefaultRenderer("override")}}}else i.getLogger(this).warn("imagery-tile-mixin",l.error||"The given renderer is not supported by the layer."),"auto"===e&&this._configDefaultRenderer("override")}async _updateRasterFunction(){if(this._isConstructedFromFunctionRaster&&c(this.raster)){const e=this.raster.rasterFunction.toJSON();return void(!this.rasterFunction&&e&&this._set("rasterFunction",H.fromJSON(e)))}let e,t=this.raster,r=!1;c(t)?(e=t.primaryRasters.rasters,t=e[0],r=!0):e=[t];const{rasterFunction:i}=this;if(i){const r={raster:t};e.length>1&&e.forEach(e=>r[e.url]=e);const s=w(i.functionDefinition?.toJSON()??i.toJSON(),r),n=new d({rasterFunction:s});n.rasterJobHandler=this._rasterJobHandler,await n.open(),this.raster=n}else this.raster=t,await t.open();if(this._cachedRendererJson=void 0,!r&&!i)return;const{bandIds:s}=this,{bandCount:n}=this.raster.rasterInfo,o=s?.length?s.some(e=>e>=n):n>=3;s&&(o||this.renderer&&"raster-stretch"!==this.renderer.type)&&this._set("bandIds",null),this._configDefaultRenderer("auto")}_convertRasterIdentifyResultToSample(e,t){const{rasterInfo:r}=this.raster,i=r.storageInfo.pyramidScalingFactor**(e.pyramidLevel??0),s=(r.pixelSize.x+r.pixelSize.y)/2*i;if(!e.dataSeries?.length)return[new G({location:e.location,pixelValue:e.value,locationId:t,resolution:s})];const n=[];return e.dataSeries.forEach(({value:r,multidimensionalDefinition:i},o)=>{const a={Variables:i[0].variableName,Dimensions:i.flatMap(({dimensionName:e})=>e).join(",")};for(const{dimensionName:e,values:t}of i){a[e]=Array.isArray(t[0])?t[0][0]:t[0];const r=t[t.length-1];a[`${e}_Max`]=Array.isArray(r)?r[r.length-1]:r}const l=new G({location:e.location,pixelValue:r,rasterId:o,locationId:t,resolution:s,attributes:a});n.push(l)}),n}};function re(e){if(!e.raster||!e.serviceRasterInfo)throw new r("imagery-tile","no raster")}return e([s({clonable:!1})],te.prototype,"_cachedRasterFunctionJson",void 0),e([s({clonable:!1})],te.prototype,"_compatibleFullExtent",void 0),e([s({clonable:!1})],te.prototype,"_draRasterConfig",void 0),e([s({clonable:!1})],te.prototype,"_isConstructedFromFunctionRaster",void 0),e([s({clonable:!1})],te.prototype,"_rasterFunctionUpdatePromise",void 0),e([s({type:[o],json:{write:{overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType||"0,1,2"!==this.bandIds?.join(",")}}}}})],te.prototype,"bandIds",void 0),e([s({json:{origins:{service:{read:{source:"copyrightText"}}}}})],te.prototype,"copyright",void 0),e([s({json:{read:!1}})],te.prototype,"fullExtent",null),e([s({json:{write:{overridePolicy(){return{enabled:!this.loaded||"Raster"===this.raster.tileType||"bilinear"!==this.interpolation}}}}}),Q(T)],te.prototype,"interpolation",void 0),e([s()],te.prototype,"ioConfig",void 0),e([s({type:[j],json:{write:!0}})],te.prototype,"multidimensionalDefinition",null),e([s({type:N,json:{write:!0}})],te.prototype,"multidimensionalSubset",void 0),e([s()],te.prototype,"raster",void 0),e([s({type:H})],te.prototype,"rasterFunction",null),e([s({constructOnly:!0})],te.prototype,"serviceRasterInfo",void 0),e([s()],te.prototype,"sourceJSON",void 0),e([s({readOnly:!0,type:u,json:{read:!1}})],te.prototype,"spatialReference",void 0),e([s({type:O})],te.prototype,"tileInfo",void 0),e([s(J)],te.prototype,"url",null),e([s({types:k})],te.prototype,"renderer",null),e([s({types:k,json:{name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy(){const e="raster-stretch"===this.renderer?.type&&"none"===this.renderer.stretchType&&!this.renderer.useGamma;return{enabled:!this.loaded||"Raster"===this.raster.tileType||!e}}},origins:{"web-scene":{types:L,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],te.prototype,"internalRenderer",null),e([X("internalRenderer")],te.prototype,"readRenderer",null),e([s({clonable:!1})],te.prototype,"symbolizer",void 0),te=e([n("esri.layers.mixins.TiledImagery")],te),te};export{Z as TiledImagery};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{assertIsSome as i}from"../../../core/maybe.js";import{urlToObject as s}from"../../../core/urlUtils.js";import{property as r,subclass as a}from"../../../core/accessorSupport/decorators.js";import l from"../../../geometry/Extent.js";import n from"../../../geometry/Point.js";import o from"../../../geometry/SpatialReference.js";import c from"./BaseRaster.js";import{setValidBoundary as m}from"../functions/pixelUtils.js";import u from"../transforms/GCSShiftTransform.js";import f from"../../support/RasterInfo.js";import h from"../../support/RasterStorageInfo.js";import p from"../../support/TileInfo.js";import{TilemapCache as d}from"../../support/TilemapCache.js";import{patchServiceInfo as y,fetchServiceRasterInfo as x}from"../../../rest/imageService/fetchRasterInfo.js";let g=class extends c{constructor(){super(...arguments),this._levelOffset=0,this._tilemapCache=null,this._slices=null,this.datasetFormat="RasterTileServer",this.tileType=null}async fetchRawTile(e,t,i,s={}){const{storageInfo:r,extent:a}=this.rasterInfo,{transposeInfo:l}=r,n=null!=l&&!!s.transposedVariableName;if(this._slices&&!n&&null==s.sliceId)return null;const o=n?0:r.maximumPyramidLevel-e+this._levelOffset,c=`${this.url}/tile/${o}/${t}/${i}`,u={...this._slices?n?{variable:s.transposedVariableName}:{sliceId:s.sliceId||0}:null,...s.refreshParameters};let f,h;if(r.isBsqTile){const e=(s.bandIds?.length?s.bandIds:[0,1,2]).map(e=>this.request(c,{query:{...u,bandId:e},responseType:"array-buffer",signal:s.signal})),t=await Promise.all(e),i=t.map(e=>e.data.byteLength).reduce((e,t)=>e+t),r=new Uint8Array(i);h=[];let a=0;for(const{data:s}of t)h.push(a),r.set(new Uint8Array(s),a),a+=s.byteLength;f=r.buffer}else{f=(await this.request(c,{query:u,responseType:"array-buffer",signal:s.signal})).data}if(!f)return null;const{tileInfo:p}=r,d=n?l.tileSize:p.size,y=/^(mixed|jp)/i.test(p.format),x=await this.decodePixelBlock(f,{width:d[0],height:d[1],planes:h?.length,offsets:h,pixelType:null,isPoint:"Elevation"===this.tileType,returnInterleaved:n,noDataValue:this.rasterInfo.noDataValue,applyJpegMask:y});if(null==x)return null;const g=r.blockBoundary[e];if("jpg"!==r.compression||i>g.minCol&&i<g.maxCol&&t>g.minRow&&t<g.maxRow)return x;const{origin:v,blockWidth:S,blockHeight:I}=r,{x:w,y:b}=this.getPyramidPixelSize(e),T=Math.round((a.xmin-v.x)/w)%S,M=Math.round((a.xmax-v.x)/w)%S||S,_=Math.round((v.y-a.ymax)/b)%I,j=Math.round((v.y-a.ymin)/b)%I||I,O=i===g.minCol?T:0,R=t===g.minRow?_:0,z=i===g.maxCol?M:S,N=t===g.maxRow?j:I;return m(x,{x:O,y:R},{width:z-O,height:N-R}),x}getSliceIndex(e){if(!this._slices||null==e||0===e.length)return null;const t=e;for(let i=0;i<this._slices.length;i++){const e=this._slices[i].multidimensionalDefinition;if(e.length===t.length&&!e.some(e=>{const i=t.find(t=>e.variableName===t.variableName&&t.dimensionName===e.dimensionName);if(!i)return!0;return(Array.isArray(e.values[0])?`${e.values[0][0]}-${e.values[0][1]}`:e.values[0])!==(Array.isArray(i.values[0])?`${i.values[0][0]}-${i.values[0][1]}`:i.values[0])}))return i}return null}async fetchVariableStatisticsHistograms(e,t){const i=this.request(this.url+"/statistics",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.statistics),s=this.request(this.url+"/histograms",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.histograms),r=await Promise.all([i,s]);return r[0]&&r[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),r[1]?.[0]?.counts?.length||(r[1]=null),{statistics:r[0]||null,histograms:r[1]||null}}async computeBestPyramidLevelForLocation(e,t={}){if(!this._tilemapCache)return 0;let i=this.identifyPixelLocation(e,0,t.datumTransformation);if(null===i)return null;let s=0;const{maximumPyramidLevel:r}=this.rasterInfo.storageInfo;let a=r-s+this._levelOffset;const l=i.srcLocation;for(;a>=0;){try{if("available"===await this._tilemapCache.fetchAvailability(a,i.row,i.col,t))break}catch{}if(a--,s++,i=this.identifyPixelLocation(l,s,t.datumTransformation),null===i)return null}return-1===a||null==i?null:s}async _open(e){const r=e?.signal,a=this.sourceJSON?{data:this.sourceJSON}:await this.request(this.url,{query:{f:"json"},signal:r});a.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));const l=a.data;if(this.sourceJSON=l,!l)throw new t("imageserverraster:open","cannot initialize tiled image service, missing service info");if(!l.tileInfo)throw new t("imageserverraster:open","use ImageryLayer to open non-tiled image services");this._fixScaleInServiceInfo();const n=["jpg","jpeg","png","png8","png24","png32","mixed"];this.tileType=l.cacheType,null==this.tileType&&(n.includes(l.tileInfo.format.toLowerCase())?this.tileType="Map":"lerc"===l.tileInfo.format.toLowerCase()?this.tileType="Elevation":this.tileType="Raster"),this.datasetName=l.name?.slice(l.name.indexOf("/")+1)??"";const o=await this._fetchRasterInfo({signal:r});if(null==o)throw new t("image-server-raster:open","cannot initialize image service");y(o,l);const c="Map"===this.tileType?v(l.tileInfo,l):p.fromJSON(l.tileInfo);i(c);const[m,u]=this._computeMinMaxLOD(o,c),{extent:f,pixelSize:x}=o,g=.001*Math.min(x.x,x.y);(x.x!==x.y||Math.abs(m.resolution-x.x)>g)&&(x.x=x.y=m.resolution,o.width=Math.ceil((f.xmax-f.xmin)/x.x-.1),o.height=Math.ceil((f.ymax-f.ymin)/x.y-.1));const I=m.level-u.level,[w,b]=c.size,T=[],M=[],{lods:_}=c;_.forEach((e,t)=>{e.level>=u.level&&e.level<=m.level&&T.push({x:e.resolution,y:e.resolution}),t<_.length-1&&M.push(Math.round(10*e.resolution/_[t+1].resolution)/10)}),T.sort((e,t)=>e.x-t.x);const j=this.computeBlockBoundary(f,w,b,c.origin,T,I),O=T.length>1?T.slice(1):null;let R;l.transposeInfo&&(R={tileSize:[l.transposeInfo.rows,l.transposeInfo.cols],packetSize:o.keyProperties?._yxs.PacketSize??0});const z=M.length<=1||M.length>=3&&M.slice(0,-1).every(e=>e===M[0])?M[0]??2:Math.round(10/(u.resolution/m.resolution)**(-1/I))/10,N=!!l.bsq&&"Raster"===this.tileType;if(o.storageInfo=new h({blockWidth:c.size[0],blockHeight:c.size[1],pyramidBlockWidth:c.size[0],pyramidBlockHeight:c.size[1],pyramidResolutions:O,pyramidScalingFactor:z,compression:c.format,origin:c.origin,firstPyramidLevel:1,maximumPyramidLevel:I,tileInfo:c,isBsqTile:N,transposeInfo:R,blockBoundary:j}),S(o),this._set("rasterInfo",o),l.capabilities.toLowerCase().includes("tilemap")){const e={tileInfo:o.storageInfo.tileInfo,parsedUrl:s(this.url),url:this.url,tileServers:[]};this._tilemapCache=new d({layer:e})}}async _fetchRasterInfo(e){const t=this.sourceJSON;if("Map"===this.tileType){const e=t.fullExtent||t.extent,i=Math.ceil((e.xmax-e.xmin)/t.pixelSizeX-.1),s=Math.ceil((e.ymax-e.ymin)/t.pixelSizeY-.1),r=o.fromJSON(t.spatialReference||e.spatialReference),a=new n({x:t.pixelSizeX,y:t.pixelSizeY,spatialReference:r});return new f({width:i,height:s,bandCount:3,extent:l.fromJSON(e),spatialReference:r,pixelSize:a,pixelType:"u8",statistics:null,keyProperties:{DataType:"processed"}})}const i={...e,query:{...this.ioConfig.customFetchParameters,f:"json"}},s=x(this.url,this.sourceJSON,i),r=t.hasMultidimensions?this.request(`${this.url}/slices`,i).then(e=>e.data?.slices).catch(()=>null):null,a=await Promise.all([s,r]);return this._slices=a[1],a[0]}_fixScaleInServiceInfo(){const{sourceJSON:e}=this;e.minScale&&e.minScale<0&&(e.minScale=0),e.maxScale&&e.maxScale<0&&(e.maxScale=0)}_computeMinMaxLOD(e,t){const{pixelSize:i}=e,s=.5/e.width*i.x,{lods:r}=t,a=t.lodAt(Math.max.apply(null,r.map(e=>e.level))),l=t.lodAt(Math.min.apply(null,r.map(e=>e.level))),{tileType:n}=this;if("Map"===n)return this._levelOffset=r[0].level,[a,l];if("Raster"===n){return[r.find(e=>e.resolution===i.x)??a,l]}const{minScale:o,maxScale:c}=this.sourceJSON;let m=a;c>0&&(m=r.find(e=>Math.abs(e.scale-c)<s),m||(m=r.filter(e=>e.scale>c).sort((e,t)=>e.scale>t.scale?1:-1)[0]??a));let u=l;return o>0&&(u=r.find(e=>Math.abs(e.scale-o)<s)??l,this._levelOffset=u.level-l.level),[m,u]}};function v(e,t){if(!e)return null;const{minScale:i,maxScale:s,minLOD:r,maxLOD:a}=t;if(null!=r&&null!=a)return p.fromJSON({...e,lods:e.lods.filter(({level:e})=>null!=e&&e>=r&&e<=a)});if(0!==i&&0!==s){const t=e=>Math.round(1e4*e)/1e4,r=i?t(i):1/0,a=s?t(s):-1/0;return p.fromJSON({...e,lods:e.lods.filter(e=>{const i=t(e.scale);return i<=r&&i>=a})})}return p.fromJSON(e)}function S(e){const{extent:t,spatialReference:i}=e;t.xmin>-1&&t.xmax>181&&i?.wkid&&i.isGeographic&&(e.nativeExtent=e.extent,e.transform=new u,e.extent=e.transform.forwardTransform(t))}e([r({type:String,json:{write:!0}})],g.prototype,"datasetFormat",void 0),e([r()],g.prototype,"tileType",void 0),g=e([a("esri.layers.raster.datasets.ImageServerRaster")],g);const I=g;export{I as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Error.js";import{assertIsSome as i}from"../../../core/maybe.js";import{urlToObject as s}from"../../../core/urlUtils.js";import{property as r,subclass as a}from"../../../core/accessorSupport/decorators.js";import l from"../../../geometry/Extent.js";import n from"../../../geometry/Point.js";import o from"../../../geometry/SpatialReference.js";import c from"./BaseRaster.js";import{setValidBoundary as m}from"../functions/pixelUtils.js";import u from"../transforms/GCSShiftTransform.js";import f from"../../support/RasterInfo.js";import h from"../../support/RasterStorageInfo.js";import p from"../../support/TileInfo.js";import{TilemapCache as d}from"../../support/TilemapCache.js";import{patchServiceInfo as y,fetchServiceRasterInfo as x}from"../../../rest/imageService/fetchRasterInfo.js";let g=class extends c{constructor(){super(...arguments),this._levelOffset=0,this._tilemapCache=null,this._slices=null,this.datasetFormat="RasterTileServer",this.tileType=null}async fetchRawTile(e,t,i,s={}){const{storageInfo:r,extent:a}=this.rasterInfo,{transposeInfo:l}=r,n=null!=l&&!!s.transposedVariableName;if(this._slices&&!n&&null==s.sliceId)return null;const o=n?0:r.maximumPyramidLevel-e+this._levelOffset,c=`${this.url}/tile/${o}/${t}/${i}`,u={...this._slices?n?{variable:s.transposedVariableName}:{sliceId:s.sliceId||0}:null,...s.refreshParameters};let f,h;if(r.isBsqTile){const e=(s.bandIds?.length?s.bandIds:[0,1,2]).map(e=>this.request(c,{query:{...u,bandId:e},responseType:"array-buffer",signal:s.signal})),t=await Promise.all(e),i=t.map(e=>e.data.byteLength).reduce((e,t)=>e+t),r=new Uint8Array(i);h=[];let a=0;for(const{data:s}of t)h.push(a),r.set(new Uint8Array(s),a),a+=s.byteLength;f=r.buffer}else{f=(await this.request(c,{query:u,responseType:"array-buffer",signal:s.signal})).data}if(!f)return null;const{tileInfo:p}=r,d=n?l.tileSize:p.size,y=/^(mixed|jp)/i.test(p.format),x=await this.decodePixelBlock(f,{width:d[0],height:d[1],planes:h?.length,offsets:h,pixelType:null,isPoint:"Elevation"===this.tileType,returnInterleaved:n,noDataValue:this.rasterInfo.noDataValue,applyJpegMask:y});if(null==x)return null;const g=r.blockBoundary[e];if("jpg"!==r.compression||i>g.minCol&&i<g.maxCol&&t>g.minRow&&t<g.maxRow)return x;const{origin:v,blockWidth:S,blockHeight:I}=r,{x:w,y:b}=this.getPyramidPixelSize(e),T=Math.round((a.xmin-v.x)/w)%S,M=Math.round((a.xmax-v.x)/w)%S||S,_=Math.round((v.y-a.ymax)/b)%I,j=Math.round((v.y-a.ymin)/b)%I||I,O=i===g.minCol?T:0,R=t===g.minRow?_:0,z=i===g.maxCol?M:S,N=t===g.maxRow?j:I;return m(x,{x:O,y:R},{width:z-O,height:N-R}),x}getSliceIndex(e){if(!this._slices||null==e||0===e.length)return null;const t=e;for(let i=0;i<this._slices.length;i++){const e=this._slices[i].multidimensionalDefinition;if(e.length===t.length&&!e.some(e=>{const i=t.find(t=>e.variableName===t.variableName&&t.dimensionName===e.dimensionName);if(!i)return!0;return(Array.isArray(e.values[0])?`${e.values[0][0]}-${e.values[0][1]}`:e.values[0])!==(Array.isArray(i.values[0])?`${i.values[0][0]}-${i.values[0][1]}`:i.values[0])}))return i}return null}async fetchVariableStatisticsHistograms(e,t){const i=this.request(this.url+"/statistics",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.statistics),s=this.request(this.url+"/histograms",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.histograms),r=await Promise.all([i,s]);return r[0]&&r[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),r[1]?.[0]?.counts?.length||(r[1]=null),{statistics:r[0]||null,histograms:r[1]||null}}async computeBestPyramidLevelForLocation(e,t={}){if(!this._tilemapCache)return 0;let i=this.identifyPixelLocation(e,0,t.datumTransformation);if(null===i)return null;let s=0;const{maximumPyramidLevel:r}=this.rasterInfo.storageInfo;let a=r-s+this._levelOffset;const l=i.srcLocation;for(;a>=0;){try{if("available"===await this._tilemapCache.fetchAvailability(a,i.row,i.col,t))break}catch{}if(a--,s++,i=this.identifyPixelLocation(l,s,t.datumTransformation),null===i)return null}return-1===a||null==i?null:s}async _open(e){const r=e?.signal,a=this.sourceJSON?{data:this.sourceJSON}:await this.request(this.url,{query:{f:"json"},signal:r});a.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));const l=a.data;if(this.sourceJSON=l,!l)throw new t("imageserverraster:open","cannot initialize tiled image service, missing service info");if(!l.tileInfo)throw new t("imageserverraster:open","use ImageryLayer to open non-tiled image services");this._fixScaleInServiceInfo();const n=["jpg","jpeg","png","png8","png24","png32","mixed"];this.tileType=l.cacheType,null==this.tileType&&(n.includes(l.tileInfo.format.toLowerCase())?this.tileType="Map":"lerc"===l.tileInfo.format.toLowerCase()?this.tileType="Elevation":this.tileType="Raster"),this.datasetName=l.name?.slice(l.name.indexOf("/")+1)??"";const o=this.rasterInfo??await this._fetchRasterInfo({signal:r});if(null==o)throw new t("image-server-raster:open","cannot initialize image service");y(o,l);const c="Map"===this.tileType?v(l.tileInfo,l):p.fromJSON(l.tileInfo);i(c);const[m,u]=this._computeMinMaxLOD(o,c),{extent:f,pixelSize:x}=o,g=.001*Math.min(x.x,x.y);(x.x!==x.y||Math.abs(m.resolution-x.x)>g)&&(x.x=x.y=m.resolution,o.width=Math.ceil((f.xmax-f.xmin)/x.x-.1),o.height=Math.ceil((f.ymax-f.ymin)/x.y-.1));const I=m.level-u.level,[w,b]=c.size,T=[],M=[],{lods:_}=c;_.forEach((e,t)=>{e.level>=u.level&&e.level<=m.level&&T.push({x:e.resolution,y:e.resolution}),t<_.length-1&&M.push(Math.round(10*e.resolution/_[t+1].resolution)/10)}),T.sort((e,t)=>e.x-t.x);const j=this.computeBlockBoundary(f,w,b,c.origin,T,I),O=T.length>1?T.slice(1):null;let R;l.transposeInfo&&(R={tileSize:[l.transposeInfo.rows,l.transposeInfo.cols],packetSize:o.keyProperties?._yxs.PacketSize??0});const z=M.length<=1||M.length>=3&&M.slice(0,-1).every(e=>e===M[0])?M[0]??2:Math.round(10/(u.resolution/m.resolution)**(-1/I))/10,N=!!l.bsq&&"Raster"===this.tileType;if(o.storageInfo=new h({blockWidth:c.size[0],blockHeight:c.size[1],pyramidBlockWidth:c.size[0],pyramidBlockHeight:c.size[1],pyramidResolutions:O,pyramidScalingFactor:z,compression:c.format,origin:c.origin,firstPyramidLevel:1,maximumPyramidLevel:I,tileInfo:c,isBsqTile:N,transposeInfo:R,blockBoundary:j}),S(o),this._set("rasterInfo",o),l.capabilities.toLowerCase().includes("tilemap")){const e={tileInfo:o.storageInfo.tileInfo,parsedUrl:s(this.url),url:this.url,tileServers:[]};this._tilemapCache=new d({layer:e})}}async _fetchRasterInfo(e){const t=this.sourceJSON;if("Map"===this.tileType){const e=t.fullExtent||t.extent,i=Math.ceil((e.xmax-e.xmin)/t.pixelSizeX-.1),s=Math.ceil((e.ymax-e.ymin)/t.pixelSizeY-.1),r=o.fromJSON(t.spatialReference||e.spatialReference),a=new n({x:t.pixelSizeX,y:t.pixelSizeY,spatialReference:r});return new f({width:i,height:s,bandCount:3,extent:l.fromJSON(e),spatialReference:r,pixelSize:a,pixelType:"u8",statistics:null,keyProperties:{DataType:"processed"}})}const i={...e,query:{...this.ioConfig.customFetchParameters,f:"json"}},s=x(this.url,this.sourceJSON,i),r=t.hasMultidimensions?this.request(`${this.url}/slices`,i).then(e=>e.data?.slices).catch(()=>null):null,a=await Promise.all([s,r]);return this._slices=a[1],a[0]}_fixScaleInServiceInfo(){const{sourceJSON:e}=this;e.minScale&&e.minScale<0&&(e.minScale=0),e.maxScale&&e.maxScale<0&&(e.maxScale=0)}_computeMinMaxLOD(e,t){const{pixelSize:i}=e,s=.5/e.width*i.x,{lods:r}=t,a=t.lodAt(Math.max.apply(null,r.map(e=>e.level))),l=t.lodAt(Math.min.apply(null,r.map(e=>e.level))),{tileType:n}=this;if("Map"===n)return this._levelOffset=r[0].level,[a,l];if("Raster"===n){return[r.find(e=>e.resolution===i.x)??a,l]}const{minScale:o,maxScale:c}=this.sourceJSON;let m=a;c>0&&(m=r.find(e=>Math.abs(e.scale-c)<s),m||(m=r.filter(e=>e.scale>c).sort((e,t)=>e.scale>t.scale?1:-1)[0]??a));let u=l;return o>0&&(u=r.find(e=>Math.abs(e.scale-o)<s)??l,this._levelOffset=u.level-l.level),[m,u]}};function v(e,t){if(!e)return null;const{minScale:i,maxScale:s,minLOD:r,maxLOD:a}=t;if(null!=r&&null!=a)return p.fromJSON({...e,lods:e.lods.filter(({level:e})=>null!=e&&e>=r&&e<=a)});if(0!==i&&0!==s){const t=e=>Math.round(1e4*e)/1e4,r=i?t(i):1/0,a=s?t(s):-1/0;return p.fromJSON({...e,lods:e.lods.filter(e=>{const i=t(e.scale);return i<=r&&i>=a})})}return p.fromJSON(e)}function S(e){const{extent:t,spatialReference:i}=e;t.xmin>-1&&t.xmax>181&&i?.wkid&&i.isGeographic&&(e.nativeExtent=e.extent,e.transform=new u,e.extent=e.transform.forwardTransform(t))}e([r({type:String,json:{write:!0}})],g.prototype,"datasetFormat",void 0),e([r()],g.prototype,"tileType",void 0),g=e([a("esri.layers.raster.datasets.ImageServerRaster")],g);const I=g;export{I as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import r from"../../../core/Error.js";import e from"./CovJSONRaster.js";import t from"./ImageAuxRaster.js";import s from"./ImageServerRaster.js";import o from"./InMemoryRaster.js";import a from"./MRFRaster.js";import n from"./TIFFRaster.js";const c=new Map;c.set("MRF",{desc:"Meta Raster Format",constructor:a}),c.set("TIFF",{desc:"GeoTIFF",constructor:n}),c.set("RasterTileServer",{desc:"Raster Tile Server",constructor:s}),c.set("JPG",{desc:"JPG Raster Format",constructor:t}),c.set("PNG",{desc:"PNG Raster Format",constructor:t}),c.set("GIF",{desc:"GIF Raster Format",constructor:t}),c.set("BMP",{desc:"BMP Raster Format",constructor:t}),c.set("CovJSON",{desc:"COVJSON Raster Format",constructor:e}),c.set("MEMORY",{desc:"In Memory Raster Format",constructor:o});class l{static get supportedFormats(){const r=new Set;return c.forEach((e,t)=>r.add(t)),r}static async open(e){const{url:t,ioConfig:s,source:o,sourceJSON:a}=e;let n=e.datasetFormat??s?.datasetFormat;null==n&&(t.includes(".")?n=t.slice(t.lastIndexOf(".")+1).toUpperCase():"coverage"===o?.type?.toLowerCase()?n="CovJSON":o?.extent&&o.pixelblocks&&(n="MEMORY")),"OVR"===n||"TIF"===n?n="TIFF":"JPG"===n||"JPEG"===n||"JFIF"===n?n="JPG":"COVJSON"===n&&(n="CovJSON"),t.toLowerCase().includes("/imageserver")&&!t.toLowerCase().includes("/wcsserver")&&(n="RasterTileServer");const l={url:t,source:o,sourceJSON:a,datasetFormat:n,ioConfig:s??{bandIds:null,sampling:null}};if(Object.keys(l).forEach(r=>{null==l[r]&&delete l[r]}),n){if(!this.supportedFormats.has(n))throw new r("rasterfactory:open","not a supported format "+n);if("CRF"===n)throw new r("rasterfactory:open",`cannot open raster: ${t}`);const s=new(0,c.get(n).constructor)(l);return s.rasterJobHandler=e.rasterJobHandler,await s.open({signal:e.signal}),s}const u=Array.from(c.keys()).filter(r=>"CovJSON"!==r&&"Memory"!==r);let i=0;const m=()=>{if(n=u[i++],!n)return null;if("CRF"===n)return null;const r=new(0,c.get(n).constructor)(l);return r.rasterJobHandler=e.rasterJobHandler,r.open({signal:e.signal}).then(()=>r).catch(()=>m())};return m()}static register(r,e,t){c.has(r.toUpperCase())||c.set(r.toUpperCase(),{desc:e,constructor:t})}}export{l as default};
2
+ import r from"../../../core/Error.js";import e from"./CovJSONRaster.js";import t from"./ImageAuxRaster.js";import s from"./ImageServerRaster.js";import o from"./InMemoryRaster.js";import a from"./MRFRaster.js";import n from"./TIFFRaster.js";const c=new Map;c.set("MRF",{desc:"Meta Raster Format",constructor:a}),c.set("TIFF",{desc:"GeoTIFF",constructor:n}),c.set("RasterTileServer",{desc:"Raster Tile Server",constructor:s}),c.set("JPG",{desc:"JPG Raster Format",constructor:t}),c.set("PNG",{desc:"PNG Raster Format",constructor:t}),c.set("GIF",{desc:"GIF Raster Format",constructor:t}),c.set("BMP",{desc:"BMP Raster Format",constructor:t}),c.set("CovJSON",{desc:"COVJSON Raster Format",constructor:e}),c.set("MEMORY",{desc:"In Memory Raster Format",constructor:o});class l{static get supportedFormats(){const r=new Set;return c.forEach((e,t)=>r.add(t)),r}static async open(e){const{url:t,ioConfig:s,source:o,sourceJSON:a}=e;let n=e.datasetFormat??s?.datasetFormat;null==n&&(t.includes(".")?n=t.slice(t.lastIndexOf(".")+1).toUpperCase():"coverage"===o?.type?.toLowerCase()?n="CovJSON":o?.extent&&o.pixelblocks&&(n="MEMORY")),"OVR"===n||"TIF"===n?n="TIFF":"JPG"===n||"JPEG"===n||"JFIF"===n?n="JPG":"COVJSON"===n&&(n="CovJSON"),t.toLowerCase().includes("/imageserver")&&!t.toLowerCase().includes("/wcsserver")&&(n="RasterTileServer");const l={url:t,source:o,sourceJSON:a,datasetFormat:n,ioConfig:s??{bandIds:null,sampling:null}};if(Object.keys(l).forEach(r=>{null==l[r]&&delete l[r]}),n){if(!this.supportedFormats.has(n))throw new r("rasterfactory:open","not a supported format "+n);if("CRF"===n)throw new r("rasterfactory:open",`cannot open raster: ${t}`);const s=new(0,c.get(n).constructor)(l);return s.rasterJobHandler=e.rasterJobHandler,s.rasterInfo=e.rasterInfo,await s.open({signal:e.signal}),s}const u=Array.from(c.keys()).filter(r=>"CovJSON"!==r&&"Memory"!==r);let i=0;const m=()=>{if(n=u[i++],!n)return null;if("CRF"===n)return null;const r=new(0,c.get(n).constructor)(l);return r.rasterJobHandler=e.rasterJobHandler,r.open({signal:e.signal}).then(()=>r).catch(()=>m())};return m()}static register(r,e,t){c.has(r.toUpperCase())||c.set(r.toUpperCase(),{desc:e,constructor:t})}}export{l as default};
@@ -0,0 +1,2 @@
1
+ /** @internal */
2
+ export type DomainValidationError = "domain-validation-error::value-out-of-range" | "domain-validation-error::invalid-coded-value";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{union as e}from"../../core/SetUtils.js";import{dateOnlyToDateTime as n,timeOnlyToDateTime as i,timestampOffsetToDateTime as t}from"../../support/dateUtils.js";const r=new Set(["integer","small-integer","long","big-integer","esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeLong","esriFieldTypeBigInteger"]);function l(e){return null!=e&&r.has(e.type)}function u(e){return null!=e&&("date-only"===e.type||"esriFieldTypeDateOnly"===e.type)}function a(e){return null!=e&&("timestamp-offset"===e.type||"esriFieldTypeTimestampOffset"===e.type)}function o(e){return null!=e&&("time-only"===e.type||"esriFieldTypeTimeOnly"===e.type)}const s=new Set([...["single","double"],...["esriFieldTypeSingle","esriFieldTypeDouble"]]),m=e(r,s);function d(e){return null!=e&&m.has(e.type)}function c(e){return null!=e&&("string"===e.type||"esriFieldTypeString"===e.type)}function p(e,n,i){const t=i??e?.domain;if(!t)return null;switch(t.type){case"range":{const{min:i,max:r}=y(e,t);if(null!=i&&+n<i||null!=r&&+n>r)return"domain-validation-error::value-out-of-range";break}case"coded-value":case"codedValue":if(null==t.codedValues||t.codedValues.every(e=>null==e||e.code!==n))return"domain-validation-error::invalid-coded-value"}return null}function y(e,n){const i=n??e?.domain;if(!i||"range"!==i.type)return;const t="range"in i?i.range[0]:i.minValue,r="range"in i?i.range[1]:i.maxValue,s=l(e);return u(e)||o(e)||a(e)?{...g(e,r,t),isInteger:s}:{min:null!=t&&"number"==typeof t?t:null,max:null!=r&&"number"==typeof r?r:null,rawMin:t,rawMax:r,isInteger:s}}function f(e,n){switch(n.type){case"range":{const{min:i,max:t}=y(e,n);return u(e)||o(e)||a(e)?!!i&&!!t:"number"==typeof i&&Number.isFinite(i)&&"number"==typeof t&&Number.isFinite(t)}case"codedValue":case"coded-value":{const i=typeof n.codedValues[0].code;if("string"===i&&c(e)||"number"===i&&d(e))return!0}}return!1}function g(e,r,l){return u(e)?{min:n(l)?.toMillis(),max:n(r)?.toMillis(),rawMin:l,rawMax:r}:o(e)?{min:i(l)?.toMillis(),max:i(r)?.toMillis(),rawMin:l,rawMax:r}:a(e)?{min:t(l)?.toMillis(),max:t(r)?.toMillis(),rawMin:l,rawMax:r}:{max:null,min:null}}export{g as dateTimeFieldValuesToNumericRange,y as getDomainRange,f as isDomainValidForField,p as validateDomainValue};
2
+ import{union as e}from"../../core/SetUtils.js";import{dateOnlyToDateTime as n,timeOnlyToDateTime as i,timestampOffsetToDateTime as t}from"../../support/dateUtils.js";const r={VALUE_OUT_OF_RANGE:"domain-validation-error::value-out-of-range",INVALID_CODED_VALUE:"domain-validation-error::invalid-coded-value"},l=new Set(["integer","small-integer","long","big-integer","esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeLong","esriFieldTypeBigInteger"]);function u(e){return null!=e&&l.has(e.type)}function a(e){return null!=e&&("date-only"===e.type||"esriFieldTypeDateOnly"===e.type)}function o(e){return null!=e&&("timestamp-offset"===e.type||"esriFieldTypeTimestampOffset"===e.type)}function s(e){return null!=e&&("time-only"===e.type||"esriFieldTypeTimeOnly"===e.type)}const m=new Set([...["single","double"],...["esriFieldTypeSingle","esriFieldTypeDouble"]]),d=e(l,m);function c(e){return null!=e&&d.has(e.type)}function p(e){return null!=e&&("string"===e.type||"esriFieldTypeString"===e.type)}function y(e,n,i){const t=i??e?.domain;if(!t)return null;switch(t.type){case"range":{const{min:i,max:l}=f(e,t);if(null!=i&&+n<i||null!=l&&+n>l)return r.VALUE_OUT_OF_RANGE;break}case"coded-value":case"codedValue":if(null==t.codedValues||t.codedValues.every(e=>null==e||e.code!==n))return r.INVALID_CODED_VALUE}return null}function f(e,n){const i=n??e?.domain;if(!i||"range"!==i.type)return;const t="range"in i?i.range[0]:i.minValue,r="range"in i?i.range[1]:i.maxValue,l=u(e);return a(e)||s(e)||o(e)?{...F(e,r,t),isInteger:l}:{min:null!=t&&"number"==typeof t?t:null,max:null!=r&&"number"==typeof r?r:null,rawMin:t,rawMax:r,isInteger:l}}function g(e,n){switch(n.type){case"range":{const{min:i,max:t}=f(e,n);return a(e)||s(e)||o(e)?!!i&&!!t:"number"==typeof i&&Number.isFinite(i)&&"number"==typeof t&&Number.isFinite(t)}case"codedValue":case"coded-value":{const i=typeof n.codedValues[0].code;if("string"===i&&p(e)||"number"===i&&c(e))return!0}}return!1}function F(e,r,l){return a(e)?{min:n(l)?.toMillis(),max:n(r)?.toMillis(),rawMin:l,rawMax:r}:s(e)?{min:i(l)?.toMillis(),max:i(r)?.toMillis(),rawMin:l,rawMax:r}:o(e)?{min:t(l)?.toMillis(),max:t(r)?.toMillis(),rawMin:l,rawMax:r}:{max:null,min:null}}export{r as DomainValidationError,F as dateTimeFieldValuesToNumericRange,f as getDomainRange,g as isDomainValidForField,y as validateDomainValue};
@@ -16,6 +16,7 @@ import type StreamLayer from "../StreamLayer.js";
16
16
  import type SubtypeGroupLayer from "../SubtypeGroupLayer.js";
17
17
  import type Field from "./Field.js";
18
18
  import type FieldsIndex from "./FieldsIndex.js";
19
+ import type { DomainValidationError } from "./domainUtils.js";
19
20
  import type { RendererUnion } from "../../renderers/types.js";
20
21
 
21
22
  /**
@@ -73,6 +74,15 @@ export function getFeatureGeometryFields(layer: FeatureLayer | SubtypeGroupLayer
73
74
  */
74
75
  export function getLabelingFields(layer: FeatureLayer | null | undefined): Promise<string[]>;
75
76
 
77
+ /** @internal */
78
+ export type NumericRangeValidationError = "numeric-range-validation-error::out-of-range";
79
+
80
+ /** @internal */
81
+ export type TypeValidationError = "type-validation-error::invalid-type";
82
+
83
+ /** @internal */
84
+ export type FieldValueValidationError = NumericRangeValidationError | TypeValidationError | DomainValidationError;
85
+
76
86
  /** Value from a specified field. */
77
87
  export type FieldValue = null | undefined | string | number;
78
88