@arcgis/core 5.2.0-next.121 → 5.2.0-next.122

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 (224) hide show
  1. package/Ground.js +1 -1
  2. package/arcgisGlobal.d.ts +2 -0
  3. package/assets/esri/core/workers/RemoteClient.js +1 -1
  4. package/assets/esri/core/workers/chunks/0148cb611bf7c8c5fe8a.js +1 -0
  5. package/assets/esri/core/workers/chunks/{deb5b1d772ca407654d4.js → 0acc754907395e83bbc6.js} +1 -1
  6. package/assets/esri/core/workers/chunks/{bcb06a0643b4c83535ee.js → 1302bf9718747cd9fdd9.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{956432c9d45940983bc2.js → 1b42d163ef22e3565bb7.js} +1 -1
  8. package/assets/esri/core/workers/chunks/1b551ef3d84d9c1e93f9.js +1 -0
  9. package/assets/esri/core/workers/chunks/{4adad3312caa24af98ac.js → 1c38ce72160d5a4e4b3d.js} +1 -1
  10. package/assets/esri/core/workers/chunks/1c3b087fbf2d102376fc.js +1 -0
  11. package/assets/esri/core/workers/chunks/{9b3813e39992b1b99941.js → 1e46703cb566c25458ad.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{015cb790262a59857c5f.js → 1f135269aea3931e11b2.js} +1 -1
  13. package/assets/esri/core/workers/chunks/23279303cd7698314c56.js +1 -0
  14. package/assets/esri/core/workers/chunks/{4bf2cc4d092601ff2b86.js → 24673aac70d6c949b6fa.js} +1 -1
  15. package/assets/esri/core/workers/chunks/24cf91aeab53a897e951.js +1 -0
  16. package/assets/esri/core/workers/chunks/26bc509a031788bfa678.js +1 -0
  17. package/assets/esri/core/workers/chunks/2ae6deade655fdbc28de.js +1 -0
  18. package/assets/esri/core/workers/chunks/{37cf4ca2083cd3b6002e.js → 2c7bb5c9751524687002.js} +1 -1
  19. package/assets/esri/core/workers/chunks/2c8957f9c7610805208c.js +1 -0
  20. package/assets/esri/core/workers/chunks/{a3c1a5a5c5cbf27b376d.js → 2d592c935571de80a2e2.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{a917a1df8270860dc514.js → 2f52ad525744b8793d49.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{6efc5873747b9cd44fb9.js → 323451ef52d0c2805f1d.js} +1 -1
  23. package/assets/esri/core/workers/chunks/37ae52c71bf9c70fbb92.js +1 -0
  24. package/assets/esri/core/workers/chunks/38890ac5917942374ab8.js +1 -0
  25. package/assets/esri/core/workers/chunks/3e33d953e41b281a120b.js +1 -0
  26. package/assets/esri/core/workers/chunks/3e52351e06d85bf9bedd.js +1 -0
  27. package/assets/esri/core/workers/chunks/{fbc5f275c4e5e6bfffaa.js → 462fd57af8ed7921d6ba.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{1846296be959e28c42bb.js → 475906b079f4f1ddacf2.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{ea49721fdd2172d1c799.js → 48a2f68e06a2e90b77d0.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{b6ca73c1384f07b30b74.js → 4bb8432d99a39733368f.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{c44cbe04efddbbbaec13.js → 4f58e0322707f63f5bf2.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{0e9f54d7f158195bd203.js → 59cd139712d919e6a738.js} +1 -1
  33. package/assets/esri/core/workers/chunks/59d5247ac4075b024244.js +1 -0
  34. package/assets/esri/core/workers/chunks/5b9f3c4f65412c66316f.js +1 -0
  35. package/assets/esri/core/workers/chunks/{be3421ffb5b391bca02e.js → 5d35e0c2665f5e625ee9.js} +1 -1
  36. package/assets/esri/core/workers/chunks/5e70bfb9d6235a87b87a.js +1 -0
  37. package/assets/esri/core/workers/chunks/6006bd8a5ed945fa2776.js +1 -0
  38. package/assets/esri/core/workers/chunks/618927cfcb93dd1d92fd.js +1 -0
  39. package/assets/esri/core/workers/chunks/6709d24867d275b33d24.js +1 -0
  40. package/assets/esri/core/workers/chunks/68e24fa3f564c2a5c9fd.js +1 -0
  41. package/assets/esri/core/workers/chunks/{fd5e61cb6f936eadcfe3.js → 724ea2e2843e6dac0a90.js} +1 -1
  42. package/assets/esri/core/workers/chunks/7441d121f00ce747c08e.js +1 -0
  43. package/assets/esri/core/workers/chunks/{e86f83a6514a35255f64.js → 781fa83e8063b8f685dc.js} +1 -1
  44. package/assets/esri/core/workers/chunks/{a005efcde3ca9def4e6b.js → 78c1b75b1a8937eaa3cd.js} +1 -1
  45. package/assets/esri/core/workers/chunks/793b072519ded0dc6f34.js +1 -0
  46. package/assets/esri/core/workers/chunks/{1086f190f94c715bbfe4.js → 7994fce5f36963aadc51.js} +1 -1
  47. package/assets/esri/core/workers/chunks/7adee504107cb9ad8563.js +1 -0
  48. package/assets/esri/core/workers/chunks/7efc45858ebd3fd3302e.js +1 -0
  49. package/assets/esri/core/workers/chunks/7ff536284942c5284a16.js +1 -0
  50. package/assets/esri/core/workers/chunks/813dd84933b407c8fe86.js +1 -0
  51. package/assets/esri/core/workers/chunks/8daeac785af725c3ebdf.js +1 -0
  52. package/assets/esri/core/workers/chunks/{3ab25279aaa30f035038.js → 8daed13400d9e63e65ae.js} +1 -1
  53. package/assets/esri/core/workers/chunks/9020bd7a0e488d55ef14.js +1 -0
  54. package/assets/esri/core/workers/chunks/{cf7c06702babd6fa88b4.js → 9af36ee6a0df224859bc.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{452d069ba7ad6759b558.js → 9c46c7f00d42f5c02b26.js} +1 -1
  56. package/assets/esri/core/workers/chunks/a3ab53b534e2872131be.js +1 -0
  57. package/assets/esri/core/workers/chunks/{fa3f824c874f29d24953.js → aa6b2cc8f6f5627891c1.js} +1 -1
  58. package/assets/esri/core/workers/chunks/ac7af417ebf7721d7400.js +1 -0
  59. package/assets/esri/core/workers/chunks/aed479c14d93955f4798.js +1 -0
  60. package/assets/esri/core/workers/chunks/{60c61f34733063730386.js → b013b70e40dfb6ce013e.js} +1 -1
  61. package/assets/esri/core/workers/chunks/b22de8bf4a4a739bc36d.js +1 -0
  62. package/assets/esri/core/workers/chunks/b39cd78d2d97bef9909e.js +1 -0
  63. package/assets/esri/core/workers/chunks/b5f50955c1eee55b67d1.js +1 -0
  64. package/assets/esri/core/workers/chunks/{99ebc99e8d1bca105b5e.js → b688e6463a651779a016.js} +1 -1
  65. package/assets/esri/core/workers/chunks/bdf012e591a8476db467.js +1 -0
  66. package/assets/esri/core/workers/chunks/{daf7b647bd960d8bad56.js → be52c319a0a81ce1ba36.js} +1 -1
  67. package/assets/esri/core/workers/chunks/{89edaa1ffa566908ebca.js → ca5a4f62b09cc8579dc0.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{fbb390c0d92d1536fce3.js → ce1ccf9ec90b786591e5.js} +1 -1
  69. package/assets/esri/core/workers/chunks/cf0bed7ae27021fd7b05.js +1 -0
  70. package/assets/esri/core/workers/chunks/cf6f671823fa6c2a9a5e.js +1 -0
  71. package/assets/esri/core/workers/chunks/{39c5e0f6262f69a62c66.js → d25210574168ead2f813.js} +1 -1
  72. package/assets/esri/core/workers/chunks/d3378c479052d566317c.js +1 -0
  73. package/assets/esri/core/workers/chunks/d3ef23923424ad8c5048.js +1 -0
  74. package/assets/esri/core/workers/chunks/{46388b86d1b10e6121bd.js → d507d7d7a7282fc38e8d.js} +1 -1
  75. package/assets/esri/core/workers/chunks/dc0816f064be576a2fa6.js +1 -0
  76. package/assets/esri/core/workers/chunks/{d9b761104ab6e4acaf91.js → dd4ecf81250cc001d040.js} +1 -1
  77. package/assets/esri/core/workers/chunks/e10fe4c77b8dc4492092.js +1 -0
  78. package/assets/esri/core/workers/chunks/e4e1db4e9e5f13167401.js +1 -0
  79. package/assets/esri/core/workers/chunks/e5ee64e2fb5bfcb716d8.js +1 -0
  80. package/assets/esri/core/workers/chunks/{e755075ac2e02e881fad.js → e6637f9176566382ed3e.js} +1 -1
  81. package/assets/esri/core/workers/chunks/e6dc68c4bd8eddb168d1.js +1 -0
  82. package/assets/esri/core/workers/chunks/eb780f2dafa14f776166.js +1 -0
  83. package/assets/esri/core/workers/chunks/{d9d5f50af047ee7af129.js → eb7f45736c852725b0bb.js} +89 -58
  84. package/assets/esri/core/workers/chunks/ed31ec586b754241474d.js +1 -0
  85. package/assets/esri/core/workers/chunks/f38d11be766043413659.js +1 -0
  86. package/assets/esri/libs/pdfjs/pdf.worker.mjs +63075 -0
  87. package/assets/esri/libs/pdfjs/wasm/jbig2.wasm +0 -0
  88. package/assets/esri/libs/pdfjs/wasm/openjpeg.wasm +0 -0
  89. package/assets/esri/libs/pdfjs/wasm/qcms_bg.wasm +0 -0
  90. package/assets/esri/libs/pdfjs/wasm/quickjs-eval.wasm +0 -0
  91. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.en.json +1 -1
  92. package/chunks/CloudsComposition.glsl.js +2 -2
  93. package/chunks/GlobalIllumination.glsl.js +42 -13
  94. package/chunks/GlobalIlluminationBlur.glsl.js +1 -1
  95. package/config.js +1 -1
  96. package/core/arrayUtils.js +1 -1
  97. package/core/workers/registry.js +1 -1
  98. package/geometry/support/geometryUtils.js +1 -1
  99. package/geometry/support/heightModelInfoUtils.js +1 -1
  100. package/geometry/support/meshUtils/elevation.js +1 -1
  101. package/kernel.js +1 -1
  102. package/layers/GeospatialPDFLayer.d.ts +40 -0
  103. package/layers/GeospatialPDFLayer.js +2 -0
  104. package/layers/IntegratedMeshLayer.js +1 -1
  105. package/layers/geospatialPDF/GeospatialPDFFrame.js +2 -0
  106. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +5 -0
  107. package/layers/geospatialPDF/GeospatialPDFParserUtils.js +2 -0
  108. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +2 -0
  109. package/layers/geospatialPDF/LGIDictMapFrame.js +2 -0
  110. package/layers/geospatialPDF/Projection.js +2 -0
  111. package/layers/geospatialPDF/ViewportMeasureFrame.js +2 -0
  112. package/layers/geospatialPDF/renderExtentUtils.js +2 -0
  113. package/layers/geospatialPDF/sharedUtils.js +2 -0
  114. package/layers/mixins/ArcGISImageService.js +1 -1
  115. package/layers/raster/datasets/GeospatialPDFRaster.js +2 -0
  116. package/layers/support/ElevationQuery.js +1 -1
  117. package/layers/support/LabelClass.js +1 -1
  118. package/layers/support/layersLoader.js +1 -1
  119. package/layers/types.d.ts +1 -1
  120. package/package.json +4 -4
  121. package/portal/PortalItem.js +1 -1
  122. package/portal/support/portalLayers.js +1 -1
  123. package/support/revision.js +1 -1
  124. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  125. package/views/2d/input/MapViewInputManager.js +1 -1
  126. package/views/2d/input/handlers/KeyPan.js +1 -1
  127. package/views/2d/input/handlers/KeyRotate.js +1 -1
  128. package/views/2d/layerViewModuleImportUtils.js +1 -1
  129. package/views/2d/layers/GeospatialPDFLayerView2D.js +2 -0
  130. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  131. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  132. package/views/2d/types.d.ts +2 -0
  133. package/views/3d/GroundView3D.js +1 -1
  134. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  135. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  136. package/views/3d/layerViewModuleImportUtils.js +1 -1
  137. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  138. package/views/3d/layers/GeospatialPDFLayerView3D.js +2 -0
  139. package/views/3d/layers/I3SMeshView3D.js +1 -1
  140. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  141. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  142. package/views/3d/layers/LayerView3D.js +1 -1
  143. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  144. package/views/3d/layers/i3s/Intersector.js +1 -1
  145. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  146. package/views/3d/support/GroundAndIMSurface.js +1 -1
  147. package/views/3d/support/hitTest.js +1 -1
  148. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  149. package/views/3d/types.d.ts +2 -0
  150. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  151. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +8 -6
  152. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +2 -2
  153. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  154. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +6 -6
  155. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  156. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  157. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  158. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  159. package/views/SceneView.d.ts +31 -0
  160. package/views/SceneView.js +1 -1
  161. package/views/View.d.ts +35 -0
  162. package/views/View.js +1 -1
  163. package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
  164. package/views/analysis/ElevationProfile/elevationProfileQuerySourceUtils.js +1 -1
  165. package/views/interactive/options/ViewOptions.d.ts +98 -0
  166. package/views/interactive/options/ViewOptions.js +2 -0
  167. package/views/interactive/support/Units.d.ts +10 -2
  168. package/views/interactive/support/Units.js +1 -1
  169. package/views/layers/FeatureLikeLayerView.d.ts +27 -5
  170. package/views/layers/GraphicsLayerView.d.ts +25 -2
  171. package/views/layers/ImageryTileLayerView.js +1 -1
  172. package/views/selection/types.d.ts +1 -1
  173. package/views/support/DefaultsFromMap.js +1 -1
  174. package/views/types.d.ts +9 -3
  175. package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
  176. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +8 -2
  177. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  178. package/widgets/support/SelectionToolbar/VisibleElements.d.ts +8 -1
  179. package/widgets/support/SelectionToolbar/VisibleElements.js +1 -1
  180. package/widgets/support/SelectionToolbar.d.ts +7 -1
  181. package/widgets/support/SelectionToolbar.js +1 -1
  182. package/assets/esri/core/workers/chunks/01ca17092545d72be7b6.js +0 -1
  183. package/assets/esri/core/workers/chunks/0b727d7bf3e36e146725.js +0 -1
  184. package/assets/esri/core/workers/chunks/0bd067a5c0bac96caeb5.js +0 -1
  185. package/assets/esri/core/workers/chunks/0ff13f7a18b0123d253e.js +0 -1
  186. package/assets/esri/core/workers/chunks/114bc14c49176f64a2c5.js +0 -1
  187. package/assets/esri/core/workers/chunks/173417fe995e9bfc49d8.js +0 -1
  188. package/assets/esri/core/workers/chunks/2cf571d968118b6bdde0.js +0 -1
  189. package/assets/esri/core/workers/chunks/43436c7ccc6baefc885d.js +0 -1
  190. package/assets/esri/core/workers/chunks/445b0ca1b70730c9a2e6.js +0 -1
  191. package/assets/esri/core/workers/chunks/48d3da636be15581fd7d.js +0 -1
  192. package/assets/esri/core/workers/chunks/501df20cdd09384f6ee2.js +0 -1
  193. package/assets/esri/core/workers/chunks/50ae209237f104735a30.js +0 -1
  194. package/assets/esri/core/workers/chunks/54f9062526c2002b7fd7.js +0 -1
  195. package/assets/esri/core/workers/chunks/56b7ac280bf0be938c14.js +0 -1
  196. package/assets/esri/core/workers/chunks/61bcbafd676804ce3e1d.js +0 -1
  197. package/assets/esri/core/workers/chunks/63f7141c71f29dbe8270.js +0 -1
  198. package/assets/esri/core/workers/chunks/726ca458b98bb4334431.js +0 -1
  199. package/assets/esri/core/workers/chunks/75410a4de76e67ed5da4.js +0 -1
  200. package/assets/esri/core/workers/chunks/85780f4fa4b5509f864e.js +0 -1
  201. package/assets/esri/core/workers/chunks/862754d2d659528fe884.js +0 -1
  202. package/assets/esri/core/workers/chunks/8675ab3c4dec2f13b9c6.js +0 -1
  203. package/assets/esri/core/workers/chunks/8a103b6e9534516421e2.js +0 -1
  204. package/assets/esri/core/workers/chunks/917dec9c004218c58950.js +0 -1
  205. package/assets/esri/core/workers/chunks/91a51d959ee5c6123c46.js +0 -1
  206. package/assets/esri/core/workers/chunks/91f451b98e0f696043df.js +0 -1
  207. package/assets/esri/core/workers/chunks/9d92e6f0beed9a8580fa.js +0 -1
  208. package/assets/esri/core/workers/chunks/a42505b978d54d36d3b6.js +0 -1
  209. package/assets/esri/core/workers/chunks/a70c59129ea808857d07.js +0 -1
  210. package/assets/esri/core/workers/chunks/a86a4e550a92f770d6d5.js +0 -1
  211. package/assets/esri/core/workers/chunks/b45ebb1b64ee7314375e.js +0 -1
  212. package/assets/esri/core/workers/chunks/b5b30c8447a0f967fa79.js +0 -1
  213. package/assets/esri/core/workers/chunks/baa8bce361a2677533ec.js +0 -1
  214. package/assets/esri/core/workers/chunks/c70a32ac0fa49f4493ca.js +0 -1
  215. package/assets/esri/core/workers/chunks/cf1106eda10f3cccb1bd.js +0 -1
  216. package/assets/esri/core/workers/chunks/d1b5be1aeab16d36d4b1.js +0 -1
  217. package/assets/esri/core/workers/chunks/d38252956c3d9e2168f7.js +0 -1
  218. package/assets/esri/core/workers/chunks/d6130cd8a20d24dd9d3c.js +0 -1
  219. package/assets/esri/core/workers/chunks/da161f8cbe1cfc5fcf7c.js +0 -1
  220. package/assets/esri/core/workers/chunks/da5b3421a984cb94fd58.js +0 -1
  221. package/assets/esri/core/workers/chunks/e52f30dfb7c82491a7f2.js +0 -1
  222. package/assets/esri/core/workers/chunks/e88eee4c2fc4229c2a8b.js +0 -1
  223. package/assets/esri/core/workers/chunks/f75e57d3e02f9828b049.js +0 -1
  224. package/assets/esri/core/workers/chunks/f774e5b94710ccee1af0.js +0 -1
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import r from"../../core/Error.js";import"../../core/has.js";import{LGIDictMapFrame as e}from"./LGIDictMapFrame.js";import n from"./Projection.js";import{ViewportMeasureFrame as i}from"./ViewportMeasureFrame.js";function t(t,u=0){const s={mediaBox:_(t.MediaBox),rotate:P(t.Rotate),hasLGIDict:null!=t.LGIDict,hasVP:null!=t.VP},l=o(t.LGIDict,u);if(l){if(!l.Projection)throw new r("geospatial-pdf-layer: parse","LGIDict map frame missing Projection.");const i=new n(l.Projection),o=l.Display?new n(l.Display):void 0;return{result:s,lgiDictFrame:new e({ctm:l.CTM,registration:l.Registration,projection:i,display:o,neatline:l.Neatline,mediaBox:_(t.MediaBox)})}}const c=a(t.VP,u);if(c){return{result:s,vpFrame:new i({bbox:c.BBox,bounds:c.Measure?.Bounds,gpts:c.Measure?.GPTS,lpts:c.Measure?.LPTS,gcs:c.Measure?.GCS,mediaBox:_(t.MediaBox)})}}return{result:s}}function o(r,e){return u(r)[e]}function a(r,e){return s(r)[e]}function u(r){return null==r?[]:Array.isArray(r)?r.map(r=>l(r)):[l(r)]}function s(r){return null==r?[]:Array.isArray(r)?r.map(r=>c(r)):[c(r)]}function l(r){const e=M(r,"LGIDict map frame must be an object.");return{CTM:_(e.CTM),Registration:S(e.Registration),Neatline:_(e.Neatline),Projection:p(e.Projection),Display:p(e.Display)}}function c(r){const e=M(r,"Viewport frame must be an object."),n=d(e.Measure);return{BBox:_(e.BBox),Measure_Raw:e.Measure,Measure:n,Raw:e}}function d(r){if(T(r))return{Bounds:_(r.Bounds),GPTS:_(r.GPTS),LPTS:_(r.LPTS),GCS:f(r.GCS)}}function f(r){if(T(r))return{WKT:w(r.WKT)}}function p(r){if(T(r))return{Type:L(r.Type),Units:L(r.Units),Datum:m(r.Datum),Projection_Type:L(r.ProjectionType),Central_Meridian:P(r.CentralMeridian),False_Easting:P(r.FalseEasting),False_Northing:P(r.FalseNorthing),Height:P(r.Height),Hemisphere:L(r.Hemisphere),Latitude_One:P(r.LatitudeOne),Latitude_Two:P(r.LatitudeTwo),Latitude_Of_True_Scale:P(r.LatitudeOfTrueScale),Longitude_One:P(r.LongitudeOne),Longitude_Two:P(r.LongitudeTwo),Longitude_Down_From_Pole:P(r.LongitudeDownFromPole),Orientation:L(r.Orientation),Origin_Height:P(r.OriginHeight),Origin_Latitude:P(r.OriginLatitude),Origin_Longitude:P(r.OriginLongitude),Scale_Factor:P(r.ScaleFactor),Standard_Parallel:P(r.StandardParallel),Standard_Parallel_One:P(r.StandardParallelOne),Standard_Parallel_Two:P(r.StandardParallelTwo),Zone:P(r.Zone),Description:L(r.Description),raw:r}}function m(r){return null==r?null:"string"==typeof r?{kind:"name",name:L(r),ellipsoid:null,to_WGS84:null,raw:r}:T(r)?{kind:"definition",name:L(r.Description),ellipsoid:g(r.Ellipsoid),to_WGS84:y(r.ToWGS84),raw:r}:{kind:"unknown",name:L(r),ellipsoid:null,to_WGS84:null,raw:r}}function g(r){if(T(r))return{semi_Major_Axis:P(r.SemiMajorAxis),inverse_Flattening:P(r.InvFlattening),semi_Minor_Axis:P(r.SemiMinorAxis),description:L(r.Description)}}function y(r){if(T(r))return{dx:P(r.dx)??0,dy:P(r.dy)??0,dz:P(r.dz)??0,rx:P(r.rx)??0,ry:P(r.ry)??0,rz:P(r.rz)??0,sf:P(r.sf)??0}}function _(r){if(!Array.isArray(r))return;const e=[];for(const n of r){const r=P(n);if(void 0===r)return;e.push(r)}return e}function S(r){if(Array.isArray(r))return r.filter(r=>Array.isArray(r)).map(r=>r.map(r=>P(r)).filter(r=>void 0!==r))}function w(r){if(null!=r)return"string"==typeof r?r:String(r)}function L(r){const e=w(r);if(void 0!==e)return e.trim()}function P(r){if(null==r)return;if("number"==typeof r)return r;if("string"!=typeof r)return;const e=Number(r.trim());return Number.isFinite(e)?e:void 0}function T(r){return null!=r&&"object"==typeof r&&!Array.isArray(r)}function M(e,n){if(!T(e))throw new r("geospatial-pdf-layer: parse",n);return e}export{t as parse};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as e}from"tslib";import r from"../../core/Error.js";import{Loadable as t}from"../../core/Loadable.js";import{open as o}from"../../core/workers.js";import{subclass as s}from"../../core/accessorSupport/decorators.js";import a from"./GeospatialPDFFrame.js";import{parse as i}from"./GeospatialPDFParserUtils.js";let n=class extends t{constructor(){super(...arguments),this._connection=null,this._workerHandler=null}load(e){const r=o("GeospatialPDFLayerWorker",{...e,strategy:"dedicated",registryTarget:this}).then(e=>{this._connection=e,this._workerHandler=this._connection.createInvokeProxy()});return this.addResolvingPromise(r),Promise.resolve(this)}destroy(){this._connection?.close(),this._connection=null,this._workerHandler=null,super.destroy()}async loadPDF(e,t={}){await this.load(t);const{geospatialMetadata:o}=await this._workerHandler.loadPDF(e,t),s=i(o,0),n=s.lgiDictFrame??s.vpFrame;if(!n)throw new r("geospatial-pdf-layer:load","pdf does not contain supported LGIDict or VP/Measure.");const l=new a(n),c=l.spatialReference.toJSON();return{frame:l,sourceSpatialReference:c,fullExtent:l.toExtent()}}async render(e,r,t,o,s,a){const i={sourceExtentAsJSON:e.toJSON(),width:r,height:t,ctm:o,currentRing:s};return this._workerHandler.renderPDF(i,a)}};n=e([s("esri.layers.geospatialPDF.GeospatialPDFWorkerClient")],n);export{n as GeospatialPDFWorkerClient};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import t from"../../core/Error.js";import{fromValues as i}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import{expandMediaBox as n,createGeoreferencer as a,validateTransform as r,affineTransformationFromGeoreference as o}from"./sharedUtils.js";class s{constructor(t){const i=this.inputValidation(t);this._registration=i.registration,this._projection=i.projection,this._neatline=i.neatline,this.pairedNeatline=this._pairNeatline(),this.outerExtentMediaBox=n(i.mediaBox),this.geoControlPoints=this._getRegistrationPoints("geo"),this.ctm=i.ctm??this._buildCTMFromRegistration(),this.outputValidation()}inputValidation(e){const{ctm:n,registration:a,projection:r,display:o,neatline:s,mediaBox:l}=e;if(n&&6!==n.length)throw new t("geospatial-pdf-layer: invalid-frame","LGIDict has invalid CTM.");if(!n&&(!a||a.length<3))throw new t("geospatial-pdf-layer: invalid-frame","LGIDict missing CTM and minimum registration points");if(!l||4!==l.length)throw new t("geospatial-pdf-layer: invalid-frame","LGIDict missing or invalid MediaBox.");if(!s||s.length<4||s.length%2!=0)throw new t("geospatial-pdf-layer: invalid-frame","LGIDict missing or invalid amount of neatline points");return{ctm:n?i(n[0],n[1],n[2],n[3],n[4],n[5]):void 0,registration:a??[],projection:r,display:o,neatline:s,mediaBox:l}}outputValidation(){if(6!==this.ctm.length)throw new t("geospatial-pdf-layer: invalid-frame","LGIDict missing or invalid CTM");if(this.pairedNeatline.length<4)throw new t("geospatial-pdf-layer: invalid-frame","Map Frame should have at least 4 neatline points.");if(4!==this.outerExtentMediaBox.length)throw new t("geospatial-pdf-layer: invalid-frame","Failed to generate outerextent from mediaBox.");if(!this.ctm&&this.geoControlPoints.length<2)throw new t("geospatial-pdf-layer: invalid-frame","Map Frame should have at least 2 geoControlPoints if defaulting.")}toSpatialReference(){return this._projection.toSpatialReference()}_buildCTMFromRegistration(){const t=[],i=[];for(const a of this._registration)a.length<4||(t.push(e(a[0],a[1])),i.push(e(a[2],a[3])));const n=this._getSourceRect(),s=a(t,i,this.toSpatialReference(),n),l=r(s);return o(l)}_extentFromArray(i){let e=1/0,n=1/0,a=-1/0,r=-1/0;for(let t=0;t<i.length;t++){const o=i[t];e=Math.min(e,o[0]),n=Math.min(n,o[1]),a=Math.max(a,o[0]),r=Math.max(r,o[1])}if(!(Number.isFinite(e)&&Number.isFinite(n)&&Number.isFinite(a)&&Number.isFinite(r)))throw new t("geospatial-pdf-layer: invalid-frame","Failed to compute extent from registration.");return{xmin:e,ymin:n,xmax:a,ymax:r}}_getSourceRect(){if(4===this.outerExtentMediaBox?.length)return this._extentFromArray(this.outerExtentMediaBox);if(this._neatline.length>=6)return this._extentFromArray(this.pairedNeatline);const i=this._getRegistrationPoints("page");if(i.length>=2)return this._extentFromArray(i);throw new t("geospatial-pdf-layer: invalid-frame","Cannot build source rectangle from Neatline or Registration points.")}_getRegistrationPoints(t){const[i,e]="page"===t?[0,1]:[2,3];return this._registration.filter(t=>t.length>e).map(t=>[t[i],t[e]])}_pairNeatline(){const t=[];for(let i=0;i<this._neatline.length;i+=2){const e=this._neatline[i],n=this._neatline[i+1];Number.isFinite(e)&&Number.isFinite(n)&&t.push([e,n])}return 2===t.length&&(t.splice(1,0,[t[1][0],t[0][1]]),t.push([t[0][0],t[2][1]])),t}}export{s as LGIDictMapFrame};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import e from"../../core/Error.js";import t from"../../geometry/SpatialReference.js";const i={OriginLatitude:"Origin_Latitude",CentralMeridian:"Central_Meridian",ScaleFactor:"Scale_Factor",FalseEasting:"False_Easting",FalseNorthing:"False_Northing",Zone:"Zone",Hemisphere:"Hemisphere",StandardParallelOne:"Standard_Parallel_One",StandardParallelTwo:"Standard_Parallel_Two"},a=/NAD83|NORTH AMERICAN 1983|^NAR(?:-[A-Z])?$/i,r=/(NAD27|NORTH AMERICAN 1927|NAS(?:-[A-Z])?)$/i,n=/(WGS84|WGS 84|WGE)$/i;class o{constructor(e){const t=this._validateInput(e);this.raw=t.raw,this.dictionaryType=t.dictionaryType,this.datum=t.datum,this.units=t.units,this.projectionType=t.projectionType,this.centralMeridian=t.centralMeridian,this.originLatitude=t.originLatitude,this.falseEasting=t.falseEasting,this.falseNorthing=t.falseNorthing,this.scaleFactor=t.scaleFactor,this.zone=t.zone,this.hemisphere=t.hemisphere,this.standardParallel=t.standardParallel,this.standardParallelOne=t.standardParallelOne,this.standardParallelTwo=t.standardParallelTwo,this.latitudeOne=t.latitudeOne,this.latitudeTwo=t.latitudeTwo,this.latitudeOfTrueScale=t.latitudeOfTrueScale,this.longitudeOne=t.longitudeOne,this.longitudeTwo=t.longitudeTwo,this.longitudeDownFromPole=t.longitudeDownFromPole,this.orientation=t.orientation,this.height=t.height,this.originHeight=t.originHeight,this.originLongitude=t.originLongitude}toWKT(){const e=this._getProjectionName(),t=this._getProjectionWktName(),i=this._getDatumWktPart(),a=this._getLinearUnitWkt(),r=this._getParametersWkt();return`PROJCS["${e}",GEOGCS["${this._getGeographicCoordinateSystemName()}",${i},PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["${t}"],${r.join(",\n ")},${a}]`}toSpatialReference(){return new t({wkt:this.toWKT()})}_validateInput(t){const i=this._toProjectionDictionaryType(t.Type),a=this._toProjectionCode(t.Projection_Type);if(!a)throw new e("geospatial-pdf-layer: invalid-projection","Projection is missing or has unsupported ProjectionType");if(!i)throw new e("geospatial-pdf-layer: invalid-projection","Projection dictionary is missing or has invalid Type. Expected Projection or Display.");if(!t.Datum)throw new e("geospatial-pdf-layer: invalid-projection","Projection is missing a Datum");return this._requireSummaryParams(t,a),{raw:t,dictionaryType:i,datum:t.Datum,units:t.Units??"M",projectionType:a,centralMeridian:t.Central_Meridian,originLatitude:t.Origin_Latitude,falseEasting:t.False_Easting,falseNorthing:t.False_Northing,scaleFactor:t.Scale_Factor,zone:t.Zone,hemisphere:t.Hemisphere,standardParallel:t.Standard_Parallel,standardParallelOne:t.Standard_Parallel_One,standardParallelTwo:t.Standard_Parallel_Two,latitudeOne:t.Latitude_One,latitudeTwo:t.Latitude_Two,latitudeOfTrueScale:t.Latitude_Of_True_Scale,longitudeOne:t.Longitude_One,longitudeTwo:t.Longitude_Two,longitudeDownFromPole:t.Longitude_Down_From_Pole,orientation:t.Orientation,height:t.Height,originHeight:t.Origin_Height,originLongitude:t.Origin_Longitude}}_toProjectionDictionaryType(e){switch(e){case"Projection":case"Display":return e;default:return}}_toProjectionCode(e){switch(e){case"TC":case"PH":case"UT":case"AC":case"LE":return e;default:return}}_requireSummaryParams(t,a){const r=this._getRequiredParams(a);for(const n of r){const r=t[i[n]];if(void 0===r||""===r)throw new e("geospatial-pdf-layer: invalid-projection",`Projection ${a} missing required parameter ${n}.`)}}_getRequiredParams(e){switch(e){case"TC":return["OriginLatitude","CentralMeridian","ScaleFactor","FalseEasting","FalseNorthing"];case"PH":return["OriginLatitude","CentralMeridian","FalseEasting","FalseNorthing"];case"UT":return["Zone","Hemisphere"];case"AC":case"LE":return["OriginLatitude","CentralMeridian","StandardParallelOne","StandardParallelTwo","FalseEasting","FalseNorthing"]}}_getProjectionWktName(){switch(this.projectionType){case"TC":case"UT":return"Transverse_Mercator";case"PH":return"Polyconic";case"AC":return"Albers";case"LE":return"Lambert_Conformal_Conic";default:throw new e("geospatial-pdf-layer: invalid-projection","Can not build WKT name from unsupported projection code"+this.projectionType)}}_getProjectionName(){const t=this._getProjectedDatumPrefix();switch(this.projectionType){case"TC":return`${t}_GeoPDF_Transverse_Mercator`;case"PH":return`${t}_GeoPDF_Polyconic`;case"UT":return`${t}_GeoPDF_UTM_Zone_${this.zone}_${this.hemisphere}`;case"AC":return`${t}_GeoPDF_Albers_Equal_Area`;case"LE":return`${t}_GeoPDF_Lambert_Conformal_Conic`;default:throw new e("geospatial-pdf-layer: invalid-projection","Can not build Projection name from unsupported projection code"+this.projectionType)}}_getProjectedDatumPrefix(){const e=this._getDatumName();return e?l(e)?"NAD_1983":d(e)?"NAD_1927":u(e)?"WGS_1984":"geospatialPDF":"geospatialPDF"}_getDatumWktPart(){if(!this.datum)throw new e("geospatial-pdf-layer: invalid-Datum","Missing Datum");if("definition"===this.datum.kind){const t=this.datum.ellipsoid;if(!t?.semi_Major_Axis)throw new e("geospatial-pdf-layer: invalid-Datum","Datum definition requires semi-major axis");const i=this._getInverseFlattening(t),a=this.datum.name??"GeoPDF_Datum",r=`SPHEROID["${t.description??"GeoPDF_Spheroid"}",${t.semi_Major_Axis},${i}]`,n=this.datum.to_WGS84;return`DATUM["${a}",${r}${n?`,TOWGS84[${n.dx??0},${n.dy??0},${n.dz??0},${n.rx??0},${n.ry??0},${n.rz??0},${n.sf??0}]`:""}]`}if(this.datum.name){const e=this.datum.name.toUpperCase();if(l(e))return'DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]]';if(d(e))return'DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]]';if(u(e))return'DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]]'}throw new e("geospatial-pdf-layer: invalid-Datum","Unsupported datum "+this.datum.name)}_getLinearUnitWkt(){const e=this.units?.toLowerCase();return["m","meter","meters","metre","metres"].includes(e??"")?'UNIT["Meter",1.0]':["ft","foot","feet"].includes(e??"")?'UNIT["Foot",0.3048]':`UNIT["${this.units}",1.0]`}_getParametersWkt(){switch(this.projectionType){case"TC":return[`PARAMETER["False_Easting",${this.falseEasting}]`,`PARAMETER["False_Northing",${this.falseNorthing}]`,`PARAMETER["Central_Meridian",${this.centralMeridian}]`,`PARAMETER["Latitude_Of_Origin",${this.originLatitude}]`,`PARAMETER["Scale_Factor",${this.scaleFactor}]`];case"PH":return[`PARAMETER["False_Easting",${this.falseEasting}]`,`PARAMETER["False_Northing",${this.falseNorthing}]`,`PARAMETER["Central_Meridian",${this.centralMeridian}]`,`PARAMETER["Latitude_Of_Origin",${this.originLatitude}]`];case"AC":case"LE":return[`PARAMETER["False_Easting",${this.falseEasting}]`,`PARAMETER["False_Northing",${this.falseNorthing}]`,`PARAMETER["Central_Meridian",${this.centralMeridian}]`,`PARAMETER["Latitude_Of_Origin",${this.originLatitude}]`,`PARAMETER["Standard_Parallel_1",${this.standardParallelOne}]`,`PARAMETER["Standard_Parallel_2",${this.standardParallelTwo}]`];case"UT":return this._getUTMParametersWkt()}}_getUTMParametersWkt(){if(!this.zone)throw new e("geospatial-pdf-layer: invalid-Projection","No zone found for projection code UT");const t=6*this.zone-183;return['PARAMETER["False_Easting",500000]',`PARAMETER["False_Northing",${/^s/i.test(this.hemisphere??"")?1e7:0}]`,`PARAMETER["Central_Meridian",${t}]`,'PARAMETER["Latitude_Of_Origin",0]','PARAMETER["Scale_Factor",0.9996]']}_getInverseFlattening(t){if(null!=t.inverse_Flattening)return t.inverse_Flattening;const i=t.semi_Major_Axis,a=t.semi_Minor_Axis;if(null==i||null==a)throw new e("geospatial-pdf-layer: invalid-Datum","Ellipsoid definition missing InvFlattening or SemiMinorAxis.");return i===a?0:i/(i-a)}_getGeographicCoordinateSystemName(){const e=this._getDatumName();return e?l(e)?"GCS_North_American_1983":d(e)?"GCS_North_American_1927":u(e)?"GCS_WGS_1984":"GCS_GeoPDF":"GCS_GeoPDF"}_getDatumName(){return this.datum&&this.datum.name?s(this.datum.name):null}}function s(e){return e.trim().toUpperCase().replace(/_/g," ").replace(/\s+/g," ")}function l(e){return a.test(e)}function d(e){return r.test(e)}function u(e){return n.test(e)}export{o as default};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import t from"../../core/Error.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/vec2f64.js";import o from"../../geometry/Point.js";import i from"../../geometry/SpatialReference.js";import{projectExecute as s}from"../../geometry/operators/projectOperator.js";import{expandMediaBox as n,validateTransform as a,affineTransformationFromGeoreference as r,createGeoreferencer as l}from"./sharedUtils.js";class h{constructor(t){const{bbox:e,bounds:o,gpts:i,lpts:s,gcs:l,mediaBox:h}=this.inputValidation(t);this._bbox=e,this._bounds=o,this._gpts=i,this._lpts=s,this._gcs=l,this.outerExtentMediaBox=n(h),this.geoControlPoints=this._getProjectedGeoControlPoints().map(t=>[t[0],t[1]]);const g=this._getBoundsPolygonPage()??this._getPageControlPoints();this.pairedNeatline=g.map(t=>[t[0],t[1]]),this.neatLine=this.pairedNeatline.flat(),this._georeference=this._createControlPointsGeoreference();const p=a(this._georeference);this.ctm=r(p),this.outputValidation()}toSpatialReference(){return new i({wkt:this._gcs.WKT})}inputValidation(e){const{bbox:o,bounds:i,gpts:s,lpts:n,gcs:a,mediaBox:r}=e;if(!o||4!==o.length)throw new t("geospatial-pdf-layer: invalid-frame","Viewport missing or invalid BBox.");if(!r||4!==r.length)throw new t("geospatial-pdf-layer: invalid-frame","Viewport missing or invalid MediaBox.");if(!s||s.length<6||s.length%2!=0)throw new t("geospatial-pdf-layer: invalid-frame","MeasureFrame missing or invalid GPTS.");if(!n||n.length<6||n.length%2!=0)throw new t("geospatial-pdf-layer: invalid-frame","MeasureFrame missing or invalid LPTS.");if(n.length!==s.length)throw new t("geospatial-pdf-layer: invalid-frame","MeasureFrame LPTS and GPTS must be same length");if(!a?.WKT)throw new t("geospatial-pdf-layer: invalid-frame","MeasureFrame missing or invalid WKT.");return{bbox:o,bounds:i,gpts:s,lpts:n,gcs:{WKT:a.WKT},mediaBox:r}}outputValidation(){if(4!==this.outerExtentMediaBox.length)throw new t("geospatial-pdf-layer: invalid-frame","Failed to generate outer extent from mediaBox.");if(this.geoControlPoints.length<2)throw new t("geospatial-pdf-layer: invalid-frame","Map Frame should have at least 2 geoControlPoints.");if(this.pairedNeatline.length<4)throw new t("geospatial-pdf-layer: invalid-frame","Map Frame should have at least 4 neatline points.");if(!this.ctm||6!==this.ctm.length)throw new t("geospatial-pdf-layer: invalid-frame","Missing or invalid Map Frame CTM")}_createControlPointsGeoreference(){const t=this._getPageControlPoints(),e=this._getProjectedGeoControlPoints(),o=this._getViewportRect();return l(t,e,this.toSpatialReference(),o)}_getBoundsPolygonLocal(){if(!this._bounds||this._bounds.length<8||this._bounds.length%2!=0)return null;const t=[];for(let e=0;e<this._bounds.length;e+=2)t.push({u:this._bounds[e],v:this._bounds[e+1]});return t}_getBoundsPolygonPage(){const t=this._getBoundsPolygonLocal();return t?.map(t=>this._localToPage(t.u,t.v))??null}_getPageControlPoints(){const t=[];for(let e=0;e<this._lpts.length;e+=2){const o=this._lpts[e],i=this._lpts[e+1];t.push(this._localToPage(o,i))}return t}_getProjectedGeoControlPoints(){const t=this.toSpatialReference(),i=[];for(let n=0;n<this._gpts.length;n+=2){const a=this._gpts[n],r=this._gpts[n+1],l=new o({x:r,y:a}),h=s(l,t);i.push(e(h.x,h.y))}return i}_getViewportRect(){const[t,e,o,i]=this._bbox;return{xmin:Math.min(t,o),ymin:Math.min(e,i),xmax:Math.max(t,o),ymax:Math.max(e,i)}}_localToPage(t,o){const[i,s,n,a]=this._bbox;return e(i+t*(n-i),s+o*(a-s))}}export{h as ViewportMeasureFrame};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import t from"../../core/Error.js";import"../../core/has.js";import{onAbort as o,throwIfAborted as n}from"../../core/promiseUtils.js";import{fromValues as r,create as e}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import{multiply as a}from"../../core/libs/gl-matrix-2/math/mat2d.js";async function i(r,i,m,l,f,p,x,h,v){const d=s(r,i,m),g=e();a(g,d,l);const u=e();a(u,g,x);const w=new OffscreenCanvas(i,m),y=w.getContext("2d");if(!y)throw new t("geospatial-pdf-layer: invalid-canvas","Failed to create bitmap canvas context.");if(h.length){const t=c(h,r,i,m);y.save(),y.fillStyle="white",y.fill(t),y.restore()}const b=f.render({canvas:null,canvasContext:y,viewport:p,transform:u,annotationMode:0,background:"rgba(0,0,0,0)"}),j=o(v?.signal,()=>{b.cancel()});try{await b.promise}catch(C){throw n(v),C}finally{j?.remove()}return w}function s(t,o,n){const e=(t.xmax-t.xmin)/o,a=(t.ymax-t.ymin)/n;return r(1/e,0,0,-1/a,-t.xmin/e,t.ymax/a)}function c(t,o,n,r){const e=new Path2D,a=s(o,n,r);for(let i=0;i<t.length;i++){const[o,n]=t[i],r=a[0]*o+a[2]*n+a[4],s=a[1]*o+a[3]*n+a[5];0===i?e.moveTo(r,s):e.lineTo(r,s)}return e.closePath(),e}export{i as renderBitmap};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import r from"../../core/Error.js";import{fromValues as e}from"../../core/libs/gl-matrix-2/factories/mat2df64.js";import o from"../../geometry/Point.js";import t from"../support/ControlPointsGeoreference.js";function n(r,e,n,i){const m=Math.min(r.length,e.length,3),a=r.slice(0,m).map((r,t)=>({sourcePoint:{x:r[0],y:r[1]},mapPoint:new o({x:e[t][0],y:e[t][1],spatialReference:n})}));return new t({controlPoints:a,width:i.xmax-i.xmin,height:i.ymax-i.ymin})}function i(e){if(!e?.transform||e.transform.length<6)throw new r("geospatial-pdf-layer: georefrencer","created georeferencer does not have valid transform");return e.transform}function m(r){return e(r[0],-r[1],-r[3],r[4],r[2],r[5])}function a(r){return[[r[0],r[1]],[r[0],r[3]],[r[2],r[3]],[r[2],r[1]]]}export{m as affineTransformationFromGeoreference,n as createGeoreferencer,a as expandMediaBox,i as validateTransform};
@@ -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"../../Graphic.js";import i from"../../request.js";import r from"../../core/Error.js";import{clone as s}from"../../core/lang.js";import n from"../../core/Logger.js";import{QueueProcessor as a}from"../../core/QueueProcessor.js";import{watch as o}from"../../core/reactiveUtils.js";import{urlToObject as l}from"../../core/urlUtils.js";import{property as u,subclass as p}from"../../core/accessorSupport/decorators.js";import{Integer as c,ensureClass as m}from"../../core/accessorSupport/ensureType.js";import{runUntracked as h}from"../../core/accessorSupport/tracking.js";import d from"../../geometry/Extent.js";import f from"../../geometry/Polygon.js";import g from"../../geometry/SpatialReference.js";import{srToRESTValue as y}from"../../geometry/support/spatialReferenceUtils.js";import{intersectMultimensionalSubset as R,getEffectiveMultidimensionalDefinition as x,getSubsetVariablesFromMdInfo as I,getDefaultMultidimensionalDefinition as w}from"../raster/datasets/multidimensionalUtils.js";import{decode as v,getFormat as b}from"../raster/formats/RasterCodec.js";import{mosaicPixelData as S}from"../raster/functions/pixelUtils.js";import{uvComponentToVector as _}from"../raster/functions/vectorFieldUtils.js";import{opacity as F,url as D}from"../support/commonProperties.js";import O from"../support/DimensionalDefinition.js";import{ExportImageServiceParameters as T}from"../support/ExportImageServiceParameters.js";import M from"../support/Field.js";import C from"../support/FieldsIndex.js";import{createBitmap as q}from"../support/imageBitmapUtils.js";import{isSupportedRendererType as N}from"../support/imageryRendererUtils.js";import j from"../support/MosaicRule.js";import P from"../support/MultidimensionalSubset.js";import E from"../support/PixelBlock.js";import{interpolationKebab as A,noDataInterpretationKebab as Q,pixelTypeKebabDict as V}from"../support/rasterEnums.js";import{getServicePixelValueField as J,getItemPixelValueField as B,getRawServicePixelValueField as U,getProcessedServicePixelValueField as z,getMagnitudeField as L,getDirectionField as H,getMultidimensionalFields as G,getRasterAttributeTableFields as k,addMultidimensionalFieldValues as W,commonRasterFieldNames as $,rasterFieldPrefix as X}from"../support/rasterFieldUtils.js";import K from"../support/RasterFunction.js";import Y from"../support/RasterInfo.js";import{createDefaultRenderer as Z,getDefaultBandCombination as ee,getSupportedRendererTypes as te,matchPresetRenderer as ie,normalizeRendererJSON as re}from"../../renderers/support/rasterRendererHelper.js";import se from"../../renderers/support/RasterSymbolizer.js";import{rasterRendererTypes as ne,websceneRasterRendererTypes as ae,read as oe}from"../../renderers/support/rasterTypeUtils.js";import{calculateVolume as le,computeAngles as ue,computePixelSpaceLocations as pe,computeHistograms as ce,computeStatisticsHistograms as me,measureHeight as he,measureAreaAndPerimeter as de,measureDistanceAndAngle as fe,measurePointOrCentroid as ge,measureLengthFromImage as ye,measureAreaFromImage as Re,getImageSpatialReferenceQueryParameter as xe,getSamples as Ie,identify as we,imageToMap as ve,imageToMapMultiray as be,mapToImage as Se,findImages as _e,getImageUrl as Fe,queryBoundary as De,queryGPSInfo as Oe}from"../../rest/imageService.js";import{fetchServiceRasterInfo as Te,generateRasterInfo as Me,patchServiceInfo as Ce}from"../../rest/imageService/fetchRasterInfo.js";import{getCatalogItemRasterInfo as qe}from"../../rest/imageService/getCatalogItemRasterInfo.js";import{executeForCount as Ne}from"../../rest/query/executeForCount.js";import{executeForExtent as je}from"../../rest/query/executeForExtent.js";import{executeForIds as Pe}from"../../rest/query/executeForIds.js";import{executeQueryJSON as Ee}from"../../rest/query/executeQueryJSON.js";import Ae from"../../rest/support/FeatureSet.js";import Qe from"../../rest/support/ImageIdentifyParameters.js";import Ve from"../../rest/support/Query.js";import{reader as Je}from"../../core/accessorSupport/decorators/reader.js";import{writer as Be}from"../../core/accessorSupport/decorators/writer.js";const Ue=512,ze=4096,Le=new Set(["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff"]);function He(e){const t=JSON.stringify(e),i=t.includes('"rasterFunctionDefinition":{'),r=i?t.match(/"type":"(.*?FunctionArguments")/gi):t.match(/"rasterFunction":"(.*?")/gi),s=r?.map(e=>i?e.slice(8,-18):e.slice(18,-1));return s?s.join("/"):null}const Ge=Ge=>{const ke=Ge;let We=class extends ke{constructor(){super(...arguments),this._functionRasterInfos={},this._serviceSupportsMosaicRule=null,this._exportTileQueue=new a({concurrency:4,process:(e,t)=>this._fetchPixels(e.extent,e.width,e.height,{...e.options,signal:t})}),this.adjustAspectRatio=null,this.bandIds=void 0,this.capabilities=null,this.compressionQuality=void 0,this.compressionTolerance=.01,this.copyright=null,this.defaultMosaicRule=null,this.definitionExpression=null,this.exportImageServiceParameters=null,this.rasterInfo=null,this.fields=null,this.fullExtent=null,this.hasMultidimensions=!1,this.imageMaxHeight=4100,this.imageMaxWidth=4100,this.interpolation=void 0,this.minScale=0,this.maxScale=0,this.multidimensionalInfo=null,this.multidimensionalSubset=null,this.noData=null,this.noDataInterpretation=void 0,this.objectIdField=null,this.geometryType="polygon",this.typeIdField=null,this.types=[],this.pixelFilter=null,this.raster=void 0,this.sourceType=null,this.viewId=void 0,this.symbolizer=null,this.rasterFunctionInfos=null,this.serviceDataType=null,this.spatialReference=null,this.pixelType=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.url=null,this.version=void 0}initialize(){this._set("exportImageServiceParameters",new T({layer:this}))}readServiceSupportsMosaicRule(e,t){return this._isMosaicRuleSupported(t)}get _rasterFunctionNamesIndex(){const e=new Map;return!this.rasterFunctionInfos||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.length<1||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.forEach(t=>{e.set(t.name.toLowerCase().replaceAll(/ /gi,"_"),t.name)}),e}readBandIds(e,t){if(Array.isArray(e)&&e.length>0&&e.every(e=>"number"==typeof e))return e}readCapabilities(e,t){return this._readCapabilities(t)}writeCompressionQuality(e,t,i){null!=e&&"lerc"!==this.format&&(t[i]=e)}writeCompressionTolerance(e,t,i){"lerc"===this.format&&null!=e&&(t[i]=e)}readDefaultMosaicRule(e,t){return this._serviceSupportsMosaicRule?h(()=>j.fromJSON(t)):null}get fieldsIndex(){return this.fields?new C(this.fields):null}set format(e){e&&Le.has(e.toLowerCase())&&this._set("format",e.toLowerCase())}readFormat(e,t){return"esriImageServiceDataTypeVector-UV"===t.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===t.serviceDataType||null!=this.pixelFilter?"lerc":"jpgpng"}get isRenderedFormat(){return!this.format||this.format.includes("jpg")||this.format.includes("png")}readMinScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}readMaxScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}set mosaicRule(e){let t=e;t?.mosaicMethod&&(t=j.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}readMosaicRule(e,t){const i=e||t.mosaicRule;return i?j.fromJSON(i):this._isMosaicRuleSupported(t)?j.fromJSON(t):null}writeMosaicRule(e,t,i){const{mosaicRule:r}=this;this._isValidCustomizedMosaicRule(r)&&(t[i]=r.toJSON())}readObjectIdField(e,t){if(!e){const i=t.fields.find(e=>"esriFieldTypeOID"===e.type||"oid"===e.type);e=i?.name}return e}get parsedUrl(){return l(this.url)}readSourceType(e,t){return this._isMosaicDataset(t)?"mosaic-dataset":"raster-dataset"}get renderer(){const{activePresetRendererName:e,presetRenderers:t}=this;if(e){const i=t?.find(({name:t})=>t===e);return i?.renderer.clone()}return this.internalRenderer}set renderer(e){this.activePresetRendererName=null,this.internalRenderer=e}set internalRenderer(e){this.loaded&&(e=this._configRenderer(e)),this._set("internalRenderer",e)}readRenderer(e,t,i){const r=t?.layerDefinition?.drawingInfo?.renderer,s=oe(r,i);return null==s?null:("vector-field"===s.type&&t.symbolTileSize&&!r.symbolTileSize&&(s.symbolTileSize=t.symbolTileSize),N(s)||n.getLogger(this).warn("ArcGISImageService","Imagery layer doesn't support given renderer type."),s)}writeRenderer(e,t,i){t.layerDefinition=t.layerDefinition||{},t.layerDefinition.drawingInfo=t.layerDefinition.drawingInfo||{},t.layerDefinition.drawingInfo.renderer=e.toJSON()}get rasterFields(){const e=this.fields?.map(e=>e.clone())??[];e.push(J()),"mosaic-dataset"===this.sourceType&&this.fields?.length&&e.push(B()),this.version>=10.4&&null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.some(({name:e})=>"none"===e.toLowerCase())&&e.push(U()),null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.filter(({name:e})=>"none"!==e.toLowerCase()).forEach(({name:t})=>e.push(z(t)));const{rasterInfo:t}=this;if(this._isVectorDataSet()){const i=t?.multidimensionalInfo?.variables[0].unit?.trim(),r=L(i),s=H();e.push(r,s)}if(t?.multidimensionalInfo&&"raster-dataset"===this.sourceType){const i=G(t.multidimensionalInfo);e.push(...i)}const i=t?.attributeTable;if(null!=i){const t=k(i);e.push(...t)}return e}set rasterFunction(e){let t=e;t?.rasterFunction&&(t=K.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("rasterFunction",t)}readRasterFunction(e,t){const i=t.rasterFunctionInfos,r=t.renderingRule,s=null!=r&&Object.keys(r).length>0;return s||i?.length&&"None"!==i[0].name?this._isRFTJson(r)?K.fromJSON({rasterFunctionDefinition:r}):K.fromJSON(s?r:{rasterFunctionInfos:i}):null}readSpatialReference(e,t){const i=e||t.extent.spatialReference;return i?g.fromJSON(i):null}writePixelType(e,t,i){null!=this.serviceRasterInfo&&this.pixelType===this.serviceRasterInfo.pixelType||(t[i]=V.toJSON(e))}readVersion(e,t){let i=t.currentVersion;return i||(i=t.hasOwnProperty("fields")||t.hasOwnProperty("timeInfo")?10:9.3),i}applyFilter(e){let t=e;return this.pixelFilter&&(t=this._clonePixelData(e),this.pixelFilter(t)),t}async applyRenderer(e,t){let i=e,{renderer:r,symbolizer:s,pixelFilter:n}=this;const{isRawData:a}=e;if(a&&"lerc"!==this.format&&(r??=Z(this.rasterInfo,{bandIds:this.bandIds,variableName:this.rasterFunction?null:this.mosaicRule?.multidimensionalDefinition?.[0].variableName}),s||(this.symbolizer=new se({rendererJSON:r.toJSON(),rasterInfo:this.rasterInfo}),s=this.symbolizer)),(a||!this.isRenderedFormat)&&r&&s&&!n){await this._updateSymbolizer(s,r);const n=this.bandIds?.length?this.bandIds:ee(this.rasterInfo);i=await this._symbolize({pixelData:e,bandIds:n,symbolizer:s},t)}return i}destroy(){this._shutdownJobHandler()}async calculateVolume(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsCalculateVolume)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return e=s(e),this.mosaicRule&&null==e.mosaicRule&&(e.mosaicRule=this.mosaicRule),le(this.url,e,this._getRequestOptions(t))}async computeAngles(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeAngles)throw new r("imagery-layer:compute-angles","this operation is not supported on the input image service");return ue(this.url,e,this._getRequestOptions(t))}async computePixelSpaceLocations(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputePixelLocation)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return pe(this.url,e,this._getRequestOptions(t))}async computeHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeHistograms)throw new r("imagery-layer:compute-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),ce(this.url,e,this._getRequestOptions(t))}async computeStatisticsHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeStatisticsHistograms)throw new r("imagery-layer:compute-statistics-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),me(this.url,e,this._getRequestOptions(t))}async measureHeight(e,t){const i=await this._fetchCapabilities(t?.signal);if(!("base-and-top"===e.operationType?i.mensuration.supportsHeightFromBaseAndTop:"base-and-top-shadow"===e.operationType?i.mensuration.supportsHeightFromBaseAndTopShadow:i.mensuration.supportsHeightFromTopAndTopShadow))throw new r("imagery-layer:measure-height","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),he(this.url,e,this._getRequestOptions(t))}async measureAreaAndPerimeter(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsAreaAndPerimeter&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-area-and-perimeter","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),de(this.url,e,this._getRequestOptions(t))}async measureDistanceAndAngle(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsDistanceAndAngle&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-distance-and-angle","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),fe(this.url,e,this._getRequestOptions(t))}async measurePointOrCentroid(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsPointOrCentroid&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-point-or-centroid","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),ge(this.url,e,this._getRequestOptions(t))}async measureLengthFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-length-from-image","this operation is not supported on the input image service");if("polyline"!==e.geometry.type)throw new r("imagery-layer:measure-length-from-image","this input geometry must be a polyline");return ye(this.url,e,this._getRequestOptions(t))}async measureAreaFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-area-from-image","this operation is not supported on the input image service");if("polygon"!==e.geometry.type)throw new r("imagery-layer:measure-area-from-image","this input geometry must be a polygon");return Re(this.url,e,this._getRequestOptions(t))}getField(e){const{fieldsIndex:t}=this;return null!=t?t.get(e):void 0}getFieldDomain(e,t){const i=this.getField(e);return i?i.domain:null}async internalFetchImage(e,t,i,r={}){await this._updateCurrentRasterInfo();const{exportImageServiceParameters:s}=this;let n=!1;if(r.requestRawData&&(await this._initJobHandler(),!s.requestRawData&&"lerc"!==this.format)){n=!0,s.requestRawData=!0;let e=this.bandIds;if(!e?.length){const t=ee(this.rasterInfo),i=Array.from({length:this.rasterInfo.bandCount},(e,t)=>t);i?.join(",")!==t?.join(",")&&(e=t)}s.rawDataRequestBandIds=e}const a=this.getExportImageServiceParameters(e,t,i,r.timeExtent);if(n&&(s.requestRawData=!1,s.rawDataRequestBandIds=null),null==a){if(r.requestAsImageElement&&this._canRequestImageElement(this.format)){const e=document.createElement("canvas");if(e.width=t,e.height=i,r.returnImageBitmap){const{bitmap:t}=await q(e,`${$e(this.parsedUrl)}/exportImage`,r);return{imageBitmap:t}}return{imageOrCanvasElement:e}}const{bandIds:s,rasterInfo:n}=this,a=(s?.length||n.bandCount)??0,o=t*i,l=n.pixelType,u=[];for(let e=0;e<a;e++)u.push(E.createEmptyBand(l,o));return{pixelData:{pixelBlock:new E({width:t,height:i,pixels:u,mask:new Uint8Array(o),pixelType:l}),extent:e}}}const o=!!r.requestAsImageElement&&!this.pixelFilter,l=o&&!!r.returnImageBitmap,u={imageServiceParameters:a,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:o,returnImageBitmap:l,signal:r.signal};return this._requestArrayBuffer(u)}async fetchPixels(e,t,i,s={}){await this._initJobHandler(),s.applyRendering&&await this._updateCurrentRasterInfo();const{imageMaxWidth:n,imageMaxHeight:a}=this;if(t<=n&&i<=a)return this._exportTileQueue.push({extent:e,width:t,height:i,options:s},{signal:s.signal});if(t>ze||i>ze||n<Ue||a<Ue)throw new r("imagery-layer:fetch-pixels",`The image service has a maximum export size of ${n}x${a}. The requested size of ${t}x${i} exceeds this limit.`);let{xmin:o,ymax:l,spatialReference:u}=this._projectedFullExtent??this.fullExtent;if(!u?.equals(e.spatialReference)){const{projectLoad:t,projectExecute:i}=await(import("../../geometry/operators/projectOperator.js"));await t();const r=i(this.fullExtent,e.spatialReference);o=r.xmin,l=r.ymax,this._projectedFullExtent=r}const p=e.width/t,c=e.height/i,m=Math.floor((e.xmin-o)/p),h=Math.floor((l-e.ymax)/c),f=m+t,g=h+i,y=Math.floor(m/Ue),R=Math.floor(h/Ue),x=Math.ceil(f/Ue)-1,I=Math.ceil(g/Ue)-1,w=Ue*p,v=Ue*c,b=[];for(let r=R;r<=I;r++){const t=l-r*v,i=t-v;for(let r=y;r<=x;r++){const n=o+r*w,a=new d({xmin:n,ymin:i,xmax:n+w,ymax:t,spatialReference:e.spatialReference});b.push(this._exportTileQueue.push({extent:a,width:Ue,height:Ue,options:s},{signal:s.signal}))}}const _=await Promise.all(b);if(_.some(e=>null==e.pixelBlock))return{extent:e,pixelBlock:null};return{extent:e,pixelBlock:this._rasterJobHandler?await this._rasterJobHandler.mosaicPixelData({pixelBlocks:_,destExtent:e},{signal:s.signal,transferPixelsToWorker:!0}):S(_,e)?.pixelBlock}}async _fetchPixels(e,t,i,r={}){const s=r.applyRendering?void 0:new T({layer:this,requestRawData:!0,interpolation:r.interpolation??"nearest",bandIds:r.bandIds??[]}),n=this.getExportImageServiceParameters(e,t,i,r.timeExtent,s);if(null==n)return{extent:e,pixelBlock:null};delete n.pixelType,r.bandIds||delete n.bandIds,delete n.compressionQuality;const a={imageServiceParameters:n,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:!1,returnImageBitmap:!1,signal:r.signal},{pixelData:o}=await this._requestArrayBuffer(a);return o??{extent:e,pixelBlock:null}}fetchKeyProperties(e){return i($e(this.parsedUrl)+"/keyProperties",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>e.data)}fetchRasterAttributeTable(e){return this.version<10.1?Promise.reject(new r("#fetchRasterAttributeTable()","Failed to get rasterAttributeTable")):i($e(this.parsedUrl)+"/rasterAttributeTable",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>Ae.fromJSON(e.data))}getCatalogItemRasterInfo(e,t){const i={...t,query:this._getQueryParams()};return qe($e(this.parsedUrl),e,i)}async getCatalogItemICSInfo(e,t){const{data:r}=await i($e(this.parsedUrl)+"/"+e+"/info/ics",{query:this._getQueryParams(),...t}),s=r?.ics;if(!s)return;let n=null;try{n=(await i($e(this.parsedUrl)+"/"+e+"/info",{query:this._getQueryParams(),...t})).data.extent}catch{}if(!n?.spatialReference)return{ics:s,icsToPixelTransform:null,icsExtent:null,northDirection:null};const a=this.version>=10.7?i($e(this.parsedUrl)+"/"+e+"/info/icstopixel",{query:this._getQueryParams(),...t}).then(e=>e.data).catch(()=>({})):{},o=n.spatialReference,l={geometries:JSON.stringify({geometryType:"esriGeometryEnvelope",geometries:[n]}),inSR:y(o),outSR:"0:"+e},u=i($e(this.parsedUrl)+"/project",{query:this._getQueryParams(l),...t}).then(e=>e.data).catch(()=>({})),p=5,c=(n.xmin+n.xmax)/2,m=(n.ymax-n.ymin)/(p+1),h=n.ymin+m,f=[];for(let i=0;i<p;i++)f.push({x:c,y:h+m*i});const R={geometries:JSON.stringify({geometryType:"esriGeometryPoint",geometries:f}),inSR:y(o),outSR:"0:"+e},x=i($e(this.parsedUrl)+"/project",{query:this._getQueryParams(R),...t}).then(e=>e.data).catch(()=>({})),I=await Promise.all([a,u,x]);let w=I[0].ipxf;if(null==w){const e=s.geodataXform?.xf_0;"topup"===e?.name?.toLowerCase()&&6===e?.coefficients?.length&&(w={affine:{name:"ics [sensor: Frame] to pixel (column, row) transformation",coefficients:e.coefficients,cellsizeRatio:0,type:"GeometricXform"}})}const v=d.fromJSON(I[1]?.geometries?.[0]);v&&(v.spatialReference=new g({wkid:0,imageCoordinateSystem:s}));const b=I[2].geometries?I[2].geometries.filter(e=>null!=e?.x&&null!=e.y&&"NaN"!==e.x&&"NaN"!==e.y):[],S=b.length;if(S<3)return{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:null};let _=0,F=0,D=0,O=0;for(let i=0;i<S;i++)_+=b[i].x,F+=b[i].y,D+=b[i].x*b[i].x,O+=b[i].x*b[i].y;const T=(S*O-_*F)/(S*D-_*_);let M=0;const C=b[p-1].x>b[0].x,q=b[p-1].y>b[0].y;return T===1/0?M=q?90:270:0===T?M=C?0:180:T>0?M=C?180*Math.atan(T)/Math.PI:180*Math.atan(T)/Math.PI+180:T<0&&(M=q?180+180*Math.atan(T)/Math.PI:360+180*Math.atan(T)/Math.PI),{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:M}}async generateRasterInfo(e,t){const i=m(K,e),s={...t,query:this._getQueryParams()};if(!i||"none"===i.functionName?.toLowerCase()||this._isVectorFieldResampleFunction(i))return this.serviceRasterInfo??Te($e(this.parsedUrl),this.sourceJSON,s);const n=He(i);if(!n)throw new r("imagery-layer:generate-raster-info","the rendering rule is not supported");if(this._functionRasterInfos[n])return this._functionRasterInfos[n];const a=Me($e(this.parsedUrl),i,s);this._functionRasterInfos[n]=a;try{const t=await a,{rasterFunction:i}=this;return(i===e||JSON.stringify(i)===JSON.stringify(e))&&JSON.stringify(this.rasterInfo)!==JSON.stringify(t)&&(this.rasterInfo=t),t}catch(o){throw this._functionRasterInfos[n]=null,o}}getExportImageServiceParameters(e,t,i,r,s){e=e.clone().shiftCentralMeridian();const n=xe(e.spatialReference,$e(this.parsedUrl));s??=this.exportImageServiceParameters;const a=s.toJSON(),{bandIds:o,noData:l}=a;let{renderingRule:u}=a;const p=this.rasterFunction?.rasterFunctionDefinition,c=this.renderer?.type,m=!c||"raster-stretch"===c||"raster-colormap"===c||"unique-value"===c||"class-breaks"===c||"raster-shaded-relief"===c;if(o?.length&&this._hasRasterFunction(this.rasterFunction)&&!p&&m){const e={rasterFunction:"ExtractBand",rasterFunctionArguments:{BandIds:o}};if("Stretch"===u.rasterFunction)e.rasterFunctionArguments.Raster=u.rasterFunctionArguments.Raster,u.rasterFunctionArguments.Raster=e;else if("Colormap"===u.rasterFunction){const t=u.rasterFunctionArguments.Raster;"Stretch"===t?.rasterFunction?(e.rasterFunctionArguments.Raster=t.rasterFunctionArguments.Raster,t.rasterFunctionArguments.Raster=e):(e.rasterFunctionArguments.Raster=t,u.rasterFunctionArguments.Raster=e)}else e.rasterFunctionArguments.Raster=u,u=e;a.bandIds=void 0}else a.bandIds=o?.join(",");Array.isArray(l)&&l.length>0&&(a.noData=l.join(","));const h=this._processMultidimensionalIntersection(null,r,s.mosaicRule);if(h.isOutSide)return null;a.mosaicRule=null!=h.mosaicRule?JSON.stringify(h.mosaicRule):null,r=h.timeExtent,a.renderingRule=this._getRenderingRuleString(K.fromJSON(u));const d={};if(null!=r){const{start:e,end:t}=r.toJSON();e&&t&&e===t?d.time=""+e:null==e&&null==t||(d.time=`${e??"null"},${t??"null"}`)}return{bbox:e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:n,imageSR:n,size:t+","+i,...a,...d}}async getSamples(e,t){const i=await this._fetchCapabilities(t?.signal);if(!i?.operations.supportsGetSamples)throw new r("imagery-layer:get-samples","getSamples operation is not supported on the input image service");e=s(e);const{raster:n}=this;return n&&null==e.raster&&(e.raster=n),Ie(this.url,e,this._getRequestOptions(t))}async identify(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsIdentify)throw new r("imagery-layer:identify","identify operation is not supported on the input image service");e=s(e),this.version<10.91&&"extent"===e.geometry?.type&&(e.geometry=f.fromExtent(e.geometry));const i=this._processMultidimensionalIntersection(e.geometry,e.timeExtent,e.mosaicRule||this.mosaicRule);if(i.isOutSide)throw new r("imagery-layer:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");e.timeExtent=i.timeExtent,e.mosaicRule=i.mosaicRule;const{raster:n,rasterFunction:a}=this;return a&&null==e.rasterFunction&&(e.rasterFunction=a),n&&null==e.raster&&(e.raster=n),we(this.url,e,this._getRequestOptions(t))}async imageToMap(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMap)throw new r("imagery-layer:image-to-map","imageToMap operation is not supported on the input image service");return ve($e(this.parsedUrl),e,this._getRequestOptions(t))}async imageToMapMultiray(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMapMultiray)throw new r("imagery-layer:image-to-map-multiray","imageToMapMultiray operation is not supported on the input image service");return be($e(this.parsedUrl),e,this._getRequestOptions(t))}async mapToImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMapToImage)throw new r("imagery-layer:map-to-image","mapToImage operation is not supported on the input image service");return Se($e(this.parsedUrl),e,this._getRequestOptions(t))}async findImages(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsFindImages)throw new r("imagery-layer:find-images","findImages operation is not supported on the input image service");return _e($e(this.parsedUrl),e,this._getRequestOptions(t))}async getImageUrl(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsGetImageUrl)throw new r("imagery-layer:get-image-url","getImageUrl operation is not supported on the input image service");return Fe($e(this.parsedUrl),e,this._getRequestOptions(t))}createQuery(){return new Ve({outFields:["*"],returnGeometry:!0,where:this.definitionExpression||"1=1"})}async queryBoundary(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryBoundary)throw new r("imagery-layer:query-boundary","queryBoundary operation is not supported on the input image service");return e=e??{outSpatialReference:this.spatialReference},De($e(this.parsedUrl),e,this._getRequestOptions(t))}async queryExtent(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const{where:i,objectIds:r,geometry:s,timeExtent:n,start:a,num:o,pixelSize:l}=e,u=null!=i&&"1=1"!==i,p=null!=r&&r.length>0,c=null!=s&&("extent"!==s.type||!s.equals(this.fullExtent)),m=null!=l,h=null!=a||null!=o,{timeInfo:d}=this,f=null!=n&&null!=d&&!n.equals(d.fullTimeExtent);if(!(u||p||c||m||f||h)){const i=await Ne(this.url,e,t),{outSpatialReference:r}=e;if(!r||r.equals(this.spatialReference))return{count:i,extent:this.fullExtent.clone()};const{projectLoad:s,projectExecute:n}=await(import("../../geometry/operators/projectOperator.js"));await s();return{count:i,extent:n(this.fullExtent,r)}}return je(this.url,e,t)}async queryRasters(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const i=await Ee(this.url,e,t),r=this.graphicOrigin;return i.features.forEach(e=>{e.layer=this,e.origin=r}),i}async queryObjectIds(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Pe(this.url,e,t)}async queryGPSInfo(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryGPSInfo)throw new r("imagery-layer:query-gps-info","queryGPSInfo operation is not supported on the input image service");return e=e??{where:"1=1"},Oe($e(this.parsedUrl),e,this._getRequestOptions(t))}async queryRasterCount(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Ne(this.url,e,t)}async queryVisibleRasters(e,t){if(!e)throw new r("imagery-layer: query-visible-rasters","missing query parameter");await this.load();const{pixelSize:i,returnDomainValues:s,returnTopmostRaster:n,showNoDataRecords:a}=t||{pixelSize:null,returnDomainValues:!1,returnTopmostRaster:!1,showNoDataRecords:!1};let o=!1,l=null,u=null;const p=$.servicePixelValue.toLowerCase(),c=this._rasterFunctionNamesIndex;if(null!=e.outFields&&(o=e.outFields.some(e=>!e.toLowerCase().startsWith(p)),this.version>=10.4)){const t=e.outFields.filter(e=>e.toLowerCase().startsWith(p)&&e.length>p.length).map(e=>{const t=e.slice(p.length+1);return[this._updateRenderingRulesFunctionName(t,c),t]});l=t.map(e=>new K({functionName:e[0]})),u=t.map(e=>e[1]);const{rasterFunction:i}=this;0===l.length?i?.functionName?(l.push(i),u.push(i.functionName)):l=null:i?.functionName&&!l.some(e=>e.functionName===i.functionName)&&(l.push(i),u.push(i.functionName))}const m=null==e.outSpatialReference||e.outSpatialReference.equals(this.spatialReference),{multidimensionalSubset:h}=this;let d=e.timeExtent||this.timeExtent;if(h){const{isOutside:t,intersection:i}=R(h,{geometry:e.geometry,timeExtent:e.timeExtent,multidimensionalDefinition:this.exportImageServiceParameters.mosaicRule?.multidimensionalDefinition});if(t)throw new r("imagery-layer:query-visible-rasters","the request cannot be fulfilled when falling outside of the multidimensional subset");null!=i?.timeExtent&&(d=i.timeExtent)}const g=this._combineMosaicRuleWithTimeExtent(this.exportImageServiceParameters.mosaicRule,d);let y=e.geometry;this.version<10.91&&"extent"===y?.type&&(y=f.fromExtent(y));const I=this._getQueryParams({geometry:y,timeExtent:d,mosaicRule:g,rasterFunction:this.version<10.4?this.rasterFunction:null,rasterFunctions:l,pixelSize:i,returnCatalogItems:o,returnGeometry:m,raster:this.raster,maxItemCount:n?1:null});delete I.f;const w=new Qe(I);try{await this._generateRasterInfo(this.rasterFunction);const i=await we(this.url,w,{signal:t?.signal,query:{...this.customParameters}}),r=e.outFields,n=null!=i.value&&i.value.toLowerCase().includes("nodata"),l=o&&!m&&i?.catalogItems?.features.length&&(a||!n),p=this.multidimensionalInfo&&"raster-dataset"===this.sourceType?x({rasterInfo:this.rasterInfo,multidimensionalDefinition:g?.multidimensionalDefinition,timeExtent:d,multidimensionalSubset:this.multidimensionalSubset}):null;if(!l)return this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p});const c=this.objectIdField||"ObjectId",h=i.catalogItems?.features??[],f=h.map(e=>e.attributes?.[c]),y=new Ve({objectIds:f,returnGeometry:!0,outSpatialReference:e.outSpatialReference,outFields:[c]}),R=await this.queryRasters(y);return R?.features?.length&&R.features.forEach(t=>{h.forEach(i=>{i.attributes[c]===t.attributes[c]&&t.geometry&&(i.geometry=t.geometry.clone(),null!=e.outSpatialReference&&(i.geometry.spatialReference=e.outSpatialReference))})}),this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p})}catch{throw new r("imagery-layer:query-visible-rasters","encountered error when querying visible rasters")}}async fetchVariableStatisticsHistograms(e,t){const r=i($e(this.parsedUrl)+"/statistics",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.statistics),s=i($e(this.parsedUrl)+"/histograms",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.histograms),n=await Promise.all([r,s]);return n[0]&&n[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),{statistics:n[0]||null,histograms:n[1]||null}}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo.multidimensionalInfo;return I(this.multidimensionalSubset,t)}async _fetchService(e){await this._fetchServiceInfo(e);const t=this.sourceJSON,i=null!=this.serviceRasterInfo?Promise.resolve(this.serviceRasterInfo):Te($e(this.parsedUrl),t,{signal:e,query:this._getQueryParams()}).then(e=>(this._set("serviceRasterInfo",e),this._set("multidimensionalInfo",e.multidimensionalInfo),Ce(e,t),e)),r=!this.rasterInfo&&this._hasRasterFunction(this.rasterFunction)?this._generateRasterInfo(this.rasterFunction,{signal:e}):Promise.resolve(this.rasterInfo),s=this.rasterFunctionInfos?.every(e=>null!=e.functionType)?null:this._getRasterFunctionInfos();return Promise.all([i,r,s]).then(e=>{e[1]?this._set("rasterInfo",e[1]):this._set("rasterInfo",e[0]),e[2]&&(t.rasterFunctionInfos=e[2],this.setAtOrigin("rasterFunctionInfos",e[2],"service")),this.internalRenderer&&!this._isSupportedRenderer(this.internalRenderer)&&(this._set("internalRenderer",null),n.getLogger(this).warn("ArcGISImageService","Switching to the default renderer. Renderer applied is not valid for this Imagery Layer")),this._set("internalRenderer",this._configRenderer(this.renderer)),this.addHandles([o(()=>this.rasterFunction,e=>{(this.renderer||this.symbolizer||this.popupEnabled&&this.popupTemplate)&&this._generateRasterInfo(e).then(e=>{e&&(this.rasterInfo=e)})})]);const{serviceRasterInfo:i}=this;null!=i.multidimensionalInfo&&this._updateMultidimensionalDefinition(i)})}_combineMosaicRuleWithTimeExtent(e,t){const i=this.timeInfo,{multidimensionalInfo:r}=this.serviceRasterInfo;if(null==e||null==r||null==t||null==i?.startField)return e;const{startField:s}=i,n=r.variables.some(e=>e.dimensions.some(e=>e.name===s))?s:"StdTime";if(e=e.clone(),"mosaic-dataset"===this.sourceType)return e.multidimensionalDefinition=e.multidimensionalDefinition?.filter(e=>e.dimensionName!==n),this._cleanupMultidimensionalDefinition(e);e.multidimensionalDefinition=e.multidimensionalDefinition||[];const a=e.multidimensionalDefinition.filter(e=>e.dimensionName===n),o=null!=t.start?t.start.getTime():null,l=null!=t.end?t.end.getTime():null,u=null==o||null==l||o===l,p=u?[o||l]:[[o,l]],c=this.version>=10.8;if(a.length)a.forEach(e=>{e.dimensionName===n&&(c?(e.dimensionName=null,e.isSlice=!1,e.values=[]):(e.isSlice=u,e.values=p))});else if(!c){const t=e.multidimensionalDefinition.filter(e=>null!=e.variableName&&null==e.dimensionName);t.length?t.forEach(e=>{e.dimensionName=n,e.isSlice=u,e.values=p}):e.multidimensionalDefinition.push(new O({variableName:"",dimensionName:n,isSlice:u,values:p}))}return this._cleanupMultidimensionalDefinition(e)}_cleanupMultidimensionalDefinition(e){return null==e?null:(e.multidimensionalDefinition&&(e.multidimensionalDefinition=e.multidimensionalDefinition.filter(e=>!(!e.variableName&&!e.dimensionName)),0===e.multidimensionalDefinition.length&&(e.multidimensionalDefinition=null)),"mosaic-dataset"!==this.sourceType&&null==e.multidimensionalDefinition?null:e)}async _prepareForQuery(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQuery)throw new r("imagery-layer:query-rasters","query operation is not supported on the input image service");const i=null!=e?m(Ve,e):this.createQuery();return t=this._getRequestOptions(t),this.raster&&(t.query={...t.query,raster:this.raster}),{query:i,requestOptions:t}}_isSupportedRenderer(e){const{rasterInfo:t,rasterFunction:i}=this;return"unique-value"===e.type&&this._hasRasterFunction(i)&&1===t?.bandCount&&["u8","s8"].includes(t.pixelType)||null!=t&&null!=e&&te(t).includes(e.type)}async _fetchCapabilities(e){return this.capabilities||await this._fetchServiceInfo(e),this.capabilities}async _fetchServiceInfo(e){let t=this.sourceJSON;if(!t){const{data:r,ssl:s}=await i($e(this.parsedUrl),{query:this._getQueryParams(),signal:e});t=r,this.sourceJSON=t,s&&(this.url=this.url.replace(/^http:/i,"https:"))}if(t.capabilities?.toLowerCase().split(",").map(e=>e.trim()).indexOf("tilesonly")>-1)throw new r("imagery-layer:fetch-service-info","use ImageryTileLayer to open tiles-only image services");this.read(t,{origin:"service",url:this.parsedUrl})}_isMosaicDataset(e){return e.serviceSourceType?"esriImageServiceSourceTypeMosaicDataset"===e.serviceSourceType:e.fields?.length>0}_isMosaicRuleSupported(e){if(!e)return!1;const t=this._isMosaicDataset(e),i=e.currentVersion>=10.71&&e.hasMultidimensions&&!(e.fields?.length>1);return t||i}_isVectorFieldResampleFunction(e){if(null==e)return!1;const{functionName:t,functionArguments:i}=e,r="resample"===t?.toLowerCase(),s=i?.ResampleType||i?.resampleType;return r&&(7===s||10===s)}_configRenderer(e){const{rasterInfo:t}=this;if(!this.isRenderedFormat&&!this.pixelFilter||this._isVectorDataSet()){const i=this.mosaicRule?.multidimensionalDefinition?.[0].variableName,r=ie({variableName:i,rasterFunctionName:this.rasterFunction?.functionName,presetRenderers:this.presetRenderers});if(!this.bandIds&&t.bandCount>=3){const e=r?.bandIds??ee(t);!e||3===t.bandCount&&0===e[0]&&1===e[1]&&2===e[2]||(this.bandIds=e)}e||(e=r?.renderer??Z(t,{bandIds:this.bandIds,variableName:this.rasterFunction?null:i}));const s=re(e.toJSON());this.symbolizer?(this.symbolizer.rendererJSON=s,this.symbolizer.rasterInfo=t):this.symbolizer=new se({rendererJSON:s,rasterInfo:t}),this.symbolizer.bind().success||(this.symbolizer=null)}return e}_clonePixelData(e){return null==e?e:{extent:e.extent&&e.extent.clone(),pixelBlock:null!=e.pixelBlock?e.pixelBlock.clone():null}}_getQueryParams(e){null!=e?.renderingRule&&"string"!=typeof e.renderingRule&&(e.renderingRule=this._getRenderingRuleString(e.renderingRule));const{raster:t,viewId:i}=this;return{raster:t,viewId:i,f:"json",...e,...this.customParameters}}_getRequestOptions(e){return{...e,query:{...e?.query,...this.customParameters}}}_decodePixelBlock(e,t,i){return this._rasterJobHandler?this._rasterJobHandler.decode({data:e,options:t}):v(e,t,i)}async _getRasterFunctionInfos(e){const t=this.sourceJSON.rasterFunctionInfos;if(this.loaded||!t?.length)return t;if(t&&this.version>=10.3){if(1===t.length&&"none"===t[0].name.toLowerCase())return[{thumbnail:"",functionType:0,...t[0]}];const r=await i($e(this.parsedUrl)+"/rasterFunctionInfos",{query:this._getQueryParams(),signal:e});return r.data?.rasterFunctionInfos}return null}_canRequestImageElement(e){return!this.pixelFilter&&(!e||e.includes("png"))}async _requestArrayBuffer(e){const{imageProps:t,requestAsImageElement:s,returnImageBitmap:n,signal:a}=e;if(s&&this._canRequestImageElement(t.format)){const r=`${$e(this.parsedUrl)}/exportImage`,{data:s}=await i(r,{responseType:n?"blob":"image",query:this._getQueryParams({f:"image",...this.refreshParameters,...e.imageServiceParameters}),signal:a});if(s instanceof Blob){const{bitmap:e}=await q(s,r,{signal:a});return{imageBitmap:e,params:t}}return{imageOrCanvasElement:s,params:t}}const o=this._initJobHandler(),l=i($e(this.parsedUrl)+"/exportImage",{responseType:"array-buffer",query:this._getQueryParams({f:"image",...e.imageServiceParameters}),signal:a}),u=(await Promise.all([l,o]))[0].data,p=t.format||"jpgpng";let c=p;if("bsq"!==c&&"bip"!==c&&(c=b(u)),!c)throw new r("imagery-layer:fetch-image","unsupported format signature "+String.fromCharCode.apply(null,new Uint8Array(u)));const m={signal:a},h=this._decodePixelBlock(u,{width:t.width,height:t.height,format:p,applyJpegMask:!0},m);return{pixelData:{pixelBlock:await h,extent:t.extent},params:t}}_generateRasterInfo(e,t){return this.generateRasterInfo(e,t).catch(()=>null)}_isValidCustomizedMosaicRule(e){return e&&JSON.stringify(e.toJSON())!==JSON.stringify(this.defaultMosaicRule?.toJSON())}_updateMultidimensionalDefinition(e){if(this._isValidCustomizedMosaicRule(this.mosaicRule))return;let t=w(e,{multidimensionalSubset:this.multidimensionalSubset});if(null!=t&&t.length>0){this.mosaicRule=this.mosaicRule||new j;const e=this.mosaicRule.multidimensionalDefinition;!this.sourceJSON.defaultVariableName&&this.rasterFunction&&"none"!==this.rasterFunction.functionName?.toLowerCase()&&t.forEach(e=>e.variableName=""),t=t.filter(({variableName:e,dimensionName:t})=>e&&"*"!==e||t),!e?.length&&t.length&&(this.mosaicRule.multidimensionalDefinition=t)}}_processVisibleRastersResponse(e,i){i=i||{};const r=e.value,{templateRRFunctionNames:s,showNoDataRecords:n,returnDomainValues:a,templateFields:o}=i,l=e.processedValues;let u=e.catalogItems?.features,p=e.properties?.Values?.map(e=>e.replaceAll(/ /gi,", "))||[];const c=this.objectIdField||"ObjectId",m="string"==typeof r&&r.toLowerCase().includes("nodata"),h=[];if(r&&!u&&(!m||n)){const e={};e[c]=0;p=[r],u=[new t({geometry:this.fullExtent,attributes:e})],this.multidimensionalInfo&&"raster-dataset"===this.sourceType&&W(this.rasterFields,e,i.effectiveMultidimensionalDefinition)}if(!u)return[];this._updateResponseFieldNames(u,o),m&&!n&&(u=[]);const{itemPixelValue:d,servicePixelValue:f}=$,g=this.rasterFields.some(e=>e.name===d),y=this.graphicOrigin;for(let t=0;t<u.length;t++){const e=u[t];if(null!=r){const i=p[t],a=this.rasterFunction&&l&&l.length>0&&s&&s.length>0&&s.includes(this.rasterFunction.functionName)?l[s.indexOf(this.rasterFunction.functionName)]:r;if("nodata"===i.toLowerCase()&&!n)continue;g&&(e.attributes[d]=i),e.attributes[f]=a,this._updateFeatureWithMagDirValues(e,i);const o=this.fields&&this.fields.length>0;let u=this.rasterFunction&&null!=this.serviceRasterInfo.attributeTable?o?i:r:a;this.rasterFunction||(u=o?i:r),this._updateFeatureWithRasterAttributeTableValues(e,u)}if(e.sourceLayer=e.layer=this,e.origin=y,a&&this._updateFeatureWithDomainValues(e),s&&l&&s.length===l.length)for(let t=0;t<s.length;t++){const i=`${$.servicePixelValue}.${s[t]}`;e.attributes[i]=l[t]}h.push(u[t])}return h}_processMultidimensionalIntersection(e,t,i){const{multidimensionalSubset:r}=this;if(!r)return{isOutSide:!1,timeExtent:t,mosaicRule:i=this._combineMosaicRuleWithTimeExtent(i,t)};if(r){const{isOutside:i,intersection:s}=R(r,{geometry:e,timeExtent:t});if(i)return{isOutSide:!0,timeExtent:null,mosaicRule:null};null!=s?.timeExtent&&(t=s.timeExtent)}if(i=this._combineMosaicRuleWithTimeExtent(i,t),i?.multidimensionalDefinition){const{isOutside:e}=R(r,{multidimensionalDefinition:i.multidimensionalDefinition});if(e)return{isOutSide:!0,timeExtent:null,mosaicRule:null}}return{isOutSide:!1,timeExtent:t,mosaicRule:i}}_updateFeatureWithRasterAttributeTableValues(e,t){const i=this.rasterInfo.attributeTable||this.serviceRasterInfo.attributeTable;if(null==i)return;const{features:r,fields:s}=i,n=s.map(e=>e.name).find(e=>"value"===e.toLowerCase());if(!n)return;const a=r.filter(e=>e.attributes[n]===(null!=t?parseInt(t,10):null));a&&a[0]&&s.forEach(t=>{const i=X+t.name;e.attributes[i]=a[0].attributes[t.name]})}_updateFeatureWithMagDirValues(e,t){if(!this._isVectorDataSet())return;const i=t.split(/,\s*/).map(e=>parseFloat(e)),r=i.map(e=>[e]),s=i.map(e=>({minValue:e,maxValue:e,noDataValue:null})),n=new E({height:1,width:1,pixelType:"f32",pixels:r,statistics:s});null!=this.pixelFilter&&this.pixelFilter({pixelBlock:n,extent:new d(0,0,0,0,this.spatialReference)});const a="esriImageServiceDataTypeVector-MagDir"===this.serviceDataType?[n.pixels[0][0],n.pixels[1][0]]:_([n.pixels[0][0],n.pixels[1][0]]);e.attributes[$.magnitude]=a[0],e.attributes[$.direction]=a[1]}_updateFeatureWithDomainValues(e){const t=this.fields&&this.fields.filter(e=>"coded-value"===e.domain?.type);null!=t&&t.forEach(t=>{const i=e.attributes[t.name];if(null!=i){const r=t.domain.codedValues.find(e=>e.code===i);r&&(e.attributes[t.name]=r.name)}})}_updateResponseFieldNames(e,t){if(!t||t.length<1)return;const i=this.fieldsIndex;null!=i&&e.forEach(e=>{if(e?.attributes)for(const r of t){const t=i.get(r)?.name;t&&t!==r&&(e.attributes[r]=e.attributes[t],delete e.attributes[t])}})}_getRenderingRuleString(e){if(e){let t=e.toJSON();return t=t.rasterFunctionDefinition??t,(t.thumbnail||t.thumbnailEx)&&(t.thumbnail=t.thumbnailEx=null),JSON.stringify(t)}return null}_hasRasterFunction(e){return null!=e?.functionName&&"none"!==e.functionName.toLowerCase()}_updateRenderingRulesFunctionName(e,t){if(!e||e.length<1)return;if("Raw"===e)return e.replace("Raw","None");const i=e.toLowerCase().replaceAll(/ /gi,"_");return t.has(i)?t.get(i):e}_isRFTJson(e){return e?.name&&e.arguments&&e.function&&e.hasOwnProperty("functionType")}_isVectorDataSet(){return"esriImageServiceDataTypeVector-UV"===this.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===this.serviceDataType}_applyMosaicAndRenderingRules(e){const{raster:t,mosaicRule:i,rasterFunction:r}=this;r&&null==e.rasterFunction&&(e.rasterFunction=r),i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}async _updateCurrentRasterInfo(e){if(this.renderer||this.symbolizer){const t=await this._generateRasterInfo(this.rasterFunction,{signal:e});t&&(this.rasterInfo=t)}}_applyMosaicRule(e){const{raster:t,mosaicRule:i}=this;i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}_readCapabilities(e){const t=e.capabilities?e.capabilities.toLowerCase().split(",").map(e=>e.trim()):["image","catalog"],{currentVersion:i,maxRecordCount:r}=e,s=t.includes("image"),n="esriImageServiceDataTypeElevation"===e.serviceDataType,a=!(!e.spatialReference&&!e.extent?.spatialReference),o=t.includes("edit"),l=t.includes("mensuration")&&a,u=null==e.mensurationCapabilities?[]:e.mensurationCapabilities.toLowerCase().split(",").map(e=>e.trim()),p=l&&u.includes("basic"),c=this._isMosaicDataset(e)&&t.includes("catalog"),m=t.includes("download"),h=i>=10.7&&n||i>=11.4&&(n||l&&u.includes("3d")),d=c&&e.fields&&e.fields.length>0,f=d&&e.supportsAdvancedQueries?e.advancedQueryCapabilities:void 0;return{data:{supportsAttachment:!1},operations:{supportsComputeHistograms:s,supportsExportImage:s,supportsIdentify:s,supportsImageToMap:i>=11.2&&c,supportsImageToMapMultiray:i>=11.2&&c,supportsMapToImage:i>=11.2&&c,supportsFindImages:i>=11.2&&c,supportsGetImageUrl:i>=11.3&&m,supportsMeasure:l,supportsMeasureFromImage:i>=11.2,supportsDownload:m,supportsQuery:d,supportsGetSamples:i>=10.2&&s,supportsProject:i>=10.3&&s,supportsComputeStatisticsHistograms:i>=10.4&&s,supportsQueryBoundary:i>=10.6&&s,supportsCalculateVolume:h,supportsComputePixelLocation:i>=10.7&&c,supportsComputeAngles:i>=10.91,supportsQueryGPSInfo:i>=11.2&&c,supportsAdd:o,supportsDelete:o,supportsEditing:o,supportsUpdate:o,supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsChangeTracking:!1,supportsQueryAttachments:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsExceedsLimitStatistics:!1,supportsQueryAnalytics:!1,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryTopFeatures:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:r,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,relativeTimeBinWindow:void 0,supportsStatisticsAggregatedIds:!!f?.supportsAggregateIds,supportsStatistics:!!f?.supportsStatistics,supportsOrderBy:!!f?.supportsOrderBy,supportsDistinct:!!f?.supportsDistinct,supportsPagination:!!f?.supportsPagination,supportsPaginationOnAggregatedQueries:!!f?.supportsPaginationOnAggregatedQueries,supportsStandardizedQueriesOnly:!!f?.useStandardizedQueries,supportsPercentileStatistics:!!f?.supportsPercentileStatistics,supportsCentroid:!!f?.supportsReturningGeometryCentroid,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDistance:!!f?.supportsQueryWithDistance,supportsOutDistance:!!f?.supportsOutDistance,supportsExtent:!!f?.supportsReturningQueryExtent,supportsGeometryProperties:!!f?.supportsReturningGeometryProperties,supportsHavingClause:!!f?.supportsHavingClause,supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsReturnExceededLimitGeometries:!1,supportsMaxRecordCountFactor:!1,supportsSqlExpression:f?.supportsSqlExpression??!!f,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsFormatPBFWithCurves:!1,supportsDisjointSpatialRelationship:!1,supportsCacheHint:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!!f?.supportsDefaultSR,supportsFullTextSearch:!1,supportsCompactGeometry:!1,standardMaxRecordCount:void 0,standardMaxRecordCountNoGeometry:void 0,tileMaxRecordCount:void 0,supportsTrueCurve:!1},mensuration:{supportsDistanceAndAngle:p,supportsAreaAndPerimeter:p,supportsPointOrCentroid:p,supportsHeightFromBaseAndTop:l&&u.includes("base-top height"),supportsHeightFromBaseAndTopShadow:l&&u.includes("base-top shadow height"),supportsHeightFromTopAndTopShadow:l&&u.includes("top-top shadow height"),supports3D:l&&u.includes("3d")}}}};function $e(e){return e?.path??""}return e([u({clonable:!1})],We.prototype,"_functionRasterInfos",void 0),e([u({readOnly:!0})],We.prototype,"_serviceSupportsMosaicRule",void 0),e([Je("_serviceSupportsMosaicRule",["currentVersion","fields"])],We.prototype,"readServiceSupportsMosaicRule",null),e([u({readOnly:!0})],We.prototype,"_rasterFunctionNamesIndex",null),e([u()],We.prototype,"_projectedFullExtent",void 0),e([u({clonable:!1})],We.prototype,"_exportTileQueue",void 0),e([u()],We.prototype,"adjustAspectRatio",void 0),e([u({type:[c],json:{write:!0}})],We.prototype,"bandIds",void 0),e([Je("bandIds")],We.prototype,"readBandIds",null),e([u({readOnly:!0,json:{read:!1}})],We.prototype,"capabilities",void 0),e([Je("service","capabilities",["capabilities","currentVersion","serviceDataType"])],We.prototype,"readCapabilities",null),e([u({type:Number})],We.prototype,"compressionQuality",void 0),e([Be("compressionQuality")],We.prototype,"writeCompressionQuality",null),e([u({type:Number})],We.prototype,"compressionTolerance",void 0),e([Be("compressionTolerance")],We.prototype,"writeCompressionTolerance",null),e([u({json:{read:{source:"copyrightText"}}})],We.prototype,"copyright",void 0),e([u({readOnly:!0})],We.prototype,"defaultMosaicRule",void 0),e([Je("defaultMosaicRule",["defaultMosaicMethod"])],We.prototype,"readDefaultMosaicRule",null),e([u({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],We.prototype,"definitionExpression",void 0),e([u({readOnly:!0,constructOnly:!0})],We.prototype,"exportImageServiceParameters",void 0),e([u()],We.prototype,"rasterInfo",void 0),e([u({readOnly:!0,type:[M]})],We.prototype,"fields",void 0),e([u({readOnly:!0})],We.prototype,"fieldsIndex",null),e([u({type:["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff","bip","bsq"],json:{write:!0}})],We.prototype,"format",null),e([Je("service","format",["serviceDataType"])],We.prototype,"readFormat",null),e([u({type:d})],We.prototype,"fullExtent",void 0),e([u({readOnly:!0})],We.prototype,"hasMultidimensions",void 0),e([u({json:{read:{source:"maxImageHeight"}}})],We.prototype,"imageMaxHeight",void 0),e([u({json:{read:{source:"maxImageWidth"}}})],We.prototype,"imageMaxWidth",void 0),e([u({type:String,json:{type:A.jsonValues,read:A.read,write:A.write}})],We.prototype,"interpolation",void 0),e([u()],We.prototype,"minScale",void 0),e([Je("service","minScale")],We.prototype,"readMinScale",null),e([u()],We.prototype,"maxScale",void 0),e([Je("service","maxScale")],We.prototype,"readMaxScale",null),e([u({type:j})],We.prototype,"mosaicRule",null),e([Je("mosaicRule",["mosaicRule","defaultMosaicMethod"])],We.prototype,"readMosaicRule",null),e([Be("mosaicRule")],We.prototype,"writeMosaicRule",null),e([u()],We.prototype,"multidimensionalInfo",void 0),e([u({type:P,json:{write:!0}})],We.prototype,"multidimensionalSubset",void 0),e([u({json:{type:[Number,[Number]],write:!0}})],We.prototype,"noData",void 0),e([u({type:String,json:{type:Q.jsonValues,read:Q.read,write:Q.write}})],We.prototype,"noDataInterpretation",void 0),e([u({type:String,readOnly:!0,json:{read:{source:["fields"]}}})],We.prototype,"objectIdField",void 0),e([Je("objectIdField")],We.prototype,"readObjectIdField",null),e([u({readOnly:!0})],We.prototype,"geometryType",void 0),e([u({})],We.prototype,"typeIdField",void 0),e([u({})],We.prototype,"types",void 0),e([u({readOnly:!0})],We.prototype,"parsedUrl",null),e([u({type:Function})],We.prototype,"pixelFilter",void 0),e([u()],We.prototype,"raster",void 0),e([u({readOnly:!0})],We.prototype,"sourceType",void 0),e([Je("sourceType",["serviceSourceType","fields"])],We.prototype,"readSourceType",null),e([u()],We.prototype,"viewId",void 0),e([u({types:ne})],We.prototype,"renderer",null),e([u({types:ne,json:{name:"layerDefinition.drawingInfo.renderer",origins:{"web-scene":{types:ae,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],We.prototype,"internalRenderer",null),e([Je("internalRenderer")],We.prototype,"readRenderer",null),e([Be("internalRenderer")],We.prototype,"writeRenderer",null),e([u({clonable:!1})],We.prototype,"symbolizer",void 0),e([u(F)],We.prototype,"opacity",void 0),e([u({readOnly:!0})],We.prototype,"rasterFields",null),e([u({constructOnly:!0})],We.prototype,"rasterFunctionInfos",void 0),e([u({type:K,json:{name:"renderingRule"}})],We.prototype,"rasterFunction",null),e([Je("rasterFunction",["renderingRule","rasterFunctionInfos"])],We.prototype,"readRasterFunction",null),e([u({readOnly:!0})],We.prototype,"serviceDataType",void 0),e([u({readOnly:!0,type:g})],We.prototype,"spatialReference",void 0),e([Je("spatialReference",["spatialReference","extent"])],We.prototype,"readSpatialReference",null),e([u({type:V.apiValues,json:{read:V.read,type:V.jsonValues}})],We.prototype,"pixelType",void 0),e([Be("pixelType")],We.prototype,"writePixelType",null),e([u({constructOnly:!0,type:Y})],We.prototype,"serviceRasterInfo",void 0),e([u()],We.prototype,"sourceJSON",void 0),e([u(D)],We.prototype,"url",void 0),e([u({readOnly:!0})],We.prototype,"version",void 0),e([Je("version",["currentVersion","fields","timeInfo"])],We.prototype,"readVersion",null),We=e([p("esri.layers.mixins.ArcGISImageService")],We),We};export{Ge as ArcGISImageService};
2
+ import{__decorate as e}from"tslib";import t from"../../Graphic.js";import i from"../../request.js";import r from"../../core/Error.js";import{clone as s}from"../../core/lang.js";import n from"../../core/Logger.js";import{QueueProcessor as a}from"../../core/QueueProcessor.js";import{watch as o}from"../../core/reactiveUtils.js";import{urlToObject as l}from"../../core/urlUtils.js";import{property as u,subclass as p}from"../../core/accessorSupport/decorators.js";import{Integer as c,ensureClass as m}from"../../core/accessorSupport/ensureType.js";import{runUntracked as h}from"../../core/accessorSupport/tracking.js";import d from"../../geometry/Extent.js";import f from"../../geometry/Polygon.js";import g from"../../geometry/SpatialReference.js";import{srToRESTValue as y}from"../../geometry/support/spatialReferenceUtils.js";import{intersectMultimensionalSubset as R,getEffectiveMultidimensionalDefinition as x,getSubsetVariablesFromMdInfo as I,getDefaultMultidimensionalDefinition as w}from"../raster/datasets/multidimensionalUtils.js";import{decode as v,getFormat as b}from"../raster/formats/RasterCodec.js";import{mosaicPixelData as S}from"../raster/functions/pixelUtils.js";import{uvComponentToVector as F}from"../raster/functions/vectorFieldUtils.js";import{opacity as _,url as D}from"../support/commonProperties.js";import O from"../support/DimensionalDefinition.js";import{ExportImageServiceParameters as T}from"../support/ExportImageServiceParameters.js";import M from"../support/Field.js";import C from"../support/FieldsIndex.js";import{createBitmap as q}from"../support/imageBitmapUtils.js";import{isSupportedRendererType as N}from"../support/imageryRendererUtils.js";import j from"../support/MosaicRule.js";import P from"../support/MultidimensionalSubset.js";import E from"../support/PixelBlock.js";import{interpolationKebab as A,noDataInterpretationKebab as Q,pixelTypeKebabDict as V}from"../support/rasterEnums.js";import{getServicePixelValueField as J,getItemPixelValueField as B,getRawServicePixelValueField as U,getProcessedServicePixelValueField as z,getMagnitudeField as L,getDirectionField as H,getMultidimensionalFields as G,getRasterAttributeTableFields as k,addMultidimensionalFieldValues as W,commonRasterFieldNames as $,rasterFieldPrefix as X}from"../support/rasterFieldUtils.js";import K from"../support/RasterFunction.js";import Y from"../support/RasterInfo.js";import{createDefaultRenderer as Z,getDefaultBandCombination as ee,getSupportedRendererTypes as te,matchPresetRenderer as ie,normalizeRendererJSON as re}from"../../renderers/support/rasterRendererHelper.js";import se from"../../renderers/support/RasterSymbolizer.js";import{rasterRendererTypes as ne,websceneRasterRendererTypes as ae,read as oe}from"../../renderers/support/rasterTypeUtils.js";import{calculateVolume as le,computeAngles as ue,computePixelSpaceLocations as pe,computeHistograms as ce,computeStatisticsHistograms as me,measureHeight as he,measureAreaAndPerimeter as de,measureDistanceAndAngle as fe,measurePointOrCentroid as ge,measureLengthFromImage as ye,measureAreaFromImage as Re,getImageSpatialReferenceQueryParameter as xe,getSamples as Ie,identify as we,imageToMap as ve,imageToMapMultiray as be,mapToImage as Se,findImages as Fe,getImageUrl as _e,queryBoundary as De,queryGPSInfo as Oe}from"../../rest/imageService.js";import{fetchServiceRasterInfo as Te,generateRasterInfo as Me,patchServiceInfo as Ce}from"../../rest/imageService/fetchRasterInfo.js";import{getCatalogItemRasterInfo as qe}from"../../rest/imageService/getCatalogItemRasterInfo.js";import{executeForCount as Ne}from"../../rest/query/executeForCount.js";import{executeForExtent as je}from"../../rest/query/executeForExtent.js";import{executeForIds as Pe}from"../../rest/query/executeForIds.js";import{executeQueryJSON as Ee}from"../../rest/query/executeQueryJSON.js";import Ae from"../../rest/support/FeatureSet.js";import Qe from"../../rest/support/ImageIdentifyParameters.js";import Ve from"../../rest/support/Query.js";import{reader as Je}from"../../core/accessorSupport/decorators/reader.js";import{writer as Be}from"../../core/accessorSupport/decorators/writer.js";const Ue=512,ze=4096,Le=new Set(["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff"]);function He(e){const t=JSON.stringify(e),i=t.includes('"rasterFunctionDefinition":{'),r=i?t.match(/"type":"(.*?FunctionArguments")/gi):t.match(/"rasterFunction":"(.*?")/gi),s=r?.map(e=>i?e.slice(8,-18):e.slice(18,-1));return s?s.join("/"):null}const Ge=Ge=>{const ke=Ge;let We=class extends ke{constructor(){super(...arguments),this._functionRasterInfos={},this._serviceSupportsMosaicRule=null,this._exportTileQueue=new a({concurrency:4,process:(e,t)=>this._fetchPixels(e.extent,e.width,e.height,{...e.options,signal:t})}),this.adjustAspectRatio=null,this.bandIds=void 0,this.capabilities=null,this.compressionQuality=void 0,this.compressionTolerance=.01,this.copyright=null,this.defaultMosaicRule=null,this.definitionExpression=null,this.exportImageServiceParameters=null,this.rasterInfo=null,this.fields=null,this.fullExtent=null,this.hasMultidimensions=!1,this.imageMaxHeight=4100,this.imageMaxWidth=4100,this.interpolation=void 0,this.minScale=0,this.maxScale=0,this.multidimensionalInfo=null,this.multidimensionalSubset=null,this.noData=null,this.noDataInterpretation=void 0,this.objectIdField=null,this.geometryType="polygon",this.typeIdField=null,this.types=[],this.pixelFilter=null,this.raster=void 0,this.sourceType=null,this.viewId=void 0,this.symbolizer=null,this.rasterFunctionInfos=null,this.serviceDataType=null,this.spatialReference=null,this.pixelType=null,this.serviceRasterInfo=null,this.sourceJSON=null,this.url=null,this.version=void 0}initialize(){this._set("exportImageServiceParameters",new T({layer:this}))}readServiceSupportsMosaicRule(e,t){return this._isMosaicRuleSupported(t)}get _rasterFunctionNamesIndex(){const e=new Map;return!this.rasterFunctionInfos||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.length<1||null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.forEach(t=>{e.set(t.name.toLowerCase().replaceAll(/ /gi,"_"),t.name)}),e}readBandIds(e,t){if(Array.isArray(e)&&e.length>0&&e.every(e=>"number"==typeof e))return e}readCapabilities(e,t){return this._readCapabilities(t)}writeCompressionQuality(e,t,i){null!=e&&"lerc"!==this.format&&(t[i]=e)}writeCompressionTolerance(e,t,i){"lerc"===this.format&&null!=e&&(t[i]=e)}readDefaultMosaicRule(e,t){return this._serviceSupportsMosaicRule?h(()=>j.fromJSON(t)):null}get fieldsIndex(){return this.fields?new C(this.fields):null}set format(e){e&&Le.has(e.toLowerCase())&&this._set("format",e.toLowerCase())}readFormat(e,t){return"esriImageServiceDataTypeVector-UV"===t.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===t.serviceDataType||null!=this.pixelFilter||!1===t.allowRasterFunction?"lerc":"jpgpng"}get isRenderedFormat(){return!this.format||this.format.includes("jpg")||this.format.includes("png")}readMinScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}readMaxScale(e,t){return null!=t.minLOD&&null!=t.maxLOD?e:0}set mosaicRule(e){let t=e;t?.mosaicMethod&&(t=j.fromJSON({...t.toJSON(),mosaicMethod:t.mosaicMethod,mosaicOperation:t.mosaicOperation})),this._set("mosaicRule",t)}readMosaicRule(e,t){const i=e||t.mosaicRule;return i?j.fromJSON(i):this._isMosaicRuleSupported(t)?j.fromJSON(t):null}writeMosaicRule(e,t,i){const{mosaicRule:r}=this;this._isValidCustomizedMosaicRule(r)&&(t[i]=r.toJSON())}readObjectIdField(e,t){if(!e){const i=t.fields.find(e=>"esriFieldTypeOID"===e.type||"oid"===e.type);e=i?.name}return e}get parsedUrl(){return l(this.url)}readSourceType(e,t){return this._isMosaicDataset(t)?"mosaic-dataset":"raster-dataset"}get renderer(){const{activePresetRendererName:e,presetRenderers:t}=this;if(e){const i=t?.find(({name:t})=>t===e);return i?.renderer.clone()}return this.internalRenderer}set renderer(e){this.activePresetRendererName=null,this.internalRenderer=e}set internalRenderer(e){this.loaded&&(e=this._configRenderer(e)),this._set("internalRenderer",e)}readRenderer(e,t,i){const r=t?.layerDefinition?.drawingInfo?.renderer,s=oe(r,i);return null==s?null:("vector-field"===s.type&&t.symbolTileSize&&!r.symbolTileSize&&(s.symbolTileSize=t.symbolTileSize),N(s)||n.getLogger(this).warn("ArcGISImageService","Imagery layer doesn't support given renderer type."),s)}writeRenderer(e,t,i){t.layerDefinition=t.layerDefinition||{},t.layerDefinition.drawingInfo=t.layerDefinition.drawingInfo||{},t.layerDefinition.drawingInfo.renderer=e.toJSON()}get rasterFields(){const e=this.fields?.map(e=>e.clone())??[];e.push(J()),"mosaic-dataset"===this.sourceType&&this.fields?.length&&e.push(B()),this.version>=10.4&&null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.some(({name:e})=>"none"===e.toLowerCase())&&e.push(U()),null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.filter(({name:e})=>"none"!==e.toLowerCase()).forEach(({name:t})=>e.push(z(t)));const{rasterInfo:t}=this;if(this._isVectorDataSet()){const i=t?.multidimensionalInfo?.variables[0].unit?.trim(),r=L(i),s=H();e.push(r,s)}if(t?.multidimensionalInfo&&"raster-dataset"===this.sourceType){const i=G(t.multidimensionalInfo);e.push(...i)}const i=t?.attributeTable;if(null!=i){const t=k(i);e.push(...t)}return e}set rasterFunction(e){let t=e;t?.rasterFunction&&(t=K.fromJSON({...t.toJSON(),rasterFunction:t.rasterFunction,rasterFunctionArguments:t.rasterFunctionArguments})),this._set("rasterFunction",t)}readRasterFunction(e,t){const i=t.rasterFunctionInfos,r=t.renderingRule,s=null!=r&&Object.keys(r).length>0;return s||i?.length&&"None"!==i[0].name?this._isRFTJson(r)?K.fromJSON({rasterFunctionDefinition:r}):K.fromJSON(s?r:{rasterFunctionInfos:i}):null}readSpatialReference(e,t){const i=e||t.extent.spatialReference;return i?g.fromJSON(i):null}writePixelType(e,t,i){null!=this.serviceRasterInfo&&this.pixelType===this.serviceRasterInfo.pixelType||(t[i]=V.toJSON(e))}readVersion(e,t){let i=t.currentVersion;return i||(i=t.hasOwnProperty("fields")||t.hasOwnProperty("timeInfo")?10:9.3),i}applyFilter(e){let t=e;return this.pixelFilter&&(t=this._clonePixelData(e),this.pixelFilter(t)),t}async applyRenderer(e,t){let i=e,{renderer:r,symbolizer:s,pixelFilter:n}=this;const{isRawData:a}=e;if(a&&"lerc"!==this.format&&(r??=Z(this.rasterInfo,{bandIds:this.bandIds,variableName:this.rasterFunction?null:this.mosaicRule?.multidimensionalDefinition?.[0].variableName}),s||(this.symbolizer=new se({rendererJSON:r.toJSON(),rasterInfo:this.rasterInfo}),s=this.symbolizer)),(a||!this.isRenderedFormat)&&r&&s&&!n){await this._updateSymbolizer(s,r);const n=this.bandIds?.length?this.bandIds:ee(this.rasterInfo);i=await this._symbolize({pixelData:e,bandIds:n,symbolizer:s},t)}return i}destroy(){this._shutdownJobHandler()}async calculateVolume(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsCalculateVolume)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return e=s(e),this.mosaicRule&&null==e.mosaicRule&&(e.mosaicRule=this.mosaicRule),le(this.url,e,this._getRequestOptions(t))}async computeAngles(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeAngles)throw new r("imagery-layer:compute-angles","this operation is not supported on the input image service");return ue(this.url,e,this._getRequestOptions(t))}async computePixelSpaceLocations(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputePixelLocation)throw new r("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return pe(this.url,e,this._getRequestOptions(t))}async computeHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeHistograms)throw new r("imagery-layer:compute-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),ce(this.url,e,this._getRequestOptions(t))}async computeStatisticsHistograms(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsComputeStatisticsHistograms)throw new r("imagery-layer:compute-statistics-histograms","this operation is not supported on the input image service");return e=s(e),this._applyMosaicAndRenderingRules(e),me(this.url,e,this._getRequestOptions(t))}async measureHeight(e,t){const i=await this._fetchCapabilities(t?.signal);if(!("base-and-top"===e.operationType?i.mensuration.supportsHeightFromBaseAndTop:"base-and-top-shadow"===e.operationType?i.mensuration.supportsHeightFromBaseAndTopShadow:i.mensuration.supportsHeightFromTopAndTopShadow))throw new r("imagery-layer:measure-height","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),he(this.url,e,this._getRequestOptions(t))}async measureAreaAndPerimeter(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsAreaAndPerimeter&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-area-and-perimeter","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),de(this.url,e,this._getRequestOptions(t))}async measureDistanceAndAngle(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsDistanceAndAngle&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-distance-and-angle","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),fe(this.url,e,this._getRequestOptions(t))}async measurePointOrCentroid(e,t){const i=await this._fetchCapabilities(t?.signal);if(!(i.mensuration.supportsPointOrCentroid&&(!e.is3D||i.mensuration.supports3D)))throw new r("imagery-layer:measure-point-or-centroid","this operation is not supported on the input image service");return e=s(e),this._applyMosaicRule(e),ge(this.url,e,this._getRequestOptions(t))}async measureLengthFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-length-from-image","this operation is not supported on the input image service");if("polyline"!==e.geometry.type)throw new r("imagery-layer:measure-length-from-image","this input geometry must be a polyline");return ye(this.url,e,this._getRequestOptions(t))}async measureAreaFromImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMeasureFromImage)throw new r("imagery-layer:measure-area-from-image","this operation is not supported on the input image service");if("polygon"!==e.geometry.type)throw new r("imagery-layer:measure-area-from-image","this input geometry must be a polygon");return Re(this.url,e,this._getRequestOptions(t))}getField(e){const{fieldsIndex:t}=this;return null!=t?t.get(e):void 0}getFieldDomain(e,t){const i=this.getField(e);return i?i.domain:null}async internalFetchImage(e,t,i,r={}){await this._updateCurrentRasterInfo();const{exportImageServiceParameters:s}=this;let n=!1;if(r.requestRawData&&(await this._initJobHandler(),!s.requestRawData&&"lerc"!==this.format)){n=!0,s.requestRawData=!0;let e=this.bandIds;if(!e?.length){const t=ee(this.rasterInfo),i=Array.from({length:this.rasterInfo.bandCount},(e,t)=>t);i?.join(",")!==t?.join(",")&&(e=t)}s.rawDataRequestBandIds=e}const a=this.getExportImageServiceParameters(e,t,i,r.timeExtent);if(n&&(s.requestRawData=!1,s.rawDataRequestBandIds=null),null==a){if(r.requestAsImageElement&&this._canRequestImageElement(this.format)){const e=document.createElement("canvas");if(e.width=t,e.height=i,r.returnImageBitmap){const{bitmap:t}=await q(e,`${$e(this.parsedUrl)}/exportImage`,r);return{imageBitmap:t}}return{imageOrCanvasElement:e}}const{bandIds:s,rasterInfo:n}=this,a=(s?.length||n.bandCount)??0,o=t*i,l=n.pixelType,u=[];for(let e=0;e<a;e++)u.push(E.createEmptyBand(l,o));return{pixelData:{pixelBlock:new E({width:t,height:i,pixels:u,mask:new Uint8Array(o),pixelType:l}),extent:e}}}const o=!!r.requestAsImageElement&&!this.pixelFilter,l=o&&!!r.returnImageBitmap,u={imageServiceParameters:a,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:o,returnImageBitmap:l,signal:r.signal};return this._requestArrayBuffer(u)}async fetchPixels(e,t,i,s={}){await this._initJobHandler(),s.applyRendering&&await this._updateCurrentRasterInfo();const{imageMaxWidth:n,imageMaxHeight:a}=this;if(t<=n&&i<=a)return this._exportTileQueue.push({extent:e,width:t,height:i,options:s},{signal:s.signal});if(t>ze||i>ze||n<Ue||a<Ue)throw new r("imagery-layer:fetch-pixels",`The image service has a maximum export size of ${n}x${a}. The requested size of ${t}x${i} exceeds this limit.`);let{xmin:o,ymax:l,spatialReference:u}=this._projectedFullExtent??this.fullExtent;if(!u?.equals(e.spatialReference)){const{projectLoad:t,projectExecute:i}=await(import("../../geometry/operators/projectOperator.js"));await t();const r=i(this.fullExtent,e.spatialReference);o=r.xmin,l=r.ymax,this._projectedFullExtent=r}const p=e.width/t,c=e.height/i,m=Math.floor((e.xmin-o)/p),h=Math.floor((l-e.ymax)/c),f=m+t,g=h+i,y=Math.floor(m/Ue),R=Math.floor(h/Ue),x=Math.ceil(f/Ue)-1,I=Math.ceil(g/Ue)-1,w=Ue*p,v=Ue*c,b=[];for(let r=R;r<=I;r++){const t=l-r*v,i=t-v;for(let r=y;r<=x;r++){const n=o+r*w,a=new d({xmin:n,ymin:i,xmax:n+w,ymax:t,spatialReference:e.spatialReference});b.push(this._exportTileQueue.push({extent:a,width:Ue,height:Ue,options:s},{signal:s.signal}))}}const F=await Promise.all(b);if(F.some(e=>null==e.pixelBlock))return{extent:e,pixelBlock:null};return{extent:e,pixelBlock:this._rasterJobHandler?await this._rasterJobHandler.mosaicPixelData({pixelBlocks:F,destExtent:e},{signal:s.signal,transferPixelsToWorker:!0}):S(F,e)?.pixelBlock}}async _fetchPixels(e,t,i,r={}){const s=r.applyRendering?void 0:new T({layer:this,requestRawData:!0,interpolation:r.interpolation??"nearest",bandIds:r.bandIds??[]}),n=this.getExportImageServiceParameters(e,t,i,r.timeExtent,s);if(null==n)return{extent:e,pixelBlock:null};delete n.pixelType,r.bandIds||delete n.bandIds,delete n.compressionQuality;const a={imageServiceParameters:n,imageProps:{extent:e,width:t,height:i,format:this.format},requestAsImageElement:!1,returnImageBitmap:!1,signal:r.signal},{pixelData:o}=await this._requestArrayBuffer(a);return o??{extent:e,pixelBlock:null}}fetchKeyProperties(e){return i($e(this.parsedUrl)+"/keyProperties",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>e.data)}fetchRasterAttributeTable(e){return this.version<10.1?Promise.reject(new r("#fetchRasterAttributeTable()","Failed to get rasterAttributeTable")):i($e(this.parsedUrl)+"/rasterAttributeTable",{query:this._getQueryParams({renderingRule:this.version>=10.3?e?.rasterFunction:null})}).then(e=>Ae.fromJSON(e.data))}getCatalogItemRasterInfo(e,t){const i={...t,query:this._getQueryParams()};return qe($e(this.parsedUrl),e,i)}async getCatalogItemICSInfo(e,t){const{data:r}=await i($e(this.parsedUrl)+"/"+e+"/info/ics",{query:this._getQueryParams(),...t}),s=r?.ics;if(!s)return;let n=null;try{n=(await i($e(this.parsedUrl)+"/"+e+"/info",{query:this._getQueryParams(),...t})).data.extent}catch{}if(!n?.spatialReference)return{ics:s,icsToPixelTransform:null,icsExtent:null,northDirection:null};const a=this.version>=10.7?i($e(this.parsedUrl)+"/"+e+"/info/icstopixel",{query:this._getQueryParams(),...t}).then(e=>e.data).catch(()=>({})):{},o=n.spatialReference,l={geometries:JSON.stringify({geometryType:"esriGeometryEnvelope",geometries:[n]}),inSR:y(o),outSR:"0:"+e},u=i($e(this.parsedUrl)+"/project",{query:this._getQueryParams(l),...t}).then(e=>e.data).catch(()=>({})),p=5,c=(n.xmin+n.xmax)/2,m=(n.ymax-n.ymin)/(p+1),h=n.ymin+m,f=[];for(let i=0;i<p;i++)f.push({x:c,y:h+m*i});const R={geometries:JSON.stringify({geometryType:"esriGeometryPoint",geometries:f}),inSR:y(o),outSR:"0:"+e},x=i($e(this.parsedUrl)+"/project",{query:this._getQueryParams(R),...t}).then(e=>e.data).catch(()=>({})),I=await Promise.all([a,u,x]);let w=I[0].ipxf;if(null==w){const e=s.geodataXform?.xf_0;"topup"===e?.name?.toLowerCase()&&6===e?.coefficients?.length&&(w={affine:{name:"ics [sensor: Frame] to pixel (column, row) transformation",coefficients:e.coefficients,cellsizeRatio:0,type:"GeometricXform"}})}const v=d.fromJSON(I[1]?.geometries?.[0]);v&&(v.spatialReference=new g({wkid:0,imageCoordinateSystem:s}));const b=I[2].geometries?I[2].geometries.filter(e=>null!=e?.x&&null!=e.y&&"NaN"!==e.x&&"NaN"!==e.y):[],S=b.length;if(S<3)return{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:null};let F=0,_=0,D=0,O=0;for(let i=0;i<S;i++)F+=b[i].x,_+=b[i].y,D+=b[i].x*b[i].x,O+=b[i].x*b[i].y;const T=(S*O-F*_)/(S*D-F*F);let M=0;const C=b[p-1].x>b[0].x,q=b[p-1].y>b[0].y;return T===1/0?M=q?90:270:0===T?M=C?0:180:T>0?M=C?180*Math.atan(T)/Math.PI:180*Math.atan(T)/Math.PI+180:T<0&&(M=q?180+180*Math.atan(T)/Math.PI:360+180*Math.atan(T)/Math.PI),{ics:s,icsToPixelTransform:w,icsExtent:v,northDirection:M}}async generateRasterInfo(e,t){const i=m(K,e),s={...t,query:this._getQueryParams()};if(!i||"none"===i.functionName?.toLowerCase()||this._isVectorFieldResampleFunction(i))return this.serviceRasterInfo??Te($e(this.parsedUrl),this.sourceJSON,s);const n=He(i);if(!n)throw new r("imagery-layer:generate-raster-info","the rendering rule is not supported");if(this._functionRasterInfos[n])return this._functionRasterInfos[n];const a=Me($e(this.parsedUrl),i,s);this._functionRasterInfos[n]=a;try{const t=await a,{rasterFunction:i}=this;return(i===e||JSON.stringify(i)===JSON.stringify(e))&&JSON.stringify(this.rasterInfo)!==JSON.stringify(t)&&(this.rasterInfo=t),t}catch(o){throw this._functionRasterInfos[n]=null,o}}getExportImageServiceParameters(e,t,i,r,s){e=e.clone().shiftCentralMeridian();const n=xe(e.spatialReference,$e(this.parsedUrl));s??=this.exportImageServiceParameters;const a=s.toJSON(),{bandIds:o,noData:l}=a;let{renderingRule:u}=a;const p=this.rasterFunction?.rasterFunctionDefinition,c=this.renderer?.type,m=!c||"raster-stretch"===c||"raster-colormap"===c||"unique-value"===c||"class-breaks"===c||"raster-shaded-relief"===c;if(o?.length&&this._hasRasterFunction(this.rasterFunction)&&!p&&m){const e={rasterFunction:"ExtractBand",rasterFunctionArguments:{BandIds:o}};if("Stretch"===u.rasterFunction)e.rasterFunctionArguments.Raster=u.rasterFunctionArguments.Raster,u.rasterFunctionArguments.Raster=e;else if("Colormap"===u.rasterFunction){const t=u.rasterFunctionArguments.Raster;"Stretch"===t?.rasterFunction?(e.rasterFunctionArguments.Raster=t.rasterFunctionArguments.Raster,t.rasterFunctionArguments.Raster=e):(e.rasterFunctionArguments.Raster=t,u.rasterFunctionArguments.Raster=e)}else e.rasterFunctionArguments.Raster=u,u=e;a.bandIds=void 0}else a.bandIds=o?.join(",");Array.isArray(l)&&l.length>0&&(a.noData=l.join(","));const h=this._processMultidimensionalIntersection(null,r,s.mosaicRule);if(h.isOutSide)return null;a.mosaicRule=null!=h.mosaicRule?JSON.stringify(h.mosaicRule):null,r=h.timeExtent,a.renderingRule=this._getRenderingRuleString(K.fromJSON(u));const d={};if(null!=r){const{start:e,end:t}=r.toJSON();e&&t&&e===t?d.time=""+e:null==e&&null==t||(d.time=`${e??"null"},${t??"null"}`)}return{bbox:e.xmin+","+e.ymin+","+e.xmax+","+e.ymax,bboxSR:n,imageSR:n,size:t+","+i,...a,...d}}async getSamples(e,t){const i=await this._fetchCapabilities(t?.signal);if(!i?.operations.supportsGetSamples)throw new r("imagery-layer:get-samples","getSamples operation is not supported on the input image service");e=s(e);const{raster:n}=this;return n&&null==e.raster&&(e.raster=n),Ie(this.url,e,this._getRequestOptions(t))}async identify(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsIdentify)throw new r("imagery-layer:identify","identify operation is not supported on the input image service");e=s(e),this.version<10.91&&"extent"===e.geometry?.type&&(e.geometry=f.fromExtent(e.geometry));const i=this._processMultidimensionalIntersection(e.geometry,e.timeExtent,e.mosaicRule||this.mosaicRule);if(i.isOutSide)throw new r("imagery-layer:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");e.timeExtent=i.timeExtent,e.mosaicRule=i.mosaicRule;const{raster:n,rasterFunction:a}=this;return a&&null==e.rasterFunction&&(e.rasterFunction=a),n&&null==e.raster&&(e.raster=n),we(this.url,e,this._getRequestOptions(t))}async imageToMap(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMap)throw new r("imagery-layer:image-to-map","imageToMap operation is not supported on the input image service");return ve($e(this.parsedUrl),e,this._getRequestOptions(t))}async imageToMapMultiray(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsImageToMapMultiray)throw new r("imagery-layer:image-to-map-multiray","imageToMapMultiray operation is not supported on the input image service");return be($e(this.parsedUrl),e,this._getRequestOptions(t))}async mapToImage(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsMapToImage)throw new r("imagery-layer:map-to-image","mapToImage operation is not supported on the input image service");return Se($e(this.parsedUrl),e,this._getRequestOptions(t))}async findImages(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsFindImages)throw new r("imagery-layer:find-images","findImages operation is not supported on the input image service");return Fe($e(this.parsedUrl),e,this._getRequestOptions(t))}async getImageUrl(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsGetImageUrl)throw new r("imagery-layer:get-image-url","getImageUrl operation is not supported on the input image service");return _e($e(this.parsedUrl),e,this._getRequestOptions(t))}createQuery(){return new Ve({outFields:["*"],returnGeometry:!0,where:this.definitionExpression||"1=1"})}async queryBoundary(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryBoundary)throw new r("imagery-layer:query-boundary","queryBoundary operation is not supported on the input image service");return e=e??{outSpatialReference:this.spatialReference},De($e(this.parsedUrl),e,this._getRequestOptions(t))}async queryExtent(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const{where:i,objectIds:r,geometry:s,timeExtent:n,start:a,num:o,pixelSize:l}=e,u=null!=i&&"1=1"!==i,p=null!=r&&r.length>0,c=null!=s&&("extent"!==s.type||!s.equals(this.fullExtent)),m=null!=l,h=null!=a||null!=o,{timeInfo:d}=this,f=null!=n&&null!=d&&!n.equals(d.fullTimeExtent);if(!(u||p||c||m||f||h)){const i=await Ne(this.url,e,t),{outSpatialReference:r}=e;if(!r||r.equals(this.spatialReference))return{count:i,extent:this.fullExtent.clone()};const{projectLoad:s,projectExecute:n}=await(import("../../geometry/operators/projectOperator.js"));await s();return{count:i,extent:n(this.fullExtent,r)}}return je(this.url,e,t)}async queryRasters(e,t){({query:e,requestOptions:t}=await this._prepareForQuery(e,t));const i=await Ee(this.url,e,t),r=this.graphicOrigin;return i.features.forEach(e=>{e.layer=this,e.origin=r}),i}async queryObjectIds(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Pe(this.url,e,t)}async queryGPSInfo(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQueryGPSInfo)throw new r("imagery-layer:query-gps-info","queryGPSInfo operation is not supported on the input image service");return e=e??{where:"1=1"},Oe($e(this.parsedUrl),e,this._getRequestOptions(t))}async queryRasterCount(e,t){return({query:e,requestOptions:t}=await this._prepareForQuery(e,t)),Ne(this.url,e,t)}async queryVisibleRasters(e,t){if(!e)throw new r("imagery-layer: query-visible-rasters","missing query parameter");await this.load();const{pixelSize:i,returnDomainValues:s,returnTopmostRaster:n,showNoDataRecords:a}=t||{pixelSize:null,returnDomainValues:!1,returnTopmostRaster:!1,showNoDataRecords:!1};let o=!1,l=null,u=null;const p=$.servicePixelValue.toLowerCase(),c=this._rasterFunctionNamesIndex;if(null!=e.outFields&&(o=e.outFields.some(e=>!e.toLowerCase().startsWith(p)),this.version>=10.4)){const t=e.outFields.filter(e=>e.toLowerCase().startsWith(p)&&e.length>p.length).map(e=>{const t=e.slice(p.length+1);return[this._updateRenderingRulesFunctionName(t,c),t]});l=t.map(e=>new K({functionName:e[0]})),u=t.map(e=>e[1]);const{rasterFunction:i}=this;0===l.length?i?.functionName?(l.push(i),u.push(i.functionName)):l=null:i?.functionName&&!l.some(e=>e.functionName===i.functionName)&&(l.push(i),u.push(i.functionName))}const m=null==e.outSpatialReference||e.outSpatialReference.equals(this.spatialReference),{multidimensionalSubset:h}=this;let d=e.timeExtent||this.timeExtent;if(h){const{isOutside:t,intersection:i}=R(h,{geometry:e.geometry,timeExtent:e.timeExtent,multidimensionalDefinition:this.exportImageServiceParameters.mosaicRule?.multidimensionalDefinition});if(t)throw new r("imagery-layer:query-visible-rasters","the request cannot be fulfilled when falling outside of the multidimensional subset");null!=i?.timeExtent&&(d=i.timeExtent)}const g=this._combineMosaicRuleWithTimeExtent(this.exportImageServiceParameters.mosaicRule,d);let y=e.geometry;this.version<10.91&&"extent"===y?.type&&(y=f.fromExtent(y));const I=this._getQueryParams({geometry:y,timeExtent:d,mosaicRule:g,rasterFunction:this.version<10.4?this.rasterFunction:null,rasterFunctions:l,pixelSize:i,returnCatalogItems:o,returnGeometry:m,raster:this.raster,maxItemCount:n?1:null});delete I.f;const w=new Qe(I);try{await this._generateRasterInfo(this.rasterFunction);const i=await we(this.url,w,{signal:t?.signal,query:{...this.customParameters}}),r=e.outFields,n=null!=i.value&&i.value.toLowerCase().includes("nodata"),l=o&&!m&&i?.catalogItems?.features.length&&(a||!n),p=this.multidimensionalInfo&&"raster-dataset"===this.sourceType?x({rasterInfo:this.rasterInfo,multidimensionalDefinition:g?.multidimensionalDefinition,timeExtent:d,multidimensionalSubset:this.multidimensionalSubset}):null;if(!l)return this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p});const c=this.objectIdField||"ObjectId",h=i.catalogItems?.features??[],f=h.map(e=>e.attributes?.[c]),y=new Ve({objectIds:f,returnGeometry:!0,outSpatialReference:e.outSpatialReference,outFields:[c]}),R=await this.queryRasters(y);return R?.features?.length&&R.features.forEach(t=>{h.forEach(i=>{i.attributes[c]===t.attributes[c]&&t.geometry&&(i.geometry=t.geometry.clone(),null!=e.outSpatialReference&&(i.geometry.spatialReference=e.outSpatialReference))})}),this._processVisibleRastersResponse(i,{returnDomainValues:s,templateRRFunctionNames:u,showNoDataRecords:a,templateFields:r,effectiveMultidimensionalDefinition:p})}catch{throw new r("imagery-layer:query-visible-rasters","encountered error when querying visible rasters")}}async fetchVariableStatisticsHistograms(e,t){const r=i($e(this.parsedUrl)+"/statistics",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.statistics),s=i($e(this.parsedUrl)+"/histograms",{query:this._getQueryParams({variable:e}),signal:t}).then(e=>e.data?.histograms),n=await Promise.all([r,s]);return n[0]&&n[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),{statistics:n[0]||null,histograms:n[1]||null}}getMultidimensionalSubsetVariables(e){const t=e??this.serviceRasterInfo.multidimensionalInfo;return I(this.multidimensionalSubset,t)}async _fetchService(e){await this._fetchServiceInfo(e);const t=this.sourceJSON,i=null!=this.serviceRasterInfo?Promise.resolve(this.serviceRasterInfo):Te($e(this.parsedUrl),t,{signal:e,query:this._getQueryParams()}).then(e=>(this._set("serviceRasterInfo",e),this._set("multidimensionalInfo",e.multidimensionalInfo),Ce(e,t),e)),r=!this.rasterInfo&&this._hasRasterFunction(this.rasterFunction)?this._generateRasterInfo(this.rasterFunction,{signal:e}):Promise.resolve(this.rasterInfo),s=this.rasterFunctionInfos?.every(e=>null!=e.functionType)?null:this._getRasterFunctionInfos();return Promise.all([i,r,s]).then(e=>{e[1]?this._set("rasterInfo",e[1]):this._set("rasterInfo",e[0]),e[2]&&(t.rasterFunctionInfos=e[2],this.setAtOrigin("rasterFunctionInfos",e[2],"service")),this.internalRenderer&&!this._isSupportedRenderer(this.internalRenderer)&&(this._set("internalRenderer",null),n.getLogger(this).warn("ArcGISImageService","Switching to the default renderer. Renderer applied is not valid for this Imagery Layer")),this._set("internalRenderer",this._configRenderer(this.renderer)),this.addHandles([o(()=>this.rasterFunction,e=>{(this.renderer||this.symbolizer||this.popupEnabled&&this.popupTemplate)&&this._generateRasterInfo(e).then(e=>{e&&(this.rasterInfo=e)})})]);const{serviceRasterInfo:i}=this;null!=i.multidimensionalInfo&&this._updateMultidimensionalDefinition(i)})}_combineMosaicRuleWithTimeExtent(e,t){const i=this.timeInfo,{multidimensionalInfo:r}=this.serviceRasterInfo;if(null==e||null==r||null==t||null==i?.startField)return e;const{startField:s}=i,n=r.variables.some(e=>e.dimensions.some(e=>e.name===s))?s:"StdTime";if(e=e.clone(),"mosaic-dataset"===this.sourceType)return e.multidimensionalDefinition=e.multidimensionalDefinition?.filter(e=>e.dimensionName!==n),this._cleanupMultidimensionalDefinition(e);e.multidimensionalDefinition=e.multidimensionalDefinition||[];const a=e.multidimensionalDefinition.filter(e=>e.dimensionName===n),o=null!=t.start?t.start.getTime():null,l=null!=t.end?t.end.getTime():null,u=null==o||null==l||o===l,p=u?[o||l]:[[o,l]],c=this.version>=10.8;if(a.length)a.forEach(e=>{e.dimensionName===n&&(c?(e.dimensionName=null,e.isSlice=!1,e.values=[]):(e.isSlice=u,e.values=p))});else if(!c){const t=e.multidimensionalDefinition.filter(e=>null!=e.variableName&&null==e.dimensionName);t.length?t.forEach(e=>{e.dimensionName=n,e.isSlice=u,e.values=p}):e.multidimensionalDefinition.push(new O({variableName:"",dimensionName:n,isSlice:u,values:p}))}return this._cleanupMultidimensionalDefinition(e)}_cleanupMultidimensionalDefinition(e){return null==e?null:(e.multidimensionalDefinition&&(e.multidimensionalDefinition=e.multidimensionalDefinition.filter(e=>!(!e.variableName&&!e.dimensionName)),0===e.multidimensionalDefinition.length&&(e.multidimensionalDefinition=null)),"mosaic-dataset"!==this.sourceType&&null==e.multidimensionalDefinition?null:e)}async _prepareForQuery(e,t){if(!(await this._fetchCapabilities(t?.signal)).operations.supportsQuery)throw new r("imagery-layer:query-rasters","query operation is not supported on the input image service");const i=null!=e?m(Ve,e):this.createQuery();return t=this._getRequestOptions(t),this.raster&&(t.query={...t.query,raster:this.raster}),{query:i,requestOptions:t}}_isSupportedRenderer(e){const{rasterInfo:t,rasterFunction:i}=this;return"unique-value"===e.type&&this._hasRasterFunction(i)&&1===t?.bandCount&&["u8","s8"].includes(t.pixelType)||null!=t&&null!=e&&te(t).includes(e.type)}async _fetchCapabilities(e){return this.capabilities||await this._fetchServiceInfo(e),this.capabilities}async _fetchServiceInfo(e){let t=this.sourceJSON;if(!t){const{data:r,ssl:s}=await i($e(this.parsedUrl),{query:this._getQueryParams(),signal:e});t=r,this.sourceJSON=t,s&&(this.url=this.url.replace(/^http:/i,"https:"))}if(t.capabilities?.toLowerCase().split(",").map(e=>e.trim()).indexOf("tilesonly")>-1)throw new r("imagery-layer:fetch-service-info","use ImageryTileLayer to open tiles-only image services");this.read(t,{origin:"service",url:this.parsedUrl})}_isMosaicDataset(e){return e.serviceSourceType?"esriImageServiceSourceTypeMosaicDataset"===e.serviceSourceType:e.fields?.length>0}_isMosaicRuleSupported(e){if(!e)return!1;const t=this._isMosaicDataset(e),i=e.currentVersion>=10.71&&e.hasMultidimensions&&!(e.fields?.length>1);return t||i}_isVectorFieldResampleFunction(e){if(null==e)return!1;const{functionName:t,functionArguments:i}=e,r="resample"===t?.toLowerCase(),s=i?.ResampleType||i?.resampleType;return r&&(7===s||10===s)}_configRenderer(e){const{rasterInfo:t}=this;if(!this.isRenderedFormat&&!this.pixelFilter||this._isVectorDataSet()){const i=this.mosaicRule?.multidimensionalDefinition?.[0].variableName,r=ie({variableName:i,rasterFunctionName:this.rasterFunction?.functionName,presetRenderers:this.presetRenderers});if(!this.bandIds&&t.bandCount>=3){const e=r?.bandIds??ee(t);!e||3===t.bandCount&&0===e[0]&&1===e[1]&&2===e[2]||(this.bandIds=e)}e||(e=r?.renderer??Z(t,{bandIds:this.bandIds,variableName:this.rasterFunction?null:i}));const s=re(e.toJSON());this.symbolizer?(this.symbolizer.rendererJSON=s,this.symbolizer.rasterInfo=t):this.symbolizer=new se({rendererJSON:s,rasterInfo:t}),this.symbolizer.bind().success||(this.symbolizer=null)}return e}_clonePixelData(e){return null==e?e:{extent:e.extent&&e.extent.clone(),pixelBlock:null!=e.pixelBlock?e.pixelBlock.clone():null}}_getQueryParams(e){null!=e?.renderingRule&&"string"!=typeof e.renderingRule&&(e.renderingRule=this._getRenderingRuleString(e.renderingRule));const{raster:t,viewId:i}=this;return{raster:t,viewId:i,f:"json",...e,...this.customParameters}}_getRequestOptions(e){return{...e,query:{...e?.query,...this.customParameters}}}_decodePixelBlock(e,t,i){return this._rasterJobHandler?this._rasterJobHandler.decode({data:e,options:t}):v(e,t,i)}async _getRasterFunctionInfos(e){const t=this.sourceJSON.rasterFunctionInfos;if(this.loaded||!t?.length)return t;if(t&&this.version>=10.3){if(1===t.length&&"none"===t[0].name.toLowerCase())return[{thumbnail:"",functionType:0,...t[0]}];const r=await i($e(this.parsedUrl)+"/rasterFunctionInfos",{query:this._getQueryParams(),signal:e});return r.data?.rasterFunctionInfos}return null}_canRequestImageElement(e){return!this.pixelFilter&&(!e||e.includes("png"))}async _requestArrayBuffer(e){const{imageProps:t,requestAsImageElement:s,returnImageBitmap:n,signal:a}=e;if(s&&this._canRequestImageElement(t.format)){const r=`${$e(this.parsedUrl)}/exportImage`,{data:s}=await i(r,{responseType:n?"blob":"image",query:this._getQueryParams({f:"image",...this.refreshParameters,...e.imageServiceParameters}),signal:a});if(s instanceof Blob){const{bitmap:e}=await q(s,r,{signal:a});return{imageBitmap:e,params:t}}return{imageOrCanvasElement:s,params:t}}const o=this._initJobHandler(),l=i($e(this.parsedUrl)+"/exportImage",{responseType:"array-buffer",query:this._getQueryParams({f:"image",...e.imageServiceParameters}),signal:a}),u=(await Promise.all([l,o]))[0].data,p=t.format||"jpgpng";let c=p;if("bsq"!==c&&"bip"!==c&&(c=b(u)),!c)throw new r("imagery-layer:fetch-image","unsupported format signature "+String.fromCharCode.apply(null,new Uint8Array(u)));const m={signal:a},h=this._decodePixelBlock(u,{width:t.width,height:t.height,format:p,applyJpegMask:!0},m);return{pixelData:{pixelBlock:await h,extent:t.extent},params:t}}_generateRasterInfo(e,t){return this.generateRasterInfo(e,t).catch(()=>null)}_isValidCustomizedMosaicRule(e){return e&&JSON.stringify(e.toJSON())!==JSON.stringify(this.defaultMosaicRule?.toJSON())}_updateMultidimensionalDefinition(e){if(this._isValidCustomizedMosaicRule(this.mosaicRule))return;let t=w(e,{multidimensionalSubset:this.multidimensionalSubset});if(null!=t&&t.length>0){this.mosaicRule=this.mosaicRule||new j;const e=this.mosaicRule.multidimensionalDefinition;!this.sourceJSON.defaultVariableName&&this.rasterFunction&&"none"!==this.rasterFunction.functionName?.toLowerCase()&&t.forEach(e=>e.variableName=""),t=t.filter(({variableName:e,dimensionName:t})=>e&&"*"!==e||t),!e?.length&&t.length&&(this.mosaicRule.multidimensionalDefinition=t)}}_processVisibleRastersResponse(e,i){i=i||{};const r=e.value,{templateRRFunctionNames:s,showNoDataRecords:n,returnDomainValues:a,templateFields:o}=i,l=e.processedValues;let u=e.catalogItems?.features,p=e.properties?.Values?.map(e=>e.replaceAll(/ /gi,", "))||[];const c=this.objectIdField||"ObjectId",m="string"==typeof r&&r.toLowerCase().includes("nodata"),h=[];if(r&&!u&&(!m||n)){const e={};e[c]=0;p=[r],u=[new t({geometry:this.fullExtent,attributes:e})],this.multidimensionalInfo&&"raster-dataset"===this.sourceType&&W(this.rasterFields,e,i.effectiveMultidimensionalDefinition)}if(!u)return[];this._updateResponseFieldNames(u,o),m&&!n&&(u=[]);const{itemPixelValue:d,servicePixelValue:f}=$,g=this.rasterFields.some(e=>e.name===d),y=this.graphicOrigin;for(let t=0;t<u.length;t++){const e=u[t];if(null!=r){const i=p[t],a=this.rasterFunction&&l&&l.length>0&&s&&s.length>0&&s.includes(this.rasterFunction.functionName)?l[s.indexOf(this.rasterFunction.functionName)]:r;if("nodata"===i.toLowerCase()&&!n)continue;g&&(e.attributes[d]=i),e.attributes[f]=a,this._updateFeatureWithMagDirValues(e,i);const o=this.fields&&this.fields.length>0;let u=this.rasterFunction&&null!=this.serviceRasterInfo.attributeTable?o?i:r:a;this.rasterFunction||(u=o?i:r),this._updateFeatureWithRasterAttributeTableValues(e,u)}if(e.sourceLayer=e.layer=this,e.origin=y,a&&this._updateFeatureWithDomainValues(e),s&&l&&s.length===l.length)for(let t=0;t<s.length;t++){const i=`${$.servicePixelValue}.${s[t]}`;e.attributes[i]=l[t]}h.push(u[t])}return h}_processMultidimensionalIntersection(e,t,i){const{multidimensionalSubset:r}=this;if(!r)return{isOutSide:!1,timeExtent:t,mosaicRule:i=this._combineMosaicRuleWithTimeExtent(i,t)};if(r){const{isOutside:i,intersection:s}=R(r,{geometry:e,timeExtent:t});if(i)return{isOutSide:!0,timeExtent:null,mosaicRule:null};null!=s?.timeExtent&&(t=s.timeExtent)}if(i=this._combineMosaicRuleWithTimeExtent(i,t),i?.multidimensionalDefinition){const{isOutside:e}=R(r,{multidimensionalDefinition:i.multidimensionalDefinition});if(e)return{isOutSide:!0,timeExtent:null,mosaicRule:null}}return{isOutSide:!1,timeExtent:t,mosaicRule:i}}_updateFeatureWithRasterAttributeTableValues(e,t){const i=this.rasterInfo.attributeTable||this.serviceRasterInfo.attributeTable;if(null==i)return;const{features:r,fields:s}=i,n=s.map(e=>e.name).find(e=>"value"===e.toLowerCase());if(!n)return;const a=r.filter(e=>e.attributes[n]===(null!=t?parseInt(t,10):null));a&&a[0]&&s.forEach(t=>{const i=X+t.name;e.attributes[i]=a[0].attributes[t.name]})}_updateFeatureWithMagDirValues(e,t){if(!this._isVectorDataSet())return;const i=t.split(/,\s*/).map(e=>parseFloat(e)),r=i.map(e=>[e]),s=i.map(e=>({minValue:e,maxValue:e,noDataValue:null})),n=new E({height:1,width:1,pixelType:"f32",pixels:r,statistics:s});null!=this.pixelFilter&&this.pixelFilter({pixelBlock:n,extent:new d(0,0,0,0,this.spatialReference)});const a="esriImageServiceDataTypeVector-MagDir"===this.serviceDataType?[n.pixels[0][0],n.pixels[1][0]]:F([n.pixels[0][0],n.pixels[1][0]]);e.attributes[$.magnitude]=a[0],e.attributes[$.direction]=a[1]}_updateFeatureWithDomainValues(e){const t=this.fields&&this.fields.filter(e=>"coded-value"===e.domain?.type);null!=t&&t.forEach(t=>{const i=e.attributes[t.name];if(null!=i){const r=t.domain.codedValues.find(e=>e.code===i);r&&(e.attributes[t.name]=r.name)}})}_updateResponseFieldNames(e,t){if(!t||t.length<1)return;const i=this.fieldsIndex;null!=i&&e.forEach(e=>{if(e?.attributes)for(const r of t){const t=i.get(r)?.name;t&&t!==r&&(e.attributes[r]=e.attributes[t],delete e.attributes[t])}})}_getRenderingRuleString(e){if(e){let t=e.toJSON();return t=t.rasterFunctionDefinition??t,(t.thumbnail||t.thumbnailEx)&&(t.thumbnail=t.thumbnailEx=null),JSON.stringify(t)}return null}_hasRasterFunction(e){return null!=e?.functionName&&"none"!==e.functionName.toLowerCase()}_updateRenderingRulesFunctionName(e,t){if(!e||e.length<1)return;if("Raw"===e)return e.replace("Raw","None");const i=e.toLowerCase().replaceAll(/ /gi,"_");return t.has(i)?t.get(i):e}_isRFTJson(e){return e?.name&&e.arguments&&e.function&&e.hasOwnProperty("functionType")}_isVectorDataSet(){return"esriImageServiceDataTypeVector-UV"===this.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===this.serviceDataType}_applyMosaicAndRenderingRules(e){const{raster:t,mosaicRule:i,rasterFunction:r}=this;r&&null==e.rasterFunction&&(e.rasterFunction=r),i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}async _updateCurrentRasterInfo(e){if(this.renderer||this.symbolizer){const t=await this._generateRasterInfo(this.rasterFunction,{signal:e});t&&(this.rasterInfo=t)}}_applyMosaicRule(e){const{raster:t,mosaicRule:i}=this;i&&null==e.mosaicRule&&(e.mosaicRule=i),t&&null==e.raster&&(e.raster=t)}_readCapabilities(e){const t=e.capabilities?e.capabilities.toLowerCase().split(",").map(e=>e.trim()):["image","catalog"],{currentVersion:i,maxRecordCount:r}=e,s=t.includes("image"),n="esriImageServiceDataTypeElevation"===e.serviceDataType,a=!(!e.spatialReference&&!e.extent?.spatialReference),o=t.includes("edit"),l=t.includes("mensuration")&&a,u=null==e.mensurationCapabilities?[]:e.mensurationCapabilities.toLowerCase().split(",").map(e=>e.trim()),p=l&&u.includes("basic"),c=this._isMosaicDataset(e)&&t.includes("catalog"),m=t.includes("download"),h=i>=10.7&&n||i>=11.4&&(n||l&&u.includes("3d")),d=c&&e.fields&&e.fields.length>0,f=d&&e.supportsAdvancedQueries?e.advancedQueryCapabilities:void 0;return{data:{supportsAttachment:!1},operations:{supportsComputeHistograms:s,supportsExportImage:s,supportsIdentify:s,supportsImageToMap:i>=11.2&&c,supportsImageToMapMultiray:i>=11.2&&c,supportsMapToImage:i>=11.2&&c,supportsFindImages:i>=11.2&&c,supportsGetImageUrl:i>=11.3&&m,supportsMeasure:l,supportsMeasureFromImage:i>=11.2,supportsDownload:m,supportsQuery:d,supportsGetSamples:i>=10.2&&s,supportsProject:i>=10.3&&s,supportsComputeStatisticsHistograms:i>=10.4&&s,supportsQueryBoundary:i>=10.6&&s,supportsCalculateVolume:h,supportsComputePixelLocation:i>=10.7&&c,supportsComputeAngles:i>=10.91,supportsQueryGPSInfo:i>=11.2&&c,supportsAdd:o,supportsDelete:o,supportsEditing:o,supportsUpdate:o,supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsChangeTracking:!1,supportsQueryAttachments:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsExceedsLimitStatistics:!1,supportsQueryAnalytics:!1,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryTopFeatures:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:r,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,relativeTimeBinWindow:void 0,supportsStatisticsAggregatedIds:!!f?.supportsAggregateIds,supportsStatistics:!!f?.supportsStatistics,supportsOrderBy:!!f?.supportsOrderBy,supportsDistinct:!!f?.supportsDistinct,supportsPagination:!!f?.supportsPagination,supportsPaginationOnAggregatedQueries:!!f?.supportsPaginationOnAggregatedQueries,supportsStandardizedQueriesOnly:!!f?.useStandardizedQueries,supportsPercentileStatistics:!!f?.supportsPercentileStatistics,supportsCentroid:!!f?.supportsReturningGeometryCentroid,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDistance:!!f?.supportsQueryWithDistance,supportsOutDistance:!!f?.supportsOutDistance,supportsExtent:!!f?.supportsReturningQueryExtent,supportsGeometryProperties:!!f?.supportsReturningGeometryProperties,supportsHavingClause:!!f?.supportsHavingClause,supportsQuantization:!1,supportsQuantizationEditMode:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsReturnExceededLimitGeometries:!1,supportsMaxRecordCountFactor:!1,supportsSqlExpression:f?.supportsSqlExpression??!!f,supportsTopFeaturesQuery:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsHistoricMoment:!1,supportsFormatPBF:!1,supportsFormatPBFWithCurves:!1,supportsDisjointSpatialRelationship:!1,supportsCacheHint:!1,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!!f?.supportsDefaultSR,supportsFullTextSearch:!1,supportsCompactGeometry:!1,standardMaxRecordCount:void 0,standardMaxRecordCountNoGeometry:void 0,tileMaxRecordCount:void 0,supportsTrueCurve:!1},mensuration:{supportsDistanceAndAngle:p,supportsAreaAndPerimeter:p,supportsPointOrCentroid:p,supportsHeightFromBaseAndTop:l&&u.includes("base-top height"),supportsHeightFromBaseAndTopShadow:l&&u.includes("base-top shadow height"),supportsHeightFromTopAndTopShadow:l&&u.includes("top-top shadow height"),supports3D:l&&u.includes("3d")}}}};function $e(e){return e?.path??""}return e([u({clonable:!1})],We.prototype,"_functionRasterInfos",void 0),e([u({readOnly:!0})],We.prototype,"_serviceSupportsMosaicRule",void 0),e([Je("_serviceSupportsMosaicRule",["currentVersion","fields"])],We.prototype,"readServiceSupportsMosaicRule",null),e([u({readOnly:!0})],We.prototype,"_rasterFunctionNamesIndex",null),e([u()],We.prototype,"_projectedFullExtent",void 0),e([u({clonable:!1})],We.prototype,"_exportTileQueue",void 0),e([u()],We.prototype,"adjustAspectRatio",void 0),e([u({type:[c],json:{write:!0}})],We.prototype,"bandIds",void 0),e([Je("bandIds")],We.prototype,"readBandIds",null),e([u({readOnly:!0,json:{read:!1}})],We.prototype,"capabilities",void 0),e([Je("service","capabilities",["capabilities","currentVersion","serviceDataType"])],We.prototype,"readCapabilities",null),e([u({type:Number})],We.prototype,"compressionQuality",void 0),e([Be("compressionQuality")],We.prototype,"writeCompressionQuality",null),e([u({type:Number})],We.prototype,"compressionTolerance",void 0),e([Be("compressionTolerance")],We.prototype,"writeCompressionTolerance",null),e([u({json:{read:{source:"copyrightText"}}})],We.prototype,"copyright",void 0),e([u({readOnly:!0})],We.prototype,"defaultMosaicRule",void 0),e([Je("defaultMosaicRule",["defaultMosaicMethod"])],We.prototype,"readDefaultMosaicRule",null),e([u({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],We.prototype,"definitionExpression",void 0),e([u({readOnly:!0,constructOnly:!0})],We.prototype,"exportImageServiceParameters",void 0),e([u()],We.prototype,"rasterInfo",void 0),e([u({readOnly:!0,type:[M]})],We.prototype,"fields",void 0),e([u({readOnly:!0})],We.prototype,"fieldsIndex",null),e([u({type:["png","png8","png24","png32","jpg","bmp","gif","jpgpng","lerc","tiff","bip","bsq"],json:{write:!0}})],We.prototype,"format",null),e([Je("service","format",["serviceDataType","allowRasterFunction"])],We.prototype,"readFormat",null),e([u({type:d})],We.prototype,"fullExtent",void 0),e([u({readOnly:!0})],We.prototype,"hasMultidimensions",void 0),e([u({json:{read:{source:"maxImageHeight"}}})],We.prototype,"imageMaxHeight",void 0),e([u({json:{read:{source:"maxImageWidth"}}})],We.prototype,"imageMaxWidth",void 0),e([u({type:String,json:{type:A.jsonValues,read:A.read,write:A.write}})],We.prototype,"interpolation",void 0),e([u()],We.prototype,"minScale",void 0),e([Je("service","minScale")],We.prototype,"readMinScale",null),e([u()],We.prototype,"maxScale",void 0),e([Je("service","maxScale")],We.prototype,"readMaxScale",null),e([u({type:j})],We.prototype,"mosaicRule",null),e([Je("mosaicRule",["mosaicRule","defaultMosaicMethod"])],We.prototype,"readMosaicRule",null),e([Be("mosaicRule")],We.prototype,"writeMosaicRule",null),e([u()],We.prototype,"multidimensionalInfo",void 0),e([u({type:P,json:{write:!0}})],We.prototype,"multidimensionalSubset",void 0),e([u({json:{type:[Number,[Number]],write:!0}})],We.prototype,"noData",void 0),e([u({type:String,json:{type:Q.jsonValues,read:Q.read,write:Q.write}})],We.prototype,"noDataInterpretation",void 0),e([u({type:String,readOnly:!0,json:{read:{source:["fields"]}}})],We.prototype,"objectIdField",void 0),e([Je("objectIdField")],We.prototype,"readObjectIdField",null),e([u({readOnly:!0})],We.prototype,"geometryType",void 0),e([u({})],We.prototype,"typeIdField",void 0),e([u({})],We.prototype,"types",void 0),e([u({readOnly:!0})],We.prototype,"parsedUrl",null),e([u({type:Function})],We.prototype,"pixelFilter",void 0),e([u()],We.prototype,"raster",void 0),e([u({readOnly:!0})],We.prototype,"sourceType",void 0),e([Je("sourceType",["serviceSourceType","fields"])],We.prototype,"readSourceType",null),e([u()],We.prototype,"viewId",void 0),e([u({types:ne})],We.prototype,"renderer",null),e([u({types:ne,json:{name:"layerDefinition.drawingInfo.renderer",origins:{"web-scene":{types:ae,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:e=>({enabled:e&&"vector-field"!==e.type})}}}}})],We.prototype,"internalRenderer",null),e([Je("internalRenderer")],We.prototype,"readRenderer",null),e([Be("internalRenderer")],We.prototype,"writeRenderer",null),e([u({clonable:!1})],We.prototype,"symbolizer",void 0),e([u(_)],We.prototype,"opacity",void 0),e([u({readOnly:!0})],We.prototype,"rasterFields",null),e([u({constructOnly:!0})],We.prototype,"rasterFunctionInfos",void 0),e([u({type:K,json:{name:"renderingRule"}})],We.prototype,"rasterFunction",null),e([Je("rasterFunction",["renderingRule","rasterFunctionInfos"])],We.prototype,"readRasterFunction",null),e([u({readOnly:!0})],We.prototype,"serviceDataType",void 0),e([u({readOnly:!0,type:g})],We.prototype,"spatialReference",void 0),e([Je("spatialReference",["spatialReference","extent"])],We.prototype,"readSpatialReference",null),e([u({type:V.apiValues,json:{read:V.read,type:V.jsonValues}})],We.prototype,"pixelType",void 0),e([Be("pixelType")],We.prototype,"writePixelType",null),e([u({constructOnly:!0,type:Y})],We.prototype,"serviceRasterInfo",void 0),e([u()],We.prototype,"sourceJSON",void 0),e([u(D)],We.prototype,"url",void 0),e([u({readOnly:!0})],We.prototype,"version",void 0),e([Je("version",["currentVersion","fields","timeInfo"])],We.prototype,"readVersion",null),We=e([p("esri.layers.mixins.ArcGISImageService")],We),We};export{Ge as ArcGISImageService};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as t}from"tslib";import e from"../../../core/Error.js";import{property as i,subclass as s}from"../../../core/accessorSupport/decorators.js";import r from"../../../geometry/Point.js";import{GeospatialPDFWorkerClient as n}from"../../geospatialPDF/GeospatialPDFWorkerClient.js";import a from"./BaseRaster.js";import o from"../../support/PixelBlock.js";import h from"../../support/RasterInfo.js";let l=class extends a{constructor(){super(...arguments),this._workerClient=new n,this._extent=null,this._ctm=null,this._neatlineRing=[],this._width=0,this._height=0,this._tileSize=512,this.datasetFormat="PDF",this.frame=null,this.neatlineExtent=null,this.page=1,this.tileType="Raster"}destroy(){this._workerClient.destroy(),this.neatlineExtent=null,this._extent=null,this._ctm=null,this._neatlineRing=[]}async fetchRawTile(t,e,i,s={}){const r=this._extent,n=this._ctm,a=this.getTileExtentPDF(t,e,i);if(!a.intersects(r))return null;return p(await this._workerClient.render(a,this._tileSize,this._tileSize,n,this._neatlineRing,s))}async _open(t){if(!this.url)throw new e("geospatial-pdf-raster:open","GeospatialPDFRaster requires a url.");const i=await this._workerClient.loadPDF({url:this.url,page:this.page},t);this.frame=i.frame;const s=this.frame.outerExtentMediabox;if(!s)throw new e("geospatial-pdf-raster:open","Failed to compute Geospatial PDF extent.");this.neatlineExtent=i.fullExtent,this._extent=s,this._ctm=this.frame.ctm,this._neatlineRing=this.frame.sourceMediaBoxPolygon.rings[0];const r=m(this.frame.ctm,this._extent);this._width=r[0],this._height=r[1];const n={x:s.width/this._width,y:s.height/this._height},a=new h({width:this._width,height:this._height,pixelType:"u8",extent:s,pixelSize:n,spatialReference:s.spatialReference,bandCount:3,keyProperties:{DataType:"Processed"}});this.createRemoteDatasetStorageInfo(a,this._tileSize,this._tileSize),this._set("rasterInfo",a),this.updateTileInfo()}getTileExtentPDF(t,e,i){const s=this._extent,n=2**t,a=s.width/this._width*n,o=s.height/this._height*n,h=new r({x:s.xmin,y:s.ymax});return this.getTileExtent({x:a,y:o},e,i,h,s.spatialReference,[512,512])}};function p(t){return new o({width:t.width,height:t.height,pixelType:"u8",pixels:[t.red,t.green,t.blue],mask:t.mask})}function m(t,e){const[i,s,r,n]=t,a=i*n-s*r;if(!Number.isFinite(a)||0===a)throw new Error("Cannot derive raster dimensions from an invalid PDF CTM.");const o=10*Math.hypot(n,s)/Math.abs(a),h=10*Math.hypot(r,i)/Math.abs(a),l=Math.max(1,Math.ceil(e.width*o)),p=Math.max(1,Math.ceil(e.height*h));if(!Number.isFinite(l)||!Number.isFinite(p))throw new Error("PDF CTM produced invalid raster dimensions.");return[l,p]}t([i({type:String,json:{write:!0}})],l.prototype,"datasetFormat",void 0),t([i({constructOnly:!0})],l.prototype,"page",void 0),t([i({readOnly:!0})],l.prototype,"tileType",void 0),l=t([s("esri.layers.raster.datasets.GeospatialPDFRaster")],l);export{l as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{result as e}from"../../core/asyncUtils.js";import t from"../../core/Error.js";import has from"../../core/has.js";import{assertIsSome as a}from"../../core/maybe.js";import{whenOrAbort as o,throwIfAbortError as n}from"../../core/promiseUtils.js";import{getMetersPerUnitForSR as i}from"../../core/units.js";import{initializeProjection as r,project as l}from"../../geometry/projectionUtils.js";import{fromExtent as s}from"../../geometry/support/aaBoundingRect.js";import{GeometryQueryContext as c,ExtentQueryContext as u,isTileInfoTilemapCache as m,getLods as f}from"./ElevationQueryContext.js";import{ElevationTile as p}from"./ElevationTile.js";import y from"./ElevationTileData.js";import{GeometryDescriptor as d}from"./GeometryDescriptor.js";import{TileElevationSampler as w}from"./TileElevationSampler.js";import{TileKey as h}from"./TileKey.js";async function g(e,a,o){if(e=o?.ignoreInvisibleLayers?e.filter(e=>e.visible):e.slice(),!e.length)throw new t(z,"Elevation queries require at least one elevation layer to fetch tiles from");const n=d.fromGeometry(a),i={...j,...o,returnSampleInfo:!0},r=e.pop(),l=await v(r,n,i),s=await I(e,l,i);return s.geometry=s.geometry.export(),o?.returnSampleInfo||delete s.sampleInfo,s}async function v(e,a,o){if(!e)throw new t(z,"Elevation queries require an elevation layer to fetch tiles from");if(!a||!(a instanceof d)&&"point"!==a.type&&"multipoint"!==a.type&&"polyline"!==a.type)throw new t("elevation-query:invalid-geometry","Only point, polyline and multipoint geometries can be used to query elevation");const n={...j,...o},i=n.signal;if("integrated-mesh-3dtiles"===e.type){const t=d.fromGeometry(a);if(e.queryElevationCallback&&(has("enable-feature:im-as-ground")?e.isUsedAsGroundLayer:e.replacesTerrain)){const r=12.9*(o?.minDemResolution||0)+.71,l=await e.queryElevationCallback(t,{signal:i,maxGeometricError:r}),s=t.coordinates.map(()=>({demResolution:1,source:e})),c=await l.project(a.spatialReference,i);if(c){if(void 0!==n.noDataValue&&n.noDataValue!==Number.MAX_VALUE)for(const e of c.coordinates)e.z===Number.MAX_VALUE&&(e.z=n.noDataValue);return{geometry:c.export(),noDataValue:n.noDataValue??Number.MAX_VALUE,sampleInfo:s}}}const r=t.coordinates.map(()=>({demResolution:-1,source:e}));return{geometry:t.export(),noDataValue:Number.MAX_VALUE,sampleInfo:r}}if("integrated-mesh"===e.type){const t=d.fromGeometry(a),o=t.coordinates.map(()=>({demResolution:-1,source:e}));return{geometry:t.export(),noDataValue:Number.MAX_VALUE,sampleInfo:o}}const r=new c(e,a.spatialReference,n);return await e.load({signal:i}),await L(r,a,i),await R(r,i),await G(r,i),k(r),N(r,i)}async function T(e,a,o){if(e=Array.isArray(e)?e:[e],0===(e=o?.ignoreInvisibleLayers?e.filter(e=>e.visible):e.slice()).length)throw new t(z,"Elevation queries require at least one elevation layer to fetch tiles from");if(!a||"extent"!==a.type)throw new t("elevation-query:invalid-extent","Invalid or undefined extent");const n={...j,...o,returnSampleInfo:!0},i=E(e[e.length-1],a,n);if(1===e.length)return i;return D(e,a,await i,n)}async function E(e,t,a,o){const n=a.signal;await e.load({signal:n});const i=t.spatialReference,s=e.tileInfo.spatialReference;i.equals(s)||(await r([{source:i,dest:s}],{signal:n}),t=l(t,s));const c=new u(e,t,a,o);await R(c,n),await G(c,n);const m=c.elevationTiles,f=c.layer.tileInfo,p=c.parameters.noDataValue;return new w({noDataValue:p,tiles:m,tileInfo:f})}async function D(e,t,a,o){if(e.pop(),!e.length)return a;const n=a.samplers.filter(e=>!e.tile.hasNoDataValues).map(e=>s(e.extent)),i=await E(e[e.length-1],t,o,n);if(0===i.samplers.length)return a;const r=a.samplers.concat(i.samplers),l=o.noDataValue;return D(e,t,new w({samplers:r,noDataValue:l}),o)}async function I(e,t,o){const n=t.geometry.coordinates,i=t.sampleInfo;a(i);const r=new Array,l=new Array;for(let a=0;a<n.length;a++){i[a].demResolution<0&&e.length&&(r.push(n[a]),l.push(a))}const s=e.pop();if(null==s||0===r.length)return t;const c=t.geometry.clone(r),u=await v(s,c,o),m=u.sampleInfo;if(!m)throw new Error("no sampleInfo");return l.forEach((e,t)=>{n[e].z=u.geometry.coordinates[t].z,i[e].demResolution=m[t].demResolution,i[e].source=m[t].source}),I(e,t,o)}async function R(e,a){"geometry"===e.type&&U(e);const o=e.parameters.demResolution;if("number"==typeof o)S(e,o);else if("finest-contiguous"===o)await x(e,a);else{if("auto"!==o)throw new t("elevation-query:invalid-dem-resolution",`Invalid dem resolution value '${o}', expected a number, "finest-contiguous" or "auto"`);await V(e,a)}}async function x(e,t){const{tileInfo:a,tilemapCache:o}=e.layer,n=q(a,o,e.parameters.minDemResolution);await A(e,n,t)}async function A(e,a,i){const r=e.layer;if(e.selectTilesAtLOD(a),a<0)return;const l=r.tilemapCache,s=e.getTilesToFetch();try{if(l&&!m(l))await o(Promise.all(s.map(e=>l.fetchAvailability(e.level,e.row,e.col,{signal:i}))),i);else if(await G(e,i),!e.allElevationTilesFetched())throw e.clearElevationTiles(),new t("elevation-query:has-unavailable-tiles","Some elevation tiles are unavailable")}catch(c){n(c),await A(e,a-1,i)}}async function V(t,a){F(t),M(t);const i=t.layer.tilemapCache;if(!i||m(i))return b(t,a);const r=t.getTilesToFetch(),l={},s=r.map(async t=>{const o=new h(0,0,0),r=await e(i.fetchAvailabilityUpsample(t.level,t.row,t.col,o,{signal:a}));!1!==r.ok?null!=t.id&&(l[t.id]=o):n(r.error)});await o(Promise.all(s),a),t.remapTiles(l)}async function b(e,t){const a=e.layer.tileInfo;await G(e,t);let o=!1;e.forEachTileToFetch((e,t)=>{a.upsampleTile(e)?o=!0:t()}),o&&await b(e,t)}function q(e,t,a=0){const o=f(e,t);let n=o.length-1;if(a>0){const t=a/i(e.spatialReference),r=o.findIndex(e=>e.resolution<t);0===r?n=0:r>0&&(n=r-1)}return n}const j={maximumAutoTileRequests:20,noDataValue:0,returnSampleInfo:!1,demResolution:"auto",minDemResolution:0,signal:null};async function L(e,a,o){let n;const i=e.layer.tileInfo.spatialReference;if(a instanceof d?n=await a.project(i,o):(await r([{source:a.spatialReference,dest:i}],{signal:o}),n=l(a,i)),!n)throw new t("elevation-query:spatial-reference-mismatch",`Cannot query elevation in '${a.spatialReference.wkid}' on an elevation service in '${i.wkid}'`);e.geometry=d.fromGeometry(n)}function U(e){if(null==e.layer.fullExtent)return;const t=new p(new h(-1,-1,-1));t.sample=()=>e.parameters.noDataValue,e.outsideExtentTile=t;const a=e.layer.fullExtent;e.geometry.coordinates.forEach(e=>{const o=e.x,n=e.y;(o<a.xmin||o>a.xmax||n<a.ymin||n>a.ymax)&&(e.elevationTile=t)})}function C(e,t){const{tileInfo:a,tilemapCache:o}=e.layer,n=t/i(a.spatialReference),r=f(a,o);let l=r[0],s=0;for(let i=1;i<r.length;i++){const e=r[i];Math.abs(e.resolution-n)<Math.abs(l.resolution-n)&&(l=e,s=i)}return s}function S(e,t){const a=C(e,t);e.selectTilesAtLOD(a)}function F(e){const{tileInfo:t,tilemapCache:a}=e.layer,o=q(t,a,e.parameters.minDemResolution);e.selectTilesAtLOD(o,e.parameters.maximumAutoTileRequests)}async function G(e,t){const a=e.getTilesToFetch(),n={},i=e.parameters.cache,r=e.parameters.noDataValue,l={noDataValue:r,signal:t},s=a.map(async t=>{if(null==t.id)return;const a=`${e.layer.uid}:${t.id}:${r}`,o=i?.get(a),s=o??y.from(await e.layer.fetchTile(t.level,t.row,t.col,l));i?.put(a,s),n[t.id]=new p(t,s)});await o(Promise.allSettled(s),t),e.populateElevationTiles(n)}function M(e){const t=e.layer.tileInfo;let a=0;const o={},n=e=>{null!=e.id&&(e.id in o?o[e.id]++:(o[e.id]=1,a++))},i=e=>{if(null==e.id)return;const t=o[e.id];1===t?(delete o[e.id],a--):o[e.id]=t-1};e.forEachTileToFetch(n,i);let r=!0;for(;r&&(r=!1,e.forEachTileToFetch(o=>{a<=e.parameters.maximumAutoTileRequests||(i(o),t.upsampleTile(o)&&(r=!0),n(o))},i),r););}function k(e){e.geometry.coordinates.forEach(t=>{const a=t.elevationTile;let o=e.parameters.noDataValue;if(a){const e=a.sample(t.x,t.y);null==e?t.elevationTile=null:o=e}t.z=o})}async function N(e,t){const o=await e.geometry.project(e.outSpatialReference,t);a(o);const n={geometry:o.export(),noDataValue:e.parameters.noDataValue};return e.parameters.returnSampleInfo&&(n.sampleInfo=$(e)),e.geometry.coordinates.forEach(e=>{e.tile=null,e.elevationTile=null}),n}function $(e){const t=e.layer.tileInfo,a=i(t.spatialReference);return e.geometry.coordinates.map(o=>{let n=-1;if(o.elevationTile&&o.elevationTile!==e.outsideExtentTile){n=t.lodAt(o.elevationTile.key.level).resolution*a}return{demResolution:n,source:-1===n?void 0:e.layer}})}const z="elevation-query:invalid-layer";export{z as InvalidLayerError,T as createSampler,j as defaultOptions,q as getFinestLodIndex,v as query,g as queryAll};
2
+ import{result as e}from"../../core/asyncUtils.js";import t from"../../core/Error.js";import has from"../../core/has.js";import{assertIsSome as a}from"../../core/maybe.js";import{whenOrAbort as o,throwIfAbortError as n}from"../../core/promiseUtils.js";import{getMetersPerUnitForSR as i}from"../../core/units.js";import{initializeProjection as r,project as l}from"../../geometry/projectionUtils.js";import{fromExtent as s}from"../../geometry/support/aaBoundingRect.js";import{GeometryQueryContext as c,ExtentQueryContext as u,isTileInfoTilemapCache as m,getLods as f}from"./ElevationQueryContext.js";import{ElevationTile as p}from"./ElevationTile.js";import y from"./ElevationTileData.js";import{GeometryDescriptor as d}from"./GeometryDescriptor.js";import{TileElevationSampler as w}from"./TileElevationSampler.js";import{TileKey as h}from"./TileKey.js";async function g(e,a,o){if(e=o?.ignoreInvisibleLayers?e.filter(e=>e.visible):e.slice(),!e.length)throw new t($,"Elevation queries require at least one elevation layer to fetch tiles from");const n=d.fromGeometry(a),i={...j,...o,returnSampleInfo:!0},r=e.pop(),l=await v(r,n,i),s=await I(e,l,i);return s.geometry=s.geometry.export(),o?.returnSampleInfo||delete s.sampleInfo,s}async function v(e,a,o){if(!e)throw new t($,"Elevation queries require an elevation layer to fetch tiles from");if(!a||!(a instanceof d)&&"point"!==a.type&&"multipoint"!==a.type&&"polyline"!==a.type)throw new t("elevation-query:invalid-geometry","Only point, polyline and multipoint geometries can be used to query elevation");const n={...j,...o},i=n.signal;if("integrated-mesh-3dtiles"===e.type){const t=d.fromGeometry(a);if(e.queryElevationCallback&&(has("enable-feature:im-as-ground")?e.isUsedAsGroundLayer:e.replacesTerrain)){const r=12.9*(o?.minDemResolution||0)+.71,l=await e.queryElevationCallback(t,{signal:i,maxGeometricError:r}),s=await l.project(a.spatialReference,i);if(s){if(void 0!==n.noDataValue&&n.noDataValue!==Number.MAX_VALUE)for(const e of s.coordinates)e.z===Number.MAX_VALUE&&(e.z=n.noDataValue);const t=n.noDataValue??Number.MAX_VALUE,a=s.coordinates.map(a=>({demResolution:a.z===t?-1:1,source:e}));return{geometry:s.export(),noDataValue:t,sampleInfo:a}}}const r=t.coordinates.map(()=>({demResolution:-1,source:e}));return{geometry:t.export(),noDataValue:Number.MAX_VALUE,sampleInfo:r}}if("integrated-mesh"===e.type){const t=d.fromGeometry(a),o=t.coordinates.map(()=>({demResolution:-1,source:e}));return{geometry:t.export(),noDataValue:Number.MAX_VALUE,sampleInfo:o}}const r=new c(e,a.spatialReference,n);return await e.load({signal:i}),await L(r,a,i),await R(r,i),await G(r,i),k(r),z(r,i)}async function T(e,a,o){if(e=Array.isArray(e)?e:[e],0===(e=o?.ignoreInvisibleLayers?e.filter(e=>e.visible):e.slice()).length)throw new t($,"Elevation queries require at least one elevation layer to fetch tiles from");if(!a||"extent"!==a.type)throw new t("elevation-query:invalid-extent","Invalid or undefined extent");const n={...j,...o,returnSampleInfo:!0},i=E(e[e.length-1],a,n);if(1===e.length)return i;return D(e,a,await i,n)}async function E(e,t,a,o){const n=a.signal;await e.load({signal:n});const i=t.spatialReference,s=e.tileInfo.spatialReference;i.equals(s)||(await r([{source:i,dest:s}],{signal:n}),t=l(t,s));const c=new u(e,t,a,o);await R(c,n),await G(c,n);const m=c.elevationTiles,f=c.layer.tileInfo,p=c.parameters.noDataValue;return new w({noDataValue:p,tiles:m,tileInfo:f})}async function D(e,t,a,o){if(e.pop(),!e.length)return a;const n=a.samplers.filter(e=>!e.tile.hasNoDataValues).map(e=>s(e.extent)),i=await E(e[e.length-1],t,o,n);if(0===i.samplers.length)return a;const r=a.samplers.concat(i.samplers),l=o.noDataValue;return D(e,t,new w({samplers:r,noDataValue:l}),o)}async function I(e,t,o){const n=t.geometry.coordinates,i=t.sampleInfo;a(i);const r=new Array,l=new Array;for(let a=0;a<n.length;a++){i[a].demResolution<0&&e.length&&(r.push(n[a]),l.push(a))}const s=e.pop();if(null==s||0===r.length)return t;const c=t.geometry.clone(r),u=await v(s,c,o),m=u.sampleInfo;if(!m)throw new Error("no sampleInfo");return l.forEach((e,t)=>{n[e].z=u.geometry.coordinates[t].z,i[e].demResolution=m[t].demResolution,i[e].source=m[t].source}),I(e,t,o)}async function R(e,a){"geometry"===e.type&&U(e);const o=e.parameters.demResolution;if("number"==typeof o)S(e,o);else if("finest-contiguous"===o)await x(e,a);else{if("auto"!==o)throw new t("elevation-query:invalid-dem-resolution",`Invalid dem resolution value '${o}', expected a number, "finest-contiguous" or "auto"`);await V(e,a)}}async function x(e,t){const{tileInfo:a,tilemapCache:o}=e.layer,n=q(a,o,e.parameters.minDemResolution);await A(e,n,t)}async function A(e,a,i){const r=e.layer;if(e.selectTilesAtLOD(a),a<0)return;const l=r.tilemapCache,s=e.getTilesToFetch();try{if(l&&!m(l))await o(Promise.all(s.map(e=>l.fetchAvailability(e.level,e.row,e.col,{signal:i}))),i);else if(await G(e,i),!e.allElevationTilesFetched())throw e.clearElevationTiles(),new t("elevation-query:has-unavailable-tiles","Some elevation tiles are unavailable")}catch(c){n(c),await A(e,a-1,i)}}async function V(t,a){F(t),M(t);const i=t.layer.tilemapCache;if(!i||m(i))return b(t,a);const r=t.getTilesToFetch(),l={},s=r.map(async t=>{const o=new h(0,0,0),r=await e(i.fetchAvailabilityUpsample(t.level,t.row,t.col,o,{signal:a}));!1!==r.ok?null!=t.id&&(l[t.id]=o):n(r.error)});await o(Promise.all(s),a),t.remapTiles(l)}async function b(e,t){const a=e.layer.tileInfo;await G(e,t);let o=!1;e.forEachTileToFetch((e,t)=>{a.upsampleTile(e)?o=!0:t()}),o&&await b(e,t)}function q(e,t,a=0){const o=f(e,t);let n=o.length-1;if(a>0){const t=a/i(e.spatialReference),r=o.findIndex(e=>e.resolution<t);0===r?n=0:r>0&&(n=r-1)}return n}const j={maximumAutoTileRequests:20,noDataValue:0,returnSampleInfo:!1,demResolution:"auto",minDemResolution:0,signal:null};async function L(e,a,o){let n;const i=e.layer.tileInfo.spatialReference;if(a instanceof d?n=await a.project(i,o):(await r([{source:a.spatialReference,dest:i}],{signal:o}),n=l(a,i)),!n)throw new t("elevation-query:spatial-reference-mismatch",`Cannot query elevation in '${a.spatialReference.wkid}' on an elevation service in '${i.wkid}'`);e.geometry=d.fromGeometry(n)}function U(e){if(null==e.layer.fullExtent)return;const t=new p(new h(-1,-1,-1));t.sample=()=>e.parameters.noDataValue,e.outsideExtentTile=t;const a=e.layer.fullExtent;e.geometry.coordinates.forEach(e=>{const o=e.x,n=e.y;(o<a.xmin||o>a.xmax||n<a.ymin||n>a.ymax)&&(e.elevationTile=t)})}function C(e,t){const{tileInfo:a,tilemapCache:o}=e.layer,n=t/i(a.spatialReference),r=f(a,o);let l=r[0],s=0;for(let i=1;i<r.length;i++){const e=r[i];Math.abs(e.resolution-n)<Math.abs(l.resolution-n)&&(l=e,s=i)}return s}function S(e,t){const a=C(e,t);e.selectTilesAtLOD(a)}function F(e){const{tileInfo:t,tilemapCache:a}=e.layer,o=q(t,a,e.parameters.minDemResolution);e.selectTilesAtLOD(o,e.parameters.maximumAutoTileRequests)}async function G(e,t){const a=e.getTilesToFetch(),n={},i=e.parameters.cache,r=e.parameters.noDataValue,l={noDataValue:r,signal:t},s=a.map(async t=>{if(null==t.id)return;const a=`${e.layer.uid}:${t.id}:${r}`,o=i?.get(a),s=o??y.from(await e.layer.fetchTile(t.level,t.row,t.col,l));i?.put(a,s),n[t.id]=new p(t,s)});await o(Promise.allSettled(s),t),e.populateElevationTiles(n)}function M(e){const t=e.layer.tileInfo;let a=0;const o={},n=e=>{null!=e.id&&(e.id in o?o[e.id]++:(o[e.id]=1,a++))},i=e=>{if(null==e.id)return;const t=o[e.id];1===t?(delete o[e.id],a--):o[e.id]=t-1};e.forEachTileToFetch(n,i);let r=!0;for(;r&&(r=!1,e.forEachTileToFetch(o=>{a<=e.parameters.maximumAutoTileRequests||(i(o),t.upsampleTile(o)&&(r=!0),n(o))},i),r););}function k(e){e.geometry.coordinates.forEach(t=>{const a=t.elevationTile;let o=e.parameters.noDataValue;if(a){const e=a.sample(t.x,t.y);null==e?t.elevationTile=null:o=e}t.z=o})}async function z(e,t){const o=await e.geometry.project(e.outSpatialReference,t);a(o);const n={geometry:o.export(),noDataValue:e.parameters.noDataValue};return e.parameters.returnSampleInfo&&(n.sampleInfo=N(e)),e.geometry.coordinates.forEach(e=>{e.tile=null,e.elevationTile=null}),n}function N(e){const t=e.layer.tileInfo,a=i(t.spatialReference);return e.geometry.coordinates.map(o=>{let n=-1;if(o.elevationTile&&o.elevationTile!==e.outsideExtentTile){n=t.lodAt(o.elevationTile.key.level).resolution*a}return{demResolution:n,source:-1===n?void 0:e.layer}})}const $="elevation-query:invalid-layer";export{$ as InvalidLayerError,T as createSampler,j as defaultOptions,q as getFinestLodIndex,v as query,g as queryAll};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"../../core/has.js";import{JSONMap as r}from"../../core/jsonMap.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{toPt as i}from"../../core/screenUtils.js";import{property as s,subclass as n}from"../../core/accessorSupport/decorators.js";import{createTypeReader as l}from"../../core/accessorSupport/extensions/serializableProperty/reader.js";import a from"./LabelExpressionInfo.js";import{templateStringToSql as p,getSingleFieldArcadeExpression as c,getLabelExpression as b,getLabelExpressionArcade as m,getLabelExpressionSingleField as u,LabelClassSymbol as f}from"./labelUtils.js";import{isSceneServiceLayer as w}from"./layerUtils.js";import{defaultTextSymbol2D as v}from"../../symbols/support/defaults.js";import{writeLabelSymbol as y}from"../../symbols/support/jsonUtils.js";import{symbolTypesLabel3D as d,symbolTypesLabel as h,symbolTypesLabel2D as S}from"../../symbols/support/typeUtils.js";import{reader as L}from"../../core/accessorSupport/decorators/reader.js";import{writer as P}from"../../core/accessorSupport/decorators/writer.js";var x,g;const E=new r({esriServerPointLabelPlacementAboveCenter:"above-center",esriServerPointLabelPlacementAboveLeft:"above-left",esriServerPointLabelPlacementAboveRight:"above-right",esriServerPointLabelPlacementBelowCenter:"below-center",esriServerPointLabelPlacementBelowLeft:"below-left",esriServerPointLabelPlacementBelowRight:"below-right",esriServerPointLabelPlacementCenterCenter:"center-center",esriServerPointLabelPlacementCenterLeft:"center-left",esriServerPointLabelPlacementCenterRight:"center-right",esriServerLinePlacementAboveAfter:"above-after",esriServerLinePlacementAboveAlong:"above-along",esriServerLinePlacementAboveBefore:"above-before",esriServerLinePlacementAboveStart:"above-start",esriServerLinePlacementAboveEnd:"above-end",esriServerLinePlacementBelowAfter:"below-after",esriServerLinePlacementBelowAlong:"below-along",esriServerLinePlacementBelowBefore:"below-before",esriServerLinePlacementBelowStart:"below-start",esriServerLinePlacementBelowEnd:"below-end",esriServerLinePlacementCenterAfter:"center-after",esriServerLinePlacementCenterAlong:"center-along",esriServerLinePlacementCenterBefore:"center-before",esriServerLinePlacementCenterStart:"center-start",esriServerLinePlacementCenterEnd:"center-end",esriServerPolygonPlacementAlwaysHorizontal:"always-horizontal"},{ignoreUnknown:!0});function j(e,r,t){return{enabled:!w(t?.layer)}}function A(e){return!e||"service"!==e.origin&&!("map-image"===e.layer?.type)}function C(e){return"map-image"===e?.type}function I(e){return!!C(e)&&!!e.capabilities?.exportMap?.supportsArcadeExpressionForLabeling}function B(e){return A(e)||I(e?.layer)}let D=class extends t{static{x=f}static{g=this}static evaluateWhere(e,r){const t=(e,r,t)=>{switch(r){case"=":return e==t;case"<>":return e!=t;case">":return e>t;case">=":return e>=t;case"<":return e<t;case"<=":return e<=t}return!1};try{if(null==e)return!0;const o=e.split(" ");if(3===o.length)return t(r[o[0]],o[1],o[2]);if(7===o.length){const e=t(r[o[0]],o[1],o[2]),i=o[3],s=t(r[o[4]],o[5],o[6]);switch(i){case"AND":return e&&s;case"OR":return e||s}}return!1}catch(o){}}constructor(e){super(e),this[x]=!0,this.type="label",this.name=null,this.allowOverrun=!1,this.deconflictionStrategy="static",this.labelExpression=null,this.labelExpressionInfo=null,this.labelPlacement=null,this.offsetDistance=0,this.labelPosition="curved",this.maxScale=0,this.minScale=0,this.repeatLabel=!0,this.symbol=v,this.useCodedValues=void 0,this.where=null}readLabelExpression(e,r){const t=r.labelExpressionInfo;if(!t||!t.value&&!t.expression)return e}writeLabelExpression(e,r,t){if(this.labelExpressionInfo)if(null!=this.labelExpressionInfo.value)e=p(this.labelExpressionInfo.value);else if(null!=this.labelExpressionInfo.expression){const r=c(this.labelExpressionInfo.expression);r&&(e="["+r+"]")}null!=e&&(r[t]=e)}writeLabelExpressionInfo(e,r,t,o){if(null==e&&null!=this.labelExpression&&A(o))e=new a({expression:this.getLabelExpressionArcade()});else if(!e)return;const i=e.toJSON(o);i.expression&&(r[t]=i)}writeMaxScale(e,r){(e||this.minScale)&&(r.maxScale=e)}writeMinScale(e,r){(e||this.maxScale)&&(r.minScale=e)}get repeatLabelDistance(){return this._get("repeatLabelDistance")}set repeatLabelDistance(e){this._set("repeatLabelDistance",e)}getLabelExpression(){return b(this)}getLabelExpressionArcade(){return m(this)}getLabelExpressionSingleField(){return u(this)}hash(){return JSON.stringify(this)}clone(){return new g({allowOverrun:this.allowOverrun,deconflictionStrategy:this.deconflictionStrategy,labelExpression:this.labelExpression,labelExpressionInfo:o(this.labelExpressionInfo),labelPosition:this.labelPosition,labelPlacement:this.labelPlacement,offsetDistance:this.offsetDistance,maxScale:this.maxScale,minScale:this.minScale,name:this.name,repeatLabel:this.repeatLabel,repeatLabelDistance:this.repeatLabelDistance,symbol:o(this.symbol),where:this.where,useCodedValues:this.useCodedValues})}};e([s({type:String,json:{write:!0}})],D.prototype,"name",void 0),e([s({type:Boolean,json:{write:!0,default:!1,origins:{"web-scene":{write:!1},"portal-item":{default:!1,write:{overridePolicy:j}}}}})],D.prototype,"allowOverrun",void 0),e([s({type:String,json:{write:!0,default:"static",origins:{"web-scene":{write:!1},"portal-item":{default:"static",write:{overridePolicy:j}}}}})],D.prototype,"deconflictionStrategy",void 0),e([s({type:String,json:{write:{overridePolicy(e,r,t){return this.labelExpressionInfo&&"service"===t?.origin&&I(t.layer)?{enabled:!1}:{allowNull:!0}}}}})],D.prototype,"labelExpression",void 0),e([L("labelExpression")],D.prototype,"readLabelExpression",null),e([P("labelExpression")],D.prototype,"writeLabelExpression",null),e([s({type:a,json:{write:{overridePolicy:(e,r,t)=>B(t)?{allowNull:!0}:{enabled:!1}}}})],D.prototype,"labelExpressionInfo",void 0),e([P("labelExpressionInfo")],D.prototype,"writeLabelExpressionInfo",null),e([s({type:E.apiValues,json:{type:E.jsonValues,read:E.read,write:E.write}})],D.prototype,"labelPlacement",void 0),e([s({type:Number,json:{read:!0,write:!0,default:0,origins:{"web-scene":{write:!1}}}})],D.prototype,"offsetDistance",void 0),e([s({type:["curved","parallel"],json:{write:!0,origins:{"web-map":{write:!1},"web-scene":{write:!1},"portal-item":{write:!1}}}})],D.prototype,"labelPosition",void 0),e([s({type:Number})],D.prototype,"maxScale",void 0),e([P("maxScale")],D.prototype,"writeMaxScale",null),e([s({type:Number})],D.prototype,"minScale",void 0),e([P("minScale")],D.prototype,"writeMinScale",null),e([s({type:Boolean,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:j}}}}})],D.prototype,"repeatLabel",void 0),e([s({type:Number,cast:i,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:j}}}}})],D.prototype,"repeatLabelDistance",null),e([s({types:h,json:{types:S,origins:{"portal-item":{types:h,read:{reader:l({types:h})},default:null},"web-scene":{types:d,read:{reader:l({types:d})},write:y,default:null}},write:y,default:null}})],D.prototype,"symbol",void 0),e([s({type:Boolean,json:{write:!0}})],D.prototype,"useCodedValues",void 0),e([s({type:String,json:{write:!0}})],D.prototype,"where",void 0),D=g=e([n("esri.layers.support.LabelClass")],D);export{D as default};
2
+ import{__decorate as e}from"tslib";import"../../core/has.js";import{JSONMap as r}from"../../core/jsonMap.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{toPt as i}from"../../core/screenUtils.js";import{property as s,subclass as n}from"../../core/accessorSupport/decorators.js";import{createTypeReader as l}from"../../core/accessorSupport/extensions/serializableProperty/reader.js";import a from"./LabelExpressionInfo.js";import{templateStringToSql as p,getSingleFieldArcadeExpression as c,getLabelExpression as b,getLabelExpressionArcade as m,getLabelExpressionSingleField as u,LabelClassSymbol as f}from"./labelUtils.js";import{isSceneServiceLayer as w}from"./layerUtils.js";import{defaultTextSymbol2D as v}from"../../symbols/support/defaults.js";import{writeLabelSymbol as y}from"../../symbols/support/jsonUtils.js";import{symbolTypesLabel3D as d,symbolTypesLabel as h}from"../../symbols/support/typeUtils.js";import{reader as S}from"../../core/accessorSupport/decorators/reader.js";import{writer as L}from"../../core/accessorSupport/decorators/writer.js";var P,x;const g=new r({esriServerPointLabelPlacementAboveCenter:"above-center",esriServerPointLabelPlacementAboveLeft:"above-left",esriServerPointLabelPlacementAboveRight:"above-right",esriServerPointLabelPlacementBelowCenter:"below-center",esriServerPointLabelPlacementBelowLeft:"below-left",esriServerPointLabelPlacementBelowRight:"below-right",esriServerPointLabelPlacementCenterCenter:"center-center",esriServerPointLabelPlacementCenterLeft:"center-left",esriServerPointLabelPlacementCenterRight:"center-right",esriServerLinePlacementAboveAfter:"above-after",esriServerLinePlacementAboveAlong:"above-along",esriServerLinePlacementAboveBefore:"above-before",esriServerLinePlacementAboveStart:"above-start",esriServerLinePlacementAboveEnd:"above-end",esriServerLinePlacementBelowAfter:"below-after",esriServerLinePlacementBelowAlong:"below-along",esriServerLinePlacementBelowBefore:"below-before",esriServerLinePlacementBelowStart:"below-start",esriServerLinePlacementBelowEnd:"below-end",esriServerLinePlacementCenterAfter:"center-after",esriServerLinePlacementCenterAlong:"center-along",esriServerLinePlacementCenterBefore:"center-before",esriServerLinePlacementCenterStart:"center-start",esriServerLinePlacementCenterEnd:"center-end",esriServerPolygonPlacementAlwaysHorizontal:"always-horizontal"},{ignoreUnknown:!0});function E(e,r,t){return{enabled:!w(t?.layer)}}function j(e){return!e||"service"!==e.origin&&!("map-image"===e.layer?.type)}function A(e){return"map-image"===e?.type}function C(e){return!!A(e)&&!!e.capabilities?.exportMap?.supportsArcadeExpressionForLabeling}function I(e){return j(e)||C(e?.layer)}let B=class extends t{static{P=f}static{x=this}static evaluateWhere(e,r){const t=(e,r,t)=>{switch(r){case"=":return e==t;case"<>":return e!=t;case">":return e>t;case">=":return e>=t;case"<":return e<t;case"<=":return e<=t}return!1};try{if(null==e)return!0;const o=e.split(" ");if(3===o.length)return t(r[o[0]],o[1],o[2]);if(7===o.length){const e=t(r[o[0]],o[1],o[2]),i=o[3],s=t(r[o[4]],o[5],o[6]);switch(i){case"AND":return e&&s;case"OR":return e||s}}return!1}catch(o){}}constructor(e){super(e),this[P]=!0,this.type="label",this.name=null,this.allowOverrun=!1,this.deconflictionStrategy="static",this.labelExpression=null,this.labelExpressionInfo=null,this.labelPlacement=null,this.offsetDistance=0,this.labelPosition="curved",this.maxScale=0,this.minScale=0,this.repeatLabel=!0,this.symbol=v,this.useCodedValues=void 0,this.where=null}readLabelExpression(e,r){const t=r.labelExpressionInfo;if(!t||!t.value&&!t.expression)return e}writeLabelExpression(e,r,t){if(this.labelExpressionInfo)if(null!=this.labelExpressionInfo.value)e=p(this.labelExpressionInfo.value);else if(null!=this.labelExpressionInfo.expression){const r=c(this.labelExpressionInfo.expression);r&&(e="["+r+"]")}null!=e&&(r[t]=e)}writeLabelExpressionInfo(e,r,t,o){if(null==e&&null!=this.labelExpression&&j(o))e=new a({expression:this.getLabelExpressionArcade()});else if(!e)return;const i=e.toJSON(o);i.expression&&(r[t]=i)}writeMaxScale(e,r){(e||this.minScale)&&(r.maxScale=e)}writeMinScale(e,r){(e||this.maxScale)&&(r.minScale=e)}get repeatLabelDistance(){return this._get("repeatLabelDistance")}set repeatLabelDistance(e){this._set("repeatLabelDistance",e)}getLabelExpression(){return b(this)}getLabelExpressionArcade(){return m(this)}getLabelExpressionSingleField(){return u(this)}hash(){return JSON.stringify(this)}clone(){return new x({allowOverrun:this.allowOverrun,deconflictionStrategy:this.deconflictionStrategy,labelExpression:this.labelExpression,labelExpressionInfo:o(this.labelExpressionInfo),labelPosition:this.labelPosition,labelPlacement:this.labelPlacement,offsetDistance:this.offsetDistance,maxScale:this.maxScale,minScale:this.minScale,name:this.name,repeatLabel:this.repeatLabel,repeatLabelDistance:this.repeatLabelDistance,symbol:o(this.symbol),where:this.where,useCodedValues:this.useCodedValues})}};e([s({type:String,json:{write:!0}})],B.prototype,"name",void 0),e([s({type:Boolean,json:{write:!0,default:!1,origins:{"web-scene":{write:!1},"portal-item":{default:!1,write:{overridePolicy:E}}}}})],B.prototype,"allowOverrun",void 0),e([s({type:String,json:{write:!0,default:"static",origins:{"web-scene":{write:!1},"portal-item":{default:"static",write:{overridePolicy:E}}}}})],B.prototype,"deconflictionStrategy",void 0),e([s({type:String,json:{write:{overridePolicy(e,r,t){return this.labelExpressionInfo&&"service"===t?.origin&&C(t.layer)?{enabled:!1}:{allowNull:!0}}}}})],B.prototype,"labelExpression",void 0),e([S("labelExpression")],B.prototype,"readLabelExpression",null),e([L("labelExpression")],B.prototype,"writeLabelExpression",null),e([s({type:a,json:{write:{overridePolicy:(e,r,t)=>I(t)?{allowNull:!0}:{enabled:!1}}}})],B.prototype,"labelExpressionInfo",void 0),e([L("labelExpressionInfo")],B.prototype,"writeLabelExpressionInfo",null),e([s({type:g.apiValues,json:{type:g.jsonValues,read:g.read,write:g.write}})],B.prototype,"labelPlacement",void 0),e([s({type:Number,json:{read:!0,write:!0,default:0,origins:{"web-scene":{write:!1}}}})],B.prototype,"offsetDistance",void 0),e([s({type:["curved","parallel"],json:{write:!0,origins:{"web-map":{write:!1},"web-scene":{write:!1},"portal-item":{write:!1}}}})],B.prototype,"labelPosition",void 0),e([s({type:Number})],B.prototype,"maxScale",void 0),e([L("maxScale")],B.prototype,"writeMaxScale",null),e([s({type:Number})],B.prototype,"minScale",void 0),e([L("minScale")],B.prototype,"writeMinScale",null),e([s({type:Boolean,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:E}}}}})],B.prototype,"repeatLabel",void 0),e([s({type:Number,cast:i,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:E}}}}})],B.prototype,"repeatLabelDistance",null),e([s({types:h,json:{types:h,origins:{"portal-item":{types:h,read:{reader:l({types:h})},default:null},"web-scene":{types:d,read:{reader:l({types:d})},write:y,default:null}},write:y,default:null}})],B.prototype,"symbol",void 0),e([s({type:Boolean,json:{write:!0}})],B.prototype,"useCodedValues",void 0),e([s({type:String,json:{write:!0}})],B.prototype,"where",void 0),B=x=e([n("esri.layers.support.LabelClass")],B);export{B as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const a={AnnotationFeatureLayer:async()=>(await(import("../AnnotationFeatureLayer.js"))).default,BingMapsLayer:async()=>(await(import("../BingMapsLayer.js"))).default,BuildingSceneLayer:async()=>(await(import("../BuildingSceneLayer.js"))).default,CSVLayer:async()=>(await(import("../CSVLayer.js"))).default,CatalogLayer:async()=>(await(import("../CatalogLayer.js"))).default,DimensionFeatureLayer:async()=>(await(import("../DimensionFeatureLayer.js"))).default,DimensionLayer:async()=>(await(import("../DimensionLayer.js"))).default,ElevationLayer:async()=>(await(import("../ElevationLayer.js"))).default,FeatureLayer:async()=>(await(import("../FeatureLayer.js"))).default,GaussianSplatLayer:async()=>(await(import("../GaussianSplatLayer.js"))).default,GeoJSONLayer:async()=>(await(import("../GeoJSONLayer.js"))).default,GeoRSSLayer:async()=>(await(import("../GeoRSSLayer.js"))).default,GroupLayer:async()=>(await(import("../GroupLayer.js"))).default,ImageryLayer:async()=>(await(import("../ImageryLayer.js"))).default,ImageryTileLayer:async()=>(await(import("../ImageryTileLayer.js"))).default,IntegratedMesh3DTilesLayer:async()=>(await(import("../IntegratedMesh3DTilesLayer.js"))).default,IntegratedMeshLayer:async()=>(await(import("../IntegratedMeshLayer.js"))).default,KMLLayer:async()=>(await(import("../KMLLayer.js"))).default,KnowledgeGraphLayer:async()=>(await(import("../KnowledgeGraphLayer.js"))).default,LineOfSightLayer:async()=>(await(import("../LineOfSightLayer.js"))).default,LinkChartLayer:async()=>(await(import("../LinkChartLayer.js"))).default,MapImageLayer:async()=>(await(import("../MapImageLayer.js"))).default,MapNotesLayer:async()=>(await(import("../MapNotesLayer.js"))).default,MediaLayer:async()=>(await(import("../MediaLayer.js"))).default,OGCFeatureLayer:async()=>(await(import("../OGCFeatureLayer.js"))).default,OpenStreetMapLayer:async()=>(await(import("../OpenStreetMapLayer.js"))).default,OrientedImageryLayer:async()=>(await(import("../OrientedImageryLayer.js"))).default,ParquetLayer:async()=>(await(import("../ParquetLayer.js"))).default,PointCloudLayer:async()=>(await(import("../PointCloudLayer.js"))).default,RouteLayer:async()=>(await(import("../RouteLayer.js"))).default,SceneLayer:async()=>(await(import("../SceneLayer.js"))).default,StreamLayer:async()=>(await(import("../StreamLayer.js"))).default,SubtypeGroupLayer:async()=>(await(import("../SubtypeGroupLayer.js"))).default,TileLayer:async()=>(await(import("../TileLayer.js"))).default,UnknownLayer:async()=>(await(import("../UnknownLayer.js"))).default,UnsupportedLayer:async()=>(await(import("../UnsupportedLayer.js"))).default,VectorTileLayer:async()=>(await(import("../VectorTileLayer.js"))).default,VideoLayer:async()=>(await(import("../VideoLayer.js"))).default,ViewshedLayer:async()=>(await(import("../ViewshedLayer.js"))).default,VoxelLayer:async()=>(await(import("../VoxelLayer.js"))).default,WCSLayer:async()=>(await(import("../WCSLayer.js"))).default,WFSLayer:async()=>(await(import("../WFSLayer.js"))).default,WMSLayer:async()=>(await(import("../WMSLayer.js"))).default,WMTSLayer:async()=>(await(import("../WMTSLayer.js"))).default,WebTileLayer:async()=>(await(import("../WebTileLayer.js"))).default};export{a as layersLoaderMap};
2
+ const a={AnnotationFeatureLayer:async()=>(await(import("../AnnotationFeatureLayer.js"))).default,BingMapsLayer:async()=>(await(import("../BingMapsLayer.js"))).default,BuildingSceneLayer:async()=>(await(import("../BuildingSceneLayer.js"))).default,CSVLayer:async()=>(await(import("../CSVLayer.js"))).default,CatalogLayer:async()=>(await(import("../CatalogLayer.js"))).default,DimensionFeatureLayer:async()=>(await(import("../DimensionFeatureLayer.js"))).default,DimensionLayer:async()=>(await(import("../DimensionLayer.js"))).default,ElevationLayer:async()=>(await(import("../ElevationLayer.js"))).default,FeatureLayer:async()=>(await(import("../FeatureLayer.js"))).default,GaussianSplatLayer:async()=>(await(import("../GaussianSplatLayer.js"))).default,GeoJSONLayer:async()=>(await(import("../GeoJSONLayer.js"))).default,GeoRSSLayer:async()=>(await(import("../GeoRSSLayer.js"))).default,GeospatialPDFLayer:async()=>(await(import("../GeospatialPDFLayer.js"))).default,GroupLayer:async()=>(await(import("../GroupLayer.js"))).default,ImageryLayer:async()=>(await(import("../ImageryLayer.js"))).default,ImageryTileLayer:async()=>(await(import("../ImageryTileLayer.js"))).default,IntegratedMesh3DTilesLayer:async()=>(await(import("../IntegratedMesh3DTilesLayer.js"))).default,IntegratedMeshLayer:async()=>(await(import("../IntegratedMeshLayer.js"))).default,KMLLayer:async()=>(await(import("../KMLLayer.js"))).default,KnowledgeGraphLayer:async()=>(await(import("../KnowledgeGraphLayer.js"))).default,LineOfSightLayer:async()=>(await(import("../LineOfSightLayer.js"))).default,LinkChartLayer:async()=>(await(import("../LinkChartLayer.js"))).default,MapImageLayer:async()=>(await(import("../MapImageLayer.js"))).default,MapNotesLayer:async()=>(await(import("../MapNotesLayer.js"))).default,MediaLayer:async()=>(await(import("../MediaLayer.js"))).default,OGCFeatureLayer:async()=>(await(import("../OGCFeatureLayer.js"))).default,OpenStreetMapLayer:async()=>(await(import("../OpenStreetMapLayer.js"))).default,OrientedImageryLayer:async()=>(await(import("../OrientedImageryLayer.js"))).default,ParquetLayer:async()=>(await(import("../ParquetLayer.js"))).default,PointCloudLayer:async()=>(await(import("../PointCloudLayer.js"))).default,RouteLayer:async()=>(await(import("../RouteLayer.js"))).default,SceneLayer:async()=>(await(import("../SceneLayer.js"))).default,StreamLayer:async()=>(await(import("../StreamLayer.js"))).default,SubtypeGroupLayer:async()=>(await(import("../SubtypeGroupLayer.js"))).default,TileLayer:async()=>(await(import("../TileLayer.js"))).default,UnknownLayer:async()=>(await(import("../UnknownLayer.js"))).default,UnsupportedLayer:async()=>(await(import("../UnsupportedLayer.js"))).default,VectorTileLayer:async()=>(await(import("../VectorTileLayer.js"))).default,VideoLayer:async()=>(await(import("../VideoLayer.js"))).default,ViewshedLayer:async()=>(await(import("../ViewshedLayer.js"))).default,VoxelLayer:async()=>(await(import("../VoxelLayer.js"))).default,WCSLayer:async()=>(await(import("../WCSLayer.js"))).default,WFSLayer:async()=>(await(import("../WFSLayer.js"))).default,WMSLayer:async()=>(await(import("../WMSLayer.js"))).default,WMTSLayer:async()=>(await(import("../WMTSLayer.js"))).default,WebTileLayer:async()=>(await(import("../WebTileLayer.js"))).default};export{a as layersLoaderMap};
package/layers/types.d.ts CHANGED
@@ -33,7 +33,7 @@ import type { TimeZone } from "../time/types.js";
33
33
  * @see [Layer.type](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#type)
34
34
  * @since 5.0
35
35
  */
36
- export type LayerType = "annotation-feature" | "base-dynamic" | "base-elevation" | "base-tile" | "bing-maps" | "building-scene" | "catalog" | "catalog-footprint" | "catalog-dynamic-group" | "csv" | "dimension" | "dimension-feature" | "elevation" | "feature" | "geo-rss" | "geojson" | "parquet" | "gaussian-splat" | "graphics" | "group" | "imagery" | "imagery-tile" | "integrated-mesh" | "integrated-mesh-3dtiles" | "kml" | "knowledge-graph" | "knowledge-graph-sublayer" | "line-of-sight" | "link-chart" | "map-image" | "map-notes" | "media" | "video" | "ogc-feature" | "open-street-map" | "oriented-imagery" | "point-cloud" | "route" | "scene" | "stream" | "subtype-group" | "tile" | "unknown" | "unsupported" | "vector-tile" | "viewshed" | "voxel" | "wcs" | "web-tile" | "wfs" | "wms" | "wmts";
36
+ export type LayerType = "annotation-feature" | "base-dynamic" | "base-elevation" | "base-tile" | "bing-maps" | "building-scene" | "catalog" | "catalog-footprint" | "catalog-dynamic-group" | "csv" | "dimension" | "dimension-feature" | "elevation" | "feature" | "geospatial-pdf" | "geo-rss" | "geojson" | "parquet" | "gaussian-splat" | "graphics" | "group" | "imagery" | "imagery-tile" | "integrated-mesh" | "integrated-mesh-3dtiles" | "kml" | "knowledge-graph" | "knowledge-graph-sublayer" | "line-of-sight" | "link-chart" | "map-image" | "map-notes" | "media" | "video" | "ogc-feature" | "open-street-map" | "oriented-imagery" | "point-cloud" | "route" | "scene" | "stream" | "subtype-group" | "tile" | "unknown" | "unsupported" | "vector-tile" | "viewshed" | "voxel" | "wcs" | "web-tile" | "wfs" | "wms" | "wmts";
37
37
 
38
38
  /**
39
39
  * Indicates how the layer should display in the [Layer List](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list/) component.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "5.2.0-next.121",
3
+ "version": "5.2.0-next.122",
4
4
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
5
5
  "keywords": [
6
6
  "ArcGIS",
@@ -19,12 +19,12 @@
19
19
  "type": "module",
20
20
  "license": "SEE LICENSE IN LICENSE.md",
21
21
  "dependencies": {
22
- "@amcharts/amcharts5": "~5.20.7",
23
- "@arcgis/toolkit": "5.2.0-next.121",
22
+ "@amcharts/amcharts5": "~5.20.8",
23
+ "@arcgis/toolkit": "5.2.0-next.122",
24
24
  "@esri/arcgis-html-sanitizer": "~4.1.0",
25
25
  "@esri/calcite-components": "^5.2.0-next.80",
26
26
  "@vaadin/grid": "~25.3.0",
27
- "@zip.js/zip.js": "~2.17.0",
27
+ "@zip.js/zip.js": "~2.18.2",
28
28
  "luxon": "~3.7.2",
29
29
  "marked": "~18.0.14",
30
30
  "tslib": "^2.8.1"