@arcgis/core 6.0.0-next.15 → 6.0.0-next.17

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 (439) hide show
  1. package/analysis/LineOfSightAnalysis.d.ts +49 -32
  2. package/analysis/LineOfSightAnalysisObserver.d.ts +19 -3
  3. package/analysis/LineOfSightAnalysisTarget.d.ts +19 -3
  4. package/analysis/Viewshed.d.ts +23 -3
  5. package/analysis/ViewshedAnalysis.d.ts +33 -13
  6. package/arcade/geometry/operatorsWorkerConnection.js +1 -1
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/00d66e3fba5ab4d2aa3c.js +1 -0
  9. package/assets/esri/core/workers/chunks/{d994bcf0a65d1c07160f.js → 0320cbd825f9a4222042.js} +1 -1
  10. package/assets/esri/core/workers/chunks/14d5d219e7fe017f23f0.js +1 -0
  11. package/assets/esri/core/workers/chunks/164c8eeefa8232b2b191.js +2 -0
  12. package/assets/esri/core/workers/chunks/164e74d586297946a717.js +1 -0
  13. package/assets/esri/core/workers/chunks/1967b9c96045a5802d08.js +1 -0
  14. package/assets/esri/core/workers/chunks/{1bca39e0e651426bdbb5.js → 1b1d3f6916d2cb751435.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{ed6e9d7f71bfd2691717.js → 1c77de1e79860f8d2228.js} +1 -1
  16. package/assets/esri/core/workers/chunks/1e40a26dcce4d1dadc28.js +1 -0
  17. package/assets/esri/core/workers/chunks/{261fea092ee7d27608a0.js → 20a2124cbe43e5527c40.js} +1 -1
  18. package/assets/esri/core/workers/chunks/237a1f68a0efbfe5b77c.js +1 -0
  19. package/assets/esri/core/workers/chunks/{3418877328f4f0830300.js → 24dac4970526a4e0ae63.js} +1 -1
  20. package/assets/esri/core/workers/chunks/26ceb0ff8d93dbb9b84f.js +1 -0
  21. package/assets/esri/core/workers/chunks/2853606099602f73d379.js +1 -0
  22. package/assets/esri/core/workers/chunks/2981e904ab62f3ed80d0.js +2 -0
  23. package/assets/esri/core/workers/chunks/2acf2952cef69e382a35.js +1 -0
  24. package/assets/esri/core/workers/chunks/32cc59e126df8c96a0cf.js +2 -0
  25. package/assets/esri/core/workers/chunks/{4df6cb1bee5d0720a43e.js → 34e0a8a3a2beea50f4f5.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{481589c3eddad6e026ad.js → 369780276b2755361f7d.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{1e0d2715d603f48a7e0b.js → 370aad23df597db80d65.js} +1 -1
  28. package/assets/esri/core/workers/chunks/3e30b96a8c75bd5b9ae2.js +1 -0
  29. package/assets/esri/core/workers/chunks/{25f19fc929f25ddd628c.js → 42753cf4965a94bc91ca.js} +1 -1
  30. package/assets/esri/core/workers/chunks/42d44c7d532df5ee70e9.js +1 -0
  31. package/assets/esri/core/workers/chunks/42e985a576d7aaeed0cf.js +1 -0
  32. package/assets/esri/core/workers/chunks/{6400446b7615b97c3521.js → 45f826554499c38968c6.js} +1 -1
  33. package/assets/esri/core/workers/chunks/48cc58890fddbcf69cef.js +1 -0
  34. package/assets/esri/core/workers/chunks/494bd434fee9032e1d02.js +1 -0
  35. package/assets/esri/core/workers/chunks/{33e4ff228a8c81b99022.js → 4abd3753cd9b80e4d937.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{b564ec4e03478f5659db.js → 4c240ca50f70bf30813f.js} +1 -1
  37. package/assets/esri/core/workers/chunks/4c389472b8cdb0c55154.js +1 -0
  38. package/assets/esri/core/workers/chunks/4e4f747de424941a0bfa.js +1 -0
  39. package/assets/esri/core/workers/chunks/{70d3055f15d8b0cf4074.js → 532e9cda8ac3601d8892.js} +1 -1
  40. package/assets/esri/core/workers/chunks/5529831dd891382c79df.js +1 -0
  41. package/assets/esri/core/workers/chunks/{953ba13299e7aa92c1a0.js → 564565246dae080f5e6c.js} +1 -1
  42. package/assets/esri/core/workers/chunks/576248e9ae2654569420.js +1 -0
  43. package/assets/esri/core/workers/chunks/{2145a512d269d64036b0.js → 58c3ae6030def2ed5f31.js} +1 -1
  44. package/assets/esri/core/workers/chunks/5a19a9c3e01d3d415188.js +1 -0
  45. package/assets/esri/core/workers/chunks/5a830bc35adbedd33783.js +1 -0
  46. package/assets/esri/core/workers/chunks/{eb04e1717a1002cda3ab.js → 5b91e2dffdc84c006539.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{aeaaff7a4b1a99540f52.js → 5cb26bbaa08114aec5ce.js} +1 -1
  48. package/assets/esri/core/workers/chunks/603fdbbe9534c614928f.js +1 -0
  49. package/assets/esri/core/workers/chunks/{4e6f40cbdb8c508e6df1.js → 60f92eb03c6e17ab4747.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{67ebc5a3d46b254b725c.js → 612345f17f5eeb99ea8f.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{1b077c92345ffb5916c2.js → 65c98f3449044fa4fd79.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{2bd4ee083ca4ad221f8b.js → 65cb5e39c467a35621ca.js} +1 -1
  53. package/assets/esri/core/workers/chunks/661c6324529dd17b297e.js +1 -0
  54. package/assets/esri/core/workers/chunks/67a35155b8b4d36f171e.js +1 -0
  55. package/assets/esri/core/workers/chunks/68dd1fd2025c7125ead1.js +1 -0
  56. package/assets/esri/core/workers/chunks/{89e76de5ae3328d821a4.js → 69f6d5997b8ff1326e39.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{ae31fd416bbb41a81392.js → 6ad309154fe84210d23c.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{a40b6d8b5c73e06e14d4.js → 6c255c029d67423e4dac.js} +1 -1
  59. package/assets/esri/core/workers/chunks/7446d0dfebf93e86c098.js +1 -0
  60. package/assets/esri/core/workers/chunks/{688f2dbf784e66082308.js → 74c866e0b66e61751861.js} +1 -1
  61. package/assets/esri/core/workers/chunks/784d6c6949284ed6e10b.js +1 -0
  62. package/assets/esri/core/workers/chunks/{3ffda5bf0b91700dc308.js → 78643f116677950ea29a.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{916b363c342b61ba5461.js → 787c1a8bda7d745633f2.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{e2190361247f35b02b32.js → 7b5cd150a4d0139850be.js} +1 -1
  65. package/assets/esri/core/workers/chunks/7bbfe9ff352afc566367.js +1 -0
  66. package/assets/esri/core/workers/chunks/7d2cbc767c336d15e4d5.js +1 -0
  67. package/assets/esri/core/workers/chunks/{ac5a6603f7fa78d3e4c8.js → 7e8611cb709f105946f5.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{05cd33d41d91f8d09633.js → 7fb7493f483cd9878bfa.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{590e6c70206122e4cc3c.js → 844eedda8f749972f707.js} +2 -2
  70. package/assets/esri/core/workers/chunks/{acfa03c65ba3ca6c5685.js → 8715661a838361d4211a.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{601e1d020b8115497944.js → 8a485130781b49dbf608.js} +1 -1
  72. package/assets/esri/core/workers/chunks/{0ccab50877b24f862d6e.js → 8ac2098ecdc40ad41055.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{a655ebdb4bf0660615a2.js → 8b4e9fd88c0c313416d4.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{4e544de61f07ca660236.js → 8c12269d26f5a4c753cb.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{46b4fb6a7fe4877b0efc.js → 94baa354e50c03b82b25.js} +2 -2
  76. package/assets/esri/core/workers/chunks/9503eedfdda55fc5adab.js +1 -0
  77. package/assets/esri/core/workers/chunks/950d4578dc450467404c.js +1 -0
  78. package/assets/esri/core/workers/chunks/{68be3fb88ca61f82fb90.js → 95dbbddac6581b9d671f.js} +1 -1
  79. package/assets/esri/core/workers/chunks/98be2f621801e230aa01.js +1 -0
  80. package/assets/esri/core/workers/chunks/999c23da883eb11cb29e.js +1 -0
  81. package/assets/esri/core/workers/chunks/9b6929faf649e81265fb.js +1 -0
  82. package/assets/esri/core/workers/chunks/9d61740ef8bdcc162be1.js +1 -0
  83. package/assets/esri/core/workers/chunks/{fafb92ca2c5e4b0b2c23.js → a09d2e1e2540921e4717.js} +1 -1
  84. package/assets/esri/core/workers/chunks/a35c69a4751d28c39907.js +1 -0
  85. package/assets/esri/core/workers/chunks/{3b3e519f15ed52c83f0c.js → a49fe94933b65b4b64f8.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{1819c45655c836b9a8d7.js → a4d3944700f1cc240176.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{ec8b7476eac4718eb0ac.js → a504a5e06cb89a620799.js} +1 -1
  88. package/assets/esri/core/workers/chunks/a596779eaeec7310671d.js +1 -0
  89. package/assets/esri/core/workers/chunks/{d5d0fe8e198ff5a902ee.js → a5c8f9f5be4ef5063b42.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{900181f68449d8f82eeb.js → aa1ac7954e4f0fefe15b.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{90bdf86f553e2742d67c.js → ab1660f5f8a5268c2fac.js} +1 -1
  92. package/assets/esri/core/workers/chunks/ac24b4370dc7194a3107.js +1 -0
  93. package/assets/esri/core/workers/chunks/{b8337492e2b753aefac4.js → ace41659a5ca0e5abfc3.js} +1 -1
  94. package/assets/esri/core/workers/chunks/ae0563d573baf91e01f7.js +1 -0
  95. package/assets/esri/core/workers/chunks/{3c0ed15b544df6fb0903.js → b48952e1fb4cb7360dd0.js} +1 -1
  96. package/assets/esri/core/workers/chunks/b5e7475cc5fbf31289d3.js +1 -0
  97. package/assets/esri/core/workers/chunks/b686cd74975da09b9c91.js +2 -0
  98. package/assets/esri/core/workers/chunks/{aa36c3a9bbaa086e3757.js → b8fd7c3b36981261378b.js} +1 -1
  99. package/assets/esri/core/workers/chunks/bd046399e05e759e0bc2.js +1 -0
  100. package/assets/esri/core/workers/chunks/bd46a04a9ee4ea9e6ef1.js +2 -0
  101. package/assets/esri/core/workers/chunks/{f3da30d7300b92bd8bb0.js → befa32b9e7b3fbdd431e.js} +1 -1
  102. package/assets/esri/core/workers/chunks/bfb39590c548188f5052.js +1 -0
  103. package/assets/esri/core/workers/chunks/c4ddac23bd649d24f3f2.js +1 -0
  104. package/assets/esri/core/workers/chunks/cddc3e285f763ccf33c2.js +1 -0
  105. package/assets/esri/core/workers/chunks/d08ff41e2a9bcd58b64a.js +1 -0
  106. package/assets/esri/core/workers/chunks/d62afb71f4ece4283994.js +1 -0
  107. package/assets/esri/core/workers/chunks/dc1761cba0454fda3cf9.js +1 -0
  108. package/assets/esri/core/workers/chunks/{0f617980c7dd9ad0444f.js → dd0310184fe4832755a8.js} +1 -1
  109. package/assets/esri/core/workers/chunks/dfa5f1311806473e473f.js +1 -0
  110. package/assets/esri/core/workers/chunks/{4ac1d3e49e242e373a92.js → e0650b1408197d3ac862.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{3ff6d1ed3c0f1285f3e7.js → e0d9dc97985561320bd4.js} +1 -1
  112. package/assets/esri/core/workers/chunks/eaddffcc7004101fc230.js +1 -0
  113. package/assets/esri/core/workers/chunks/eb2652ec48faa78de3c5.js +1 -0
  114. package/assets/esri/core/workers/chunks/eca44e53bcee9b08d70a.js +1 -0
  115. package/assets/esri/core/workers/chunks/f00458654c7c34c369ef.js +1 -0
  116. package/assets/esri/core/workers/chunks/f3cd610084e3f4d8656b.js +1 -0
  117. package/assets/esri/core/workers/chunks/f47fe4433b05fca5c3ad.js +1 -0
  118. package/assets/esri/core/workers/chunks/f7bfa3d33b05b250ce33.js +1 -0
  119. package/assets/esri/core/workers/chunks/f91bc1cb1014e05be763.js +1 -0
  120. package/assets/esri/core/workers/chunks/{19676b2c5f8b0a5ee680.js → facd1ff23203fed67686.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{634523cc7757da9020e4.js → fb70ab267a08e24b710f.js} +1 -1
  122. package/assets/esri/core/workers/chunks/fc139f251dc0523074e7.js +1 -0
  123. package/assets/esri/core/workers/chunks/{40a584cb952e94326e9e.js → fcb86d24fc7e0666b564.js} +1 -1
  124. package/assets/esri/themes/base/widgets/_Weather.scss +1 -0
  125. package/assets/esri/themes/dark/main.css +1 -1
  126. package/assets/esri/themes/light/main.css +1 -1
  127. package/assets/esri/themes/light/view.css +1 -1
  128. package/chunks/Distance2DCalculator-DjIp2uQi.js +1 -1
  129. package/chunks/Envelope.js +1 -1
  130. package/chunks/MultiPathImpl.js +1 -1
  131. package/chunks/OperatorGeodeticArea.js +1 -1
  132. package/chunks/OperatorShapePreservingLength.js +1 -1
  133. package/chunks/OperatorShapePreservingProject.js +1 -1
  134. package/chunks/UnitFactory.js +1 -1
  135. package/chunks/basis_encoder.js +1 -1
  136. package/chunks/basis_transcoder.js +1 -1
  137. package/chunks/index.js +1 -1
  138. package/chunks/lclayout.js +1 -1
  139. package/chunks/lerc-wasm.js +1 -1
  140. package/config.d.ts +2 -0
  141. package/config.js +1 -1
  142. package/core/accessorSupport/DefaultsStore.js +1 -1
  143. package/core/accessorSupport/MultiOriginStore.js +1 -1
  144. package/core/accessorSupport/Store.js +1 -1
  145. package/core/accessorSupport/decorators/reader.js +1 -1
  146. package/core/accessorSupport/decorators/writer.js +1 -1
  147. package/core/sql/WhereGrammar.js +2 -2
  148. package/core/workers/WorkerOwner.js +1 -1
  149. package/core/workers/workerFactory.js +1 -1
  150. package/core/workers/workers.js +2 -2
  151. package/core/workers.d.ts +9 -0
  152. package/editing/sharedTemplates/executor/builders/equallySpaced.js +1 -1
  153. package/form/elements/inputs/DynamicChoiceInput.d.ts +4 -2
  154. package/geometry/Mesh.js +1 -1
  155. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  156. package/geometry/operators/gx/operatorOffset.js +1 -1
  157. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  158. package/geometry/operators/support/jsonConverter.js +1 -1
  159. package/geometry/support/curves/bezierCurveUtils.js +1 -1
  160. package/geometry/support/curves/ellipticArc7Utils.js +1 -1
  161. package/geometry/support/meshUtils/merge.js +1 -1
  162. package/geometry/support/meshUtils/rotate.js +1 -1
  163. package/geometry/support/polygonExtentClipping.js +1 -1
  164. package/identity/Credential.js +1 -1
  165. package/kernel.js +1 -1
  166. package/layers/AnnotationFeatureLayer.d.ts +2 -2
  167. package/layers/AnnotationFeatureLayer.js +1 -1
  168. package/layers/CatalogLayer.d.ts +2 -2
  169. package/layers/CatalogLayer.js +1 -1
  170. package/layers/DimensionFeatureLayer.d.ts +2 -2
  171. package/layers/DimensionFeatureLayer.js +1 -1
  172. package/layers/ElevationLayer.js +1 -1
  173. package/layers/FeatureLayer.d.ts +4 -4
  174. package/layers/FeatureLayer.js +1 -1
  175. package/layers/GeoJSONLayer.d.ts +1 -1
  176. package/layers/ImageryTileLayer.js +1 -1
  177. package/layers/LineOfSightLayer.d.ts +10 -8
  178. package/layers/SceneLayer.js +1 -1
  179. package/layers/SubtypeGroupLayer.d.ts +2 -2
  180. package/layers/SubtypeGroupLayer.js +1 -1
  181. package/layers/ViewshedLayer.d.ts +1 -1
  182. package/layers/VoxelLayer.js +1 -1
  183. package/layers/WMSLayer.js +1 -1
  184. package/layers/effects/parser.js +3 -3
  185. package/layers/geospatialPDF/GeospatialPDFFrame.js +1 -1
  186. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +9 -9
  187. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +1 -1
  188. package/layers/geospatialPDF/LGIDictMapFrame.js +1 -1
  189. package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
  190. package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
  191. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  192. package/layers/graphics/data/QueryEngineResult.js +1 -1
  193. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  194. package/layers/graphics/sources/parquet/FileProvider.js +1 -1
  195. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  196. package/layers/mixins/{FeatureLayerReload.d.ts → ReloadableLayer.d.ts} +5 -3
  197. package/layers/mixins/ReloadableLayer.js +2 -0
  198. package/layers/raster/datasets/BaseRaster.js +1 -1
  199. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  200. package/layers/raster/datasets/ImageAuxRaster.js +2 -2
  201. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  202. package/layers/raster/datasets/InMemoryRaster.js +1 -1
  203. package/layers/raster/datasets/MRFRaster.js +1 -1
  204. package/layers/raster/datasets/TIFFRaster.js +1 -1
  205. package/layers/raster/datasets/WCSRaster.js +1 -1
  206. package/layers/raster/formats/ElevationCodec.js +2 -0
  207. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  208. package/layers/raster/formats/Lerc.js +1 -1
  209. package/layers/raster/formats/RasterCodec.js +1 -1
  210. package/layers/raster/formats/TiffDecoder.js +1 -1
  211. package/layers/raster/formats/Zlib.js +1 -1
  212. package/layers/raster/functions/stretchUtils.js +1 -1
  213. package/layers/raster/functions/vectorFieldUtils.js +1 -1
  214. package/layers/support/FieldsIndex.js +1 -1
  215. package/layers/support/LercWorker.js +1 -1
  216. package/layers/support/RasterWorker.js +1 -1
  217. package/layers/support/TileInfo.d.ts +1 -1
  218. package/layers/support/TileInfo.js +1 -1
  219. package/layers/support/featureReductionProperties.js +1 -1
  220. package/layers/support/kmlUtils.js +1 -1
  221. package/layers/support/layerOriginUtils.js +1 -1
  222. package/layers/video/VideoController.js +10 -10
  223. package/libs/maquette/projection.js +1 -1
  224. package/networks/UtilityNetworkTraceAnalysis.js +1 -1
  225. package/package.json +6 -6
  226. package/popup/FeatureModel.js +1 -1
  227. package/popup/FeaturesModel.js +1 -1
  228. package/portal/Portal.js +1 -1
  229. package/request/process.js +1 -1
  230. package/request/types.d.ts +7 -0
  231. package/rest/knowledgeGraphService.js +1 -1
  232. package/rest/networks/trace.js +1 -1
  233. package/rest/query/executeQuery.js +1 -1
  234. package/smartMapping/raster/renderers/shadedRelief.js +1 -1
  235. package/smartMapping/renderers/univariateColorSize.js +1 -1
  236. package/smartMapping/statistics/support/statsWorker.js +1 -1
  237. package/smartMapping/statistics/support/utils.js +1 -1
  238. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  239. package/smartMapping/support/adapters/FeatureLayerBinningAdapter.js +1 -1
  240. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  241. package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
  242. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  243. package/smartMapping/support/adapters/support/utils.js +1 -1
  244. package/smartMapping/support/clusterUtils.js +1 -1
  245. package/statistics/utils.js +1 -1
  246. package/symbols/cim/CIMCursor.js +1 -1
  247. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  248. package/symbols/cim/cimAnalyzer.js +1 -1
  249. package/symbols/support/ElevationInfo.d.ts +4 -3
  250. package/time/TimeExtent.d.ts +1 -1
  251. package/undoredo/support/Services.js +1 -1
  252. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +2 -2
  253. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  254. package/views/2d/grid/GridView2D.js +1 -1
  255. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  256. package/views/2d/layers/features/sources/strategies/FeatureHybridTileLoadStrategy.js +1 -1
  257. package/views/2d/layers/features/sources/strategies/FeaturePagedTileLoadStrategy.js +1 -1
  258. package/views/2d/layers/features/sources/strategies/FeatureSnapshotLoadStrategy.js +1 -1
  259. package/views/2d/viewpointUtils.js +1 -1
  260. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  261. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  262. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  263. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  264. package/views/3d/analysis/LineOfSight/types.d.ts +14 -3
  265. package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +39 -13
  266. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  267. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  268. package/views/3d/analysis/Viewshed/types.d.ts +7 -0
  269. package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +43 -15
  270. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  271. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  272. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  273. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  274. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  275. package/views/3d/interactive/editingTools/transform/ScaleRotateTransform.js +1 -1
  276. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  277. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  278. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  279. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  280. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  281. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  282. package/views/3d/layers/graphics/Graphics3DElevationAlignment.js +1 -1
  283. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  284. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  285. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  286. package/views/3d/layers/graphics/SpatialIndex2D.js +1 -1
  287. package/views/3d/layers/i3s/I3SNode.js +1 -1
  288. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  289. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  290. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  291. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  292. package/views/3d/layers/support/FeatureTileFetcher3DDebugger.js +1 -1
  293. package/views/3d/layers/support/ImageHighlightHelper3D.js +1 -1
  294. package/views/3d/layers/support/MediaLayerInteraction.js +1 -1
  295. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  296. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  297. package/views/3d/state/utils/navigationUtils.js +1 -1
  298. package/views/3d/support/elevationUpdateExtentUtils.js +1 -1
  299. package/views/3d/support/elevationUpdateUtils.js +1 -1
  300. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  301. package/views/3d/support/sphereExtentUtils.js +2 -0
  302. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  303. package/views/3d/terrain/OverlayRenderer.js +1 -1
  304. package/views/3d/terrain/PatchRenderData.js +1 -1
  305. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  306. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  307. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  308. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  309. package/views/3d/webgl-engine/materials/internal/MaterialUtil.js +1 -1
  310. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  311. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  312. package/views/SceneView.js +1 -1
  313. package/views/ToolViewManager.js +1 -1
  314. package/views/View.js +1 -1
  315. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  316. package/views/draw/DrawOperation.js +1 -1
  317. package/views/draw/support/InteractiveHandle.js +1 -1
  318. package/views/draw/support/Reshape.js +1 -1
  319. package/views/draw/support/createUtils.js +1 -1
  320. package/views/draw/support/editingSessionUtils.js +1 -1
  321. package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
  322. package/views/interactive/SegmentLabels.js +1 -1
  323. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  324. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  325. package/views/interactive/editGeometry/operations/SetAllVertexPositions.js +1 -1
  326. package/views/interactive/editGeometry/operations/UndoGroup.js +1 -1
  327. package/views/interactive/options/TooltipOptions.d.ts +2 -0
  328. package/views/interactive/sketch/SketchTooltipOptions.d.ts +2 -0
  329. package/views/interactive/sketch/constraintUtils.js +1 -1
  330. package/views/interactive/snapping/SnappingDragPipelineStep.js +1 -1
  331. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  332. package/views/interactive/snapping/allLayerSnapping.js +1 -1
  333. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  334. package/views/layers/LayerView.js +1 -1
  335. package/views/layers/LineOfSightLayerView.d.ts +35 -13
  336. package/views/layers/SketchLayerView.d.ts +1 -0
  337. package/views/layers/ViewshedLayerView.d.ts +36 -12
  338. package/views/webgl/Program.js +1 -1
  339. package/views/webgl/Texture.js +1 -1
  340. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +2 -1
  341. package/widgets/BasemapToggle/BasemapToggleViewModel.d.ts +2 -0
  342. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  343. package/widgets/Directions.js +1 -1
  344. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +2 -1
  345. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  346. package/widgets/Editor/legacy/CreateFeaturesWorkflow.js +1 -1
  347. package/widgets/ElevationProfile/components/Statistics.js +1 -1
  348. package/widgets/ElevationProfile/support/chartUtils.js +1 -1
  349. package/widgets/Expand/ExpandViewModel.d.ts +2 -0
  350. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  351. package/widgets/FeatureTable/support/GroupColumnTemplate.js +1 -1
  352. package/widgets/FeatureTable/support/TableTemplate.js +1 -1
  353. package/widgets/Fullscreen/FullscreenViewModel.d.ts +3 -1
  354. package/widgets/Home/HomeViewModel.d.ts +2 -0
  355. package/widgets/OrientedImageryViewer.js +1 -1
  356. package/widgets/Print.js +1 -1
  357. package/widgets/Sketch/SketchViewModel.js +1 -1
  358. package/widgets/Slice.js +1 -1
  359. package/widgets/Swipe/SwipeViewModel.d.ts +2 -0
  360. package/widgets/Swipe/types.d.ts +9 -2
  361. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +9 -5
  362. package/widgets/TimeSlider/types.d.ts +7 -0
  363. package/widgets/TimeSlider.d.ts +2 -3
  364. package/widgets/TimeSlider.js +1 -1
  365. package/widgets/Track/TrackViewModel.d.ts +4 -0
  366. package/widgets/Track/types.d.ts +1 -0
  367. package/widgets/UtilityNetworkTraceAnalysis/UtilityNetworkTraceAnalysisViewModel.js +1 -1
  368. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  369. package/widgets/support/SelectionList.js +1 -1
  370. package/widgets/support/Selector3D/selectorUtils.js +1 -1
  371. package/widgets/support/componentsUtils.js +1 -1
  372. package/assets/esri/core/workers/chunks/0050916e462e3c9e0627.js +0 -1
  373. package/assets/esri/core/workers/chunks/024b44c0c8876627f904.js +0 -1
  374. package/assets/esri/core/workers/chunks/02c5d027bdaee67869cf.js +0 -1
  375. package/assets/esri/core/workers/chunks/03261b9451e293a0fac8.js +0 -1
  376. package/assets/esri/core/workers/chunks/0c8c01097847617261b9.js +0 -1
  377. package/assets/esri/core/workers/chunks/0d931c7579b6409a696d.js +0 -1
  378. package/assets/esri/core/workers/chunks/12c154342fff876f2f1e.js +0 -1
  379. package/assets/esri/core/workers/chunks/1e11d2e97d17685b878a.js +0 -1
  380. package/assets/esri/core/workers/chunks/1f339247b68b061ab0a4.js +0 -1
  381. package/assets/esri/core/workers/chunks/21ddb26526bcb2b122c3.js +0 -1
  382. package/assets/esri/core/workers/chunks/2eae542fe7f0f6576ac1.js +0 -1
  383. package/assets/esri/core/workers/chunks/34cbaf844730ac2d92c2.js +0 -2
  384. package/assets/esri/core/workers/chunks/3c301a689c7853c9fa67.js +0 -2
  385. package/assets/esri/core/workers/chunks/3f946c13ad97fbed867b.js +0 -1
  386. package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +0 -1
  387. package/assets/esri/core/workers/chunks/46a7da93a63663878583.js +0 -1
  388. package/assets/esri/core/workers/chunks/4a1e23e021bac37a88ab.js +0 -1
  389. package/assets/esri/core/workers/chunks/4c4117e28ea358a32088.js +0 -1
  390. package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +0 -1
  391. package/assets/esri/core/workers/chunks/59b216b60464611742d4.js +0 -1
  392. package/assets/esri/core/workers/chunks/604f0f4150fb79ee54c8.js +0 -1
  393. package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +0 -1
  394. package/assets/esri/core/workers/chunks/62ac588f7dd1d24d0c9d.js +0 -1
  395. package/assets/esri/core/workers/chunks/62c8c9ad09e0166207fd.js +0 -1
  396. package/assets/esri/core/workers/chunks/62d6e101e9bd9557a410.js +0 -1
  397. package/assets/esri/core/workers/chunks/6558488ea96620439f34.js +0 -1
  398. package/assets/esri/core/workers/chunks/665e31c494d2af505acc.js +0 -1
  399. package/assets/esri/core/workers/chunks/6f4e6022a52de0c54aab.js +0 -1
  400. package/assets/esri/core/workers/chunks/7267b17de212207142c9.js +0 -1
  401. package/assets/esri/core/workers/chunks/745a153d0cd34faa124e.js +0 -1
  402. package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +0 -1
  403. package/assets/esri/core/workers/chunks/76ab353d80d786777161.js +0 -2
  404. package/assets/esri/core/workers/chunks/7ef182e24cad50815b4e.js +0 -1
  405. package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +0 -1
  406. package/assets/esri/core/workers/chunks/8431ca60ad33d594e323.js +0 -1
  407. package/assets/esri/core/workers/chunks/8483c50ed8f280fd74bb.js +0 -1
  408. package/assets/esri/core/workers/chunks/876f7633c15f1e31078d.js +0 -1
  409. package/assets/esri/core/workers/chunks/8ca9648eacb894283513.js +0 -1
  410. package/assets/esri/core/workers/chunks/8cb716f110d164030309.js +0 -1
  411. package/assets/esri/core/workers/chunks/91ebb2ccab1889eb7e81.js +0 -1
  412. package/assets/esri/core/workers/chunks/94e427040edb469d58ad.js +0 -1
  413. package/assets/esri/core/workers/chunks/9ce91a909eccc4dfe388.js +0 -1
  414. package/assets/esri/core/workers/chunks/9e1a3b6a08c96dcefdde.js +0 -1
  415. package/assets/esri/core/workers/chunks/9e3e442a9874ed23a043.js +0 -1
  416. package/assets/esri/core/workers/chunks/ad76f7ab2f3e6d5a5b3c.js +0 -1
  417. package/assets/esri/core/workers/chunks/aff32980d91dab07dfb7.js +0 -1
  418. package/assets/esri/core/workers/chunks/b49df4ebd4be1181b0f9.js +0 -2
  419. package/assets/esri/core/workers/chunks/b557824bc1fa163d72a3.js +0 -2
  420. package/assets/esri/core/workers/chunks/bbf993dba74850bbf9d7.js +0 -1
  421. package/assets/esri/core/workers/chunks/d8f1cefcad02d7353d4b.js +0 -1
  422. package/assets/esri/core/workers/chunks/d938987344bce83cc660.js +0 -1
  423. package/assets/esri/core/workers/chunks/ddf0671976648f621269.js +0 -1
  424. package/assets/esri/core/workers/chunks/de02f60258e6985ef676.js +0 -1
  425. package/assets/esri/core/workers/chunks/e10b57aefcc89671116e.js +0 -1
  426. package/assets/esri/core/workers/chunks/e65dfa19f030ec298437.js +0 -1
  427. package/assets/esri/core/workers/chunks/ed8786fed345718ed684.js +0 -1
  428. package/assets/esri/core/workers/chunks/f122c18af10e56f9ec2b.js +0 -1
  429. package/assets/esri/core/workers/chunks/f92364afaefbac7e8f77.js +0 -1
  430. package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +0 -1
  431. package/assets/esri/core/workers/chunks/fd9663952d5a94f3a83f.js +0 -1
  432. package/assets/esri/core/workers/chunks/fe9879ecd69ac4329291.js +0 -1
  433. package/layers/mixins/FeatureLayerReload.js +0 -2
  434. /package/assets/esri/core/workers/chunks/{b557824bc1fa163d72a3.js.LICENSE.txt → 164c8eeefa8232b2b191.js.LICENSE.txt} +0 -0
  435. /package/assets/esri/core/workers/chunks/{b49df4ebd4be1181b0f9.js.LICENSE.txt → 2981e904ab62f3ed80d0.js.LICENSE.txt} +0 -0
  436. /package/assets/esri/core/workers/chunks/{34cbaf844730ac2d92c2.js.LICENSE.txt → 32cc59e126df8c96a0cf.js.LICENSE.txt} +0 -0
  437. /package/assets/esri/core/workers/chunks/{590e6c70206122e4cc3c.js.LICENSE.txt → 844eedda8f749972f707.js.LICENSE.txt} +0 -0
  438. /package/assets/esri/core/workers/chunks/{3c301a689c7853c9fa67.js.LICENSE.txt → b686cd74975da09b9c91.js.LICENSE.txt} +0 -0
  439. /package/assets/esri/core/workers/chunks/{76ab353d80d786777161.js.LICENSE.txt → bd46a04a9ee4ea9e6ef1.js.LICENSE.txt} +0 -0
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1003],{1003(e,t,i){i.r(t),i.d(t,{default:()=>ye});var a=i(49186),r=i(32198),s=i(91429),n=i(49859),l=i(68197),o=i(5443),f=i(16930),u=i(73444),h=i(94778),c=i(14140);function d(e){return["x","e","east","long","longitude"].includes(e.toLowerCase())}function p(e){return["y","n","west","lat","latitude"].includes(e.toLowerCase())}function m(e){let{axes:t}=e.domain,i=Object.keys(t),a=[],r=[],s=-1,n=-1,l=[];for(let e=0;e<i.length;e++){let o=i[e];d(o)?s=e:p(o)&&(n=e);let f=t[o],u=[];if("values"in f){f.values.forEach(e=>u.push("string"==typeof e?new Date(e).getTime():e));let e=u[1]-u[0];a.push([u[0]-.5*e,u[u.length-1]+.5*e]),r.push(e)}else{let{start:e,stop:t,num:i}=f,s=(t-e)/(i-1);a.push([e-.5*s,t+.5*s]),r.push(s);for(let t=0;t<i;t++)u.push(e+s*t)}l.push({name:o,values:u,extent:[u[0],u[u.length-1]]})}s>-1&&-1===n?n=+(0===s):n>-1&&-1===s?s=+(0===n):-1===n&&-1===s&&(s=0,n=1),l=l.filter((e,t)=>t!==s&&t!==n);let{referencing:u}=e.domain,h=u.find(e=>e.coordinates.includes(i[s])).system.id,c=h?.slice(h.lastIndexOf("/")+1),m=null==c||"CRS84"===c?4326:Number(c),g=new f.A({wkid:m}),[y,x]=a[s],[w,I]=a[n],b=new o.A({xmin:y,xmax:x,ymin:w,ymax:I,spatialReference:g});return{width:Math.round(b.width/r[s]),height:Math.round(b.height/r[n]),extent:b,dimensions:l}}function g(e){let t=(0,u.lR)();return t?e[t]??Object.values(e)[0]:Object.values(e)[0]}function y(){return Math.round(255*Math.random())}function x(e){let t={},{parameters:i}=e;if(!i)return t;for(let[e,a]of Object.entries(i)){let{type:i,description:r,unit:s,categoryEncoding:n,observedProperty:o}=a;if("Parameter"===i&&(t[e]={},r&&(t[e].description=g(r)),s&&(t[e].unit=s.label?g(s.label):null,t[e].symbol=s.symbol?.value),n)){let i=Object.entries(n).map((e,t)=>({OID:t,Value:Number(e[1]),ClassName:e[0].slice(e[0].lastIndexOf("/")+1),Count:1})),a=!1;o?.categories?.length&&(o.categories.forEach(e=>{if(!e.id)return;let t=e.id.slice(e.id.lastIndexOf("/")+1),r=i.find(e=>e.ClassName===t);if(r&&(r.Label=e.label?g(e.label):null,e.preferredColor)){let t=l.A.fromHex(e.preferredColor);t&&(a=!0,r.Red=t.r,r.Green=t.g,r.Blue=t.b)}}),a&&i.forEach(e=>{e.Red??(e.Red=y(),e.Green=y(),e.Blue=y())}));let r={objectIdFieldName:"",fields:[{name:"OID",type:"esriFieldTypeOID",alias:"OID",domain:null},{name:"Value",type:"esriFieldTypeInteger",alias:"Value",domain:null},{name:"Count",type:"esriFieldTypeDouble",alias:"Count",domain:null},{name:"ClassName",type:"esriFieldTypeString",alias:"ClassName",domain:null,length:50},{name:"Label",type:"esriFieldTypeString",alias:"Label",domain:null,length:50}],features:i.map(e=>({attributes:e}))};a&&r.fields.push({name:"Red",type:"esriFieldTypeInteger",alias:"Red",domain:null},{name:"Green",type:"esriFieldTypeInteger",alias:"Green",domain:null},{name:"Blue",type:"esriFieldTypeInteger",alias:"Blue",domain:null}),t[e].attributeTable=r}}return t}function w(e){let t=Number.MAX_VALUE,i=-Number.MAX_VALUE;for(let a=0;a<e.length;a++){let r=e[a];null!=r&&(r<t&&(t=r),r>i&&(i=r))}return(0,h.X1)(t,i)}function I(e,t,i){let a=e.map((e,i)=>({name:e,count:t[i]})).sort((e,t)=>e.name>t.name?-1:1),r=(e=>t=>e*=t.count)(1),s=[...a.slice(1),{name:"",count:1}].reverse().map(r).reverse(),n=0;for(let r=e.length-1;r>=0;r--){let l=a.findIndex(({name:t})=>t===e[r]);n+=s[l]*(i%t[r]),i=Math.floor(i/t[r])}return n}var b=i(17676),C=i(4366),v=i(47520),S=i(51927),A=i(45617),T=i(87186);let _=class extends n.A{constructor(){super(...arguments),this._pixelBlockTiles=new Map,this.datasetFormat="MEMORY",this.preGenerateTiles=!0,this.source=null}get url(){return""}async fetchRawTile(e,t,i,a={}){let r=`${e}/${t}/${i}`,s=this._pixelBlockTiles.get(r);if(s)return s;if(!this.source)return null;let{rasterInfo:n}=this,[l,o]=n.storageInfo.tileInfo.size,{sliceId:f}=a,{encodedData:u}=this.source;if(u){let s=await this.decodePixelBlock(u,{tileSize:[l,o],tileIndex:[e,t,i],canvasUsage:"canvas-only",cloneSource:!0,skipStatistics:!0},{signal:a.signal});return s&&this._pixelBlockTiles.set(r,s),s}let{pixelBlocks:h}=this.source,c=null==f?h[0]:h[f];if(null==c)return null;let d={pixelBlock:c,useBilinear:"thematic"!==n.dataType,tileSize:{width:l,height:o},level:e,row:t,col:i};return this.rasterJobHandler?this.rasterJobHandler.clipTile(d,a):(0,v.J$)(d)}async _open(e){if(!this.source)throw new a.A("in-memory-raster:open","source is required to open an in memory raster");let t=this.source;this.datasetName=t.name;let{pixelBlocks:i,attributeTable:r,statistics:s,histograms:n,nativeExtent:l,transform:u,colormap:h}=t,c=i[0],{width:d,height:p,pixelType:m}=c??t.imageInfo,g=t.extent??new o.A({xmin:-.5,ymin:.5,xmax:d-.5,ymax:p-.5,spatialReference:new f.A({wkid:3857})}),y=t.isPseudoSpatialReference??!t.extent,x={x:g.width/d,y:g.height/p},w={...t.keyProperties};t.dataType&&(w.DataType=t.dataType),t.bandInfos&&(w.BandProperties=t.bandInfos.map(e=>e.toJSON())),r&&(w.DataType="Thematic");let I=new T.A({width:d,height:p,pixelType:m,extent:g,nativeExtent:l,attributeTable:r,colormap:h,transform:u,pixelSize:x,spatialReference:g.spatialReference,bandCount:c?.pixels.length??t.imageInfo.bandCount,keyProperties:w,multidimensionalInfo:t.multidimensionalInfo,statistics:s,isPseudoSpatialReference:y,histograms:n});this.ioConfig.skipMapInfo&&this.updateImageSpaceRasterInfo(I),this.createRemoteDatasetStorageInfo(I,512,512),this._set("rasterInfo",I),this.updateTileInfo(),I.multidimensionalInfo?await this._buildMDimStats(i,I.multidimensionalInfo):this.preGenerateTiles&&c&&(await this._buildInMemoryRaster(c,{width:512,height:512},e),this.source=null)}async _buildInMemoryRaster(e,t,i){let{rasterInfo:r}=this,s=r.storageInfo.maximumPyramidLevel??0,n="thematic"!==r.dataType,l=this.rasterJobHandler?this.rasterJobHandler.split({pixelBlock:e,tileSize:t,maximumPyramidLevel:s,useBilinear:n},i):Promise.resolve((0,v.lD)(e,t,s,n)),o=null!=r.statistics,f=null!=r.histograms,u=this.ioConfig.skipStatistics||o?Promise.resolve({statistics:null,histograms:null}):this.rasterJobHandler?this.rasterJobHandler.estimateStatisticsHistograms({pixelBlock:e},i):Promise.resolve((0,S.f4)(e)),h=await(0,b.Lx)([l,u]);if(!h[0].value)throw new a.A("in-memory-raster:open","failed to build in memory raster");this._pixelBlockTiles=h[0].value,o||(r.statistics=h[1].value?.statistics),f||(r.histograms=h[1].value?.histograms)}async _buildMDimStats(e,t,i){for(let a=0;a<t.variables.length;a++){let r=t.variables[a];if(r.statistics)continue;let s=r.dimensions.map(e=>new A.A({variableName:r.name,dimensionName:e.name,values:[e.values?.[0]??e.extent?.[0]],isSlice:!0})),n=(0,C.NG)(s,t),l=null==n?null:e[n];if(null==l)continue;let o=this.rasterJobHandler?await this.rasterJobHandler.computeStatisticsHistograms({pixelBlock:l},i):(0,S.eH)(l);r.statistics=o.statistics,r.histograms||=o.histograms}}};(0,r.Cg)([(0,s.MZ)({type:String,json:{write:!0}})],_.prototype,"datasetFormat",void 0),(0,r.Cg)([(0,s.MZ)({constructOnly:!0})],_.prototype,"preGenerateTiles",void 0),(0,r.Cg)([(0,s.MZ)()],_.prototype,"source",void 0),(0,r.Cg)([(0,s.MZ)()],_.prototype,"url",null),_=(0,r.Cg)([(0,s.$K)("esri.layers.raster.datasets.InMemoryRaster")],_);const R=_;var M=i(22671);let k=class extends n.A{constructor(){super(...arguments),this.datasetFormat="CovJSON"}fetchRawTile(e,t,i,a={}){return this._inMemoryRaster.fetchRawTile(e,t,i,a)}async _open(e){let{extent:t,pixelBlocks:i,multidimensionalInfo:a,attributeTable:r,bandNames:s}=await this._fetchData(e),{statistics:n,histograms:l}=(0,S.eH)(i[0]),o=s?.map(e=>({BandName:e})),f={DataType:r?"Thematic":a?"Scientific":"Generic",BandProperties:o},u=new R({source:{extent:t,pixelBlocks:i,attributeTable:r?M.A.fromJSON(r):null,multidimensionalInfo:a,statistics:n,histograms:l,keyProperties:f,isPseudoSpatialReference:!1}});await u.open(),this._inMemoryRaster=u;let h=this.source?"":this.url.slice(this.url.lastIndexOf("/")+1);this._set("datasetName",h.slice(0,h.indexOf("."))),this._set("rasterInfo",u.rasterInfo)}async _fetchData(e){let t=this.source??(await this.request(this.url,{signal:e?.signal})).data,i="imagery-tile-layer:open-coverage-json";if("coverage"!==t.type?.toLowerCase()||"grid"!==t.domain?.domainType?.toLowerCase())throw new a.A(i,"Only coverage with Grid domain type is supported");if(!t.ranges)throw new a.A(i,"Missing ranges in the grid coverage data");if(!t.domain.referencing?.length)throw new a.A(i,"Missing domain referencing in the grid coverage data");let r=Object.values(t.ranges);for(let e=0;e<r.length;e++){let{axisNames:t,shape:s,type:n,values:l}=r[e];if(!("ndarray"===n.toLowerCase()&&l?.length&&t?.length&&s?.length))throw new a.A(i,"Only ranges with valid NdArray, axisNames, shape, and inline values are supported");if(!d(t[t.length-1])||!p(t[t.length-2]))throw new a.A(i,"Only row-major ordered pixel values are supported. X axis must be the last axis.")}return function(e){let{width:t,height:i,extent:a,dimensions:r}=m(e),{ranges:s}=e,n=Object.keys(s).sort((e,t)=>e<t?-1:1),l=[];for(let e=0;e<n.length;e++){let t=n[e];r?.length&&l.push({name:t,dimensions:r})}let o=x(e);l.forEach(e=>o[e.name]&&Object.assign(e,o[e.name]));let f=l.length?{variables:l}:void 0,u=[];for(let e=0;e<n.length;e++){let{values:a,dataType:l,axisNames:o,shape:f}=s[n[e]],h=f.length>2?e*f.slice(0,-2).reduce((e,t)=>e*t):0,d=o.slice(0,-2),p=f.slice(0,-2),m="float"===l?"f32":w(a),g=t*i,y=a.length/g;for(let s=0;s<y;s++){let n=c.A.createEmptyBand(m,g),l=new Uint8Array(g).fill(255),o=!1,f=s*g;for(let e=0;e<g;e++){let t=a[f+e];null==t?(l[e]=0,o=!0):n[e]=t}if(0===e||r?.length){let e=new c.A({width:t,height:i,mask:o?l:null,pixels:[n],pixelType:m});e.updateStatistics(),r?.length?u[I(d,p,s)+h]=e:u.push(e)}else{let e=u[s];e.pixels.push(n),o?e.mask&&=c.A.combineBandMasks([e.mask,l]):e.mask=o?l:null}}}return{extent:a,pixelBlocks:u,multidimensionalInfo:f,attributeTable:Object.values(o).find(e=>e.attributeTable)?.attributeTable,bandNames:f?void 0:n}}(t)}};(0,r.Cg)([(0,s.MZ)({type:String,json:{write:!0}})],k.prototype,"datasetFormat",void 0),(0,r.Cg)([(0,s.MZ)({constructOnly:!0})],k.prototype,"source",void 0),k=(0,r.Cg)([(0,s.$K)("esri.layers.raster.datasets.CovJSONRaster")],k);const O=k;var F=i(4576),P=i(21325),D=i(330),B=i(43163);function L(e,t){if(!e||!t)return null;let i=[];for(let a=0;a<e.length;a++)i.push(e[a]),i.push(t[a]);return i}function N(e){if(!e)return null;let t=Number(e);if(!isNaN(t)&&0!==t)return new f.A({wkid:t});if(e=String(e).trim(),(0,P.jp)(e))return new f.A({wkt2:e});let i=e.toUpperCase();if(i.startsWith("COMPD_CS")){if(!i.includes("VERTCS")||!i.includes("GEOGCS")&&!i.startsWith("PROJCS"))return null;let a=i.indexOf("VERTCS"),r=i.indexOf("PROJCS"),s=r>-1?r:i.indexOf("GEOGCS");if(-1===s)return null;let n=e.slice(s,e.lastIndexOf("]",a)+1).trim(),l=e.slice(a,e.lastIndexOf("]")).trim();t=E(n);let o=t?new f.A({wkid:t}):new f.A({wkt:n}),u=E(l);return u&&(o.vcsWkid=u),o}return i.startsWith("GEOGCS")||i.startsWith("PROJCS")?(t=E(e),0===t?new f.A({wkt:e}):new f.A({wkid:t})):null}function E(e){let t=e.replaceAll("]","[").replaceAll('"',"").split("[").map(e=>e.trim()).filter(e=>""!==e),i=t[t.length-1].split(","),a=i[0]?.toLowerCase();if(("epsg"===a||"esri"===a)&&e.endsWith('"]]')){let e=Number(i[1]);if(!isNaN(e)&&0!==e)return e}return 0}function H(e){if("pamdataset"!==e?.documentElement.tagName?.toLowerCase())return{};let t={spatialReference:null,transform:null,metadata:{},rasterBands:[],statistics:null,histograms:null};e.documentElement.childNodes.forEach(e=>{if(1===e.nodeType)if((0,D.g7)(e,"SRS")){if(!t.spatialReference){let i=(0,D.mX)(e);t.spatialReference=N(i)}}else if((0,D.g7)(e,"Metadata"))if("xml:ESRI"===e.getAttribute("domain")){let{spatialReference:i,transform:a}=function(e){let t=(0,D.V6)(e,"GeodataXform"),i=N((0,D.v7)(t,"SpatialReference/WKID")||(0,D.mX)(t,"SpatialReference/WKT"));if("typens:PolynomialXform"!==t.getAttribute("xsi:type"))return{spatialReference:i,transform:null};let a=(0,D.v7)(t,"PolynomialOrder")??1,r=(0,D.Ui)(t,"CoeffX/Double"),s=(0,D.Ui)(t,"CoeffY/Double"),n=(0,D.Ui)(t,"InverseCoeffX/Double"),l=(0,D.Ui)(t,"InverseCoeffY/Double"),o=L(r,s),f=L(n,l);return{spatialReference:i,transform:o&&f&&o.length&&f.length?new B.A({spatialReference:i,polynomialOrder:a,forwardCoefficients:o,inverseCoefficients:f}):null}}(e);t.transform=a,t.spatialReference||=i}else(0,D.IC)(e,"MDI").forEach(e=>t.metadata[e.getAttribute("key")]=(0,D.mX)(e));else if((0,D.g7)(e,"PAMRasterBand")){let i=function(e){let t,i,a,r,s=(0,D.v7)(e,"NoDataValue"),n=(0,D.V6)(e,"Histograms/HistItem"),l=(0,D.v7)(n,"HistMin"),o=(0,D.v7)(n,"HistMax"),f=(0,D.v7)(n,"BucketCount"),u=(0,D.mX)(n,"HistCounts")?.split("|").map(e=>Number(e));(0,D.IC)(e,"Metadata/MDI").forEach(e=>{let s=Number(e.textContent??e.nodeValue);switch(e.getAttribute("key").toUpperCase()){case"STATISTICS_MINIMUM":t=s;break;case"STATISTICS_MAXIMUM":i=s;break;case"STATISTICS_MEAN":a=s;break;case"STATISTICS_STDDEV":r=s}});let h=(0,D.v7)(e,"Metadata/SourceBandIndex");return{noDataValue:s,histogram:u?.length&&null!=l&&null!=o?{min:l,max:o,size:f||u.length,counts:u}:null,sourceBandIndex:h,statistics:null!=t&&null!=i?{min:t,max:i,avg:a,stddev:r}:null}}(e);null!=i.sourceBandIndex&&null==t.rasterBands[i.sourceBandIndex]?t.rasterBands[i.sourceBandIndex]=i:t.rasterBands.push(i)}});let i=t.rasterBands;return i.length&&(t.statistics=i[0].statistics?i.map(e=>e.statistics).filter(F.Ru):null,t.histograms=i[0].histogram?i.map(e=>e.histogram).filter(F.Ru):null),t}var z=i(85951),J=i(40951);const U="image-aux-raster:open",G="The data is not a supported format.";let j=class extends n.A{set rasterJobHandler(e){this._set("rasterJobHandler",e),this._inMemoryRaster&&(this._inMemoryRaster.rasterJobHandler=e)}async fetchRawTile(e,t,i,a={}){return this._inMemoryRaster?.fetchRawTile(e,t,i,a)}async _open(e){let t,{data:i,format:r}=await this._fetchData(e),{tileGeneration:s}=this.ioConfig,n="immediate"===s||"jpg"!==r;if(n){let s=await this._decodeFullImage(i,r,e);if(!s)throw new a.A(U,"The data cannot be decoded.");t=await this._createRasterSource(s,e)}else{let r=(0,z.R)(i);if(!r)throw new a.A(U,G);t=await this._createRasterSource(r,e),t.encodedData=i}let{rasterJobHandler:l,ioConfig:o}=this,f=new R({preGenerateTiles:n,rasterJobHandler:l,source:t,ioConfig:{...o,sampling:"closest",skipStatistics:!0}});await f.open(e),this._set("rasterInfo",f.rasterInfo),this._inMemoryRaster=f}async _createRasterSource(e,t){let{spatialReference:i,statistics:a,histograms:r,transform:s}=await this._fetchAuxiliaryData(t),n=!i;n&&(i=new f.A({wkid:3857})),r?.length&&null==a&&(a=(0,S.Pg)(r));let{width:l,height:u}=e,h=new o.A({xmin:-.5,ymin:.5-u,xmax:l-.5,ymax:.5,spatialReference:i}),c=s?s.forwardTransform(h):h,d=!0;if(s){let e=s.forwardCoefficients;d=e&&0===e[1]&&0===e[2],d&&(s=null,h=c)}let p=[];return"pixels"in e&&p.push(e),{name:this.datasetName,pixelBlocks:p,imageInfo:{width:l,height:u,pixelType:"u8",bandCount:3},extent:c,nativeExtent:h,transform:s,statistics:a,histograms:r,isPseudoSpatialReference:n,keyProperties:{DataType:"Processed"}}}async _fetchData(e){let{data:t}=await this.request(this.url,{responseType:"array-buffer",signal:e?.signal}),i=(0,J.g)(t);if("jpg"!==i&&"png"!==i&&"gif"!==i&&"bmp"!==i)throw new a.A(U,G);return this._set("datasetFormat",i.toUpperCase()),{data:t,format:i}}async _decodeFullImage(e,t,i){try{return await this.decodePixelBlock(e,{format:t,canvasUsage:"canvas-only",cloneSource:!0,skipStatistics:!0},i)}catch{return(0,b.Te)(i?.signal),this.decodePixelBlock(e,{format:t,canvasUsage:"no-canvas",skipStatistics:!0},i)}}async _fetchAuxiliaryData(e){let t=e?.signal,{skipExtensions:i=[],skipMapInfo:a}=this.ioConfig,r=a||i.includes("aux.xml")?null:this.request(this.url+".aux.xml",{responseType:"xml",signal:t}),s=this.datasetFormat,n="JPG"===s?"jgw":"PNG"===s?"pgw":"BMP"===s?"bpw":null,l=a||null==n||i.includes(n)?null:this.request(this.url.slice(0,this.url.lastIndexOf("."))+"."+n,{responseType:"text",signal:t}),o=await(0,b.Lx)([r,l]);if(t?.aborted)throw(0,b.NK)();let f=H(o[0].value?.data);if(!f.transform){let e=o[1].value?o[1].value.data.split("\n").slice(0,6).map(e=>Number(e)):null;f.transform=6===e?.length?new B.A({forwardCoefficients:[e[4],e[5],e[0],-e[1],e[2],-e[3]]}):null}return f}};(0,r.Cg)([(0,s.MZ)({type:String,json:{write:!0}})],j.prototype,"datasetFormat",void 0),(0,r.Cg)([(0,s.MZ)()],j.prototype,"rasterJobHandler",null),j=(0,r.Cg)([(0,s.$K)("esri.layers.raster.datasets.ImageAuxRaster")],j);const q=j;var W=i(97768),V=i(84952),Z=i(86738),$=i(75414),X=i(20223),K=i(87045),Y=i(25943),Q=i(82371);let ee=class extends n.A{constructor(){super(...arguments),this._levelOffset=0,this._tilemapCache=null,this._slices=null,this.datasetFormat="RasterTileServer",this.tileType=null}async fetchRawTile(e,t,i,a={}){let{storageInfo:r,extent:s}=this.rasterInfo,{transposeInfo:n}=r,l=null!=n&&!!a.transposedVariableName;if(this._slices&&!l&&null==a.sliceId)return null;let o,f,u=l?0:r.maximumPyramidLevel-e+this._levelOffset,h=`${this.url}/tile/${u}/${t}/${i}`,c={...this._slices?l?{variable:a.transposedVariableName}:{sliceId:a.sliceId||0}:null,...a.refreshParameters};if(r.isBsqTile){let e=(a.bandIds?.length?a.bandIds:[0,1,2]).map(e=>this.request(h,{query:{...c,bandId:e},responseType:"array-buffer",signal:a.signal})),t=await Promise.all(e),i=t.map(e=>e.data.byteLength).reduce((e,t)=>e+t),r=new Uint8Array(i);f=[];let s=0;for(let{data:e}of t)f.push(s),r.set(new Uint8Array(e),s),s+=e.byteLength;o=r.buffer}else o=(await this.request(h,{query:c,responseType:"array-buffer",signal:a.signal})).data;if(!o)return null;let{tileInfo:d}=r,p=l?n.tileSize:d.size,m=/^(mixed|jp)/i.test(d.format),g="raw"===d.format,y=await this.decodePixelBlock(o,{format:g?"bsq":void 0,width:p[0],height:p[1],planes:f?.length,offsets:f,pixelType:g?this.rasterInfo.pixelType:void 0,isPoint:"Elevation"===this.tileType,returnInterleaved:l,noDataValue:this.rasterInfo.noDataValue,applyJpegMask:m},{signal:a.signal});if(null==y)return null;let x=r.blockBoundary[e];if("jpg"!==r.compression||i>x.minCol&&i<x.maxCol&&t>x.minRow&&t<x.maxRow)return y;let{origin:w,blockWidth:I,blockHeight:b}=r,{x:C,y:S}=this.getPyramidPixelSize(e),A=Math.round((s.xmin-w.x)/C)%I,T=Math.round((s.xmax-w.x)/C)%I||I,_=Math.round((w.y-s.ymax)/S)%b,R=Math.round((w.y-s.ymin)/S)%b||b,M=i===x.minCol?A:0,k=t===x.minRow?_:0,O=i===x.maxCol?T:I,F=t===x.maxRow?R:b;return(0,v.z$)(y,{x:M,y:k},{width:O-M,height:F-k}),y}getSliceIndex(e){if(!this._slices||null==e||0===e.length)return null;let t=e;for(let e=0;e<this._slices.length;e++){let i=this._slices[e].multidimensionalDefinition;if(i.length===t.length&&!i.some(e=>{let i=t.find(t=>e.variableName===t.variableName&&t.dimensionName===e.dimensionName);return!i||(Array.isArray(e.values[0])?`${e.values[0][0]}-${e.values[0][1]}`:e.values[0])!==(Array.isArray(i.values[0])?`${i.values[0][0]}-${i.values[0][1]}`:i.values[0])}))return e}return null}async fetchVariableStatisticsHistograms(e,t){let i=this.request(this.url+"/statistics",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.statistics),a=this.request(this.url+"/histograms",{query:{variable:e,f:"json"},signal:t}).then(e=>e.data?.histograms),r=await Promise.all([i,a]);return r[0]&&r[0].forEach(e=>{e.avg=e.mean,e.stddev=e.standardDeviation}),r[1]?.[0]?.counts?.length||(r[1]=null),{statistics:r[0]||null,histograms:r[1]||null}}async computeBestPyramidLevelForLocation(e,t={}){if(!this._tilemapCache)return 0;let i=this.identifyPixelLocation(e,0,t.datumTransformation);if(null===i)return null;let a=0,{maximumPyramidLevel:r}=this.rasterInfo.storageInfo,s=r-a+this._levelOffset,n=i.srcLocation;for(;s>=0;){try{if("available"===await this._tilemapCache.fetchAvailability(s,i.row,i.col,t))break}catch{}if(s--,a++,i=this.identifyPixelLocation(n,a,t.datumTransformation),null===i)return null}return-1===s||null==i?null:a}async _open(e){let t=e?.signal,i=this.sourceJSON?{data:this.sourceJSON}:await this.request(this.url,{query:{f:"json"},signal:t});i.ssl&&(this.url=this.url.replace(/^http:/i,"https:"));let r=i.data;if(this.sourceJSON=r,!r)throw new a.A("imageserverraster:open","cannot initialize tiled image service, missing service info");if(!r.tileInfo)throw new a.A("imageserverraster:open","use ImageryLayer to open non-tiled image services");this._fixScaleInServiceInfo();this.tileType=r.cacheType,this.tileType??=["jpg","jpeg","png","png8","png24","png32","mixed"].includes(r.tileInfo.format.toLowerCase())?"Map":"lerc"===r.tileInfo.format.toLowerCase()?"Elevation":"Raster",this.datasetName=r.name?.slice(r.name.indexOf("/")+1)??"";let s=this.rasterInfo??await this._fetchRasterInfo({signal:t});if(null==s)throw new a.A("image-server-raster:open","cannot initialize image service");(0,Q.E9)(s,r);let n="Map"===this.tileType?function(e,t){if(!e)return null;let{minScale:i,maxScale:a,minLOD:r,maxLOD:s}=t;if(null!=r&&null!=s)return K.A.fromJSON({...e,lods:e.lods.filter(({level:e})=>null!=e&&e>=r&&e<=s)});if(0!==i&&0!==a){let t=e=>Math.round(1e4*e)/1e4,r=i?t(i):1/0,s=a?t(a):-1/0;return K.A.fromJSON({...e,lods:e.lods.filter(e=>{let i=t(e.scale);return i<=r&&i>=s})})}return K.A.fromJSON(e)}(r.tileInfo,r):K.A.fromJSON(r.tileInfo);(0,W.Lw)(n);let[l,o]=this._computeMinMaxLOD(s,n),{extent:f,pixelSize:u}=s,h=.001*Math.min(u.x,u.y);(u.x!==u.y||Math.abs(l.resolution-u.x)>h)&&(u.x=u.y=l.resolution,s.width=Math.ceil((f.xmax-f.xmin)/u.x-.1),s.height=Math.ceil((f.ymax-f.ymin)/u.y-.1));let c=l.level-o.level,[d,p]=n.size,m=[],g=[],{lods:y}=n;y.forEach((e,t)=>{e.level>=o.level&&e.level<=l.level&&m.push({x:e.resolution,y:e.resolution}),t<y.length-1&&g.push(Math.round(10*e.resolution/y[t+1].resolution)/10)}),m.sort((e,t)=>e.x-t.x);let x,w=this.computeBlockBoundary(f,d,p,n.origin,m,c),I=m.length>1?m.slice(1):null;r.transposeInfo&&(x={tileSize:[r.transposeInfo.rows,r.transposeInfo.cols],packetSize:s.keyProperties?._yxs.PacketSize??0});let b=g.length<=1||g.length>=3&&g.slice(0,-1).every(e=>e===g[0])?g[0]??2:Math.round(10/(o.resolution/l.resolution)**(-1/c))/10,C=!!r.bsq&&"Raster"===this.tileType;if(s.storageInfo=new X.A({blockWidth:n.size[0],blockHeight:n.size[1],pyramidBlockWidth:n.size[0],pyramidBlockHeight:n.size[1],pyramidResolutions:I,pyramidScalingFactor:b,compression:n.format,origin:n.origin,firstPyramidLevel:1,maximumPyramidLevel:c,tileInfo:n,isBsqTile:C,transposeInfo:x,blockBoundary:w}),function(e){let{extent:t,spatialReference:i}=e;t.xmin>-1&&t.xmax>181&&i?.wkid&&i.isGeographic&&(e.nativeExtent=e.extent,e.transform=new $.A,e.extent=e.transform.forwardTransform(t))}(s),this._set("rasterInfo",s),r.capabilities.toLowerCase().includes("tilemap")){let e={tileInfo:s.storageInfo.tileInfo,parsedUrl:(0,V.An)(this.url),url:this.url,tileServers:[]};this._tilemapCache=new Y.d({layer:e})}}async _fetchRasterInfo(e){let t=this.sourceJSON;if("Map"===this.tileType){let e=t.fullExtent||t.extent,i=Math.ceil((e.xmax-e.xmin)/t.pixelSizeX-.1),a=Math.ceil((e.ymax-e.ymin)/t.pixelSizeY-.1),r=f.A.fromJSON(t.spatialReference||e.spatialReference),s=new Z.A({x:t.pixelSizeX,y:t.pixelSizeY,spatialReference:r});return new T.A({width:i,height:a,bandCount:3,extent:o.A.fromJSON(e),spatialReference:r,pixelSize:s,pixelType:"u8",statistics:null,keyProperties:{DataType:"processed"}})}let i={...e,query:{...this.ioConfig.customFetchParameters,f:"json"}},a=(0,Q.Tw)(this.url,this.sourceJSON,i),r=t.hasMultidimensions?this.request(`${this.url}/slices`,i).then(e=>e.data?.slices).catch(()=>null):null,s=await Promise.all([a,r]);return this._slices=s[1],s[0]}_fixScaleInServiceInfo(){let{sourceJSON:e}=this;e.minScale&&e.minScale<0&&(e.minScale=0),e.maxScale&&e.maxScale<0&&(e.maxScale=0)}_computeMinMaxLOD(e,t){let{pixelSize:i}=e,a=.5/e.width*i.x,{lods:r}=t,s=t.lodAt(Math.max.apply(null,r.map(e=>e.level))),n=t.lodAt(Math.min.apply(null,r.map(e=>e.level))),{tileType:l}=this;if("Map"===l)return this._levelOffset=r[0].level,[s,n];if("Raster"===l)return[r.find(e=>e.resolution===i.x)??s,n];let{minScale:o,maxScale:f}=this.sourceJSON,u=s;f>0&&(u=r.find(e=>Math.abs(e.scale-f)<a),u||=r.filter(e=>e.scale>f).sort((e,t)=>e.scale>t.scale?1:-1)[0]??s);let h=n;return o>0&&(h=r.find(e=>Math.abs(e.scale-o)<a)??n,this._levelOffset=h.level-n.level),[u,h]}};(0,r.Cg)([(0,s.MZ)({type:String,json:{write:!0}})],ee.prototype,"datasetFormat",void 0),(0,r.Cg)([(0,s.MZ)()],ee.prototype,"tileType",void 0),ee=(0,r.Cg)([(0,s.$K)("esri.layers.raster.datasets.ImageServerRaster")],ee);const te=ee;var ie=i(10713);const ae=new Map([["byte","u8"],["signedbyte","s8"],["int8","s8"],["uint8","u8"],["int16","s16"],["uint16","u16"],["int32","s32"],["uint32","u32"],["float32","f32"],["float64","f64"],["double64","f64"]]),re=new Map;re.set("none",{blobExtension:".til",isOneSegment:!0,decoderFormat:"bip"}),re.set("lerc",{blobExtension:".lrc",isOneSegment:!1,decoderFormat:"lerc"}),re.set("deflate",{blobExtension:".pzp",isOneSegment:!0,decoderFormat:"deflate"}),re.set("jpeg",{blobExtension:".pjg",isOneSegment:!0,decoderFormat:"jpg"}),re.set("qb3",{blobExtension:".pq3",isOneSegment:!0,decoderFormat:"qb3"});let se=class extends n.A{constructor(){super(...arguments),this._files=null,this._storageIndex=null,this._isBsq=!1,this.datasetFormat="MRF"}async fetchRawTile(e,t,i,a={}){let{blockWidth:r,blockHeight:s,blockBoundary:n}=this.rasterInfo.storageInfo,l=n[e];if(!l||l.maxRow<t||l.maxCol<i||l.minRow>t||l.minCol>i)return null;let{bandCount:o,pixelType:f}=this.rasterInfo,{ranges:u,actualTileWidth:h,actualTileHeight:d}=this._getTileLocation(e,t,i);if(!u||0===u.length)return null;if(u.some(e=>e.from>e.to)){let e=new Uint8Array(r*s);return new c.A({width:r,height:s,pixels:void 0,mask:e,validPixelCount:0})}let{bandIds:p}=this.ioConfig,m=this._getBandSegmentCount(),g=[],y=0;for(y=0;y<m;y++)(!p||p.includes(y))&&g.push(this.request(this._files.data,{range:{from:u[y].from,to:u[y].to},responseType:"array-buffer",signal:a.signal}));let x=await Promise.all(g),w=x.map(e=>e.data.byteLength).reduce((e,t)=>e+t),I=new Uint8Array(w),b=[],C=0;for(y=0;y<m;y++)b.push(C),I.set(new Uint8Array(x[y].data),C),C+=x[y].data.byteLength;let v=re.get(this.rasterInfo.storageInfo.compression).decoderFormat,S="jpg"===v&&4===o&&1===b.length,A=await this.decodePixelBlock(I.buffer,{width:r,height:s,format:v,planes:p?.length||o,offsets:b,pixelType:f,canvasUsage:S?"no-canvas":void 0,decodeJpegAsRgb:!1},{signal:a.signal});if(null==A)return null;let{noDataValue:T}=this.rasterInfo;if(null!=T&&"lerc"!==v&&!A.mask&&(T=T[0],null!=T)){let e=A.width*A.height,t=new Uint8Array(e);if(Math.abs(T)>1e24)for(y=0;y<e;y++)Math.abs((A.pixels[0][y]-T)/T)>1e-6&&(t[y]=1);else for(y=0;y<e;y++)A.pixels[0][y]!==T&&(t[y]=1);A.mask=t}let _=0,R=0;if(h!==r||d!==s){let e=A.mask;if(e)for(y=0;y<s;y++)if(R=y*r,y<d)for(_=h;_<r;_++)e[R+_]=0;else for(_=0;_<r;_++)e[R+_]=0;else for(e=new Uint8Array(r*s),A.mask=e,y=0;y<d;y++)for(R=y*r,_=0;_<h;_++)e[R+_]=1}return A}async _open(e){this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1);let t=e?e.signal:null,i=await this.request(this.url,{responseType:"xml",signal:t}),{rasterInfo:a,files:r}=this._parseHeader(i.data),{skipMapInfo:s,skipExtensions:n=[]}=this.ioConfig;if(!n.includes("aux.xml")&&!s){let t=await this._fetchAuxiliaryData(e);null!=t&&(a.statistics=t.statistics??a.statistics,a.histograms=t.histograms,t.histograms&&null==a.statistics&&(a.statistics=(0,S.Pg)(t.histograms)))}s&&this.updateImageSpaceRasterInfo(a),this._set("rasterInfo",a),this._files=r;let l=await this.request(r.index,{responseType:"array-buffer",signal:t});this._storageIndex=function(e){if(e.byteLength%16>0)throw Error("invalid array buffer must be multiples of 16");let t;if(ie.Z){let i=new Uint8Array(e),a=new ArrayBuffer(e.byteLength),r=new Uint8Array(a);for(let t=0;t<e.byteLength/4;t++)for(let e=0;e<4;e++)r[4*t+e]=i[4*t+3-e];t=new Uint32Array(a)}else t=new Uint32Array(e);return t}(l.data);let{blockWidth:o,blockHeight:f}=this.rasterInfo.storageInfo,u=this.rasterInfo.storageInfo.pyramidScalingFactor,{width:h,height:c}=this.rasterInfo,d=[],p=this._getBandSegmentCount(),m=0,g=-1;for(;m<this._storageIndex.length;){g++;let e=Math.ceil(h/o/u**g)-1,t=Math.ceil(c/f/u**g)-1;m+=(e+1)*(t+1)*p*4,d.push({maxRow:t,maxCol:e,minCol:0,minRow:0})}this.rasterInfo.storageInfo.blockBoundary=d,g>0&&(this.rasterInfo.storageInfo.firstPyramidLevel=1,this.rasterInfo.storageInfo.maximumPyramidLevel=g),this.updateTileInfo()}_getBandSegmentCount(){return this._isBsq?this.rasterInfo.bandCount:1}_getTileLocation(e,t,i){let a,r,s,{blockWidth:n,blockHeight:l,pyramidScalingFactor:o}=this.rasterInfo.storageInfo,{width:f,height:u}=this.rasterInfo,h=this._getBandSegmentCount(),c=0,d=0;for(s=0;s<e;s++)d=o**s,a=Math.ceil(f/n/d),r=Math.ceil(u/l/d),c+=a*r;d=o**e,a=Math.ceil(f/n/d),r=Math.ceil(u/l/d),c+=t*a+i,c*=4*h;let p=this._storageIndex.subarray(c,c+4*h),m=0,g=0,y=[];for(let e=0;e<h;e++)m=p[4*e]*2**32+p[4*e+1],g=m+p[4*e+2]*2**32+p[4*e+3]-1,y.push({from:m,to:g});return{ranges:y,actualTileWidth:i<a-1?n:Math.ceil(f/d)-n*(a-1),actualTileHeight:t<r-1?l:Math.ceil(u/d)-l*(r-1)}}_parseHeader(e){let t=(0,D.V6)(e,"MRF_META/Raster");if(!t)throw new a.A("mrf:open","not a valid MRF format");let i=(0,D.V6)(t,"Size"),r=parseInt(i.getAttribute("x"),10),s=parseInt(i.getAttribute("y"),10),n=parseInt(i.getAttribute("c"),10),l=((0,D.mX)(t,"Compression")||"none").toLowerCase();if(!re.has(l))throw new a.A("mrf:open","currently does not support compression "+l);let u=(0,D.mX)(t,"DataType")||"UInt8",h=ae.get(u.toLowerCase());if(null==h)throw new a.A("mrf:open","currently does not support pixel type "+u);let c=(0,D.V6)(t,"PageSize"),d=parseInt(c.getAttribute("x"),10),p=parseInt(c.getAttribute("y"),10),m=c.getAttribute("c"),g=m?m===String(n):re.get(l).isOneSegment;this._isBsq=!g;let y,x=(0,D.V6)(t,"DataValues");if(x){let e=x.getAttribute("NoData");null!=e&&(y=e.trim().split(" ").map(e=>parseFloat(e)))}if((0,D.V6)(e,"MRF_META/CachedSource"))throw new a.A("mrf:open","currently does not support MRF referencing other data files");let w,I=(0,D.V6)(e,"MRF_META/GeoTags"),b=(0,D.V6)(I,"BoundingBox"),C=!1;if(null!=b){let e=parseFloat(b.getAttribute("minx")),t=parseFloat(b.getAttribute("miny")),i=parseFloat(b.getAttribute("maxx")),a=parseFloat(b.getAttribute("maxy")),r=(0,D.mX)(I,"Projection")||"",s=f.A.WGS84;if("LOCAL_CS[]"!==r)if(r.toLowerCase().startsWith("epsg:")){let e=Number(r.slice(5));!isNaN(e)&&0!==e&&(s=new f.A({wkid:e}))}else s=N(r)??f.A.WGS84;else C=!0,s=new f.A({wkid:3857});w=new o.A(e,t,i,a),w.spatialReference=s}else C=!0,w=new o.A({xmin:-.5,ymin:.5-s,xmax:r-.5,ymax:.5,spatialReference:new f.A({wkid:3857})});let v=(0,D.V6)(e,"MRF_META/Rsets"),S=parseInt(v?.getAttribute("scale")||"2",10),A=w.spatialReference,_=new X.A({origin:new Z.A({x:w.xmin,y:w.ymax,spatialReference:A}),blockWidth:d,blockHeight:p,pyramidBlockWidth:d,pyramidBlockHeight:p,compression:l,pyramidScalingFactor:S}),R=new Z.A({x:w.width/r,y:w.height/s,spatialReference:A}),M=new T.A({width:r,height:s,extent:w,isPseudoSpatialReference:C,spatialReference:A,bandCount:n,pixelType:h,pixelSize:R,noDataValue:y,storageInfo:_}),k=this._getAuxFullPath((0,D.mX)(t,"DataFile")),O=this._getAuxFullPath((0,D.mX)(t,"IndexFile"));return{rasterInfo:M,files:{mrf:this.url,index:O||this.url.replace(".mrf",".idx"),data:k||this.url.replace(".mrf",re.get(l).blobExtension)}}}_getAuxFullPath(e){return!e||e.includes("\\")?null:e.includes("/")?e.startsWith(new URL(this.url).origin)?e:null:`${this.url.slice(0,this.url.lastIndexOf("/"))}/${e}`}async _fetchAuxiliaryData(e){try{let{data:t}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:e?.signal});return H(t)}catch{return null}}};(0,r.Cg)([(0,s.MZ)()],se.prototype,"_files",void 0),(0,r.Cg)([(0,s.MZ)()],se.prototype,"_storageIndex",void 0),(0,r.Cg)([(0,s.MZ)()],se.prototype,"_isBsq",void 0),(0,r.Cg)([(0,s.MZ)({type:String,json:{write:!0}})],se.prototype,"datasetFormat",void 0),se=(0,r.Cg)([(0,s.$K)("esri.layers.raster.datasets.MRFRaster")],se);const ne=se;i(44208);var le=i(53966),oe=i(9334);function fe(e){let t=e.fields,i=e.records,a=t.some(e=>"oid"===e.name.toLowerCase())?"OBJECTID":"OID",r=[{name:a,type:"esriFieldTypeOID",alias:"OID"}].concat(t.map(e=>({name:e.name,type:"esriFieldType"+e.typeName,alias:e.name}))),s=r.map(e=>e.name),n=[],l=0,o=0;return i.forEach(e=>{let t={};for(t[a]=l++,o=1;o<s.length;o++)t[s[o]]=e[o-1];n.push({attributes:t})}),{displayFieldName:"",fields:r,features:n}}function ue(e){let t=new DataView(e),i=3&t.getUint8(0);if(3!==i)return{header:{version:i},recordSet:null};let a=t.getUint32(4,!0),r=t.getUint16(8,!0),s=t.getUint16(10,!0),n={version:i,recordCount:a,headerByteCount:r,recordByteCount:s},l=32,o=[],f=[];for(;13!==t.getUint8(l);){let i=String.fromCharCode(t.getUint8(l+11)).trim();o.push({name:(0,oe.w)(new Uint8Array(e,l,11)),type:i,typeName:["String","Date","Double","Boolean","String","Integer"][["C","D","F","L","M","N"].indexOf(i)],length:t.getUint8(l+16)}),l+=32}if(l+=1,o.length>0)for(;f.length<a&&e.byteLength-l>s;){let i=[];32===t.getUint8(l)?(l+=1,o.forEach(t=>{if("C"===t.type)i.push((0,oe.w)(new Uint8Array(e,l,t.length)).trim());else if("N"===t.type)i.push(parseInt(String.fromCharCode.apply(null,new Uint8Array(e,l,t.length)).trim(),10));else if("F"===t.type)i.push(parseFloat(String.fromCharCode.apply(null,new Uint8Array(e,l,t.length)).trim()));else if("D"===t.type){let a=String.fromCharCode.apply(null,new Uint8Array(e,l,t.length)).trim();i.push(new Date(parseInt(a.slice(0,4),10),parseInt(a.slice(4,6),10)-1,parseInt(a.slice(6,8),10)))}l+=t.length}),f.push(i)):l+=s}return{header:n,fields:o,records:f,recordSet:fe({fields:o,records:f})}}var he=i(44094),ce=i(94213);const de="none-tiled tiff is not optimized for access, convert to COG and retry.";let pe=class extends n.A{constructor(){super(...arguments),this._bufferSize=1048576,this._chunkSize=10485760,this._fileSize=-1,this._headerChunks=[],this.datasetFormat="TIFF",this.headerInfo=null}async fetchRawTile(e,t,i,a={}){if(!this.headerInfo?.isSupported||this.isBlockOutside(e,t,i))return null;let r=await this._fetchRawTiffTile(e,t,i,!1,a);if(null!=r&&this.headerInfo.hasMaskBand){let s=await this._fetchRawTiffTile(e,t,i,!0,a);null!=s&&s.pixels[0]instanceof Uint8Array&&(r.mask=s.pixels[0])}return r}async _open(e){this.datasetName=this.url.slice(this.url.lastIndexOf("/")+1,this.url.lastIndexOf(".")),await this._readHeader(e?.signal),await this._fetchAllAuxData(),this.ioConfig.skipMapInfo&&this.updateImageSpaceRasterInfo(this.rasterInfo),this.updateTileInfo()}async _readHeader(e){try{let t=await this._fetchHeaderData(0,this._bufferSize,e);if(!t)throw new a.A("tiffraster:open","failed to open url "+this.url);let{littleEndian:i,firstIFDPos:r,isBigTiff:s}=(0,he.uT)(t),n=[],l={fileChunk:t,posIFD:r,fileOffset:0};await this._readIFDs(n,l,i,s?8:4,e);let{imageInfo:u,rasterInfo:h}=function(e){let t=(0,he.uc)(e),{width:i,height:a,tileWidth:r,tileHeight:s,planes:n,pixelType:l,compression:u,firstPyramidLevel:h,maximumPyramidLevel:c,pyramidBlockWidth:d,pyramidBlockHeight:p,pyramidResolutions:m,tileBoundary:g,affine:y,metadata:x,colormap:w}=t,I=N(t.extent.spatialReference?.wkt||t.extent.spatialReference?.wkid),b=!!t.isPseudoGeographic;I??=(b=!0,new f.A({wkid:3857}));let C=new o.A({...t.extent,spatialReference:I}),v=C?new Z.A({x:C.xmin,y:C.ymax,spatialReference:I}):new Z.A({x:0,y:0}),S=new X.A({blockWidth:r,blockHeight:s,pyramidBlockWidth:d,pyramidBlockHeight:p,compression:u,origin:v,firstPyramidLevel:h,maximumPyramidLevel:c,pyramidResolutions:m,blockBoundary:g}),A=new Z.A({x:(C.xmax-C.xmin)/i,y:(C.ymax-C.ymin)/a,spatialReference:I}),_=x?{BandProperties:x.bandProperties,DataType:x.dataType}:{},R=new T.A({width:i,height:a,bandCount:n,pixelType:l,pixelSize:A,storageInfo:S,spatialReference:I,isPseudoSpatialReference:b,keyProperties:_,extent:C,colormap:w,statistics:x?x.statistics:null});if(y?.length&&(R.nativeExtent=new o.A({xmin:-.5,ymin:.5-a,xmax:i-.5,ymax:.5,spatialReference:I}),R.transform=new B.A({polynomialOrder:1,forwardCoefficients:[y[2]+y[0]/2,y[5]-y[3]/2,y[0],y[3],-y[1],-y[4]]}),R.extent=R.transform.forwardTransform(R.nativeExtent),R.pixelSize=new Z.A({x:(C.xmax-C.xmin)/i,y:(C.ymax-C.ymin)/a,spatialReference:I}),S.origin.x=-.5,S.origin.y=.5),m){let{x:e,y:t}=R.pixelSize;m.forEach(i=>{i.x*=e,i.y*=t})}return{imageInfo:t,rasterInfo:R}}(n),c=(0,he.zS)(n),d=(0,he.r9)(n);this.headerInfo={littleEndian:i,isBigTiff:s,ifds:n,pyramidIFDs:c,maskIFDs:d,...u},this._set("rasterInfo",h),this._validateHeader()}finally{this._headerChunks.length=0}}_validateHeader(){let e=this.headerInfo;if(!e.isSupported)throw new a.A("tiffraster:open","this tiff is not supported: "+e.message);if(!e.tileWidth||!e.tileHeight)throw new a.A("tiffraster:open",de);this.rasterInfo.isPseudoSpatialReference&&le.A.getLogger(this).warn("The spatial reference for this tiff is unsupported. Only EPSG spatial reference codes and Esri WKTs are supported.");let t=e.ifds[0],i=t.get("PREDICTOR")?.values?.[0];if(3===t.get("SAMPLEFORMAT")?.values?.[0]&&2===i)throw new a.A("tiffraster:open","unsupported horizontal difference encoding. Predictor=3 is supported for floating point data")}async _fetchHeaderData(e,t,i){let r=this._getCachedHeaderData(e,t);if(r)return r;let s=Math.floor(e/this._bufferSize)*this._bufferSize,n=s+Math.max(1,Math.ceil((t-s)/this._bufferSize))*this._bufferSize,l=this._getMissingHeaderRanges(s,n).map(async e=>{let{from:t,to:a}=e,r=await this._fetchOffsets(t,a,i),s=this._fileSize;return{chunk:r,fileOffset:t,isEOF:s>0?t+r.byteLength>=s:r.byteLength<a-t+1}}),o=await Promise.all(l);this._headerChunks.push(...o),this._headerChunks.sort((e,t)=>e.fileOffset-t.fileOffset);let f=this._getCachedHeaderData(e,t);if(!f)throw new a.A("tiffraster:open",`failed to fetch byte range ${e}-${t} from ${this.url}`);return f}_getCachedHeaderData(e,t){let i=[],a=e;for(let{chunk:r,fileOffset:s,isEOF:n}of this._headerChunks){if(s+r.byteLength-1<a)continue;if(s>a)return null;let l=a-s,o=Math.min(t-s+1,r.byteLength);if(i.push({chunk:r,start:l,end:o}),a=s+o,a>t||n&&o===r.byteLength){let t=new Uint8Array(a-e),r=0;for(let e of i){let i=new Uint8Array(e.chunk,e.start,e.end-e.start);t.set(i,r),r+=i.byteLength}return t.buffer}}return null}_getMissingHeaderRanges(e,t){let i=[],a=(e,t)=>{let a=Math.floor(e/this._bufferSize)*this._bufferSize,r=Math.ceil(t/this._bufferSize)*this._bufferSize;i.push({from:a,to:r})},r=e;for(let{chunk:e,fileOffset:s,isEOF:n}of this._headerChunks){let l=s+e.byteLength-1;if(!(l<r)&&(s>r&&a(r,Math.min(s-1,t)),r=Math.max(r,l+1),r>t||n))return i}return r<=t&&a(r,t),i}async _validateOrFetchHeaderBuffer(e,t){let{fileChunk:i,fileOffset:r,posIFD:s}=e;if(s+8>=i.byteLength||s<0){if(r=s+r,r<0)throw new a.A("tiffraster:open",`invalid IFD position ${r}. failed to open url ${this.url}`);i=await this._fetchHeaderData(r,r+this._bufferSize/2,t),s=0}return{fileChunk:i,fileOffset:r,posIFD:s}}async _readIFDs(e,t,i,r=4,s){if(!t.posIFD)return null;t=await this._validateOrFetchHeaderBuffer(t,s);let n=await this._readIFD(t,i,ce.NB,r,s);if(!n?.ifd)throw new a.A("tiffraster:open","cannot parse tiff header. failed to open url "+this.url);if(e.push(n.ifd),!n.nextIFD)return null;t.posIFD=n.nextIFD-t.fileOffset,await this._readIFDs(e,t,i,r,s)}async _readIFD(e,t,i=ce.NB,r=4,s){let{fileChunk:n,posIFD:l,fileOffset:o}=e;if(!e.fileChunk)return null;let f=(0,he.JM)(n,t,l,o,i,r);if(f.success){let{ifd:e}=f;if(!e)throw new a.A("tiffraster:open","cannot parse tiff header. failed to open url "+this.url);if(!(this.ioConfig.loadFullMetadata||i!==ce.NB||e.has("TILEWIDTH")&&e.has("TILELENGTH")))throw new a.A("tiffraster:open",de);let r=[];e.forEach(e=>{e.values||r.push(e)}),r.length>0&&await this._fillOffsets(r,t,f.nextIFD,s),(0,he.fM)(e),(0,he.h_)(e);for(let[i,a]of ce.RR){let r=e.get(i),f=null!=r?.data&&Array.from(r.data.values()).some(e=>null==e.values&&null!=e.offlineOffsetSize);if(r&&(!r.data||f)){l=r.valueOffset-o;let e=await this._validateOrFetchHeaderBuffer({fileChunk:n,posIFD:l,fileOffset:o},s);r.data=(await this._readIFD(e,t,a,4,s))?.ifd}}return f}return f.requiredBufferSize?(n=await this._fetchHeaderData(o,o+l+f.requiredBufferSize+8,s),n.byteLength<l+f.requiredBufferSize?null:(e.fileChunk=n,e.fileOffset=o,this._readIFD(e,t,i,r,s))):null}async _fillOffsets(e,t,i,a){let r=e.filter(e=>null!=e.offlineOffsetSize);if(0===r.length)return;let s=r.map(e=>e.offlineOffsetSize),n=Math.min.apply(null,s.map(e=>e[0])),l=Math.max.apply(null,s.map(e=>e[0]+e[1])),o=1===s.length||l-n<=this._bufferSize;if(!o&&s.length>1&&(s.sort((e,t)=>e[0]-t[0]),o=s.reduce((e,t)=>e===t[0]?t[0]+t[1]:0,s[0][0])===l),o){let e=Math.max(l,n+this._bufferSize/4),i=await this._fetchHeaderData(n,e,a);return void r.forEach(e=>(0,he.Cr)(i,t,e,n))}let f=r.map(async e=>{let i=e.offlineOffsetSize,r=await this._fetchHeaderData(i[0],i[1]+i[0],a);(0,he.Cr)(r,t,e,i[0])});await Promise.all(f)}async _fetchOffsets(e,t,i){let a=[],r=this._chunkSize;this._fileSize>0&&(t=Math.min(t,this._fileSize-1));let s=Math.ceil((t-e+1)/r),n=e;for(let e=0;e<s;e++)a.push(this.request(this.url,{range:{from:n,to:e===s-1?t:n+r-1},responseType:"array-buffer",signal:i})),n+=r;let l=await Promise.all(a);if(-1===this._fileSize&&206===l[0].httpStatus){let e=l[0].getHeader?.("Content-Range"),t=Number(e?.split("/")[1]);Number.isFinite(t)&&(this._fileSize=t)}if(1===l.length)return l[0].data;let o=l.reduce((e,t)=>e+t.data.byteLength,0),f=new Uint8Array(o),u=0;for(let e of l)f.set(new Uint8Array(e.data),u),u+=e.data.byteLength;return f.buffer}async _fetchRawTiffTile(e,t,i,a,r={}){let s=this._getTileLocation(e,t,i,a);if(!s)return null;let{ranges:n,actualTileWidth:l,actualTileHeight:o,ifd:f}=s,u=n.map(e=>this.request(this.url,{range:e,responseType:"array-buffer",signal:r.signal})),h=await Promise.all(u),c=h.map(e=>e.data.byteLength).reduce((e,t)=>e+t),d=1===h.length?h[0].data:new ArrayBuffer(c),p=[0],m=[0];if(h.length>1){let e=new Uint8Array(d);for(let t=0,i=0;t<h.length;t++){let a=h[t].data;e.set(new Uint8Array(a),i),p[t]=i,i+=a.byteLength,m[t]=a.byteLength}}let{blockWidth:g,blockHeight:y}=this.getBlockWidthHeight(e),x=await this.decodePixelBlock(d,{format:"tiff",customOptions:{headerInfo:this.headerInfo,ifd:f,offsets:p,sizes:m},width:g,height:y,planes:null,pixelType:null},{signal:r.signal});if(null==x)return null;if(l!==g||o!==y){let e=x.mask;if(e)for(let t=0;t<y;t++){let i=t*g;if(t<o)for(let t=l;t<g;t++)e[i+t]=0;else for(let t=0;t<g;t++)e[i+t]=0}else{e=new Uint8Array(g*y),x.mask=e;for(let t=0;t<o;t++){let i=t*g;for(let t=0;t<l;t++)e[i+t]=1}}}return x}_getTileLocation(e,t,i,a=!1){let{firstPyramidLevel:r,blockBoundary:s}=this.rasterInfo.storageInfo,n=0===e?0:e-(r-1),{headerInfo:l}=this;if(!l)return null;let o=a?l.maskIFDs[n]:0===n?l.ifds[0]:l.pyramidIFDs[n-1];if(!o)return null;let f=(0,he.XO)(o,l),u=(0,he.wc)(o,"TILEOFFSETS"),h=(0,he.wc)(o,"TILEBYTECOUNTS");if(!u?.length||!h?.length)return null;let{minRow:c,minCol:d,maxRow:p,maxCol:m}=s[n];if(t>p||i>m||t<c||i<d)return null;let g=(0,he.LZ)(o,"IMAGEWIDTH"),y=(0,he.LZ)(o,"IMAGELENGTH"),x=(0,he.LZ)(o,"TILEWIDTH"),w=(0,he.LZ)(o,"TILELENGTH"),I=[];if(f){let{bandCount:e}=this.rasterInfo;for(let a=0;a<e;a++){let e=a*(p+1)*(m+1)+t*(m+1)+i;I[a]={from:u[e],to:u[e]+h[e]-1}}}else{let e=t*(m+1)+i;I.push({from:u[e],to:u[e]+h[e]-1})}for(let e=0;e<I.length;e++)if(null==I[e].from||!I[e].to||I[e].to<0)return null;return{ranges:I,ifd:o,actualTileWidth:i===m&&g%x||x,actualTileHeight:t===p&&y%w||w}}async _fetchAllAuxData(e){if(this.ioConfig.skipMapInfo)return;let{rasterInfo:t}=this,{skipExtensions:i=[]}=this.ioConfig,a=i.includes("aux.xml")?Promise.resolve(null):this._fetchAuxiliaryMetaData(e),r=i.includes("vat.dbf")||1!==t.bandCount||"u8"!==t.pixelType?Promise.resolve(null):this._fetchAuxiliaryTable(e),[s,n]=await Promise.all([a,r]);null!=s&&function(e,t){if(t.statistics=e.statistics??t.statistics,t.histograms=e.histograms,e.histograms&&null==t.statistics&&(t.statistics=(0,S.Pg)(e.histograms)),e.transform&&null==t.transform){t.transform=e.transform,t.nativeExtent=t.extent;let i=t.transform.forwardTransform(t.nativeExtent);t.pixelSize=new Z.A({x:(i.xmax-i.xmin)/t.width,y:(i.ymax-i.ymin)/t.height,spatialReference:t.spatialReference}),t.extent=i}t.isPseudoSpatialReference&&e.spatialReference&&(t.spatialReference=e.spatialReference,t.extent.spatialReference=t.nativeExtent.spatialReference=t.storageInfo.origin.spatialReference=t.spatialReference)}(s,t),null!=n&&(t.attributeTable=n,t.keyProperties.DataType="thematic")}async _fetchAuxiliaryMetaData(e){try{let{data:t}=await this.request(this.url+".aux.xml",{responseType:"xml",signal:e?.signal});return H(t)}catch{return null}}async _fetchAuxiliaryTable(e){try{let{data:t}=await this.request(this.url+".vat.dbf",{responseType:"array-buffer",signal:e?.signal}),i=ue(t);return i?.recordSet?M.A.fromJSON(i.recordSet):null}catch{return null}}};(0,r.Cg)([(0,s.MZ)()],pe.prototype,"_bufferSize",void 0),(0,r.Cg)([(0,s.MZ)()],pe.prototype,"_chunkSize",void 0),(0,r.Cg)([(0,s.MZ)()],pe.prototype,"_fileSize",void 0),(0,r.Cg)([(0,s.MZ)()],pe.prototype,"_headerChunks",void 0),(0,r.Cg)([(0,s.MZ)({type:String,json:{write:!0}})],pe.prototype,"datasetFormat",void 0),(0,r.Cg)([(0,s.MZ)()],pe.prototype,"headerInfo",void 0),pe=(0,r.Cg)([(0,s.$K)("esri.layers.raster.datasets.TIFFRaster")],pe);const me=pe,ge=new Map;ge.set("MRF",{desc:"Meta Raster Format",constructor:ne}),ge.set("TIFF",{desc:"GeoTIFF",constructor:me}),ge.set("RasterTileServer",{desc:"Raster Tile Server",constructor:te}),ge.set("JPG",{desc:"JPG Raster Format",constructor:q}),ge.set("PNG",{desc:"PNG Raster Format",constructor:q}),ge.set("GIF",{desc:"GIF Raster Format",constructor:q}),ge.set("BMP",{desc:"BMP Raster Format",constructor:q}),ge.set("CovJSON",{desc:"COVJSON Raster Format",constructor:O}),ge.set("MEMORY",{desc:"In Memory Raster Format",constructor:R});class ye{static get supportedFormats(){let e=new Set;return ge.forEach((t,i)=>e.add(i)),e}static async open(e){let{url:t,ioConfig:i,source:r,sourceJSON:s}=e,n=e.datasetFormat??i?.datasetFormat;n??(t.includes(".")?n=t.slice(t.lastIndexOf(".")+1).toUpperCase():"coverage"===r?.type?.toLowerCase()?n="CovJSON":r?.extent&&r.pixelblocks&&(n="MEMORY")),"OVR"===n||"TIF"===n||"DM"===n?n="TIFF":"JPG"===n||"JPEG"===n||"JFIF"===n?n="JPG":"COVJSON"===n&&(n="CovJSON"),t.toLowerCase().includes("/imageserver")&&!t.toLowerCase().includes("/wcsserver")&&(n="RasterTileServer");let l={url:t,source:r,sourceJSON:s,datasetFormat:n,ioConfig:i??{bandIds:null,sampling:null}};if(Object.keys(l).forEach(e=>{l[e]??delete l[e]}),n){if(!this.supportedFormats.has(n))throw new a.A("rasterfactory:open","not a supported format "+n);if("CRF"===n)throw new a.A("rasterfactory:open",`cannot open raster: ${t}`);let i=new(0,ge.get(n).constructor)(l);return i.rasterJobHandler=e.rasterJobHandler,i.rasterInfo=e.rasterInfo,await i.open({signal:e.signal}),i}let o=Array.from(ge.keys()).filter(e=>"CovJSON"!==e&&"Memory"!==e),f=0,u=()=>{if(n=o[f++],!n||"CRF"===n)return null;let t=new(0,ge.get(n).constructor)(l);return t.rasterJobHandler=e.rasterJobHandler,t.open({signal:e.signal}).then(()=>t).catch(()=>u())};return u()}static register(e,t,i){ge.has(e.toUpperCase())||ge.set(e.toUpperCase(),{desc:t,constructor:i})}}},10333(e,t,i){i.d(t,{A:()=>n});var a=i(32198),r=i(25482),s=i(91429);let n=class extends r.o{get affectsPixelSize(){return!1}forwardTransform(e){return e}inverseTransform(e){return e}};(0,a.Cg)([(0,s.MZ)()],n.prototype,"affectsPixelSize",null),(0,a.Cg)([(0,s.MZ)({json:{write:!0}})],n.prototype,"spatialReference",void 0),n=(0,a.Cg)([(0,s.$K)("esri.layers.raster.transforms.BaseRasterTransform")],n)},75414(e,t,i){i.d(t,{A:()=>o});var a,r=i(32198),s=i(91429),n=i(10333),l=i(93223);let o=a=class extends n.A{constructor(){super(...arguments),this.type="gcs-shift",this.tolerance=1e-8}forwardTransform(e){return"point"===(e=e.clone()).type?(e.x>180+this.tolerance&&(e.x-=360),e):(e.xmin>=180-this.tolerance?(e.xmax-=360,e.xmin-=360):e.xmax>180+this.tolerance&&(e.xmin=-180,e.xmax=180),e)}inverseTransform(e){return"point"===(e=e.clone()).type?(e.x<-this.tolerance&&(e.x+=360),e):(e.xmin<-this.tolerance&&(e.xmin+=360,e.xmax+=360),e)}clone(){return new a({tolerance:this.tolerance})}};(0,r.Cg)([(0,l.e)({GCSShiftXform:"gcs-shift"})],o.prototype,"type",void 0),(0,r.Cg)([(0,s.MZ)()],o.prototype,"tolerance",void 0),o=a=(0,r.Cg)([(0,s.$K)("esri.layers.raster.transforms.GCSShiftTransform")],o)},43163(e,t,i){i.d(t,{A:()=>p});var a,r=i(32198),s=i(91429),n=i(5443),l=i(86738),o=i(10333),f=i(36005),u=i(43937),h=i(93223);function c(e,t,i){let{x:a,y:r}=t;if(i<2)return{x:e[0]+a*e[2]+r*e[4],y:e[1]+a*e[3]+r*e[5]};if(2===i){let t=a*a,i=r*r,s=a*r;return{x:e[0]+a*e[2]+r*e[4]+t*e[6]+s*e[8]+i*e[10],y:e[1]+a*e[3]+r*e[5]+t*e[7]+s*e[9]+i*e[11]}}let s=a*a,n=r*r,l=a*r,o=s*a,f=s*r,u=a*n,h=r*n;return{x:e[0]+a*e[2]+r*e[4]+s*e[6]+l*e[8]+n*e[10]+o*e[12]+f*e[14]+u*e[16]+h*e[18],y:e[1]+a*e[3]+r*e[5]+s*e[7]+l*e[9]+n*e[11]+o*e[13]+f*e[15]+u*e[17]+h*e[19]}}function d(e,t,i){let{xmin:a,ymin:r,xmax:s,ymax:l,spatialReference:o}=t,f=[];if(i<2)f.push({x:a,y:l}),f.push({x:s,y:l}),f.push({x:a,y:r}),f.push({x:s,y:r});else{let e=10;for(let t=0;t<e;t++)f.push({x:a,y:r+(l-r)*t/(e-1)}),f.push({x:s,y:r+(l-r)*t/(e-1)});e=8;for(let t=1;t<=e;t++)f.push({x:a+(s-a)*t/e,y:r}),f.push({x:a+(s-a)*t/e,y:l})}f=f.map(t=>c(e,t,i));let u=f.map(e=>e.x),h=f.map(e=>e.y);return new n.A({xmin:Math.min.apply(null,u),xmax:Math.max.apply(null,u),ymin:Math.min.apply(null,h),ymax:Math.max.apply(null,h),spatialReference:o})}let p=a=class extends o.A{constructor(){super(...arguments),this.polynomialOrder=1,this.type="polynomial"}readForwardCoefficients(e,t){let{coeffX:i,coeffY:a}=t;if(!i?.length||!a?.length||i.length!==a.length)return null;let r=[];for(let e=0;e<i.length;e++)r.push(i[e]),r.push(a[e]);return r}writeForwardCoefficients(e,t,i){let a=[],r=[];for(let t=0;t<e?.length;t++)t%2==0?a.push(e[t]):r.push(e[t]);t.coeffX=a,t.coeffY=r}get inverseCoefficients(){let e=this._get("inverseCoefficients"),t=this._get("forwardCoefficients");return!e&&t&&this.polynomialOrder<2&&(e=function(e){let[t,i,a,r,s,n]=e,l=a*n-s*r,o=s*r-a*n;return[(s*i-t*n)/l,(a*i-t*r)/o,n/l,r/o,-s/l,-a/o]}(t)),e}set inverseCoefficients(e){this._set("inverseCoefficients",e)}readInverseCoefficients(e,t){let{inverseCoeffX:i,inverseCoeffY:a}=t;if(!i?.length||!a?.length||i.length!==a.length)return null;let r=[];for(let e=0;e<i.length;e++)r.push(i[e]),r.push(a[e]);return r}writeInverseCoefficients(e,t,i){let a=[],r=[];for(let t=0;t<e?.length;t++)t%2==0?a.push(e[t]):r.push(e[t]);t.inverseCoeffX=a,t.inverseCoeffY=r}get affectsPixelSize(){return this.polynomialOrder>0}forwardTransform(e){if("point"===e.type){let t=c(this.forwardCoefficients,e,this.polynomialOrder);return new l.A({x:t.x,y:t.y,spatialReference:e.spatialReference})}return d(this.forwardCoefficients,e,this.polynomialOrder)}inverseTransform(e){if("point"===e.type){let t=c(this.inverseCoefficients,e,this.polynomialOrder);return new l.A({x:t.x,y:t.y,spatialReference:e.spatialReference})}return d(this.inverseCoefficients,e,this.polynomialOrder)}clone(){return new a({polynomialOrder:this.polynomialOrder,forwardCoefficients:this.forwardCoefficients?[...this.forwardCoefficients]:null,inverseCoefficients:this.inverseCoefficients?[...this.inverseCoefficients]:null})}};(0,r.Cg)([(0,s.MZ)({json:{write:!0}})],p.prototype,"polynomialOrder",void 0),(0,r.Cg)([(0,s.MZ)()],p.prototype,"forwardCoefficients",void 0),(0,r.Cg)([(0,f.w)("forwardCoefficients",["coeffX","coeffY"])],p.prototype,"readForwardCoefficients",null),(0,r.Cg)([(0,u.K)("forwardCoefficients")],p.prototype,"writeForwardCoefficients",null),(0,r.Cg)([(0,s.MZ)({json:{write:!0}})],p.prototype,"inverseCoefficients",null),(0,r.Cg)([(0,f.w)("inverseCoefficients",["inverseCoeffX","inverseCoeffY"])],p.prototype,"readInverseCoefficients",null),(0,r.Cg)([(0,u.K)("inverseCoefficients")],p.prototype,"writeInverseCoefficients",null),(0,r.Cg)([(0,s.MZ)()],p.prototype,"affectsPixelSize",null),(0,r.Cg)([(0,h.e)({PolynomialXform:"polynomial"})],p.prototype,"type",void 0),p=a=(0,r.Cg)([(0,s.$K)("esri.layers.raster.transforms.PolynomialTransform")],p)}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[4708],{69052(e,t,r){r.d(t,{hr:()=>i});var n=r(34727);class i{constructor(e,t){this.min=e,this.max=t,this.range=t-e}normalize(e,t=0,r=!1){return s(this.range,this.min,this.max,e,t,r)}clamp(e,t=0){return(0,n.qE)(e-t,this.min,this.max)+t}monotonic(e,t,r){return e<t?t:t+o(this.range,e-t,r)}minimalMonotonic(e,t,r){return s(this.range,e,e+this.range,t,r)}center(e,t,r){return t=this.monotonic(e,t,r),this.normalize((e+t)/2,r)}diff(e,t,r){return this.monotonic(e,t,r)-e}shortestSignedDiff(e,t){e=this.normalize(e);let r=(t=this.normalize(t))-e,n=t<e?this.minimalMonotonic(e,t)-e:t-this.minimalMonotonic(t,e);return Math.abs(r)<Math.abs(n)?r:n}contains(e,t,r){return t=this.minimalMonotonic(e,t),(r=this.minimalMonotonic(e,r))>e&&r<t}}function s(e,t,r,n,i=0,s=!1){return(n-=i)<t?n+=o(e,t-n):n>r&&(n-=o(e,n-r)),s&&n===r&&(n=t),n+i}function o(e,t,r=0){return Math.ceil((t-r)/e)*e+r}const a=new i(0,2*Math.PI),l=(new i(-Math.PI,Math.PI),new i(0,360));r.d(t,["ie",0,l,"uC",0,a])},18370(e,t,r){r.d(t,{z:()=>i});class n{constructor(e){this._import=e,this.module=null,this._promise=null}getImportPromise(){return this._promise??=this._import().then(async e=>(this.module=e,e)),this._promise}}function i(e){return new n(e)}},52039(e,t,r){r.d(t,{O7:()=>f,el:()=>c});var n=r(69052),i=(r(49186),r(18370)),s=r(17676),o=(r(5443),r(39829)),a=(r(82799),r(16930)),l=(r(80754),r(21325));async function c(e,t,r){Array.isArray(e)||(e=[e]),"object"==typeof t&&t&&"authMode"in t&&(r=t);let n=null;for(let t of e)n??=t?.spatialReference;if(!n)return e;let i=(0,l.Vp)(n);if(!i)return e;if(1===e.length&&"extent"===e[0]?.type){let t=e[0].clone().normalizeAsSingleGeometry(i);return["xmin"in t?t:new o.A(t)]}let[a,c]=i.valid,f=!1;for(let t of e){if(!t)continue;if("point"===t.type){f||=t.x>=c,f||=t.x<=a;continue}let{extent:e}=t;if(null==e){f=!0;break}f||=e.xmin>=c,f||=e.xmin<=a,f||=e.xmax>=c,f||=e.xmax<=a}if(!f)return e;let[{foldInto360Range:d},g]=await(0,s.qr)(Promise.all([u.getImportPromise(),h.getImportPromise()]),r),m=g.fromSpatialReference(n);return e.map(e=>{if(null==e||"mesh"===e.type)return e;let t=g.fromGeometry(e),r=g.toGeometry(d(t,m),n);return"extent"===e.type&&1===r?.rings.length?r.extent:r})}const u=(0,i.z)(()=>r.e(4144).then(()=>r(4144)).then(e=>e.load().then(()=>e))),h=(0,i.z)(()=>Promise.all([r.e(9187),r.e(8885),r.e(9117),r.e(3299),r.e(1550)]).then(()=>r(78125)));function f(e,t,r){let n=(0,l.Vp)(r);if(null==n)return e;let[i,s]=n.valid,o=2*s,a=0,c=0;t>s?a=Math.ceil(Math.abs(t-s)/o):t<i&&(a=-Math.ceil(Math.abs(t-i)/o)),e>s?c=Math.ceil(Math.abs(e-s)/o):e<i&&(c=-Math.ceil(Math.abs(e-i)/o));let u=e+(a-c)*o,h=u-t;return h>s?u-=o:h<i&&(u+=o),u}function d(e){let t=(0,l.Vp)(e);if(null==t)return null;let[r,i]=t.valid;return new n.hr(r,i)}const g=d(a.A.WGS84);d(a.A.WebMercator),r.d(t,["Y_",0,g])},80754(e,t,r){r.d(t,{kS:()=>c,kd:()=>l});var n=r(82799),i=r(16930),s=r(60408),o=r(52006);const a={102100:{maxX:20037508.342788905,minX:-20037508.342788905,plus180Line:new n.A({paths:[[[20037508.342788905,-20037508.342788905],[20037508.342788905,20037508.342788905]]],spatialReference:i.A.WebMercator}),minus180Line:new n.A({paths:[[[-20037508.342788905,-20037508.342788905],[-20037508.342788905,20037508.342788905]]],spatialReference:i.A.WebMercator})},4326:{maxX:180,minX:-180,plus180Line:new n.A({paths:[[[180,-180],[180,180]]],spatialReference:i.A.WGS84}),minus180Line:new n.A({paths:[[[-180,-180],[-180,180]]],spatialReference:i.A.WGS84})}};function l(e,t){return Math.ceil((e-t)/(2*t))}function c(e,t){if((0,o.Ed)(e))for(let r of function(e){return(0,s.Bi)(e)?e.curveRings:e.curvePaths}(e))for(let e of r)if((0,o.aO)(e)){let[r,n]=e.c;r[0]+=t,n[0]+=t}else if((0,o.FG)(e)){let[r,n]=e.a;r[0]+=t,n[0]+=t}else if((0,o.n1)(e)){let[r,n,i]=e.b;r[0]+=t,n[0]+=t,i[0]+=t}else e[0]+=t;for(let r of function(e){return(0,s.Bi)(e)?e.rings:e.paths}(e))for(let e of r)e[0]+=t;return e}r.d(t,["j7",0,a])},31464(e,t,r){r.d(t,{Cv:()=>d,Nk:()=>f,lK:()=>m});var n=r(4576),i=r(99917),s=r(60408),o=r(21325),a=r(28735);const l=[0,0];function c(e,t){let r=(0,o.K8)(e)?a.je:a.tD;if((0,s.fT)(t)){let e={x:0,y:0};return[e.x,e.y]=r(t.x,t.y,l),null!=t.z&&(e.z=t.z),null!=t.m&&(e.m=t.m),e}if((0,s.ZC)(t)){let e={xmin:0,ymin:0,xmax:0,ymax:0};return[e.xmin,e.ymin]=r(t.xmin,t.ymin,l),[e.xmax,e.ymax]=r(t.xmax,t.ymax,l),t.hasZ&&(e.zmin=t.zmin,e.zmax=t.zmax,e.hasZ=!0),t.hasM&&(e.mmin=t.mmin,e.mmax=t.mmax,e.hasM=!0),e}if((0,s.Bi)(t))return{rings:u(t.rings,r),hasM:t.hasM,hasZ:t.hasZ};if((0,s.Rg)(t))return{paths:u(t.paths,r),hasM:t.hasM,hasZ:t.hasZ};if((0,s.U9)(t))return{points:h(t.points,r),hasM:t.hasM,hasZ:t.hasZ};throw Error()}function u(e,t){let r=[];for(let n of e)r.push(h(n,t));return r}function h(e,t){let r=[];for(let n of e){let e=t(n[0],n[1],[0,0]);r.push(e),n.length>2&&e.push(n[2]),n.length>3&&e.push(n[3])}return r}async function f(e,t){if(!e||!t)return;let r=Array.isArray(e)?e.map(e=>null==e.geometry?null:e.geometry.spatialReference).filter(n.Ru):[e];await(0,i.initializeProjection)(r.map(e=>({source:e,dest:t})))}function d(e,t,r,n){if(!e)return null;if(r||(r=t,t=e.spatialReference),!(0,o.fn)(t)||!(0,o.fn)(r)||(0,o.aI)(t,r))return e;if((0,a.y7)(t,r)){let t=c(r,e);return t.spatialReference=r,t}let[s]=(0,i.projectMany)([e],t,r,n);return s}const g=new class{constructor(){this._jobs=[],this._timer=null,this._process=this._process.bind(this)}async push(e,t,r,n){if(!e?.length||!t||!r||(0,o.aI)(t,r))return e;let i={geometries:e,inSpatialReference:t,outSpatialReference:r,options:n,resolve:Promise.withResolvers()};return this._jobs.push(i),this._timer??=setTimeout(this._process,10),i.resolve.promise}_process(){this._timer=null;let e=this._jobs.shift();if(!e)return;let t,{geometries:r,inSpatialReference:n,outSpatialReference:s,resolve:o,options:l}=e,u=r.filter(e=>null!=e);t=(0,a.y7)(n,s)&&null==l?.extendedParams?u.map(e=>c(s,e)):(0,i.projectMany)(u,n,s,l);let h=0,f=r.map(e=>null==e?null:t[h++]);o.resolve(f),this._jobs.length>0&&(this._timer=setTimeout(this._process,10))}};function m(e,t,r,n){return g.push(e,t,r,n)}},60986(e,t,r){r.r(t),r.d(t,{createConnection:()=>C});var n=r(56507),i=r(49186),s=r(31464),o=r(9916),a=r(32198),l=r(65529),c=r(91429);let u=class extends l.nJ{destroy(){this.emit("destroy")}get connectionError(){return this.errorString?new i.A("stream-connection",this.errorString):null}onFeature(e){this.emit("data-received",e)}onMessage(e){this.emit("message-received",e)}};(0,a.Cg)([(0,c.MZ)({readOnly:!0})],u.prototype,"connectionError",null),u=(0,a.Cg)([(0,c.$K)("esri.layers.support.StreamConnection")],u);class h extends u{constructor(e,t){super(),this._config=e,this._outSpatialReference=t,this.connectionStatus="connected",this.errorString=null,this._isPolling=!1,this._lastIngestedAt=null,this._pollTimer=null,this._pollRecentData=async()=>{if(!this.destroyed&&!this._isPolling){this._isPolling=!0;try{let e=await this._queryChanges(this._lastIngestedAt);if(this.destroyed)return;this._handleResult(e)}catch(e){this.errorString=e instanceof Error?e.message:"Failed to fetch"}finally{this._isPolling=!1}}},this._initialize()}destroy(){super.destroy(),this._pollTimer&&=(clearInterval(this._pollTimer),null)}sendMessageToSocket(e){throw new i.A("kusto:unsupported","sendMessageToSocket not supported for Kusto connections")}sendMessageToClient(e){throw new i.A("kusto:unsupported","sendMessageToClient not supported for Kusto connections")}updateCustomParameters(e){throw new i.A("kusto:unsupported","updateCustomParameters not supported for Kusto connections")}async _initialize(){await(0,s.Nk)(this._config.sourceSpatialReference,this._outSpatialReference);try{let e=await this._queryInitial();this._handleResult(e),this._pollTimer=setInterval(this._pollRecentData,6e4*this._config.refreshInterval)}catch{throw new i.A("kusto:connection","Failed to query KQL database")}}async _queryInitial(){let{trackIdField:e}=this._config,t=f(await this._executeQuery(`${(0,o.xw)(this._config.table)} | extend IngestedAt = ingestion_time() | summarize arg_max(IngestedAt, *) by ${(0,o.xw)(e)}`));if(!t)throw new i.A("kusto:connection","Unable to find primaryTable");return{ingestedAt:d(t),table:t}}async _queryChanges(e=null){let t=e??"1970-01-01T00:00:00Z",r=f(await this._executeQuery(`${(0,o.xw)(this._config.table)} | extend IngestedAt = ingestion_time() | where IngestedAt > todatetime('${(0,o.iD)(t)}') | order by IngestedAt asc`));if(!r)throw new i.A("kusto:connection","Unable to find primaryTable");return{ingestedAt:d(r),table:r}}async _executeQuery(e){let t=this._config.database,r=t.properties.queryServiceUri,{data:i}=await(0,n.A)(`${r}/v2/rest/query`,{responseType:"json",method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({db:t.displayName,csl:e})});return i}_handleResult(e){this._lastIngestedAt=e.ingestedAt;let t=this._createFeatures(e.table);if(null!=t){this.onMessage(t);for(let e of t)this.onFeature(e)}}_createFeatures(e){if(null==e||0===e.Rows.length)return null;let{xField:t,yField:r}=this._config.geometryEncoding,n=e.Columns.findIndex(e=>e.ColumnName===t),i=e.Columns.findIndex(e=>e.ColumnName===r);return e.Rows.map(t=>this._createFeature(e.Columns,n,i,t))}_createFeature(e,t,r,n){let{xField:i,yField:o}=this._config.geometryEncoding,a={};for(let t=0;t<e.length;t++){let r=e[t],s=n[t]??null;r.ColumnName!==o&&r.ColumnName!==i&&(a[r.ColumnName]=s)}let l=null,c=n[t],u=n[r];return null!=u&&null!=c&&(l=(0,s.Cv)({x:c,y:u},this._config.sourceSpatialReference,this._outSpatialReference)),{attributes:a,geometry:l}}}function f(e){return e.find(e=>"DataTable"===e.FrameType&&"PrimaryResult"===e.TableKind)??null}function d(e){let t=e.Columns.findIndex(e=>"IngestedAt"===e.ColumnName);if(t<0)return null;let r=null;for(let n of e.Rows){let e=n[t];"string"==typeof e&&(null==r||e>r)&&(r=e)}return r}var g=r(53966),m=r(84952),p=r(16930),y=r(65864),_=r(17676),w=r(62815);function b(e,t){if(null==e&&null==t)return null;let r={};return null!=t&&(r.geometry=t),null!=e&&(r.where=e),r}let S=class extends u{constructor(e,t){super({}),this._outSpatialReference=t,this._outstandingMessages=[],this.errorString=null;let{geometryType:r,sourceSpatialReference:n}=e;this._config=e,this._featureZScaler=(0,w.N)(r,n,this._outSpatialReference),this._open()}normalizeCtorArgs(){return{}}async _open(){await this._tryCreateWebSocket(),this.destroyed||await this._handshake()}destroy(){super.destroy(),null!=this._websocket&&(this._websocket.onopen=null,this._websocket.onclose=null,this._websocket.onerror=null,this._websocket.onmessage=null,this._websocket.close()),this._websocket=null}get connectionStatus(){if(null==this._websocket)return"disconnected";switch(this._websocket.readyState){case 0:case 1:return"connected";case 2:case 3:return"disconnected"}}sendMessageToSocket(e){null==this._websocket?this._outstandingMessages.push(e):this._websocket.send(JSON.stringify(e))}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.url.path,t=1e3,r=0){try{if(this.destroyed)return;let t=(0,m.a6)(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(n){let s=t/1e3;return this._config.maxReconnectionAttempts&&r>=this._config.maxReconnectionAttempts?(g.A.getLogger(this).error(new i.A("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(g.A.getLogger(this).error(new i.A("websocket-connection",`Failed to connect. Attempting to reconnect in ${s}s`,n)),await(0,_.Pl)(t),this._tryCreateWebSocket(e,Math.min(1.5*t,1e3*this._config.maxReconnectionInterval),r+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{let t=JSON.parse(e.data);this._onMessage(t)}catch(e){return void g.A.getLogger(this).error(new i.A("websocket-connection","Failed to parse message, invalid JSON",{error:e}))}}}_createWebSocket(e){return new Promise((t,r)=>{let n=new WebSocket(e);n.onopen=()=>{n.onopen=null,this.destroyed?(n.onclose=null,n.close()):(n.onclose=e=>this._onClose(e),n.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(n),t(n))},n.onclose=e=>{n.onopen=n.onclose=null,r(e)}})}async _handshake(e=1e4){let t=this._websocket;if(null==t)return;let r=Promise.withResolvers(),n=t.onmessage,s=b(this._config.definitionExpression,this._config.geometryDefinition),{outFields:o}=this._config,a=setTimeout(()=>r.reject(),e),l=()=>{clearTimeout(a),r.reject()};return t.onmessage=e=>{let c=null;try{c=JSON.parse(e.data)}catch{}(!c||"object"!=typeof c)&&(g.A.getLogger(this).error(new i.A("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),l(),this.destroy()),c.spatialReference?.wkid!==this._outSpatialReference?.wkid&&(g.A.getLogger(this).error(new i.A("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${this._outSpatialReference.wkid}`,e.data)),l(),this.destroy()),"json"!==c.format&&(g.A.getLogger(this).error(new i.A("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),l(),this.destroy()),s&&c.filter!==s&&g.A.getLogger(this).error(new i.A("websocket-connection","Tried to set filter, but server doesn't support it")),o&&c.outFields!==o&&g.A.getLogger(this).error(new i.A("websocket-connection","Tried to set outFields, but server doesn't support it")),t.onmessage=n;for(let e of this._outstandingMessages)t.send(JSON.stringify(e));this._outstandingMessages=[],clearTimeout(a),r.resolve()},t.send(JSON.stringify({filter:s,outFields:o,format:"json",spatialReference:{wkid:this._outSpatialReference.wkid}})),r.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(let t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){let t="Encountered an error over WebSocket connection";this._set("errorString",t),g.A.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&g.A.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};(0,a.Cg)([(0,c.MZ)()],S.prototype,"connectionStatus",null),(0,a.Cg)([(0,c.MZ)()],S.prototype,"errorString",void 0),S=(0,a.Cg)([(0,c.$K)("esri.layers.graphics.sources.connections.WebSocketConnection")],S);var k=r(80893),A=r(97552);const x={maxQueryDepth:5,maxRecordCountFactor:3};let v=class extends S{constructor(e,t){super({...x,...e},t),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){let e=await this._fetchServiceDefinition(this._config.url);e.timeInfo.trackIdField||g.A.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");let t=this._fetchWebSocketUrl(e.streamUrls,this._outSpatialReference);this._buddyServicesQuery||=this._queryBuddyServices(),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);let r=b(this._config.definitionExpression,this._config.geometryDefinition),{outFields:n}=this._config;this.destroyed||this._setFilter(r,n)}_onMessage(e){if("attributes"in e){let t;try{t=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(t.geometry)}catch(e){return void g.A.getLogger(this).error(new i.A("geoevent-connection","Failed to parse message",e))}this.onFeature(t)}else this.onMessage(e)}async _fetchServiceDefinition(e){let t={f:"json",...this._config.customParameters},r=(await(0,n.A)(e.path,{query:t,responseType:"json"})).data;return this._serviceDefinition=r,r}_fetchWebSocketUrl(e,t){let{urls:r,token:n}=e[0],i=this._inferWebSocketBaseUrl(r);return(0,m.a6)(`${i}/subscribe`,{outSR:""+t.wkid,token:n})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(let t of e)if(t.includes("wss"))return t;return g.A.getLogger(this).error(new i.A("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){let r=this._websocket;if(null==r||null==e&&null==t)return;let n=JSON.stringify({filter:this._serializeFilter(e,t)}),s=!1,o=Promise.withResolvers();return r.onmessage=e=>{let t=JSON.parse(e.data);t.filter&&(t.error&&(g.A.getLogger(this).error(new i.A("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),o.reject(t.error)),this._setWebSocketJSONParseHandler(r),s=!0,o.resolve())},r.send(n),setTimeout(()=>{s||(!this.destroyed&&this._websocket===r&&g.A.getLogger(this).error(new i.A("geoevent-connection","Server timed out when setting filter")),o.reject())},1e4),o.promise}_serializeFilter(e,t){let r={};if(null==e&&null==t)return r;if(e?.geometry)try{let t=(0,y.rS)(e.geometry);if("extent"!==t.type)throw new i.A("geoevent-connection",`Expected extent but found type ${t.type}`);r.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(e){g.A.getLogger(this).error(new i.A("geoevent-connection","Encountered an error when setting connection geometryDefinition",e))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(r.where=e.where),null!=t&&(r.outFields=t.join(",")),r}_enrich(e){if(!this._relatedFeatures)return e;let t=this._serviceDefinition.relatedFeatures.joinField,r=e.attributes[t],n=this._relatedFeatures.get(r);if(!n)return g.A.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;let{attributes:s,geometry:o}=n;for(let t in s)e.attributes[t]=s[t];return o&&(e.geometry=o),!e.geometry&&!e.centroid&&g.A.getLogger(this).error(new i.A("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{let{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,r=this._queryRelatedFeatures(e),n=this._queryArchive(t);await r;let i=await n;if(!i)return;for(let e of i.features)this.onFeature(this._enrich(e))}catch(e){g.A.getLogger(this).error(new i.A("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;let t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){let t=new((await Promise.all([r.e(6361),r.e(8278),r.e(7865),r.e(6554),r.e(2869),r.e(9953),r.e(3910),r.e(5566),r.e(1214),r.e(2889),r.e(6263),r.e(8247),r.e(4674),r.e(7283),r.e(8589),r.e(812),r.e(5879),r.e(9279)]).then(()=>r(18589))).default)({url:e}),{capabilities:n}=await t.load(),i=n.query.supportsMaxRecordCountFactor,s=n.query.supportsPagination,o=n.query.supportsCentroid,a=this._config.maxRecordCountFactor,l=t.capabilities.query.maxRecordCount,c=i?l*a:l,u=new A.A;if(u.outFields=this._config.outFields??["*"],u.where=this._config.definitionExpression??"1=1",u.returnGeometry=!0,u.returnExceededLimitFeatures=!0,u.outSpatialReference=p.A.fromJSON(this._outSpatialReference),o&&(u.returnCentroid=!0),i&&(u.maxRecordCountFactor=a),s)return u.num=c,t.destroy(),this._queryPages(e,u);let h=await(0,k.eW)(e,u,this._config.sourceSpatialReference);return t.destroy(),h}async _queryPages(e,t,r=[],n=0){t.start=null==t.num?null:n*t.num;let i=await(0,k.eW)(e,t,this._config.sourceSpatialReference);return i.exceededTransferLimit&&n<(this._config.maxQueryDepth??0)?(i.features.forEach(e=>r.push(e)),this._queryPages(e,t,r,n+1)):(r.forEach(e=>i.features.push(e)),i)}_addRelatedFeatures(e){let t=new Map,r=e.features,n=this._serviceDefinition.relatedFeatures.joinField;for(let e of r){let r=e.attributes[n];t.set(r,e)}this._relatedFeatures=t}};v=(0,a.Cg)([(0,c.$K)("esri.layers.graphics.sources.connections.GeoEventConnection")],v);var R=r(64108);let M=class extends u{constructor(e,t){super({}),this.connectionStatus="connected",this.errorString=null;let{geometryType:r,sourceSpatialReference:n}=e;this._featureZScaler=(0,w.N)(r,n,t)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(let t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};function C(e,t){let r=t.toJSON();switch(e.type){case"client":return new M(e,r);case"custom":return new S(e,r);case"geoevent":return new v(e,r);case"kusto":return new h(e,r)}}(0,a.Cg)([(0,c.MZ)()],M.prototype,"connectionStatus",void 0),(0,a.Cg)([(0,c.MZ)()],M.prototype,"errorString",void 0),M=(0,a.Cg)([(0,R.$)("esri.layers.support.ClientSideConnection")],M)}}]);
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[4708],{69052(e,t,r){r.d(t,{hr:()=>i});var n=r(34727);class i{constructor(e,t){this.min=e,this.max=t,this.range=t-e}normalize(e,t=0,r=!1){return s(this.range,this.min,this.max,e,t,r)}clamp(e,t=0){return(0,n.qE)(e-t,this.min,this.max)+t}monotonic(e,t,r){return e<t?t:t+o(this.range,e-t,r)}minimalMonotonic(e,t,r){return s(this.range,e,e+this.range,t,r)}center(e,t,r){return t=this.monotonic(e,t,r),this.normalize((e+t)/2,r)}diff(e,t,r){return this.monotonic(e,t,r)-e}shortestSignedDiff(e,t){e=this.normalize(e);let r=(t=this.normalize(t))-e,n=t<e?this.minimalMonotonic(e,t)-e:t-this.minimalMonotonic(t,e);return Math.abs(r)<Math.abs(n)?r:n}contains(e,t,r){return t=this.minimalMonotonic(e,t),(r=this.minimalMonotonic(e,r))>e&&r<t}}function s(e,t,r,n,i=0,s=!1){return(n-=i)<t?n+=o(e,t-n):n>r&&(n-=o(e,n-r)),s&&n===r&&(n=t),n+i}function o(e,t,r=0){return Math.ceil((t-r)/e)*e+r}const a=new i(0,2*Math.PI),l=(new i(-Math.PI,Math.PI),new i(0,360));r.d(t,["ie",0,l,"uC",0,a])},18370(e,t,r){r.d(t,{z:()=>i});class n{constructor(e){this._import=e,this.module=null,this._promise=null}getImportPromise(){return this._promise??=this._import().then(async e=>(this.module=e,e)),this._promise}}function i(e){return new n(e)}},52039(e,t,r){r.d(t,{O7:()=>f,el:()=>c});var n=r(69052),i=(r(49186),r(18370)),s=r(17676),o=(r(5443),r(39829)),a=(r(82799),r(16930)),l=(r(80754),r(21325));async function c(e,t,r){Array.isArray(e)||(e=[e]),"object"==typeof t&&t&&"authMode"in t&&(r=t);let n=null;for(let t of e)n??=t?.spatialReference;if(!n)return e;let i=(0,l.Vp)(n);if(!i)return e;if(1===e.length&&"extent"===e[0]?.type){let t=e[0].clone().normalizeAsSingleGeometry(i);return["xmin"in t?t:new o.A(t)]}let[a,c]=i.valid,f=!1;for(let t of e){if(!t)continue;if("point"===t.type){f||=t.x>=c,f||=t.x<=a;continue}let{extent:e}=t;if(null==e){f=!0;break}f||=e.xmin>=c,f||=e.xmin<=a,f||=e.xmax>=c,f||=e.xmax<=a}if(!f)return e;let[{foldInto360Range:d},g]=await(0,s.qr)(Promise.all([u.getImportPromise(),h.getImportPromise()]),r),m=g.fromSpatialReference(n);return e.map(e=>{if(null==e||"mesh"===e.type)return e;let t=g.fromGeometry(e),r=g.toGeometry(d(t,m),n);return"extent"===e.type&&1===r?.rings.length?r.extent:r})}const u=(0,i.z)(()=>r.e(4144).then(()=>r(4144)).then(e=>e.load().then(()=>e))),h=(0,i.z)(()=>Promise.all([r.e(9187),r.e(8885),r.e(9117),r.e(3299),r.e(1550)]).then(()=>r(78125)));function f(e,t,r){let n=(0,l.Vp)(r);if(null==n)return e;let[i,s]=n.valid,o=2*s,a=0,c=0;t>s?a=Math.ceil(Math.abs(t-s)/o):t<i&&(a=-Math.ceil(Math.abs(t-i)/o)),e>s?c=Math.ceil(Math.abs(e-s)/o):e<i&&(c=-Math.ceil(Math.abs(e-i)/o));let u=e+(a-c)*o,h=u-t;return h>s?u-=o:h<i&&(u+=o),u}function d(e){let t=(0,l.Vp)(e);if(null==t)return null;let[r,i]=t.valid;return new n.hr(r,i)}const g=d(a.A.WGS84);d(a.A.WebMercator),r.d(t,["Y_",0,g])},80754(e,t,r){r.d(t,{kS:()=>c,kd:()=>l});var n=r(82799),i=r(16930),s=r(60408),o=r(52006);const a={102100:{maxX:20037508.342788905,minX:-20037508.342788905,plus180Line:new n.A({paths:[[[20037508.342788905,-20037508.342788905],[20037508.342788905,20037508.342788905]]],spatialReference:i.A.WebMercator}),minus180Line:new n.A({paths:[[[-20037508.342788905,-20037508.342788905],[-20037508.342788905,20037508.342788905]]],spatialReference:i.A.WebMercator})},4326:{maxX:180,minX:-180,plus180Line:new n.A({paths:[[[180,-180],[180,180]]],spatialReference:i.A.WGS84}),minus180Line:new n.A({paths:[[[-180,-180],[-180,180]]],spatialReference:i.A.WGS84})}};function l(e,t){return Math.ceil((e-t)/(2*t))}function c(e,t){if((0,o.Ed)(e))for(let r of function(e){return(0,s.Bi)(e)?e.curveRings:e.curvePaths}(e))for(let e of r)if((0,o.aO)(e)){let[r,n]=e.c;r[0]+=t,n[0]+=t}else if((0,o.FG)(e)){let[r,n]=e.a;r[0]+=t,n[0]+=t}else if((0,o.n1)(e)){let[r,n,i]=e.b;r[0]+=t,n[0]+=t,i[0]+=t}else e[0]+=t;for(let r of function(e){return(0,s.Bi)(e)?e.rings:e.paths}(e))for(let e of r)e[0]+=t;return e}r.d(t,["j7",0,a])},31464(e,t,r){r.d(t,{Cv:()=>d,Nk:()=>f,lK:()=>m});var n=r(4576),i=r(99917),s=r(60408),o=r(21325),a=r(28735);const l=[0,0];function c(e,t){let r=(0,o.K8)(e)?a.je:a.tD;if((0,s.fT)(t)){let e={x:0,y:0};return[e.x,e.y]=r(t.x,t.y,l),null!=t.z&&(e.z=t.z),null!=t.m&&(e.m=t.m),e}if((0,s.ZC)(t)){let e={xmin:0,ymin:0,xmax:0,ymax:0};return[e.xmin,e.ymin]=r(t.xmin,t.ymin,l),[e.xmax,e.ymax]=r(t.xmax,t.ymax,l),t.hasZ&&(e.zmin=t.zmin,e.zmax=t.zmax,e.hasZ=!0),t.hasM&&(e.mmin=t.mmin,e.mmax=t.mmax,e.hasM=!0),e}if((0,s.Bi)(t))return{rings:u(t.rings,r),hasM:t.hasM,hasZ:t.hasZ};if((0,s.Rg)(t))return{paths:u(t.paths,r),hasM:t.hasM,hasZ:t.hasZ};if((0,s.U9)(t))return{points:h(t.points,r),hasM:t.hasM,hasZ:t.hasZ};throw Error()}function u(e,t){let r=[];for(let n of e)r.push(h(n,t));return r}function h(e,t){let r=[];for(let n of e){let e=t(n[0],n[1],[0,0]);r.push(e),n.length>2&&e.push(n[2]),n.length>3&&e.push(n[3])}return r}async function f(e,t){if(!e||!t)return;let r=Array.isArray(e)?e.map(e=>null==e.geometry?null:e.geometry.spatialReference).filter(n.Ru):[e];await(0,i.initializeProjection)(r.map(e=>({source:e,dest:t})))}function d(e,t,r,n){if(!e)return null;if(r||(r=t,t=e.spatialReference),!(0,o.fn)(t)||!(0,o.fn)(r)||(0,o.aI)(t,r))return e;if((0,a.y7)(t,r)){let t=c(r,e);return t.spatialReference=r,t}let[s]=(0,i.projectMany)([e],t,r,n);return s}const g=new class{constructor(){this._jobs=[],this._timer=null,this._process=this._process.bind(this)}async push(e,t,r,n){if(!e?.length||!t||!r||(0,o.aI)(t,r))return e;let i={geometries:e,inSpatialReference:t,outSpatialReference:r,options:n,resolve:Promise.withResolvers()};return this._jobs.push(i),this._timer??=setTimeout(this._process,10),i.resolve.promise}_process(){this._timer=null;let e=this._jobs.shift();if(!e)return;let t,{geometries:r,inSpatialReference:n,outSpatialReference:s,resolve:o,options:l}=e,u=r.filter(e=>null!=e);t=(0,a.y7)(n,s)&&null==l?.extendedParams?u.map(e=>c(s,e)):(0,i.projectMany)(u,n,s,l);let h=0,f=r.map(e=>null==e?null:t[h++]);o.resolve(f),this._jobs.length>0&&(this._timer=setTimeout(this._process,10))}};function m(e,t,r,n){return g.push(e,t,r,n)}},60986(e,t,r){r.r(t),r.d(t,{createConnection:()=>C});var n=r(56507),i=r(49186),s=r(31464),o=r(9916),a=r(32198),l=r(65529),c=r(91429);let u=class extends l.nJ{destroy(){this.emit("destroy")}get connectionError(){return this.errorString?new i.A("stream-connection",this.errorString):null}onFeature(e){this.emit("data-received",e)}onMessage(e){this.emit("message-received",e)}};(0,a.Cg)([(0,c.MZ)({readOnly:!0})],u.prototype,"connectionError",null),u=(0,a.Cg)([(0,c.$K)("esri.layers.support.StreamConnection")],u);class h extends u{constructor(e,t){super(),this._config=e,this._outSpatialReference=t,this.connectionStatus="connected",this.errorString=null,this._isPolling=!1,this._lastIngestedAt=null,this._pollTimer=null,this._pollRecentData=async()=>{if(!this.destroyed&&!this._isPolling){this._isPolling=!0;try{let e=await this._queryChanges(this._lastIngestedAt);if(this.destroyed)return;this._handleResult(e)}catch(e){this.errorString=e instanceof Error?e.message:"Failed to fetch"}finally{this._isPolling=!1}}},this._initialize()}destroy(){super.destroy(),this._pollTimer&&=(clearInterval(this._pollTimer),null)}sendMessageToSocket(e){throw new i.A("kusto:unsupported","sendMessageToSocket not supported for Kusto connections")}sendMessageToClient(e){throw new i.A("kusto:unsupported","sendMessageToClient not supported for Kusto connections")}updateCustomParameters(e){throw new i.A("kusto:unsupported","updateCustomParameters not supported for Kusto connections")}async _initialize(){await(0,s.Nk)(this._config.sourceSpatialReference,this._outSpatialReference);try{let e=await this._queryInitial();this._handleResult(e),this._pollTimer=setInterval(this._pollRecentData,6e4*this._config.refreshInterval)}catch{throw new i.A("kusto:connection","Failed to query KQL database")}}async _queryInitial(){let{trackIdField:e}=this._config,t=f(await this._executeQuery(`${(0,o.xw)(this._config.table)} | extend IngestedAt = ingestion_time() | summarize arg_max(IngestedAt, *) by ${(0,o.xw)(e)}`));if(!t)throw new i.A("kusto:connection","Unable to find primaryTable");return{ingestedAt:d(t),table:t}}async _queryChanges(e=null){let t=e??"1970-01-01T00:00:00Z",r=f(await this._executeQuery(`${(0,o.xw)(this._config.table)} | extend IngestedAt = ingestion_time() | where IngestedAt > todatetime('${(0,o.iD)(t)}') | order by IngestedAt asc`));if(!r)throw new i.A("kusto:connection","Unable to find primaryTable");return{ingestedAt:d(r),table:r}}async _executeQuery(e){let t=this._config.database,r=t.properties.queryServiceUri,{data:i}=await(0,n.A)(`${r}/v2/rest/query`,{responseType:"json",method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({db:t.displayName,csl:e})});return i}_handleResult(e){this._lastIngestedAt=e.ingestedAt;let t=this._createFeatures(e.table);if(null!=t){this.onMessage(t);for(let e of t)this.onFeature(e)}}_createFeatures(e){if(null==e||0===e.Rows.length)return null;let{xField:t,yField:r}=this._config.geometryEncoding,n=e.Columns.findIndex(e=>e.ColumnName===t),i=e.Columns.findIndex(e=>e.ColumnName===r);return e.Rows.map(t=>this._createFeature(e.Columns,n,i,t))}_createFeature(e,t,r,n){let{xField:i,yField:o}=this._config.geometryEncoding,a={};for(let t=0;t<e.length;t++){let r=e[t],s=n[t]??null;r.ColumnName!==o&&r.ColumnName!==i&&(a[r.ColumnName]=s)}let l=null,c=n[t],u=n[r];return null!=u&&null!=c&&(l=(0,s.Cv)({x:c,y:u},this._config.sourceSpatialReference,this._outSpatialReference)),{attributes:a,geometry:l}}}function f(e){return e.find(e=>"DataTable"===e.FrameType&&"PrimaryResult"===e.TableKind)??null}function d(e){let t=e.Columns.findIndex(e=>"IngestedAt"===e.ColumnName);if(t<0)return null;let r=null;for(let n of e.Rows){let e=n[t];"string"==typeof e&&(null==r||e>r)&&(r=e)}return r}var g=r(53966),m=r(84952),p=r(16930),y=r(65864),_=r(17676),w=r(62815);function b(e,t){if(null==e&&null==t)return null;let r={};return null!=t&&(r.geometry=t),null!=e&&(r.where=e),r}let S=class extends u{constructor(e,t){super({}),this._outSpatialReference=t,this._outstandingMessages=[],this.errorString=null;let{geometryType:r,sourceSpatialReference:n}=e;this._config=e,this._featureZScaler=(0,w.N)(r,n,this._outSpatialReference),this._open()}normalizeCtorArgs(){return{}}async _open(){await this._tryCreateWebSocket(),this.destroyed||await this._handshake()}destroy(){super.destroy(),null!=this._websocket&&(this._websocket.onopen=null,this._websocket.onclose=null,this._websocket.onerror=null,this._websocket.onmessage=null,this._websocket.close()),this._websocket=null}get connectionStatus(){if(null==this._websocket)return"disconnected";switch(this._websocket.readyState){case 0:case 1:return"connected";case 2:case 3:return"disconnected"}}sendMessageToSocket(e){null==this._websocket?this._outstandingMessages.push(e):this._websocket.send(JSON.stringify(e))}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.url.path,t=1e3,r=0){try{if(this.destroyed)return;let t=(0,m.a6)(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(n){let s=t/1e3;return this._config.maxReconnectionAttempts&&r>=this._config.maxReconnectionAttempts?(g.A.getLogger(this).error(new i.A("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(g.A.getLogger(this).error(new i.A("websocket-connection",`Failed to connect. Attempting to reconnect in ${s}s`,n)),await(0,_.Pl)(t),this._tryCreateWebSocket(e,Math.min(1.5*t,1e3*this._config.maxReconnectionInterval),r+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{let t=JSON.parse(e.data);this._onMessage(t)}catch(e){return void g.A.getLogger(this).error(new i.A("websocket-connection","Failed to parse message, invalid JSON",{error:e}))}}}_createWebSocket(e){return new Promise((t,r)=>{let n=new WebSocket(e);n.onopen=()=>{n.onopen=null,this.destroyed?(n.onclose=null,n.close()):(n.onclose=e=>this._onClose(e),n.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(n),t(n))},n.onclose=e=>{n.onopen=n.onclose=null,r(e)}})}async _handshake(e=1e4){let t=this._websocket;if(null==t)return;let r=Promise.withResolvers(),n=t.onmessage,s=b(this._config.definitionExpression,this._config.geometryDefinition),{outFields:o}=this._config,a=setTimeout(()=>r.reject(),e),l=()=>{clearTimeout(a),r.reject()};return t.onmessage=e=>{let c=null;try{c=JSON.parse(e.data)}catch{}c&&"object"==typeof c||(g.A.getLogger(this).error(new i.A("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),l(),this.destroy()),c.spatialReference?.wkid!==this._outSpatialReference?.wkid&&(g.A.getLogger(this).error(new i.A("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${this._outSpatialReference.wkid}`,e.data)),l(),this.destroy()),"json"!==c.format&&(g.A.getLogger(this).error(new i.A("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),l(),this.destroy()),s&&c.filter!==s&&g.A.getLogger(this).error(new i.A("websocket-connection","Tried to set filter, but server doesn't support it")),o&&c.outFields!==o&&g.A.getLogger(this).error(new i.A("websocket-connection","Tried to set outFields, but server doesn't support it")),t.onmessage=n;for(let e of this._outstandingMessages)t.send(JSON.stringify(e));this._outstandingMessages=[],clearTimeout(a),r.resolve()},t.send(JSON.stringify({filter:s,outFields:o,format:"json",spatialReference:{wkid:this._outSpatialReference.wkid}})),r.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(let t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){let t="Encountered an error over WebSocket connection";this._set("errorString",t),g.A.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&g.A.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};(0,a.Cg)([(0,c.MZ)()],S.prototype,"connectionStatus",null),(0,a.Cg)([(0,c.MZ)()],S.prototype,"errorString",void 0),S=(0,a.Cg)([(0,c.$K)("esri.layers.graphics.sources.connections.WebSocketConnection")],S);var k=r(80893),A=r(97552);const x={maxQueryDepth:5,maxRecordCountFactor:3};let v=class extends S{constructor(e,t){super({...x,...e},t),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){let e=await this._fetchServiceDefinition(this._config.url);e.timeInfo.trackIdField||g.A.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");let t=this._fetchWebSocketUrl(e.streamUrls,this._outSpatialReference);this._buddyServicesQuery||=this._queryBuddyServices(),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);let r=b(this._config.definitionExpression,this._config.geometryDefinition),{outFields:n}=this._config;this.destroyed||this._setFilter(r,n)}_onMessage(e){if("attributes"in e){let t;try{t=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(t.geometry)}catch(e){return void g.A.getLogger(this).error(new i.A("geoevent-connection","Failed to parse message",e))}this.onFeature(t)}else this.onMessage(e)}async _fetchServiceDefinition(e){let t={f:"json",...this._config.customParameters},r=(await(0,n.A)(e.path,{query:t,responseType:"json"})).data;return this._serviceDefinition=r,r}_fetchWebSocketUrl(e,t){let{urls:r,token:n}=e[0],i=this._inferWebSocketBaseUrl(r);return(0,m.a6)(`${i}/subscribe`,{outSR:""+t.wkid,token:n})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(let t of e)if(t.includes("wss"))return t;return g.A.getLogger(this).error(new i.A("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){let r=this._websocket;if(null==r||null==e&&null==t)return;let n=JSON.stringify({filter:this._serializeFilter(e,t)}),s=!1,o=Promise.withResolvers();return r.onmessage=e=>{let t=JSON.parse(e.data);t.filter&&(t.error&&(g.A.getLogger(this).error(new i.A("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),o.reject(t.error)),this._setWebSocketJSONParseHandler(r),s=!0,o.resolve())},r.send(n),setTimeout(()=>{s||(!this.destroyed&&this._websocket===r&&g.A.getLogger(this).error(new i.A("geoevent-connection","Server timed out when setting filter")),o.reject())},1e4),o.promise}_serializeFilter(e,t){let r={};if(null==e&&null==t)return r;if(e?.geometry)try{let t=(0,y.rS)(e.geometry);if("extent"!==t.type)throw new i.A("geoevent-connection",`Expected extent but found type ${t.type}`);r.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(e){g.A.getLogger(this).error(new i.A("geoevent-connection","Encountered an error when setting connection geometryDefinition",e))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(r.where=e.where),null!=t&&(r.outFields=t.join(",")),r}_enrich(e){if(!this._relatedFeatures)return e;let t=this._serviceDefinition.relatedFeatures.joinField,r=e.attributes[t],n=this._relatedFeatures.get(r);if(!n)return g.A.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;let{attributes:s,geometry:o}=n;for(let t in s)e.attributes[t]=s[t];return o&&(e.geometry=o),!e.geometry&&!e.centroid&&g.A.getLogger(this).error(new i.A("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{let{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,r=this._queryRelatedFeatures(e),n=this._queryArchive(t);await r;let i=await n;if(!i)return;for(let e of i.features)this.onFeature(this._enrich(e))}catch(e){g.A.getLogger(this).error(new i.A("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;let t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){let t=new((await Promise.all([r.e(6361),r.e(8278),r.e(7865),r.e(6554),r.e(2869),r.e(9953),r.e(3910),r.e(5566),r.e(1214),r.e(2889),r.e(6263),r.e(8247),r.e(4674),r.e(5087),r.e(8589),r.e(812),r.e(5879),r.e(9279)]).then(()=>r(18589))).default)({url:e}),{capabilities:n}=await t.load(),i=n.query.supportsMaxRecordCountFactor,s=n.query.supportsPagination,o=n.query.supportsCentroid,a=this._config.maxRecordCountFactor,l=t.capabilities.query.maxRecordCount,c=i?l*a:l,u=new A.A;if(u.outFields=this._config.outFields??["*"],u.where=this._config.definitionExpression??"1=1",u.returnGeometry=!0,u.returnExceededLimitFeatures=!0,u.outSpatialReference=p.A.fromJSON(this._outSpatialReference),o&&(u.returnCentroid=!0),i&&(u.maxRecordCountFactor=a),s)return u.num=c,t.destroy(),this._queryPages(e,u);let h=await(0,k.eW)(e,u,this._config.sourceSpatialReference);return t.destroy(),h}async _queryPages(e,t,r=[],n=0){t.start=null==t.num?null:n*t.num;let i=await(0,k.eW)(e,t,this._config.sourceSpatialReference);return i.exceededTransferLimit&&n<(this._config.maxQueryDepth??0)?(i.features.forEach(e=>r.push(e)),this._queryPages(e,t,r,n+1)):(r.forEach(e=>i.features.push(e)),i)}_addRelatedFeatures(e){let t=new Map,r=e.features,n=this._serviceDefinition.relatedFeatures.joinField;for(let e of r){let r=e.attributes[n];t.set(r,e)}this._relatedFeatures=t}};v=(0,a.Cg)([(0,c.$K)("esri.layers.graphics.sources.connections.GeoEventConnection")],v);var R=r(64108);let M=class extends u{constructor(e,t){super({}),this.connectionStatus="connected",this.errorString=null;let{geometryType:r,sourceSpatialReference:n}=e;this._featureZScaler=(0,w.N)(r,n,t)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(let t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};function C(e,t){let r=t.toJSON();switch(e.type){case"client":return new M(e,r);case"custom":return new S(e,r);case"geoevent":return new v(e,r);case"kusto":return new h(e,r)}}(0,a.Cg)([(0,c.MZ)()],M.prototype,"connectionStatus",void 0),(0,a.Cg)([(0,c.MZ)()],M.prototype,"errorString",void 0),M=(0,a.Cg)([(0,R.$)("esri.layers.support.ClientSideConnection")],M)}}]);
@@ -54,6 +54,7 @@
54
54
  &__labeled-slider calcite-slider {
55
55
  margin: 0 -7px;
56
56
  margin-bottom: -14px;
57
+ inline-size: auto;
57
58
  }
58
59
  }
59
60
  }