@arcgis/core 5.0.0-next.66 → 5.0.0-next.68

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 (595) hide show
  1. package/Ground.d.ts +4 -4
  2. package/Map.d.ts +1 -1
  3. package/WebDocument2D.d.ts +2 -3
  4. package/WebScene.d.ts +2 -3
  5. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +9 -6
  6. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.js +1 -1
  7. package/applications/Components/QuantityFormatter.d.ts +14 -1
  8. package/applications/Components/SelectionOperation.d.ts +45 -9
  9. package/applications/Components/SketchTooltipControls.d.ts +31 -6
  10. package/applications/Components/actionUtils.d.ts +1 -0
  11. package/applications/Components/analysisUtils.d.ts +98 -26
  12. package/applications/Components/arcadeEditorUtils.d.ts +3 -0
  13. package/applications/Components/arcadeFeatureUtils.d.ts +34 -6
  14. package/applications/Components/baUtils.d.ts +8 -8
  15. package/applications/Components/basemapUtils.d.ts +2 -0
  16. package/applications/Components/drawUtils.d.ts +6 -1
  17. package/applications/Components/featureUtils.d.ts +9 -0
  18. package/applications/Components/fontUtils.d.ts +2 -0
  19. package/applications/Components/formatUtils.d.ts +2 -0
  20. package/applications/Components/getDefaultUnits.d.ts +2 -0
  21. package/applications/Components/imageryUtils.d.ts +135 -27
  22. package/applications/Components/layerOriginUtils.d.ts +5 -0
  23. package/applications/Components/layersEffectsJsonUtils.d.ts +2 -0
  24. package/applications/Components/previewSymbol2D.d.ts +2 -0
  25. package/applications/Components/reactiveUtils.d.ts +13 -9
  26. package/applications/Components/sanitizerUtils.d.ts +2 -0
  27. package/applications/Components/stringUtils.d.ts +5 -0
  28. package/applications/Components/styleUtils.d.ts +2 -0
  29. package/applications/Components/svgUtils.d.ts +4 -0
  30. package/applications/Components/testUtils.d.ts +3 -0
  31. package/applications/Components/viewUtils.d.ts +2 -0
  32. package/applications/Components/webStyleSymbolUtils.d.ts +2 -0
  33. package/applications/Excalibur/videoViewUtils.d.ts +19 -3
  34. package/applications/ExperienceBuilder/sketchUtils.d.ts +10 -1
  35. package/applications/KnowledgeStudio/dataModelVisualization.d.ts +2 -0
  36. package/applications/KnowledgeStudio/generalSdkInternalAccess.d.ts +33 -4
  37. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +73 -10
  38. package/applications/KnowledgeStudio/layerInternalAccessUtils.d.ts +12 -1
  39. package/applications/KnowledgeStudio/reshape.d.ts +144 -28
  40. package/applications/KnowledgeStudio/resourceSerializationUtils.d.ts +17 -3
  41. package/applications/MapViewer/layerUtils.d.ts +2 -0
  42. package/applications/MapViewer/mediaUtils.d.ts +42 -8
  43. package/applications/MapViewer/templateUtils.d.ts +78 -16
  44. package/applications/PortalApp/layerUtils.d.ts +2 -0
  45. package/applications/SceneViewer/colorUtils.d.ts +2 -0
  46. package/applications/SceneViewer/devEnvironmentUtils.d.ts +3 -0
  47. package/applications/SceneViewer/layerUtils.d.ts +5 -3
  48. package/applications/SceneViewer/sceneViewerUtils.d.ts +52 -5
  49. package/applications/SceneViewer/symbolUtils.d.ts +2 -0
  50. package/applications/Urban/LineImagePattern3D.d.ts +8 -2
  51. package/applications/Urban/imagePatternUtils.d.ts +10 -2
  52. package/applications/Urban/meshUtils.d.ts +2 -0
  53. package/applications/WebEditor/sketchUtils.d.ts +24 -4
  54. package/arcade/arcadeAsyncRuntime.js +1 -1
  55. package/arcade/arcadeCompiler.js +1 -1
  56. package/arcade/arcadeRuntime.js +1 -1
  57. package/arcade/batchExec.js +1 -1
  58. package/arcade/compilerUtils.js +1 -1
  59. package/arcade/featureset/actions/SpatialFilter.js +1 -1
  60. package/arcade/geometry/unitConversion.js +1 -1
  61. package/arcade/treeAnalysis.js +1 -1
  62. package/arcade.js +1 -1
  63. package/assets/components/assets/icon/fileEsl16.json +1 -0
  64. package/assets/components/assets/icon/fileEsl24.json +1 -0
  65. package/assets/components/assets/icon/fileEsl32.json +1 -0
  66. package/assets/esri/core/workers/RemoteClient.js +1 -1
  67. package/assets/esri/core/workers/chunks/{251eb6e00f99a816d55c.js → 0326314947734b8e640a.js} +1 -1
  68. package/assets/esri/core/workers/chunks/04176244b0a3539c9681.js +1 -0
  69. package/assets/esri/core/workers/chunks/04958494022f82dca473.js +1 -0
  70. package/assets/esri/core/workers/chunks/0b7bbdc0d71ee6721751.js +2 -0
  71. package/assets/esri/core/workers/chunks/{5909a0e763fddc3542e7.js.LICENSE.txt → 0b7bbdc0d71ee6721751.js.LICENSE.txt} +1 -1
  72. package/assets/esri/core/workers/chunks/0f8149fdcf0adeca268e.js +1 -0
  73. package/assets/esri/core/workers/chunks/{aa7a1705266eec353cb6.js → 0fc22ad791d3ec0a9c5e.js} +1 -1
  74. package/assets/esri/core/workers/chunks/10e474d664b20adcd917.js +1 -0
  75. package/assets/esri/core/workers/chunks/12f9a55253084a910b2e.js +1 -0
  76. package/assets/esri/core/workers/chunks/14dedd80fb797303f91f.js +1 -0
  77. package/assets/esri/core/workers/chunks/1a6d2f525dd30d08cf9b.js +1 -0
  78. package/assets/esri/core/workers/chunks/{81d89107ff82604a3ea0.js → 1b445981fbc8373f4dd8.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{6ba3c2b9f699d94d62b8.js → 1ec1a1997b5577619040.js} +1 -1
  80. package/assets/esri/core/workers/chunks/204d738c8b651314ae64.js +1 -0
  81. package/assets/esri/core/workers/chunks/2085084324cd5a81783f.js +1 -0
  82. package/assets/esri/core/workers/chunks/{e95821a199e10b389e29.js → 25f3ee666f545a7a7993.js} +2 -2
  83. package/assets/esri/core/workers/chunks/{e95821a199e10b389e29.js.LICENSE.txt → 25f3ee666f545a7a7993.js.LICENSE.txt} +1 -1
  84. package/assets/esri/core/workers/chunks/2c2c0f66cffc521df736.js +1 -0
  85. package/assets/esri/core/workers/chunks/2dd347aa2a061d536e69.js +1 -0
  86. package/assets/esri/core/workers/chunks/2dfa7abf2d39fa5a3874.js +1 -0
  87. package/assets/esri/core/workers/chunks/322085d63719da6e443c.js +1 -0
  88. package/assets/esri/core/workers/chunks/{76086517591d0eb35156.js → 34a2e0462eb05986cdd1.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{a6dcd13c792b6538ac50.js → 35593a9790818b689455.js} +1 -1
  90. package/assets/esri/core/workers/chunks/36ecf951c0c7dad84b69.js +1 -0
  91. package/assets/esri/core/workers/chunks/37002a46f03a9fc5f644.js.LICENSE.txt +1 -1
  92. package/assets/esri/core/workers/chunks/3a04153ca9d8e4f01185.js +1 -0
  93. package/assets/esri/core/workers/chunks/{4e9a8fce55cad841c731.js → 3b25f5d9c8f78bb6e011.js} +1 -1
  94. package/assets/esri/core/workers/chunks/3e7ea06b342e33bc48a5.js +1 -0
  95. package/assets/esri/core/workers/chunks/3ed317900f0edf635508.js +1 -0
  96. package/assets/esri/core/workers/chunks/401ce5cb98fa14c1a725.js +1 -0
  97. package/assets/esri/core/workers/chunks/4319b89cfa02894a8cae.js +1 -0
  98. package/assets/esri/core/workers/chunks/43e2c1d72cd9c8beed2f.js.LICENSE.txt +1 -1
  99. package/assets/esri/core/workers/chunks/45a9cd722e98dd1548ae.js +1 -0
  100. package/assets/esri/core/workers/chunks/4a060147d25929680ec8.js +1 -0
  101. package/assets/esri/core/workers/chunks/4bcd74951477e8977ba1.js +1 -0
  102. package/assets/esri/core/workers/chunks/4d0eaeb4cd6cd55e25fd.js +1 -0
  103. package/assets/esri/core/workers/chunks/{687d2b761dc5b5cf0c31.js → 4d4d71d24c1a9cb342b8.js} +1 -1
  104. package/assets/esri/core/workers/chunks/4fa230dc6e5e87b0dec1.js +1 -0
  105. package/assets/esri/core/workers/chunks/50f03813fba4b752ca9f.js +1 -0
  106. package/assets/esri/core/workers/chunks/{abc236e99b52be1c83b9.js → 52a14266fe239b95c5ce.js} +1 -1
  107. package/assets/esri/core/workers/chunks/53b5c77832df7df4d4e3.js +1 -0
  108. package/assets/esri/core/workers/chunks/{34178ace79e8dea3567d.js → 562cddaf63985e53ee6e.js} +1 -1
  109. package/assets/esri/core/workers/chunks/59a45533e96cedf1c480.js +1 -0
  110. package/assets/esri/core/workers/chunks/{c2aeecd27e004c6cd7e1.js → 5b9f2aa3ba1bf12c3240.js} +2 -2
  111. package/assets/esri/core/workers/chunks/{c2aeecd27e004c6cd7e1.js.LICENSE.txt → 5b9f2aa3ba1bf12c3240.js.LICENSE.txt} +1 -1
  112. package/assets/esri/core/workers/chunks/{6599cc702a46f81a5634.js → 5dd5be91038df8902dc4.js} +1 -1
  113. package/assets/esri/core/workers/chunks/{49a1b7f700b8a42de817.js → 60c7f896f2246a8aa6d7.js} +19 -19
  114. package/assets/esri/core/workers/chunks/60f363ee2add089e8f0b.js +1 -0
  115. package/assets/esri/core/workers/chunks/61801bb8c7be8fe77086.js +1 -0
  116. package/assets/esri/core/workers/chunks/679cd6424e0e2d7f372b.js +1 -0
  117. package/assets/esri/core/workers/chunks/68074a484d7f9bc713c0.js +1 -0
  118. package/assets/esri/core/workers/chunks/6acfa51b81e6f4255118.js +1 -0
  119. package/assets/esri/core/workers/chunks/{3fe7be535affae31de7e.js → 6b85a8776ec2beff63cb.js} +1 -1
  120. package/assets/esri/core/workers/chunks/6be530ab81291745485b.js.LICENSE.txt +1 -1
  121. package/assets/esri/core/workers/chunks/6df484faf54e90a6cc77.js +1 -0
  122. package/assets/esri/core/workers/chunks/6ea6ad894ac634aa4391.js +1 -0
  123. package/assets/esri/core/workers/chunks/6f8098f9fe233833245a.js +1 -0
  124. package/assets/esri/core/workers/chunks/73c416ae0ec5a1815591.js.LICENSE.txt +1 -1
  125. package/assets/esri/core/workers/chunks/75fd2ef1236a9364ca7f.js +1 -0
  126. package/assets/esri/core/workers/chunks/{23b623637126f8411a30.js → 7aec07f2482934259d12.js} +1 -1
  127. package/assets/esri/core/workers/chunks/7be9bbae23895d1cfa92.js +1 -0
  128. package/assets/esri/core/workers/chunks/{741d170187e58e81584d.js → 7d744554d14057d9b2b1.js} +1 -1
  129. package/assets/esri/core/workers/chunks/7ea48661f1087d06aa41.js +1 -0
  130. package/assets/esri/core/workers/chunks/{47e5149765beee46f208.js → 7ee68f67f9cc48a328f0.js} +1 -1
  131. package/assets/esri/core/workers/chunks/866477acdf03b8a40bc9.js +1 -0
  132. package/assets/esri/core/workers/chunks/8e83c133b201b9b61e70.js +1 -0
  133. package/assets/esri/core/workers/chunks/9086a4933d3d3d9ffa72.js +1 -0
  134. package/assets/esri/core/workers/chunks/94174d40de39dbe7d0bf.js +1 -0
  135. package/assets/esri/core/workers/chunks/98f4b44eca91c42ca08e.js +1 -0
  136. package/assets/esri/core/workers/chunks/9ccabf8142fb5de4d3e2.js.LICENSE.txt +1 -1
  137. package/assets/esri/core/workers/chunks/{dd99b77a7c0a052507bb.js → 9d88b4ba8e511da64583.js} +3 -3
  138. package/assets/esri/core/workers/chunks/a808be466812db51813d.js +1 -0
  139. package/assets/esri/core/workers/chunks/{6b4a24248182245167ca.js → a931515a2569713e743b.js} +1 -1
  140. package/assets/esri/core/workers/chunks/a95e28ade258b144cbb5.js +1 -0
  141. package/assets/esri/core/workers/chunks/adc68e2c6d2698a52bfe.js +1 -0
  142. package/assets/esri/core/workers/chunks/aeb524eded012217a865.js +1 -0
  143. package/assets/esri/core/workers/chunks/b2a1e5e9182b643909eb.js +316 -0
  144. package/assets/esri/core/workers/chunks/{ac6f002cfad42e60de8f.js → b48033645091c91e0d88.js} +1 -1
  145. package/assets/esri/core/workers/chunks/b8988771bfa4e785ebd6.js +1 -0
  146. package/assets/esri/core/workers/chunks/bb4574a87ca21e719f0d.js +1 -0
  147. package/assets/esri/core/workers/chunks/{07639f406b71bb49ffd6.js → bdbb5b33f0f49661bf6d.js} +1 -1
  148. package/assets/esri/core/workers/chunks/c042269586921e337be9.js +1 -0
  149. package/assets/esri/core/workers/chunks/c623918e289a09905cd1.js +1 -0
  150. package/assets/esri/core/workers/chunks/c7391b0b5a9c916a53f7.js +1 -0
  151. package/assets/esri/core/workers/chunks/{ac83c2999a3d2ffb4356.js → c7838ac0db8570a2d2c1.js} +1 -1
  152. package/assets/esri/core/workers/chunks/c91ef3814e7f024043cf.js +1 -0
  153. package/assets/esri/core/workers/chunks/{43d28c6509c21b8917a8.js → ca7523c14d81c470e92e.js} +1 -1
  154. package/assets/esri/core/workers/chunks/cd2708fb7636b3ace229.js +1 -0
  155. package/assets/esri/core/workers/chunks/{310f3268582e61cd86da.js → d21480925a8bc9c7de96.js} +1 -1
  156. package/assets/esri/core/workers/chunks/d445e9399fe4ca3d2a50.js +1 -0
  157. package/assets/esri/core/workers/chunks/d7683a95775c9f401a7e.js +1 -0
  158. package/assets/esri/core/workers/chunks/{9d6945cda99d14af83ac.js → d7d9656b990ce8be2152.js} +1 -1
  159. package/assets/esri/core/workers/chunks/d9ca754f51b9812bb179.js +1 -0
  160. package/assets/esri/core/workers/chunks/d9ef0b3341e2744d8f2f.js +1 -0
  161. package/assets/esri/core/workers/chunks/df4a0af329ce94a47a7b.js +1 -0
  162. package/assets/esri/core/workers/chunks/e10d6e511921394474ca.js +1 -0
  163. package/assets/esri/core/workers/chunks/e4b6aa8f67c2bd285020.js +1 -0
  164. package/assets/esri/core/workers/chunks/e5aac523c37d906eece6.js +1 -0
  165. package/assets/esri/core/workers/chunks/e6ca02f98f855024f74b.js +1 -0
  166. package/assets/esri/core/workers/chunks/{892157696e8f9e38c472.js → e6e837e43b9348050832.js} +1 -1
  167. package/assets/esri/core/workers/chunks/{d3325ed8d224e2350db7.js → e8a3ad00936f2ccaf362.js} +1 -1
  168. package/assets/esri/core/workers/chunks/{f351007cdcd0938d3b6c.js → eeb24a4ab4993f1f4e8e.js} +1 -1
  169. package/assets/esri/core/workers/chunks/ef7063ee790d2d64d4b2.js +1 -0
  170. package/assets/esri/core/workers/chunks/{b65fcfde62d49de1fa54.js → ef977be20a647aeded0a.js} +1 -1
  171. package/assets/esri/core/workers/chunks/efb631371b6bb3f043bb.js +1 -0
  172. package/assets/esri/core/workers/chunks/{0f5693541111fcae0c2f.js → f0914715e90e43466f8c.js} +1 -1
  173. package/assets/esri/core/workers/chunks/f25bebd2b6eb0d0f6626.js.LICENSE.txt +1 -1
  174. package/assets/esri/core/workers/chunks/f95e488d2b86e320624f.js +1 -0
  175. package/assets/esri/core/workers/chunks/{bfc063d4431bfa162160.js → fd09f38fb4d99bf34988.js} +1 -1
  176. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  177. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  178. package/assets/esri/libs/text/pkg/bundle_bg.wasm +0 -0
  179. package/chunks/boundedPlane.js +1 -1
  180. package/chunks/bundle2.js +5 -0
  181. package/config.js +1 -1
  182. package/copyright.txt +70 -1
  183. package/core/BidiText.js +1 -1
  184. package/core/accessorSupport/ensureType.js +1 -1
  185. package/core/compilerUtils.js +1 -1
  186. package/core/typedArrayUtil.js +1 -1
  187. package/core/units.js +1 -1
  188. package/core/workers/loaderConfig.js +1 -1
  189. package/editing/sharedTemplates/SharedTemplate.js +1 -1
  190. package/geometry/support/FloatArray.js +1 -1
  191. package/geometry/support/Indices.js +1 -1
  192. package/geometry/support/MeshTexture.js +1 -1
  193. package/geometry/support/aaBoundingRect.js +1 -1
  194. package/geometry/support/boundedPlane.js +1 -1
  195. package/geometry/support/heightModelInfoUtils.js +1 -1
  196. package/geometry/support/meshUtils/External.js +1 -1
  197. package/geometry/support/meshUtils/exporters/gltf/imageutils.js +1 -1
  198. package/geometry/support/meshUtils/loadExternal.js +1 -1
  199. package/geometry/support/rotate.js +1 -1
  200. package/interfaces.d.ts +23 -24
  201. package/kernel.js +1 -1
  202. package/layers/BingMapsLayer.d.ts +2 -3
  203. package/layers/BuildingSceneLayer.d.ts +3 -5
  204. package/layers/CatalogLayer.d.ts +2 -4
  205. package/layers/DimensionLayer.d.ts +2 -3
  206. package/layers/ElevationLayer.d.ts +2 -4
  207. package/layers/FeatureLayer.d.ts +2 -4
  208. package/layers/GaussianSplatLayer.d.ts +1 -3
  209. package/layers/GeoJSONLayer.d.ts +2 -3
  210. package/layers/GeoRSSLayer.d.ts +2 -3
  211. package/layers/GroupLayer.d.ts +2 -3
  212. package/layers/ImageryLayer.d.ts +2 -5
  213. package/layers/ImageryTileLayer.d.ts +3 -7
  214. package/layers/IntegratedMesh3DTilesLayer.d.ts +2 -4
  215. package/layers/IntegratedMeshLayer.d.ts +2 -4
  216. package/layers/KMLLayer.d.ts +2 -3
  217. package/layers/KnowledgeGraphLayer.d.ts +2 -4
  218. package/layers/LineOfSightLayer.d.ts +2 -3
  219. package/layers/LinkChartLayer.d.ts +2 -3
  220. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  221. package/layers/MapImageLayer.d.ts +2 -4
  222. package/layers/MapNotesLayer.d.ts +2 -3
  223. package/layers/MediaLayer.d.ts +3 -4
  224. package/layers/OGCFeatureLayer.d.ts +2 -3
  225. package/layers/ParquetLayer.d.ts +2 -3
  226. package/layers/PointCloudLayer.d.ts +2 -4
  227. package/layers/RouteLayer.d.ts +2 -3
  228. package/layers/SceneLayer.d.ts +2 -4
  229. package/layers/StreamLayer.d.ts +2 -4
  230. package/layers/SubtypeGroupLayer.d.ts +2 -4
  231. package/layers/TileLayer.d.ts +2 -4
  232. package/layers/UnknownLayer.d.ts +2 -3
  233. package/layers/UnsupportedLayer.d.ts +2 -3
  234. package/layers/VectorTileLayer.d.ts +2 -4
  235. package/layers/VideoLayer.d.ts +8 -9
  236. package/layers/ViewshedLayer.d.ts +2 -3
  237. package/layers/VoxelLayer.d.ts +2 -4
  238. package/layers/WCSLayer.d.ts +2 -4
  239. package/layers/WFSLayer.d.ts +2 -3
  240. package/layers/WMSLayer.d.ts +5 -6
  241. package/layers/WMTSLayer.d.ts +4 -5
  242. package/layers/WebTileLayer.d.ts +2 -3
  243. package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
  244. package/layers/buildingSublayers/BuildingSublayer.d.ts +3 -3
  245. package/layers/buildingSublayers/BuildingSublayer.js +1 -1
  246. package/layers/catalog/CatalogDynamicGroupLayer.d.ts +2 -3
  247. package/layers/catalog/CatalogFootprintLayer.d.ts +2 -3
  248. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  249. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  250. package/layers/graphics/data/QueryEngineResult.js +1 -1
  251. package/layers/graphics/dehydratedFeatureComparison.js +1 -1
  252. package/layers/graphics/dehydratedFeatures.js +1 -1
  253. package/layers/graphics/hydratedFeatures.js +1 -1
  254. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +4 -6
  255. package/layers/{support/media.d.ts → media/types.d.ts} +9 -9
  256. package/layers/mixins/ArcGISImageService.d.ts +1 -1
  257. package/layers/mixins/ImageryTileMixin.d.ts +1 -1
  258. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  259. package/layers/raster/datasets/wcsCoverageParser.d.ts +1 -1
  260. package/layers/raster/functions/changeDetectionUtils.js +1 -1
  261. package/layers/raster/functions/creators/createLocalFunctions.d.ts +1 -1
  262. package/layers/raster/functions/customBandIndexUtils.js +1 -1
  263. package/layers/raster/functions/focalStatUtils.js +1 -1
  264. package/layers/raster/functions/pixelTransformUtils.js +1 -1
  265. package/layers/raster/functions/types.d.ts +1 -1
  266. package/layers/{support/RasterTypes.d.ts → raster/types.d.ts} +2 -2
  267. package/layers/save/featureLayerUtils.js +1 -1
  268. package/layers/support/ElevationQuery.d.ts +2 -2
  269. package/layers/support/ElevationSampler.js +1 -1
  270. package/layers/support/FeatureType.d.ts +2 -2
  271. package/layers/support/Field.d.ts +2 -3
  272. package/layers/support/FieldConfiguration.d.ts +1 -1
  273. package/layers/support/ImageElement.d.ts +3 -3
  274. package/layers/support/LocalMediaElementSource.d.ts +1 -1
  275. package/layers/support/MediaElementBase.d.ts +4 -7
  276. package/layers/support/PixelBlock.d.ts +1 -1
  277. package/layers/support/RasterFunction.d.ts +1 -1
  278. package/layers/support/RasterInfo.d.ts +1 -1
  279. package/layers/support/Sublayer.d.ts +2 -3
  280. package/layers/support/Subtype.d.ts +2 -2
  281. package/layers/support/SubtypeSublayer.d.ts +2 -3
  282. package/layers/support/SubtypeSublayer.js +1 -1
  283. package/layers/support/VideoElement.d.ts +2 -2
  284. package/layers/support/WMSSublayer.d.ts +6 -6
  285. package/layers/support/WMSSublayer.js +1 -1
  286. package/layers/support/domains.js +1 -1
  287. package/layers/support/rasterFunctionUtils.d.ts +1 -1
  288. package/layers/support/tiles3DUtils.js +1 -1
  289. package/layers/support/types.d.ts +33 -1
  290. package/layers/types.d.ts +17 -2
  291. package/layers/wmts/types.d.ts +2 -0
  292. package/libs/text/loadTextModule.js +5 -0
  293. package/linkChart/LinkChartProperties.d.ts +4 -6
  294. package/linkChart/LinkChartProperties.js +1 -1
  295. package/networks/Network.d.ts +2 -4
  296. package/networks/support/NamedTraceConfiguration.d.ts +3 -3
  297. package/networks/support/NamedTraceConfiguration.js +1 -1
  298. package/networks/support/TopologyValidationJobInfo.js +1 -1
  299. package/networks/support/TraceJobInfo.js +1 -1
  300. package/package.json +3 -3
  301. package/popup/FieldInfo.d.ts +1 -1
  302. package/renderers/support/RasterSymbolizer.js +1 -1
  303. package/renderers/support/rendererConversion.js +1 -1
  304. package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
  305. package/request/process.js +1 -1
  306. package/rest/geometryService/types.d.ts +59 -0
  307. package/rest/geometryService.d.ts +3 -5
  308. package/rest/query/operations/pbfDehydratedFeatureSet.js +1 -1
  309. package/rest/query/operations/query.js +1 -1
  310. package/rest/query/support/AttachmentInfo.d.ts +2 -2
  311. package/rest/support/AlgorithmicColorRamp.d.ts +2 -2
  312. package/rest/support/BinParametersBase.d.ts +2 -2
  313. package/rest/support/BinParametersBase.js +1 -1
  314. package/rest/support/DateBinTimeInterval.d.ts +1 -1
  315. package/rest/support/GeneralizeParameters.d.ts +1 -1
  316. package/rest/support/ImageSampleParameters.d.ts +1 -1
  317. package/rest/support/JobInfo.js +1 -1
  318. package/rest/support/PrintTemplate.d.ts +4 -6
  319. package/rest/support/ServiceAreaParameters.js +1 -1
  320. package/rest/support/types.d.ts +17 -1
  321. package/smartMapping/heuristics/sizeRange.js +1 -1
  322. package/smartMapping/renderers/support/utils.js +1 -1
  323. package/smartMapping/statistics/support/statsWorker.js +1 -1
  324. package/smartMapping/statistics/support/utils.js +1 -1
  325. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  326. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  327. package/smartMapping/support/adapters/support/histogramUtils.js +1 -1
  328. package/smartMapping/support/adapters/support/utils.js +1 -1
  329. package/smartMapping/support/utils.js +1 -1
  330. package/support/revision.js +1 -1
  331. package/symbols/WebStyleSymbol.d.ts +0 -24
  332. package/symbols/WebStyleSymbol.js +1 -1
  333. package/symbols/support/ElevationInfo.d.ts +2 -2
  334. package/symbols/support/IconSymbol3DLayerResource.d.ts +1 -1
  335. package/symbols/support/defaults.js +1 -1
  336. package/symbols/support/defaults3D.js +1 -1
  337. package/symbols/support/previewSymbol3D.js +1 -1
  338. package/symbols/support/symbolLayerUtils3D.js +1 -1
  339. package/symbols/support/symbolUtils.js +1 -1
  340. package/symbols/support/utils.js +1 -1
  341. package/views/2d/analysis/ElevationProfile/ElevationProfileLineVisualization2D.js +1 -1
  342. package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +16 -11
  343. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  344. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  345. package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
  346. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
  347. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  348. package/views/2d/engine/webgl/GlyphSDFCreator.js +5 -0
  349. package/views/2d/engine/webgl/GlyphSource.js +1 -1
  350. package/views/2d/engine/webgl/TextureManager.js +1 -1
  351. package/views/2d/engine/webgl/TextureUploadManager.js +1 -1
  352. package/views/2d/engine/webgl/definitions.js +1 -1
  353. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  354. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  355. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/constants.js +1 -1
  356. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  357. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  358. package/views/2d/input/handlers/DoubleTapDragZoom.js +1 -1
  359. package/views/2d/input/handlers/KeyZoom.js +1 -1
  360. package/views/2d/layers/BaseLayerView2D.d.ts +3 -6
  361. package/views/2d/layers/BaseLayerViewGL2D.d.ts +3 -6
  362. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  363. package/views/2d/layers/TileLayerView2D.js +1 -1
  364. package/views/2d/layers/features/sources/strategies/support/queryAdapters.js +1 -1
  365. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  366. package/views/3d/analysis/AreaMeasurement/support/utils.js +1 -1
  367. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  368. package/views/3d/analysis/ElevationProfile/ElevationProfileLineVisualization3D.js +1 -1
  369. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +16 -11
  370. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  371. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  372. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  373. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  374. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  375. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  376. package/views/3d/environment/CloudsParameters.js +1 -1
  377. package/views/3d/environment/CloudsRenderer.js +1 -1
  378. package/views/3d/environment/SceneViewEnvironment.js +1 -1
  379. package/views/3d/glTF/internal/Resource.js +1 -1
  380. package/views/3d/glTF/internal/fillDefaults.js +1 -1
  381. package/views/3d/interactive/Manipulator3D.js +1 -1
  382. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  383. package/views/3d/interactive/editingTools/isSupportedObjectUtils.js +1 -1
  384. package/views/3d/interactive/editingTools/move/isSupportedObject.js +1 -1
  385. package/views/3d/interactive/editingTools/transform/isSupportedGraphic.js +1 -1
  386. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  387. package/views/3d/layers/I3SMeshView3D.js +1 -1
  388. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  389. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  390. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  391. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  392. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  393. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  394. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  395. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  396. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  397. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  398. package/views/3d/layers/graphics/lineUtils.js +1 -1
  399. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  400. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  401. package/views/3d/layers/graphics/primitiveObjectSymbolUtils.js +1 -1
  402. package/views/3d/layers/i3s/BuildingFilterUtil.js +1 -1
  403. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  404. package/views/3d/layers/i3s/I3SNode.js +1 -1
  405. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  406. package/views/3d/layers/i3s/PointCloudWorkerUtil.js +1 -1
  407. package/views/3d/layers/i3s/SphereCone.js +5 -0
  408. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  409. package/views/3d/layers/support/edgeUtils.js +1 -1
  410. package/views/3d/layers/support/featureReference.js +1 -1
  411. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  412. package/views/3d/layers/support/patternUtils.js +1 -1
  413. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  414. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  415. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  416. package/views/3d/support/buffer/glUtil.js +1 -1
  417. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  418. package/views/3d/support/viewpointUtils.js +1 -1
  419. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  420. package/views/3d/webgl/RenderNode.js +1 -1
  421. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  422. package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
  423. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +8 -8
  424. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  425. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +3 -3
  426. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
  427. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +2 -2
  428. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +2 -2
  429. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +6 -6
  430. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
  431. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -5
  432. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +3 -3
  433. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendModes.glsl.js +1 -1
  434. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  435. package/views/3d/webgl-engine/lib/edgeRendering/EdgeProcessingWorker.js +1 -1
  436. package/views/3d/webgl-engine/lib/edgeRendering/EdgeWorkerHandle.js +1 -1
  437. package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
  438. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  439. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  440. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +4 -4
  441. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +8 -8
  442. package/views/VideoView.d.ts +2 -3
  443. package/views/VideoView.js +1 -1
  444. package/views/View2D.d.ts +2 -3
  445. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  446. package/views/analysis/ElevationProfile/ElevationProfileIndicatorPointVisualization.js +5 -0
  447. package/views/analysis/ElevationProfile/ElevationProfileLineComputation.js +1 -1
  448. package/views/analysis/ElevationProfile/ElevationProfileResult.js +1 -1
  449. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  450. package/views/analysis/ElevationProfile/constants.js +1 -1
  451. package/views/draw/Draw.js +1 -1
  452. package/views/input/ViewEvents.js +1 -1
  453. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  454. package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
  455. package/views/interactive/snapping/featureSources/snappingCandidateElevationFilter.js +1 -1
  456. package/views/interactive/snapping/featureSources/symbologySnappingCandidates.js +1 -1
  457. package/views/layers/MediaLayerViewMixin.d.ts +1 -1
  458. package/views/support/PromiseQueue.js +1 -1
  459. package/views/support/screenUtils.js +1 -1
  460. package/views/support/screenshotUtils.js +1 -1
  461. package/views/types.d.ts +1 -1
  462. package/views/webgl/FramebufferObject.js +1 -1
  463. package/views/webgl/Uniform.js +1 -1
  464. package/views/webgl/Util.js +1 -1
  465. package/webdoc/applicationProperties/SearchLayerField.d.ts +1 -1
  466. package/webdoc/applicationProperties/SearchTableField.d.ts +1 -1
  467. package/webscene/Slide.d.ts +2 -2
  468. package/webscene/spec-certification/api.js +1 -1
  469. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  470. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +1 -1
  471. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  472. package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
  473. package/widgets/BatchAttributeForm.js +1 -1
  474. package/widgets/Editor/components/PendingFeatureList.js +1 -1
  475. package/widgets/Editor/components/workflowAdapters/pendingFeatureList/{CreateFeaturesWorkflowPendingFeatureListAdapter.ts.js → CreateFeaturesWorkflowPendingFeatureListAdapter.js} +1 -1
  476. package/widgets/Editor/types.d.ts +1 -1
  477. package/widgets/Editor/workflowUtils.js +1 -1
  478. package/widgets/Feature.d.ts +3 -5
  479. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  480. package/widgets/FeatureForm/FieldInput.d.ts +2 -2
  481. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  482. package/widgets/FeatureForm.js +1 -1
  483. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +1 -1
  484. package/widgets/FeatureTemplates/TemplateItem.d.ts +1 -1
  485. package/widgets/FeatureTemplates/types.d.ts +1 -1
  486. package/widgets/Features.d.ts +3 -5
  487. package/widgets/Print/CustomTemplate.d.ts +3 -4
  488. package/widgets/Print/TemplateOptions.d.ts +3 -4
  489. package/widgets/Print/types.d.ts +3 -4
  490. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  491. package/widgets/Sketch/support/OperationHandle.js +1 -1
  492. package/widgets/TimeSlider.js +1 -1
  493. package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +1 -1
  494. package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
  495. package/widgets/support/dateUtils.js +1 -1
  496. package/assets/esri/core/workers/chunks/0099f4729c94c779ba35.js +0 -1
  497. package/assets/esri/core/workers/chunks/058fb2cd6387acfd458c.js +0 -1
  498. package/assets/esri/core/workers/chunks/0ae018098906d6a88904.js +0 -1
  499. package/assets/esri/core/workers/chunks/0dc3a04ce717b7ddd957.js +0 -1
  500. package/assets/esri/core/workers/chunks/0e5cd0cf6ab7cb37d723.js +0 -1
  501. package/assets/esri/core/workers/chunks/0ee407b8db5c07a00d82.js +0 -1
  502. package/assets/esri/core/workers/chunks/10373885604655f673df.js +0 -1
  503. package/assets/esri/core/workers/chunks/13d61d34e55c80e4ecdf.js +0 -1
  504. package/assets/esri/core/workers/chunks/17dea03fc4eb414f0022.js +0 -1
  505. package/assets/esri/core/workers/chunks/1967239713b58dccfd81.js +0 -1
  506. package/assets/esri/core/workers/chunks/1ab98591d2f2bc604505.js +0 -1
  507. package/assets/esri/core/workers/chunks/1b838638e66e82d76cf3.js +0 -1
  508. package/assets/esri/core/workers/chunks/1c350a2c4014146dbcd9.js +0 -1
  509. package/assets/esri/core/workers/chunks/2266a8f2c2ec37c19bb4.js +0 -1
  510. package/assets/esri/core/workers/chunks/226acd251ad7d7ee3b57.js +0 -1
  511. package/assets/esri/core/workers/chunks/22b07c54a5fcc27771b0.js +0 -1
  512. package/assets/esri/core/workers/chunks/22ca80f491e070b2a5e7.js +0 -1
  513. package/assets/esri/core/workers/chunks/22dd5cecc7e2d4d0baf8.js +0 -316
  514. package/assets/esri/core/workers/chunks/2402d305a77fef4694a0.js +0 -1
  515. package/assets/esri/core/workers/chunks/27f096c434f049b8df01.js +0 -1
  516. package/assets/esri/core/workers/chunks/2a6231db5ee6cbfd59a5.js +0 -1
  517. package/assets/esri/core/workers/chunks/3371935a4fd6346d3a17.js +0 -1
  518. package/assets/esri/core/workers/chunks/3c4f8597f602779174f1.js +0 -1
  519. package/assets/esri/core/workers/chunks/3da53c017f9c5d2d778a.js +0 -1
  520. package/assets/esri/core/workers/chunks/45b898367b6224dda46f.js +0 -1
  521. package/assets/esri/core/workers/chunks/4785cd108e2dec6e1697.js +0 -1
  522. package/assets/esri/core/workers/chunks/4d6d962d25aa836f53ee.js +0 -1
  523. package/assets/esri/core/workers/chunks/4f33a2ecb154a2c2449c.js +0 -1
  524. package/assets/esri/core/workers/chunks/52726458f590e726d52c.js +0 -1
  525. package/assets/esri/core/workers/chunks/536c492fdda30f2f1288.js +0 -1
  526. package/assets/esri/core/workers/chunks/5909a0e763fddc3542e7.js +0 -2
  527. package/assets/esri/core/workers/chunks/5cee6c3ff23fb93f857a.js +0 -1
  528. package/assets/esri/core/workers/chunks/600e2e6b51e2fb9c598c.js +0 -1
  529. package/assets/esri/core/workers/chunks/6035daa65fc3ebf86515.js +0 -1
  530. package/assets/esri/core/workers/chunks/63b8cd7d5cafbaeed894.js +0 -1
  531. package/assets/esri/core/workers/chunks/6cb44cd319cb6c2539c8.js +0 -1
  532. package/assets/esri/core/workers/chunks/7033fa18b7dd7bd3e49c.js +0 -1
  533. package/assets/esri/core/workers/chunks/7306b5b66e738a281d83.js +0 -1
  534. package/assets/esri/core/workers/chunks/7694abe44d55dae8872d.js +0 -1
  535. package/assets/esri/core/workers/chunks/7f4fa2f2e85863d3cfb9.js +0 -1
  536. package/assets/esri/core/workers/chunks/8f4c480c418eba299c2b.js +0 -1
  537. package/assets/esri/core/workers/chunks/964de713042f52d71e42.js +0 -1
  538. package/assets/esri/core/workers/chunks/a3836f6a93924ee4816e.js +0 -1
  539. package/assets/esri/core/workers/chunks/ab520fd1ae917daf07d8.js +0 -1
  540. package/assets/esri/core/workers/chunks/acc7ff44bfcb5c195114.js +0 -1
  541. package/assets/esri/core/workers/chunks/ad92427bf597a6e0a299.js +0 -1
  542. package/assets/esri/core/workers/chunks/b25a131c04092c3ab75d.js +0 -1
  543. package/assets/esri/core/workers/chunks/b285de471ca90f38ec25.js +0 -1
  544. package/assets/esri/core/workers/chunks/b8f83a272fc41765031d.js +0 -1
  545. package/assets/esri/core/workers/chunks/b9909264cfea68d5f2a1.js +0 -1
  546. package/assets/esri/core/workers/chunks/bb08359610a41e304b55.js +0 -1
  547. package/assets/esri/core/workers/chunks/bcf612eabe7577540953.js +0 -1
  548. package/assets/esri/core/workers/chunks/bfbbcaa1fb04f17fc869.js +0 -1
  549. package/assets/esri/core/workers/chunks/c02b09f16241db233103.js +0 -1
  550. package/assets/esri/core/workers/chunks/c3007b916ba933137709.js +0 -1
  551. package/assets/esri/core/workers/chunks/cc5c1887e6d7079e5fe3.js +0 -1
  552. package/assets/esri/core/workers/chunks/ce8f075c814a8378c00c.js +0 -1
  553. package/assets/esri/core/workers/chunks/cfe1506a443fc84a0b91.js +0 -1
  554. package/assets/esri/core/workers/chunks/d30cfc5fa302cc08d862.js +0 -1
  555. package/assets/esri/core/workers/chunks/d723619579cc8f5ef2cd.js +0 -1
  556. package/assets/esri/core/workers/chunks/da99fd0d3106dd357743.js +0 -1
  557. package/assets/esri/core/workers/chunks/de71db3b0fb947b13c97.js +0 -1
  558. package/assets/esri/core/workers/chunks/dfbbead4c24d13682891.js +0 -1
  559. package/assets/esri/core/workers/chunks/e69255e38ff200dda14b.js +0 -1
  560. package/assets/esri/core/workers/chunks/e705d041f6c1632bfbcc.js +0 -1
  561. package/assets/esri/core/workers/chunks/e85da52d9cc7d9396872.js +0 -1
  562. package/assets/esri/core/workers/chunks/ee186ddbb1eb5144a790.js +0 -1
  563. package/assets/esri/core/workers/chunks/f9370830051865a3435b.js +0 -1
  564. package/core/MultiOriginJSONSupport.d.ts +0 -13
  565. package/core/NumericIdentifiable.d.ts +0 -6
  566. package/core/ReadOnlyMultiOriginJSONSupport.d.ts +0 -6
  567. package/core/WriteableMultiOriginJSONMixin.d.ts +0 -6
  568. package/layers/knowledgeGraph/KnowledgeGraphSublayerBase.d.ts +0 -6
  569. package/layers/mixins/ArcGISService.d.ts +0 -6
  570. package/layers/mixins/RasterJobHandlerMixin.d.ts +0 -6
  571. package/layers/support/RasterFunctionProperties.d.ts +0 -2
  572. package/layers/support/domains.d.ts +0 -5
  573. package/layers/support/editableLayers.d.ts +0 -11
  574. package/layers/support/exifUtils.d.ts +0 -21
  575. package/layers/support/fieldFormatUtils.d.ts +0 -4
  576. package/layers/support/fieldType.d.ts +0 -2
  577. package/layers/support/layerUtils.d.ts +0 -4
  578. package/layers/support/wmtsUtils.d.ts +0 -2
  579. package/layers/video/videoUtils.d.ts +0 -5
  580. package/rest/geometryService/cut.d.ts +0 -7
  581. package/rest/geometryService/fromGeoCoordinateString.d.ts +0 -28
  582. package/rest/geometryService/toGeoCoordinateString.d.ts +0 -25
  583. package/rest/operations/generalize.d.ts +0 -3
  584. package/rest/support/DateBinUtils.d.ts +0 -2
  585. package/rest/support/colorRamps.d.ts +0 -6
  586. package/rest/support/fileFormat.d.ts +0 -4
  587. package/rest/support/layoutTemplate.d.ts +0 -2
  588. package/rest/support/reportTemplate.d.ts +0 -2
  589. package/views/2d/layers/LayerView2D.d.ts +0 -6
  590. package/views/Viewport2DBaseMixin.d.ts +0 -6
  591. package/views/analysis/ElevationProfile/ElevationProfileHoveredPointVisualization.js +0 -5
  592. package/views/layers/RefreshableLayerView.d.ts +0 -6
  593. package/widgets/Feature/support/FeatureContentMixin.d.ts +0 -6
  594. /package/layers/video/{IVideoController.d.ts → types.d.ts} +0 -0
  595. /package/layers/{support/wmsUtils.d.ts → wms/types.d.ts} +0 -0
@@ -1,9 +1,7 @@
1
1
  import type Accessor from "../../core/Accessor.js";
2
2
  import type PortalItem from "../../portal/PortalItem.js";
3
3
  import type LegendLayer from "./LegendLayer.js";
4
- import type { FileFormat } from "./fileFormat.js";
5
- import type { LayoutTemplate } from "./layoutTemplate.js";
6
- import type { ReportTemplate } from "./reportTemplate.js";
4
+ import type { PrintFileFormat, PrintLayoutTemplate, PrintReportTemplate } from "./types.js";
7
5
  import type { PortalItemProperties } from "../../portal/PortalItem.js";
8
6
 
9
7
  export interface PrintTemplateProperties extends Partial<Pick<PrintTemplate, "attributionVisible" | "exportOptions" | "forceFeatureAttributes" | "format" | "includeCharts" | "includeTables" | "layout" | "layoutOptions" | "outScale" | "report" | "reportOptions" | "scalePreserved" | "showLabels">> {
@@ -161,7 +159,7 @@ export default class PrintTemplate extends Accessor {
161
159
  *
162
160
  * @default "png32"
163
161
  */
164
- accessor format: FileFormat;
162
+ accessor format: PrintFileFormat;
165
163
  /**
166
164
  * When `true`, charts will be included in the printout request.
167
165
  * Charts are stored inside an operational layer definition.
@@ -240,7 +238,7 @@ export default class PrintTemplate extends Accessor {
240
238
  *
241
239
  * @default "map-only"
242
240
  */
243
- accessor layout: LayoutTemplate | null | undefined;
241
+ accessor layout: PrintLayoutTemplate | null | undefined;
244
242
  /**
245
243
  * A custom layout hosted as a [portal item](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html). To use this property, the print service
246
244
  * must be hosted on an ArcGIS Server that is federated with the same portal as the portal item.
@@ -352,7 +350,7 @@ export default class PrintTemplate extends Accessor {
352
350
  * reportOptions: {}
353
351
  * });
354
352
  */
355
- accessor report: ReportTemplate | null | undefined;
353
+ accessor report: PrintReportTemplate | null | undefined;
356
354
  /**
357
355
  * A custom report template hosted as a [portal item](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html) for report printing.
358
356
  * Also requires a value to be set for [reportOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-PrintTemplate.html#reportOptions) to print.
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import o from"../../core/Collection.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import{ensureClass as s}from"../../core/accessorSupport/ensureType.js";import"../../core/has.js";import"../../core/RandomLCG.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{enumeration as p}from"../../core/accessorSupport/decorators/enumeration.js";import{reader as l}from"../../core/accessorSupport/decorators/reader.js";import{writer as a}from"../../core/accessorSupport/decorators/writer.js";import u from"../../geometry/SpatialReference.js";import{apiKey as y}from"./commonProperties.js";import{impedanceAttributeNameJsonMap as c,restrictionAttributeNameJsonMap as m,lengthUnitJsonMap as d,outputLineJsonMap as v,outputPolygonJsonMap as w,restrictUTurnJsonMap as j,travelDirectionJsonMap as h}from"./networkEnums.js";import g from"./TravelMode.js";var B;let P=class extends(e(r)){static{B=this}constructor(t){super(t),this.accumulateAttributes=null,this.apiKey=null,this.attributeParameterValues=null,this.defaultBreaks=null,this.excludeSourcesFromPolygons=null,this.facilities=null,this.geometryPrecision=null,this.geometryPrecisionM=null,this.geometryPrecisionZ=null,this.ignoreInvalidLocations=null,this.impedanceAttribute=null,this.mergeSimilarPolygonRanges=!1,this.outputGeometryPrecision=null,this.outputGeometryPrecisionUnits=null,this.outputLines=null,this.outputPolygons=null,this.outSpatialReference=null,this.overlapLines=!1,this.overlapPolygons=!1,this.overrides=null,this.pointBarriers=null,this.polygonBarriers=null,this.polylineBarriers=null,this.preserveObjectID=null,this.restrictionAttributes=null,this.restrictUTurns=null,this.returnFacilities=!1,this.returnPointBarriers=!1,this.returnPolygonBarriers=!1,this.returnPolylineBarriers=!1,this.splitLinesAtBreaks=!1,this.splitPolygonsAtBreaks=!1,this.timeOfDay=null,this.timeOfDayIsUTC=null,this.travelDirection=null,this.travelMode=null,this.trimOuterPolygon=!1,this.trimPolygonDistance=null,this.trimPolygonDistanceUnits=null,this.useHierarchy=null}static from(t){return s(B,t)}readAccumulateAttributes(t){return null==t?null:t.map(t=>c.fromJSON(t))}writeAccumulateAttributes(t,e,o){t?.length&&(e[o]=t.map(t=>c.toJSON(t)))}writeFacilities(t,e,o){b(t,e,o)}writePointBarriers(t,e,o){b(t,e,o)}writePolygonBarrier(t,e,o){b(t,e,o)}writePolylineBarrier(t,e,o){b(t,e,o)}readRestrictionAttributes(t){return null==t?null:t.map(t=>m.fromJSON(t))}writeRestrictionAttributes(t,e,o){t?.length&&(e[o]=t.map(t=>m.toJSON(t)))}readTimeOfDay(t,e){const{timeOfDay:o}=e;return null==o?null:"now"===o?"now":new Date(o)}writeTimeOfDay(t,e){null!=t&&(e.timeOfDay="now"===t?"now":t.getTime())}};t([i({type:[String],json:{name:"accumulateAttributeNames",write:!0}})],P.prototype,"accumulateAttributes",void 0),t([l("accumulateAttributes")],P.prototype,"readAccumulateAttributes",null),t([a("accumulateAttributes")],P.prototype,"writeAccumulateAttributes",null),t([i(y)],P.prototype,"apiKey",void 0),t([i({json:{write:!0}})],P.prototype,"attributeParameterValues",void 0),t([i({type:[Number],json:{write:!0}})],P.prototype,"defaultBreaks",void 0),t([i({type:[String],json:{write:!0}})],P.prototype,"excludeSourcesFromPolygons",void 0),t([i({json:{write:!0}})],P.prototype,"facilities",void 0),t([a("facilities")],P.prototype,"writeFacilities",null),t([i({type:Number,json:{write:!0}})],P.prototype,"geometryPrecision",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"geometryPrecisionM",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"geometryPrecisionZ",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"ignoreInvalidLocations",void 0),t([p(c,{name:"impedanceAttributeName",ignoreUnknown:!1})],P.prototype,"impedanceAttribute",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"mergeSimilarPolygonRanges",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"outputGeometryPrecision",void 0),t([p(d)],P.prototype,"outputGeometryPrecisionUnits",void 0),t([p(v)],P.prototype,"outputLines",void 0),t([p(w)],P.prototype,"outputPolygons",void 0),t([i({type:u,json:{name:"outSR",write:!0}})],P.prototype,"outSpatialReference",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"overlapLines",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"overlapPolygons",void 0),t([i({json:{write:!0}})],P.prototype,"overrides",void 0),t([i({json:{name:"barriers",write:!0}})],P.prototype,"pointBarriers",void 0),t([a("pointBarriers")],P.prototype,"writePointBarriers",null),t([i({json:{write:!0}})],P.prototype,"polygonBarriers",void 0),t([a("polygonBarriers")],P.prototype,"writePolygonBarrier",null),t([i({json:{write:!0}})],P.prototype,"polylineBarriers",void 0),t([a("polylineBarriers")],P.prototype,"writePolylineBarrier",null),t([i({type:Boolean,json:{write:!0}})],P.prototype,"preserveObjectID",void 0),t([i({type:[String],json:{name:"restrictionAttributeNames",write:!0}})],P.prototype,"restrictionAttributes",void 0),t([l("restrictionAttributes")],P.prototype,"readRestrictionAttributes",null),t([a("restrictionAttributes")],P.prototype,"writeRestrictionAttributes",null),t([p(j)],P.prototype,"restrictUTurns",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"returnFacilities",void 0),t([i({type:Boolean,json:{name:"returnBarriers",write:!0}})],P.prototype,"returnPointBarriers",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"returnPolygonBarriers",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"returnPolylineBarriers",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"splitLinesAtBreaks",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"splitPolygonsAtBreaks",void 0),t([i({json:{write:!0}})],P.prototype,"timeOfDay",void 0),t([l("timeOfDay")],P.prototype,"readTimeOfDay",null),t([a("timeOfDay")],P.prototype,"writeTimeOfDay",null),t([i({type:Boolean,json:{write:!0}})],P.prototype,"timeOfDayIsUTC",void 0),t([p(h)],P.prototype,"travelDirection",void 0),t([i({type:g,json:{write:!0}})],P.prototype,"travelMode",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"trimOuterPolygon",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"trimPolygonDistance",void 0),t([p(d)],P.prototype,"trimPolygonDistanceUnits",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"useHierarchy",void 0),P=B=t([n("esri.rest.support.ServiceAreaParameters")],P);const f=P;function b(t,e,r){null!=t&&(e[r]=o.isCollection(t)?{features:t.toArray().map(t=>t.toJSON())}:t.toJSON())}export{f as default};
5
+ import{__decorate as t}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import o from"../../core/Collection.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as i}from"../../core/accessorSupport/decorators/property.js";import{ensureClass as s}from"../../core/accessorSupport/ensureType.js";import"../../core/RandomLCG.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{enumeration as l}from"../../core/accessorSupport/decorators/enumeration.js";import{reader as p}from"../../core/accessorSupport/decorators/reader.js";import{writer as a}from"../../core/accessorSupport/decorators/writer.js";import u from"../../geometry/SpatialReference.js";import{apiKey as y}from"./commonProperties.js";import{impedanceAttributeNameJsonMap as c,restrictionAttributeNameJsonMap as m,lengthUnitJsonMap as d,outputLineJsonMap as v,outputPolygonJsonMap as w,restrictUTurnJsonMap as j,travelDirectionJsonMap as h}from"./networkEnums.js";import g from"./TravelMode.js";var B;let P=class extends(e(r)){static{B=this}constructor(t){super(t),this.accumulateAttributes=null,this.apiKey=null,this.attributeParameterValues=null,this.defaultBreaks=null,this.excludeSourcesFromPolygons=null,this.facilities=null,this.geometryPrecision=null,this.geometryPrecisionM=null,this.geometryPrecisionZ=null,this.ignoreInvalidLocations=null,this.impedanceAttribute=null,this.mergeSimilarPolygonRanges=!1,this.outputGeometryPrecision=null,this.outputGeometryPrecisionUnits=null,this.outputLines=null,this.outputPolygons=null,this.outSpatialReference=null,this.overlapLines=!1,this.overlapPolygons=!1,this.overrides=null,this.pointBarriers=null,this.polygonBarriers=null,this.polylineBarriers=null,this.preserveObjectID=null,this.restrictionAttributes=null,this.restrictUTurns=null,this.returnFacilities=!1,this.returnPointBarriers=!1,this.returnPolygonBarriers=!1,this.returnPolylineBarriers=!1,this.splitLinesAtBreaks=!1,this.splitPolygonsAtBreaks=!1,this.timeOfDay=null,this.timeOfDayIsUTC=null,this.travelDirection=null,this.travelMode=null,this.trimOuterPolygon=!1,this.trimPolygonDistance=null,this.trimPolygonDistanceUnits=null,this.useHierarchy=null}static from(t){return s(B,t)}readAccumulateAttributes(t){return null==t?null:t.map(t=>c.fromJSON(t))}writeAccumulateAttributes(t,e,o){t?.length&&(e[o]=t.map(t=>c.toJSON(t)))}writeFacilities(t,e,o){b(t,e,o)}writePointBarriers(t,e,o){b(t,e,o)}writePolygonBarrier(t,e,o){b(t,e,o)}writePolylineBarrier(t,e,o){b(t,e,o)}readRestrictionAttributes(t){return null==t?null:t.map(t=>m.fromJSON(t))}writeRestrictionAttributes(t,e,o){t?.length&&(e[o]=t.map(t=>m.toJSON(t)))}readTimeOfDay(t,e){const{timeOfDay:o}=e;return null==o?null:"now"===o?"now":new Date(o)}writeTimeOfDay(t,e){null!=t&&(e.timeOfDay="now"===t?"now":t.getTime())}};t([i({type:[String],json:{name:"accumulateAttributeNames",write:!0}})],P.prototype,"accumulateAttributes",void 0),t([p("accumulateAttributes")],P.prototype,"readAccumulateAttributes",null),t([a("accumulateAttributes")],P.prototype,"writeAccumulateAttributes",null),t([i(y)],P.prototype,"apiKey",void 0),t([i({json:{write:!0}})],P.prototype,"attributeParameterValues",void 0),t([i({type:[Number],json:{write:!0}})],P.prototype,"defaultBreaks",void 0),t([i({type:[String],json:{write:!0}})],P.prototype,"excludeSourcesFromPolygons",void 0),t([i({json:{write:!0}})],P.prototype,"facilities",void 0),t([a("facilities")],P.prototype,"writeFacilities",null),t([i({type:Number,json:{write:!0}})],P.prototype,"geometryPrecision",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"geometryPrecisionM",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"geometryPrecisionZ",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"ignoreInvalidLocations",void 0),t([l(c,{name:"impedanceAttributeName",ignoreUnknown:!1})],P.prototype,"impedanceAttribute",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"mergeSimilarPolygonRanges",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"outputGeometryPrecision",void 0),t([l(d)],P.prototype,"outputGeometryPrecisionUnits",void 0),t([l(v)],P.prototype,"outputLines",void 0),t([l(w)],P.prototype,"outputPolygons",void 0),t([i({type:u,json:{name:"outSR",write:!0}})],P.prototype,"outSpatialReference",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"overlapLines",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"overlapPolygons",void 0),t([i({json:{write:!0}})],P.prototype,"overrides",void 0),t([i({json:{name:"barriers",write:!0}})],P.prototype,"pointBarriers",void 0),t([a("pointBarriers")],P.prototype,"writePointBarriers",null),t([i({json:{write:!0}})],P.prototype,"polygonBarriers",void 0),t([a("polygonBarriers")],P.prototype,"writePolygonBarrier",null),t([i({json:{write:!0}})],P.prototype,"polylineBarriers",void 0),t([a("polylineBarriers")],P.prototype,"writePolylineBarrier",null),t([i({type:Boolean,json:{write:!0}})],P.prototype,"preserveObjectID",void 0),t([i({type:[String],json:{name:"restrictionAttributeNames",write:!0}})],P.prototype,"restrictionAttributes",void 0),t([p("restrictionAttributes")],P.prototype,"readRestrictionAttributes",null),t([a("restrictionAttributes")],P.prototype,"writeRestrictionAttributes",null),t([l(j)],P.prototype,"restrictUTurns",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"returnFacilities",void 0),t([i({type:Boolean,json:{name:"returnBarriers",write:!0}})],P.prototype,"returnPointBarriers",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"returnPolygonBarriers",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"returnPolylineBarriers",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"splitLinesAtBreaks",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"splitPolygonsAtBreaks",void 0),t([i({json:{write:!0}})],P.prototype,"timeOfDay",void 0),t([p("timeOfDay")],P.prototype,"readTimeOfDay",null),t([a("timeOfDay")],P.prototype,"writeTimeOfDay",null),t([i({type:Boolean,json:{write:!0}})],P.prototype,"timeOfDayIsUTC",void 0),t([l(h)],P.prototype,"travelDirection",void 0),t([i({type:g,json:{write:!0}})],P.prototype,"travelMode",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"trimOuterPolygon",void 0),t([i({type:Number,json:{write:!0}})],P.prototype,"trimPolygonDistance",void 0),t([l(d)],P.prototype,"trimPolygonDistanceUnits",void 0),t([i({type:Boolean,json:{write:!0}})],P.prototype,"useHierarchy",void 0),P=B=t([n("esri.rest.support.ServiceAreaParameters")],P);const f=P;function b(t,e,r){null!=t&&(e[r]=o.isCollection(t)?{features:t.toArray().map(t=>t.toJSON())}:t.toJSON())}export{f as default};
@@ -1,7 +1,9 @@
1
+ import type AlgorithmicColorRamp from "./AlgorithmicColorRamp.js";
1
2
  import type DataLayer from "./DataLayer.js";
2
3
  import type DirectionLine from "./DirectionLine.js";
3
4
  import type DirectionPoint from "./DirectionPoint.js";
4
5
  import type FeatureSet from "./FeatureSet.js";
6
+ import type MultipartColorRamp from "./MultipartColorRamp.js";
5
7
  import type NetworkFeatureSet from "./NetworkFeatureSet.js";
6
8
  import type NetworkUrl from "./NetworkUrl.js";
7
9
  import type PointBarrier from "./PointBarrier.js";
@@ -83,4 +85,18 @@ export type NetworkAttributeUnit = NetworkAttributeAccerationUnit | TimeUnit | L
83
85
 
84
86
  export type JobStatus = "job-cancelled" | "job-cancelling" | "job-deleted" | "job-deleting" | "job-timed-out" | "job-executing" | "job-failed" | "job-new" | "job-submitted" | "job-succeeded" | "job-waiting";
85
87
 
86
- export type NetworkDate = Date | "now";
88
+ export type NetworkDate = Date | "now";
89
+
90
+ export type PrintReportTemplate = "attribute-list-letter-ansi-a-landscape" | "attribute-list-letter-ansi-a-portrait" | "attribute-list-with-group-letter-ansi-a-landscape" | "attribute-list-with-group-letter-ansi-a-portrait" | "page-per-feature-letter-ansi-a-landscape" | "page-per-feature-letter-ansi-a-portrait";
91
+
92
+ export type PrintLayoutTemplate = "map-only" | "a3-landscape" | "a3-portrait" | "a4-landscape" | "a4-portrait" | "letter-ansi-a-landscape" | "letter-ansi-a-portrait" | "tabloid-ansi-b-landscape" | "tabloid-ansi-b-portrait";
93
+
94
+ export type PrintFileFormat = "aix" | "eps" | "gif" | "jpg" | "pdf" | "png32" | "png8" | "svg" | "svgz" | "tiff";
95
+
96
+ export type ColorRampAlgorithmType = "cie-lab" | "lab-lch" | "hsv";
97
+
98
+ export type ColorRampUnion = AlgorithmicColorRamp | MultipartColorRamp;
99
+
100
+ export type DateBinTimeUnit = "years" | "quarters" | "months" | "weeks" | "days" | "hours" | "minutes" | "seconds";
101
+
102
+ export type DeviationUnit = Exclude<LengthUnit, "us-feet"> | "decimal-degrees";
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/has.js";import e from"../../core/Error.js";import{px2pt as l}from"../../core/screenUtils.js";import{getScale as n}from"../../geometry/support/scaleUtils.js";import s from"../../renderers/visualVariables/SizeVariable.js";import i from"../../renderers/visualVariables/support/SizeStop.js";import a from"./scaleRange.js";import{verifyBinningParams as t}from"../support/binningUtils.js";import{binningCapableLayerTypes as r,featureCapableLayerTypes as o,createLayerAdapter as c,getLayerTypeLabels as u}from"../support/adapters/support/layerUtils.js";const p=1e8,m=1128.497176,v=591657527.591555,f=[10,8,4,2],w=[100,100,60,30],g=[2,1,.75,.5],S=[32,18,12,6],h=[{level:0,resolution:156543.03392800014,scale:591657527.591555},{level:1,resolution:78271.51696399994,scale:295828763.795777},{level:2,resolution:39135.75848200009,scale:147914381.897889},{level:3,resolution:19567.87924099992,scale:73957190.948944},{level:4,resolution:9783.93962049996,scale:36978595.474472},{level:5,resolution:4891.96981024998,scale:18489297.737236},{level:6,resolution:2445.98490512499,scale:9244648.868618},{level:7,resolution:1222.992452562495,scale:4622324.434309},{level:8,resolution:611.4962262813797,scale:2311162.217155},{level:9,resolution:305.74811314055756,scale:1155581.108577},{level:10,resolution:152.87405657041106,scale:577790.554289},{level:11,resolution:76.43702828507324,scale:288895.277144},{level:12,resolution:38.21851414253662,scale:144447.638572},{level:13,resolution:19.10925707126831,scale:72223.819286},{level:14,resolution:9.554628535634155,scale:36111.909643},{level:15,resolution:4.77731426794937,scale:18055.954822},{level:16,resolution:2.388657133974685,scale:9027.977411},{level:17,resolution:1.1943285668550503,scale:4513.988705},{level:18,resolution:.5971642835598172,scale:2256.994353},{level:19,resolution:.29858214164761665,scale:1128.497176}];async function y(l){const{view:n}=l;if(!(l&&n&&l.layer))throw new e("size-range:missing-parameters","'view' and 'layer' parameters are required");l.forBinning&&t(l,"size-range");const{layer:s,...i}=l,a=l.forBinning?r:o,p=c(s,a,l.forBinning);if(!p)throw new e("size-range:invalid-parameters","'layer' must be one of these types: "+u(a).join(", "));const m={layerAdapter:p,...i,view:n};await n.when();const v=null!=m.signal?{signal:m.signal}:null;await p.load(v);const f=p.geometryType;if("point"!==f&&"multipoint"!==f&&"polyline"!==f&&"polygon"!==f)throw new e("size-range:not-supported",`sizeRange is not supported for geometryType: ${f}`);return m}function z(e,l){const n=Math.ceil(e/l);let s=Math.ceil(n/4);s<4?s=4:s>16&&(s=16);const i=5*s;return{min:s,max:i<50?50:i}}function d(l,n){const{view:s}=l;if(!s)throw new e("scale-range:invalid-parameters","'view' is required");const i=n.minScale||p,a="effectiveLODs"in s.constraints&&s.constraints.effectiveLODs||h,t=[];for(let e=0;e<a.length;e++){if(a[e].scale>i)continue;const l=Number(e),n=[l-3,l,l+3,l+6];for(const e of n)e>-1&&e<a.length&&t.push(a[e].scale);break}return t.sort((e,l)=>e-l)}function x(l,s){const{view:i,layerAdapter:a}=l;if(!i)throw new e("scale-range:invalid-parameters","'view' is required");const t=a.fullExtent,r=a.minScale||m,o=a.maxScale||v,c=s.minScale||0,u=s.maxScale||0;let p=null!=t?n(i,t):0;p=p<r&&p>o?p:0;return{scales:[r,o,c,u,p].map(Math.round).sort((e,l)=>e-l).filter((e,l,n)=>!!e&&n.indexOf(e)===l).filter((e,l,n)=>!l||Math.abs(e-n[l-1])>5),fullExtentScale:p}}function E(n,a){const{minScale:t,maxScale:r}=a,o=d(n,{minScale:t});if(!o.length)throw new e("scale-range:insufficient-info","not enough scale values");return{minSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(f[n])}))}),maxSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(w[n])}))})}}function j(n,a){const{minScale:t,maxScale:r}=a,o=d(n,{minScale:t});if(!o.length)throw new e("scale-range:insufficient-info","not enough scale values");return{minSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(g[n])}))}),maxSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(S[n])}))})}}function b(n,a){const{spatialStatistics:t,minScale:r,maxScale:o}=a;if(!("avgSize"in t)||!t.avgSize)throw new e("size-range:insufficient-info","average polygon size is invalid");const c=t.avgSize,{view:u}=n;if(!u)throw new e("scale-range:invalid-parameters","'view' is required");const{resolution:p,scale:m}=u,v=p/m,{scales:f,fullExtentScale:w}=x(n,{minScale:r,maxScale:o}),g=[],S=[];f.forEach((e,n)=>{const{min:s,max:a}=z(c,v*e),t=f.indexOf(w),r=t>-1&&n>t?2:1;g.push(new i({value:e,size:l(s/r)})),S.push(new i({value:e,size:l(a/r)}))});return{minSize:new s({valueExpression:"$view.scale",stops:g}),maxSize:new s({valueExpression:"$view.scale",stops:S})}}async function $(e){const l=await y(e),{view:n,layerAdapter:s,signal:i,filter:t}=l,r=await a({layer:s,view:n,signal:i,filter:t});switch(s.geometryType){case"point":case"multipoint":return E(l,r);case"polyline":return j(l,r);case"polygon":return b(l,r);case"mesh":case"multipatch":return null}return null}export{$ as default};
5
+ import e from"../../core/Error.js";import{px2pt as l}from"../../core/screenUtils.js";import{getScale as n}from"../../geometry/support/scaleUtils.js";import s from"../../renderers/visualVariables/SizeVariable.js";import i from"../../renderers/visualVariables/support/SizeStop.js";import a from"./scaleRange.js";import{verifyBinningParams as t}from"../support/binningUtils.js";import{binningCapableLayerTypes as r,featureCapableLayerTypes as o,createLayerAdapter as c,getLayerTypeLabels as u}from"../support/adapters/support/layerUtils.js";const p=1e8,v=1128.497176,m=591657527.591555,f=[10,8,4,2],w=[100,100,60,30],g=[2,1,.75,.5],S=[32,18,12,6],h=[{level:0,resolution:156543.03392800014,scale:591657527.591555},{level:1,resolution:78271.51696399994,scale:295828763.795777},{level:2,resolution:39135.75848200009,scale:147914381.897889},{level:3,resolution:19567.87924099992,scale:73957190.948944},{level:4,resolution:9783.93962049996,scale:36978595.474472},{level:5,resolution:4891.96981024998,scale:18489297.737236},{level:6,resolution:2445.98490512499,scale:9244648.868618},{level:7,resolution:1222.992452562495,scale:4622324.434309},{level:8,resolution:611.4962262813797,scale:2311162.217155},{level:9,resolution:305.74811314055756,scale:1155581.108577},{level:10,resolution:152.87405657041106,scale:577790.554289},{level:11,resolution:76.43702828507324,scale:288895.277144},{level:12,resolution:38.21851414253662,scale:144447.638572},{level:13,resolution:19.10925707126831,scale:72223.819286},{level:14,resolution:9.554628535634155,scale:36111.909643},{level:15,resolution:4.77731426794937,scale:18055.954822},{level:16,resolution:2.388657133974685,scale:9027.977411},{level:17,resolution:1.1943285668550503,scale:4513.988705},{level:18,resolution:.5971642835598172,scale:2256.994353},{level:19,resolution:.29858214164761665,scale:1128.497176}];async function y(l){const{view:n}=l;if(!(l&&n&&l.layer))throw new e("size-range:missing-parameters","'view' and 'layer' parameters are required");l.forBinning&&t(l,"size-range");const{layer:s,...i}=l,a=l.forBinning?r:o,p=c(s,a,l.forBinning);if(!p)throw new e("size-range:invalid-parameters","'layer' must be one of these types: "+u(a).join(", "));const v={layerAdapter:p,...i,view:n};await n.when();const m=null!=v.signal?{signal:v.signal}:null;await p.load(m);const f=p.geometryType;if("point"!==f&&"multipoint"!==f&&"polyline"!==f&&"polygon"!==f)throw new e("size-range:not-supported",`sizeRange is not supported for geometryType: ${f}`);return v}function z(e,l){const n=Math.ceil(e/l);let s=Math.ceil(n/4);s<4?s=4:s>16&&(s=16);const i=5*s;return{min:s,max:i<50?50:i}}function d(l,n){const{view:s}=l;if(!s)throw new e("scale-range:invalid-parameters","'view' is required");const i=n.minScale||p,a="effectiveLODs"in s.constraints&&s.constraints.effectiveLODs||h,t=[];for(let e=0;e<a.length;e++){if(a[e].scale>i)continue;const l=Number(e),n=[l-3,l,l+3,l+6];for(const e of n)e>-1&&e<a.length&&t.push(a[e].scale);break}return t.sort((e,l)=>e-l)}function x(l,s){const{view:i,layerAdapter:a}=l;if(!i)throw new e("scale-range:invalid-parameters","'view' is required");const t=a.fullExtent,r=a.minScale||v,o=a.maxScale||m,c=s.minScale||0,u=s.maxScale||0;let p=null!=t?n(i,t):0;p=p<r&&p>o?p:0;return{scales:[r,o,c,u,p].map(Math.round).sort((e,l)=>e-l).filter((e,l,n)=>!!e&&n.indexOf(e)===l).filter((e,l,n)=>!l||Math.abs(e-n[l-1])>5),fullExtentScale:p}}function E(n,a){const{minScale:t,maxScale:r}=a,o=d(n,{minScale:t});if(!o.length)throw new e("scale-range:insufficient-info","not enough scale values");return{minSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(f[n])}))}),maxSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(w[n])}))})}}function j(n,a){const{minScale:t,maxScale:r}=a,o=d(n,{minScale:t});if(!o.length)throw new e("scale-range:insufficient-info","not enough scale values");return{minSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(g[n])}))}),maxSize:new s({valueExpression:"$view.scale",stops:o.map((e,n)=>new i({value:e,size:l(S[n])}))})}}function b(n,a){const{spatialStatistics:t,minScale:r,maxScale:o}=a;if(!("avgSize"in t)||!t.avgSize)throw new e("size-range:insufficient-info","average polygon size is invalid");const c=t.avgSize,{view:u}=n;if(!u)throw new e("scale-range:invalid-parameters","'view' is required");const{resolution:p,scale:v}=u,m=p/v,{scales:f,fullExtentScale:w}=x(n,{minScale:r,maxScale:o}),g=[],S=[];f.forEach((e,n)=>{const{min:s,max:a}=z(c,m*e),t=f.indexOf(w),r=t>-1&&n>t?2:1;g.push(new i({value:e,size:l(s/r)})),S.push(new i({value:e,size:l(a/r)}))});return{minSize:new s({valueExpression:"$view.scale",stops:g}),maxSize:new s({valueExpression:"$view.scale",stops:S})}}async function $(e){const l=await y(e),{view:n,layerAdapter:s,signal:i,filter:t}=l,r=await a({layer:s,view:n,signal:i,filter:t});switch(s.geometryType){case"point":case"multipoint":return E(l,r);case"polyline":return j(l,r);case"polygon":return b(l,r);case"mesh":case"multipatch":return null}return null}export{$ as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../Color.js";import{fetchMessageBundle as t,substitute as n}from"../../../intl.js";import o from"../../../core/Collection.js";import"../../../core/has.js";import i from"../../../core/Error.js";import{convertDateFormatToIntlOptions as r,formatDate as l}from"../../../intl/date.js";import{round as s}from"../../../renderers/support/numberUtils.js";import a from"../../../renderers/support/pointCloud/PointSizeSplatAlgorithm.js";import m from"../../heuristics/outline.js";import u from"../../statistics/classBreaks.js";import c from"../../statistics/summaryStatistics.js";import{getAgeExpressions as f}from"../../statistics/support/ageUtils.js";import{isAnyDateField as d,defaultStatisticTypes as p,getBasemapId as y,defaultBasemapGroups as w,getBasemapGroup as h}from"../../support/utils.js";import b from"../../../symbols/ExtrudeSymbol3DLayer.js";import g from"../../../symbols/FillSymbol3DLayer.js";import D from"../../../symbols/IconSymbol3DLayer.js";import j from"../../../symbols/LineSymbol3D.js";import S from"../../../symbols/LineSymbol3DLayer.js";import v from"../../../symbols/MeshSymbol3D.js";import x from"../../../symbols/ObjectSymbol3DLayer.js";import z from"../../../symbols/PathSymbol3DLayer.js";import T from"../../../symbols/PointSymbol3D.js";import U from"../../../symbols/PolygonSymbol3D.js";import L from"../../../symbols/SimpleFillSymbol.js";import V from"../../../symbols/SimpleLineSymbol.js";import k from"../../../symbols/SimpleMarkerSymbol.js";import F from"../../../symbols/edges/SketchEdges3D.js";import I from"../../../symbols/edges/SolidEdges3D.js";import{getTimeZoneFormattingOptions as M,shortTimeZoneName as C}from"../../../time/timeZoneUtils.js";import{getBackgroundColorTheme as Z}from"../../../views/support/colorUtils.js";const B=/^(\d+(\.\d+)?)\s*(%)$/i,E=new e([0,0,0,.4]),P=new Set(["hours","minutes","seconds"]),A=[...w.light,...w.dark];function R(e,t,n,o){if("string"==typeof e){const t=n.getField(e);if(t&&d(t))return t.alias||t.name}else if("number"==typeof e||e instanceof Date){const i=null!=t&&P.has(t),s=r(i?"short-date-short-time":"short-date");if(o&&i){const t=n.layer,{timeZone:i}=M("preferredTimeZone"in t?t.preferredTimeZone:null,"datesInUnknownTimezone"in t&&t.datesInUnknownTimezone,o.timeZone,s,"date");return l(e,{...s,timeZone:i,timeZoneName:C})}return l(e,s)}return e}function Y(e,t,n){return e+t>0&&0>e-t&&n<0?0:e}function N(e,t,n,o){const{avg:i,stddev:r,min:l,max:s}=e,a=W(e,!!n,o??!0);let m=a?a[0]:l,u=a?a[1]:s;return a?{minDataValue:m,maxDataValue:u,defaultValuesUsed:!0}:("above"===t?m=Y(i,r,l):"below"===t&&(u=Y(i,r,l)),{minDataValue:m,maxDataValue:u,defaultValuesUsed:!1})}function W(e,t,n){let o,i;const r=$({statistics:e,isDate:t});return r.defaultValuesUsed?(o=r.min,i=r.max):!n||null!=e.avg&&e.stddev||(o=e.min,i=e.max),null!=o&&null!=i?[o,i]:null}function $(e){let t,n,o=e&&e.statistics;if(o||(o={}),null==o.min)if(e.isDate){const e=q();t=e[0],n=e[1]}else t=0,n=100;else if(o.min===o.max)if(e.isDate){const e=q(o.min);t=e[0],n=e[1]}else o.min<0?(t=2*o.min,n=0):o.min>0?(t=0,n=2*o.min):(t=0,n=100);return{min:null!=t?t:o.min,max:null!=n?n:o.max,defaultValuesUsed:null!=t||null!=n}}function q(e){const t=("number"==typeof e?new Date(e):new Date).getUTCFullYear();let n=Date.UTC(t,0,1,12,0,0,0),o=Date.UTC(t,11,31,12,0,0,0);return"number"==typeof e&&(e<n&&(n=e),e>o&&(o=e)),[n,o]}function O({minDataValue:e,maxDataValue:t,defaultValuesUsed:n},o,i,r=!0){return n||"above"===i||"below"===i?H(e,t,5):J(o,r)}function _(e,t){const{avg:n,stddev:o}=e,i=e.min,r=e.max;if(null==n||null==o){const[n,o]=W(e,t,!0);return H(n,o,5)}const l=Y(n,o,i),a=r-l,m=l-i,u=Math.max(a,m);return s([l-u,l-u/2,l,u/2+l,l+u],{strictBounds:!0})}function G(e,t){const{min:n,max:o}=t,[i,r,l,a,m]=e,u=null!=n&&i<n,c=null!=o&&m>o;if(null==n||null==o||!u&&!c)return e;const f=u?n:i,d=c?o:m;return s([f,u?f+(l-f)/2:r,l,c?l+(d-l)/2:a,d],{strictBounds:!0})}function H(e,t,n){const o=(t-e)/(n-1),i=[e];for(let r=1;r<=n-2;r++)i.push(e+r*o);return i.push(t),s(i,{strictBounds:!0})}function J({min:e,max:t,avg:n,stddev:o},i=!0){if(null==e||null==t||null==n||null==o)return[];let r=n-o,l=n+o;r<e&&(r=e),l>t&&(l=t),i&&(n=r+(l-r)/2);let a=s([r,l],{strictBounds:!0});return r=a[0],l=a[1],a=[r,r+(n-r)/2,n,n+(l-n)/2,l],s(a,{strictBounds:!0})}function K(e,t,n){switch(t){case"point":case"multipoint":return n?"noDataSize"in e?e.noDataSize:null:"size"in e?e.size:null;case"polyline":return n?"noDataWidth"in e?e.noDataWidth:null:"width"in e?e.width:null;case"polygon":return"size"in e?e.size:null;default:return}}function Q(e,t,n){switch(t){case"point":case"multipoint":case"polygon":{if(!("outline"in e))return null;const t={color:e.outline.color,width:e.outline.width};if(null!=n&&t.color){const e=t.color.clone();e.a=n,t.color=e}return t}default:return}}function X(e,t){const{type:n,size:i,color:r,outline:l}=t;let s;switch(e){case"point":case"multipoint":if("2d"===n)s=new k({color:r,size:i,outline:{color:l.color,width:l.width}});else if("3d-flat"===n)s=new T({symbolLayers:new o([new D({size:i,resource:{primitive:"circle"},material:{color:r},outline:{color:l.color,size:l.width}})])});else if(n?.includes("3d-volumetric")){const e="3d-volumetric-uniform"===n,l=new x({height:i,resource:{primitive:e?"sphere":"cylinder"},material:{color:r}});e||(l.width=t.widthAndDepth,l.depth=t.widthAndDepth),s=new T({symbolLayers:new o([l])})}break;case"polyline":"2d"===n?s=new V({color:r,width:i}):"3d-flat"===n?s=new j({symbolLayers:new o([new S({size:i,material:{color:r}})])}):"3d-volumetric"===n&&(s=new j({symbolLayers:new o([new z({width:"number"==typeof i?i:parseFloat(i),height:"number"==typeof i?i:parseFloat(i),material:{color:r}})])}));break;case"polygon":"2d"===n?s=new L({color:r,outline:{color:l.color,width:l.width}}):"3d-flat"===n?s=new U({symbolLayers:new o([new g({material:{color:r},outline:{color:l.color,size:l.width}})])}):"3d-volumetric"===n&&(s=new U({symbolLayers:new o([new b({size:i,material:{color:r}})])}));break;case"mesh":{const e=t.meshInfo?.colorMixMode,n=t.meshInfo?.edgesType;s=new v({symbolLayers:new o([new g({material:{color:r,colorMixMode:e||null},edges:"solid"===n?new I({color:E}):"sketch"===n?new F({color:E}):null})])});break}}return s}function ee(e,t,n){const o=te({layer:e,fields:t});if(o.length)return new i(n,"Unknown fields: "+o.join(", ")+". You can only use fields defined in the layer schema");const r=ne({layer:e,fields:t});return r.length?new i(n,"Unsupported fields: "+r.join(", ")+". You can only use fields that are accessible to the renderer i.e. FieldUsageInfo.supportsRenderer must be true"):void 0}function te(e){const t=e.layer;return e.fields.filter(e=>!t.getField(e))}function ne(e){const t=e.layer;return e.fields.filter(e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsRenderer})}async function oe(e,t){const n={layer:e.layer,view:e.view,filter:e.filter,signal:e.signal},[o,i]=await Promise.all([u(e).catch(ue),t?m(n).catch(ue):null]),r=W({min:o?.minValue,max:o?.maxValue,avg:null,stddev:null},!1,!1);return{result:r?await u({...e,classificationMethod:"equal-interval",numClasses:1,analyzeData:!1,minValue:r[0],maxValue:r[1],normalizationTotal:r[0]+r[1]}):o,defaultValuesUsed:!!r,outlineResult:i}}function ie(e){return c({outStatisticTypes:p,...e})}function re(e,t){let{minSize:n,maxSize:o}=e;if("height"===t){n=((o-n)/2+n)/(2*2.3),o*=2}return{minSize:n,maxSize:o}}function le(e){return B.test(e)}function se(e){if(null==e)return;const t=e.match(B),n=Number(t[1]);return"%"===t[3]?new a({scaleFactor:n/100}):void 0}function ae(e,t,n,o){e.startTime=t instanceof Date?t.getTime():t,e.endTime=n instanceof Date?n.getTime():n,e.units=o,e.field="string"==typeof t?t:"string"==typeof n?n:null}async function me(e,t){let n=null,o=null;if(!e&&!t)return{basemapId:n,basemapTheme:o};if(t&&(o=await Z(t),e||(e=t.map?.basemap)),e&&(n=y(e,A,!1),n&&!o)){const e=h(n);null!=e&&(o=e)}return!n&&o&&(n="dark"===o?"dark-gray":"gray"),{basemapId:n,basemapTheme:o}}function ue(e){const t=e.name?.toLowerCase();if(!t||t?.includes(":insufficient-info")||t?.includes(":insufficient-data"))return null;throw e}async function ce(e,o){const{layer:i,startTime:r,endTime:l,view:s}=e,a=f({layer:i,startTime:r,endTime:l,unit:o}).valueExpression,m=await t("esri/smartMapping/t9n/smartMapping");return{valueExpression:a,title:n(m[`ageInfo_${o}`],{unit:o,startTime:R(r,o,i,s),endTime:R(l,o,i,s)})}}export{G as clampAboveAndBelowStopValues,O as createDataValues,H as createDefaultStopValues,J as createStopValues,_ as createStopValuesForAboveBelow,X as createSymbol,ue as errorCallback,R as formatDate,Y as getBaseValueForAboveBelow,me as getBasemapInfo,oe as getClassBreaks,N as getDataRange,W as getDefaultDataRange,se as getPointSizeAlgorithm,re as getSizeRangeForAxis,ie as getSummaryStatistics,Q as getSymbolOutlineFromScheme,K as getSymbolSizeFromScheme,ce as getTitleAndExpressionForAgeRenderer,le as isValidPointSize,ae as updateAgeRendererAuthoringInfoVV,ee as verifyBasicFieldValidity};
5
+ import e from"../../../Color.js";import{fetchMessageBundle as t,substitute as n}from"../../../intl.js";import o from"../../../core/Collection.js";import i from"../../../core/Error.js";import{convertDateFormatToIntlOptions as r,formatDate as l}from"../../../intl/date.js";import{round as s}from"../../../renderers/support/numberUtils.js";import a from"../../../renderers/support/pointCloud/PointSizeSplatAlgorithm.js";import m from"../../heuristics/outline.js";import u from"../../statistics/classBreaks.js";import c from"../../statistics/summaryStatistics.js";import{getAgeExpressions as f}from"../../statistics/support/ageUtils.js";import{isAnyDateField as d,defaultStatisticTypes as p,getBasemapId as y,defaultBasemapGroups as w,getBasemapGroup as h}from"../../support/utils.js";import b from"../../../symbols/ExtrudeSymbol3DLayer.js";import g from"../../../symbols/FillSymbol3DLayer.js";import D from"../../../symbols/IconSymbol3DLayer.js";import j from"../../../symbols/LineSymbol3D.js";import S from"../../../symbols/LineSymbol3DLayer.js";import v from"../../../symbols/MeshSymbol3D.js";import x from"../../../symbols/ObjectSymbol3DLayer.js";import z from"../../../symbols/PathSymbol3DLayer.js";import T from"../../../symbols/PointSymbol3D.js";import U from"../../../symbols/PolygonSymbol3D.js";import L from"../../../symbols/SimpleFillSymbol.js";import V from"../../../symbols/SimpleLineSymbol.js";import k from"../../../symbols/SimpleMarkerSymbol.js";import F from"../../../symbols/edges/SketchEdges3D.js";import I from"../../../symbols/edges/SolidEdges3D.js";import{getTimeZoneFormattingOptions as M,shortTimeZoneName as C}from"../../../time/timeZoneUtils.js";import{getBackgroundColorTheme as Z}from"../../../views/support/colorUtils.js";const B=/^(\d+(\.\d+)?)\s*(%)$/i,E=new e([0,0,0,.4]),P=new Set(["hours","minutes","seconds"]),A=[...w.light,...w.dark];function R(e,t,n,o){if("string"==typeof e){const t=n.getField(e);if(t&&d(t))return t.alias||t.name}else if("number"==typeof e||e instanceof Date){const i=null!=t&&P.has(t),s=r(i?"short-date-short-time":"short-date");if(o&&i){const t=n.layer,{timeZone:i}=M("preferredTimeZone"in t?t.preferredTimeZone:null,"datesInUnknownTimezone"in t&&t.datesInUnknownTimezone,o.timeZone,s,"date");return l(e,{...s,timeZone:i,timeZoneName:C})}return l(e,s)}return e}function Y(e,t,n){return e+t>0&&0>e-t&&n<0?0:e}function N(e,t,n,o){const{avg:i,stddev:r,min:l,max:s}=e,a=W(e,!!n,o??!0);let m=a?a[0]:l,u=a?a[1]:s;return a?{minDataValue:m,maxDataValue:u,defaultValuesUsed:!0}:("above"===t?m=Y(i,r,l):"below"===t&&(u=Y(i,r,l)),{minDataValue:m,maxDataValue:u,defaultValuesUsed:!1})}function W(e,t,n){let o,i;const r=$({statistics:e,isDate:t});return r.defaultValuesUsed?(o=r.min,i=r.max):!n||null!=e.avg&&e.stddev||(o=e.min,i=e.max),null!=o&&null!=i?[o,i]:null}function $(e){let t,n,o=e&&e.statistics;if(o||(o={}),null==o.min)if(e.isDate){const e=q();t=e[0],n=e[1]}else t=0,n=100;else if(o.min===o.max)if(e.isDate){const e=q(o.min);t=e[0],n=e[1]}else o.min<0?(t=2*o.min,n=0):o.min>0?(t=0,n=2*o.min):(t=0,n=100);return{min:null!=t?t:o.min,max:null!=n?n:o.max,defaultValuesUsed:null!=t||null!=n}}function q(e){const t=("number"==typeof e?new Date(e):new Date).getUTCFullYear();let n=Date.UTC(t,0,1,12,0,0,0),o=Date.UTC(t,11,31,12,0,0,0);return"number"==typeof e&&(e<n&&(n=e),e>o&&(o=e)),[n,o]}function O({minDataValue:e,maxDataValue:t,defaultValuesUsed:n},o,i,r=!0){return n||"above"===i||"below"===i?H(e,t,5):J(o,r)}function _(e,t){const{avg:n,stddev:o}=e,i=e.min,r=e.max;if(null==n||null==o){const[n,o]=W(e,t,!0);return H(n,o,5)}const l=Y(n,o,i),a=r-l,m=l-i,u=Math.max(a,m);return s([l-u,l-u/2,l,u/2+l,l+u],{strictBounds:!0})}function G(e,t){const{min:n,max:o}=t,[i,r,l,a,m]=e,u=null!=n&&i<n,c=null!=o&&m>o;if(null==n||null==o||!u&&!c)return e;const f=u?n:i,d=c?o:m;return s([f,u?f+(l-f)/2:r,l,c?l+(d-l)/2:a,d],{strictBounds:!0})}function H(e,t,n){const o=(t-e)/(n-1),i=[e];for(let r=1;r<=n-2;r++)i.push(e+r*o);return i.push(t),s(i,{strictBounds:!0})}function J({min:e,max:t,avg:n,stddev:o},i=!0){if(null==e||null==t||null==n||null==o)return[];let r=n-o,l=n+o;r<e&&(r=e),l>t&&(l=t),i&&(n=r+(l-r)/2);let a=s([r,l],{strictBounds:!0});return r=a[0],l=a[1],a=[r,r+(n-r)/2,n,n+(l-n)/2,l],s(a,{strictBounds:!0})}function K(e,t,n){switch(t){case"point":case"multipoint":return n?"noDataSize"in e?e.noDataSize:null:"size"in e?e.size:null;case"polyline":return n?"noDataWidth"in e?e.noDataWidth:null:"width"in e?e.width:null;case"polygon":return"size"in e?e.size:null;default:return}}function Q(e,t,n){switch(t){case"point":case"multipoint":case"polygon":{if(!("outline"in e))return null;const t={color:e.outline.color,width:e.outline.width};if(null!=n&&t.color){const e=t.color.clone();e.a=n,t.color=e}return t}default:return}}function X(e,t){const{type:n,size:i,color:r,outline:l}=t;let s;switch(e){case"point":case"multipoint":if("2d"===n)s=new k({color:r,size:i,outline:{color:l.color,width:l.width}});else if("3d-flat"===n)s=new T({symbolLayers:new o([new D({size:i,resource:{primitive:"circle"},material:{color:r},outline:{color:l.color,size:l.width}})])});else if(n?.includes("3d-volumetric")){const e="3d-volumetric-uniform"===n,l=new x({height:i,resource:{primitive:e?"sphere":"cylinder"},material:{color:r}});e||(l.width=t.widthAndDepth,l.depth=t.widthAndDepth),s=new T({symbolLayers:new o([l])})}break;case"polyline":"2d"===n?s=new V({color:r,width:i}):"3d-flat"===n?s=new j({symbolLayers:new o([new S({size:i,material:{color:r}})])}):"3d-volumetric"===n&&(s=new j({symbolLayers:new o([new z({width:"number"==typeof i?i:parseFloat(i),height:"number"==typeof i?i:parseFloat(i),material:{color:r}})])}));break;case"polygon":"2d"===n?s=new L({color:r,outline:{color:l.color,width:l.width}}):"3d-flat"===n?s=new U({symbolLayers:new o([new g({material:{color:r},outline:{color:l.color,size:l.width}})])}):"3d-volumetric"===n&&(s=new U({symbolLayers:new o([new b({size:i,material:{color:r}})])}));break;case"mesh":{const e=t.meshInfo?.colorMixMode,n=t.meshInfo?.edgesType;s=new v({symbolLayers:new o([new g({material:{color:r,colorMixMode:e||null},edges:"solid"===n?new I({color:E}):"sketch"===n?new F({color:E}):null})])});break}}return s}function ee(e,t,n){const o=te({layer:e,fields:t});if(o.length)return new i(n,"Unknown fields: "+o.join(", ")+". You can only use fields defined in the layer schema");const r=ne({layer:e,fields:t});return r.length?new i(n,"Unsupported fields: "+r.join(", ")+". You can only use fields that are accessible to the renderer i.e. FieldUsageInfo.supportsRenderer must be true"):void 0}function te(e){const t=e.layer;return e.fields.filter(e=>!t.getField(e))}function ne(e){const t=e.layer;return e.fields.filter(e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsRenderer})}async function oe(e,t){const n={layer:e.layer,view:e.view,filter:e.filter,signal:e.signal},[o,i]=await Promise.all([u(e).catch(ue),t?m(n).catch(ue):null]),r=W({min:o?.minValue,max:o?.maxValue,avg:null,stddev:null},!1,!1);return{result:r?await u({...e,classificationMethod:"equal-interval",numClasses:1,analyzeData:!1,minValue:r[0],maxValue:r[1],normalizationTotal:r[0]+r[1]}):o,defaultValuesUsed:!!r,outlineResult:i}}function ie(e){return c({outStatisticTypes:p,...e})}function re(e,t){let{minSize:n,maxSize:o}=e;if("height"===t){n=((o-n)/2+n)/(2*2.3),o*=2}return{minSize:n,maxSize:o}}function le(e){return B.test(e)}function se(e){if(null==e)return;const t=e.match(B),n=Number(t[1]);return"%"===t[3]?new a({scaleFactor:n/100}):void 0}function ae(e,t,n,o){e.startTime=t instanceof Date?t.getTime():t,e.endTime=n instanceof Date?n.getTime():n,e.units=o,e.field="string"==typeof t?t:"string"==typeof n?n:null}async function me(e,t){let n=null,o=null;if(!e&&!t)return{basemapId:n,basemapTheme:o};if(t&&(o=await Z(t),e||(e=t.map?.basemap)),e&&(n=y(e,A,!1),n&&!o)){const e=h(n);null!=e&&(o=e)}return!n&&o&&(n="dark"===o?"dark-gray":"gray"),{basemapId:n,basemapTheme:o}}function ue(e){const t=e.name?.toLowerCase();if(!t||t?.includes(":insufficient-info")||t?.includes(":insufficient-data"))return null;throw e}async function ce(e,o){const{layer:i,startTime:r,endTime:l,view:s}=e,a=f({layer:i,startTime:r,endTime:l,unit:o}).valueExpression,m=await t("esri/smartMapping/t9n/smartMapping");return{valueExpression:a,title:n(m[`ageInfo_${o}`],{unit:o,startTime:R(r,o,i,s),endTime:R(l,o,i,s)})}}export{G as clampAboveAndBelowStopValues,O as createDataValues,H as createDefaultStopValues,J as createStopValues,_ as createStopValuesForAboveBelow,X as createSymbol,ue as errorCallback,R as formatDate,Y as getBaseValueForAboveBelow,me as getBasemapInfo,oe as getClassBreaks,N as getDataRange,W as getDefaultDataRange,se as getPointSizeAlgorithm,re as getSizeRangeForAxis,ie as getSummaryStatistics,Q as getSymbolOutlineFromScheme,K as getSymbolSizeFromScheme,ce as getTitleAndExpressionForAgeRenderer,le as isValidPointSize,ae as updateAgeRendererAuthoringInfoVV,ee as verifyBasicFieldValidity};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{getDataValues as i,quantizeFeatures as a,calculateHeatmapStats as e}from"./utils.js";import{calculateStringStatistics as n,calculateStatistics as t,processSummaryStatisticsResult as o,calculateUniqueValuesCount as l,createUVResult as s,calculateClassBreaks as r,resolveCBResult as m,calculateHistogram as u,isNullCountSupported as f}from"../../../statistics/utils.js";async function d(a){const{attribute:e,features:l}=a,{normalizationType:s,normalizationField:r,minValue:m,maxValue:u,fieldType:d,outStatisticTypes:p}=e,c=await i({field:e.field,valueExpression:e.valueExpression,normalizationType:s,normalizationField:r,normalizationTotal:e.normalizationTotal,viewInfoParams:e.viewInfoParams,timeZone:e.timeZone,fieldInfos:e.fieldInfos},l),v=f({normalizationType:s,normalizationField:r,minValue:m,maxValue:u}),z={value:.5,fieldType:d},T="esriFieldTypeString"===d?n({values:c,supportsNullCount:v,percentileParams:z,outStatisticTypes:p}):t({values:c,minValue:m,maxValue:u,useSampleStdDev:!s,supportsNullCount:v,percentileParams:z,outStatisticTypes:p});return o(T,p,"esriFieldTypeDate"===d)}async function p(a){const{attribute:e,features:n}=a,t=await i({field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:e.fieldDelimiter,valueExpression:e.valueExpression,viewInfoParams:e.viewInfoParams,timeZone:e.timeZone,fieldInfos:e.fieldInfos},n,!1),o=l(t);return s(o,e.domains,e.returnAllCodedValues,e.fieldDelimiter)}async function c(a){const{attribute:e,features:n}=a,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:u}=e,f=await i({field:t,valueExpression:e.valueExpression,normalizationType:o,normalizationField:l,normalizationTotal:s,viewInfoParams:e.viewInfoParams,timeZone:e.timeZone,fieldInfos:e.fieldInfos},n),d=r(f,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:u,standardDeviationInterval:e.standardDeviationInterval,numClasses:e.numClasses,minValue:e.minValue,maxValue:e.maxValue});return m(d,u)}async function v(a){const{attribute:e,features:n}=a,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:r}=e,m=await i({field:t,valueExpression:e.valueExpression,normalizationType:o,normalizationField:l,normalizationTotal:s,viewInfoParams:e.viewInfoParams,timeZone:e.timeZone,fieldInfos:e.fieldInfos},n);return u(m,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:r,standardDeviationInterval:e.standardDeviationInterval,numBins:e.numBins,minValue:e.minValue,maxValue:e.maxValue})}async function z(i){const{attribute:n,features:t}=i,{field:o,radius:l,transform:s,spatialReference:r}=n,m=n.size??[0,0],u=a(t??[],s,r,m);return e(u,l??void 0,o,m[0],m[1])}export{c as classBreaks,z as heatmapStatistics,v as histogram,d as summaryStatistics,p as uniqueValues};
5
+ import{getDataValues as i,quantizeFeatures as e,calculateHeatmapStats as a}from"./utils.js";import{calculateStringStatistics as n,calculateStatistics as t,processSummaryStatisticsResult as o,calculateUniqueValuesCount as l,createUVResult as s,calculateClassBreaks as r,resolveCBResult as m,calculateHistogram as u,isNullCountSupported as f}from"../../../statistics/utils.js";async function d(e){const{attribute:a,features:l}=e,{normalizationType:s,normalizationField:r,minValue:m,maxValue:u,fieldType:d,outStatisticTypes:p}=a,c=await i({field:a.field,valueExpression:a.valueExpression,normalizationType:s,normalizationField:r,normalizationTotal:a.normalizationTotal,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},l),v=f({normalizationType:s,normalizationField:r,minValue:m,maxValue:u}),z={value:.5,fieldType:d},T="esriFieldTypeString"===d?n({values:c,supportsNullCount:v,percentileParams:z,outStatisticTypes:p}):t({values:c,minValue:m,maxValue:u,useSampleStdDev:!s,supportsNullCount:v,percentileParams:z,outStatisticTypes:p});return o(T,p,"esriFieldTypeDate"===d)}async function p(e){const{attribute:a,features:n}=e,t=await i({field:a.field,field2:a.field2,field3:a.field3,fieldDelimiter:a.fieldDelimiter,valueExpression:a.valueExpression,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n,!1),o=l(t);return s(o,a.domains,a.returnAllCodedValues,a.fieldDelimiter)}async function c(e){const{attribute:a,features:n}=e,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:u}=a,f=await i({field:t,valueExpression:a.valueExpression,normalizationType:o,normalizationField:l,normalizationTotal:s,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n),d=r(f,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:u,standardDeviationInterval:a.standardDeviationInterval,numClasses:a.numClasses,minValue:a.minValue,maxValue:a.maxValue});return m(d,u)}async function v(e){const{attribute:a,features:n}=e,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:r}=a,m=await i({field:t,valueExpression:a.valueExpression,sqlExpression:a.sqlExpression,normalizationType:o,normalizationField:l,normalizationTotal:s,viewInfoParams:a.viewInfoParams,timeZone:a.timeZone,fieldInfos:a.fieldInfos},n);return u(m,{field:t,normalizationType:o,normalizationField:l,normalizationTotal:s,classificationMethod:r,standardDeviationInterval:a.standardDeviationInterval,numBins:a.numBins,minValue:a.minValue,maxValue:a.maxValue})}async function z(i){const{attribute:n,features:t}=i,{field:o,radius:l,transform:s,spatialReference:r}=n,m=n.size??[0,0],u=e(t??[],s,r,m);return a(u,l??void 0,o,m[0],m[1])}export{c as classBreaks,z as heatmapStatistics,v as histogram,d as summaryStatistics,p as uniqueValues};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Error.js";import{pt2px as t}from"../../../core/screenUtils.js";import{millisecondsPerTimeUnit as n}from"../../../core/timeUtils.js";import r from"../../../geometry/Point.js";import o from"../../../geometry/SpatialReference.js";import{quantizePoint as i}from"../../../geometry/support/quantizationUtils.js";import{isWrappable as s,getInfo as l}from"../../../geometry/support/spatialReferenceUtils.js";import{isTimeOnlyField as a,isNumericField as u,numericTypes as f}from"../../../layers/support/fieldUtils.js";import{createValueFunction as c,evaluateDensityKernel as m}from"../../../renderers/support/heatmapUtils.js";import{isAnyDateField as p}from"../../support/utils.js";import{processNullValue as d,getNormalizedValue as h}from"../../../statistics/utils.js";import{loadArcade as y}from"../../../support/loadArcade.js";let $=null;const g=/^(?<hh>([01][0-9])|(2[0-3])):(?<mm>[0-5][0-9])(:(?<ss>[0-5][0-9]))?(\.(?<ms>\d+))?$/;function j(e,t,n){return e.x<0?e.x+=t:e.x>n&&(e.x-=t),e}function x(e,t,n,o){const a=s(n)?l(n):null,u=a?Math.round((a.valid[1]-a.valid[0])/t.scale[0]):null;return e.map(e=>{const n=new r(e.geometry);return i(t,n,n),e.geometry=a?j(n,u??0,o[0]):n,e})}function w(e,n=18,r,o,i){const s=new Float64Array(o*i);n=Math.round(t(n));let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;const u=c(r);for(const{geometry:t,attributes:f}of e){const{x:e,y:r}=t,c=Math.max(0,e-n),p=Math.max(0,r-n),d=Math.min(i,r+n),h=Math.min(o,e+n),y=+u(f);for(let t=p;t<d;t++)for(let i=c;i<h;i++){const u=t*o+i,f=m(i-e,t-r,n)*y,c=s[u]+=f;l=Math.min(l,c),a=Math.max(a,c)}}return{min:l,max:a}}function b(e){const t=g.exec(e);if(!t)return null;const{hh:r,mm:o,ss:i,ms:s}=t.groups;return Number(r)*n.hours+Number(o)*n.minutes+Number(i)*n.seconds+Number(s||0)}async function I(e,t,n=!0){if(!t)return[];const{field:r,field2:i,field3:s,fieldDelimiter:l,fieldInfos:u,timeZone:f}=e,c=r&&u?.find(e=>e.name.toLowerCase()===r.toLowerCase()),m=!!c&&a(c),g=!!c&&p(c),j=e.valueExpression,x=e.normalizationType,w=e.normalizationField,I=e.normalizationTotal,F=[],N=e.viewInfoParams;let E=null,v=null;if(j){if(!$){const{arcadeUtils:e}=await y();$=e}$.hasGeometryOperations(j)&&await $.enableGeometryOperations(),E=$.createFunction(j),v=N?$.getViewInfo({viewingMode:N.viewingMode,scale:N.scale,spatialReference:new o(N.spatialReference)}):null}const U=e.fieldInfos,M=!(t[0]&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass)&&U?{fields:U}:null;return t.forEach(e=>{const t=e.attributes;let o;if(j){const t=M?Object.assign({},e,{layer:M}):e,n=$.createExecContext(t,v,f);o=$.executeFunction(E,n)}else t&&(o=t[r],i?(o=`${d(o)}${l}${d(t[i])}`,s&&(o=`${o}${l}${d(t[s])}`)):"string"==typeof o&&n&&(g?o=o?new Date(o).getTime():null:m&&(o=o?b(o):null)));if(x&&"number"==typeof o&&isFinite(o)){const e=t&&parseFloat(t[w]);o=h(o,x,e,I)}F.push(o)}),F}function F(e){const t=e.field,n=e.normalizationType,r=e.normalizationField;let o;return"field"===n?o="(NOT "+r+" = 0)":"log"!==n&&"natural-log"!==n&&"square-root"!==n||(o=`(${t} > 0)`),o}function N(e,t,n){const r=null!=t?e+" >= "+t:"",o=null!=n?e+" <= "+n:"";let i="";return i=r&&o?U(r,o):r||o,i?"("+i+")":""}function E(t,n,r,o){let i;return n?n.name!==t.objectIdField&&o.includes(n.type)||(i=new e(r,"'field' should be one of these types: "+o.join(","))):i=new e(r,"'field' is not defined in the layer schema"),i}function v(t,n,r){let o;return n?n.name!==t.objectIdField&&u(n)||(o=new e(r,"'field' should be one of these numeric types: "+f.join(","))):o=new e(r,"'field' is not defined in the layer schema"),o}function U(e,t){let n=null!=e?e:"";return null!=t&&t&&(n=n?"("+n+") AND ("+t+")":t),n}function M(t,n){if(t&&"intersects"!==t.spatialRelationship)return new e(n,"Only 'intersects' spatialRelationship is supported for featureFilter")}function T(t,n,r){const o=z({layer:t,fields:n});if(o.length)return new e(r,"Unknown fields: "+o.join(", ")+". You can only use fields defined in the layer schema");const i=O({layer:t,fields:n});return i.length?new e(r,"Unsupported fields: "+i.join(", ")+". You can only use fields that can be fetched i.e. AdapterFieldUsageInfo.supportsStatistics must be true"):void 0}function z(e){const t=e.layer;return e.fields.filter(e=>!t.getField(e))}function O(e){const t=e.layer;return e.fields.filter(e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsStatistics})}function R(e,t,n){const r=[],o=[],i=[],s=[],l=[];e.forEach((e,t)=>{const a=e.field?"field":"expression",u=e.field||e.valueExpression;e.field?(l.push(u),o.push(`var ${a}${t} = Number($feature["${u}"]);`)):(r.push(`function getValueForExpr${t}() {\n ${u} \n}`),o.push(`var ${a}${t} = Number(getValueForExpr${t}());`)),n||i.push(`${a}${t} = IIf(${a}${t} < 0, 0, ${a}${t});`),s.push(`${a}${t}`)});const a=r.length?null:l.reduce((e,t)=>`${e} + ${t}`);let u=null;t||n?t?n||a&&(u=`(( ${a} ) >= 0)`):a&&(u=`(( ${a} ) <> 0)`):a&&(u=`(( ${a} ) > 0)`);return{valueExpression:[r.length?r.join("\n"):"",o.join("\n"),i.join("\n"),`var total = ${s.join(" + ")};`,"return total;"].filter(Boolean).join("\n\n"),sqlExpression:a,sqlWhere:u}}export{w as calculateHeatmapStats,I as getDataValues,N as getRangeExpr,F as getSQLFilterForNormalization,R as getSumOfAttributesExpr,U as mergeWhereClauses,x as quantizeFeatures,b as timeOnlyToMilliseconds,T as verifyBasicFieldValidity,E as verifyFieldType,M as verifyFilterValidity,v as verifyNumericField};
5
+ import e from"../../../core/Error.js";import{pt2px as t}from"../../../core/screenUtils.js";import{millisecondsPerTimeUnit as n}from"../../../core/timeUtils.js";import o from"../../../geometry/Point.js";import r from"../../../geometry/SpatialReference.js";import{quantizePoint as i}from"../../../geometry/support/quantizationUtils.js";import{isWrappable as s,getInfo as l}from"../../../geometry/support/spatialReferenceUtils.js";import a from"../../../layers/support/FieldsIndex.js";import{isTimeOnlyField as u,isNumericField as f,numericTypes as c}from"../../../layers/support/fieldUtils.js";import{createValueFunction as m,evaluateDensityKernel as p}from"../../../renderers/support/heatmapUtils.js";import{isAnyDateField as d,getWhereClause as h}from"../../support/utils.js";import{processNullValue as y,getNormalizedValue as $}from"../../../statistics/utils.js";import{loadArcade as g}from"../../../support/loadArcade.js";let j=null;const w=/^(?<hh>([01][0-9])|(2[0-3])):(?<mm>[0-5][0-9])(:(?<ss>[0-5][0-9]))?(\.(?<ms>\d+))?$/;function x(e,t,n){return e.x<0?e.x+=t:e.x>n&&(e.x-=t),e}function b(e,t,n,r){const a=s(n)?l(n):null,u=a?Math.round((a.valid[1]-a.valid[0])/t.scale[0]):null;return e.map(e=>{const n=new o(e.geometry);return i(t,n,n),e.geometry=a?x(n,u??0,r[0]):n,e})}function I(e,n=18,o,r,i){const s=new Float64Array(r*i);n=Math.round(t(n));let l=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY;const u=m(o);for(const{geometry:t,attributes:f}of e){const{x:e,y:o}=t,c=Math.max(0,e-n),m=Math.max(0,o-n),d=Math.min(i,o+n),h=Math.min(r,e+n),y=+u(f);for(let t=m;t<d;t++)for(let i=c;i<h;i++){const u=t*r+i,f=p(i-e,t-o,n)*y,c=s[u]+=f;l=Math.min(l,c),a=Math.max(a,c)}}return{min:l,max:a}}function F(e){const t=w.exec(e);if(!t)return null;const{hh:o,mm:r,ss:i,ms:s}=t.groups;return Number(o)*n.hours+Number(r)*n.minutes+Number(i)*n.seconds+Number(s||0)}async function N(e,t,n=!0){if(!t)return[];const{field:o,field2:i,field3:s,fieldDelimiter:l,sqlExpression:f,fieldInfos:c,timeZone:m}=e,p=o&&c?.find(e=>e.name.toLowerCase()===o.toLowerCase()),w=!!p&&u(p),x=!!p&&d(p),b=e.valueExpression,I=e.normalizationType,N=e.normalizationField,E=e.normalizationTotal,v=[],U=e.viewInfoParams;let M=null,T=null;if(b){if(!j){const{arcadeUtils:e}=await g();j=e}j.hasGeometryOperations(b)&&await j.enableGeometryOperations(),M=j.createFunction(b),T=U?j.getViewInfo({viewingMode:U.viewingMode,scale:U.scale,spatialReference:new r(U.spatialReference)}):null}const z=e.fieldInfos,O=!(t[0]&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass)&&z?{fields:z}:null;for await(const r of t){const e=r.attributes;let t;if(f){const e=await h(f,new a(z));e&&(t=e.calculateValue(r.attributes))}else if(b){const e=O?Object.assign({},r,{layer:O}):r,n=j.createExecContext(e,T,m);t=j.executeFunction(M,n)}else e&&(t=e[o],i?(t=`${y(t)}${l}${y(e[i])}`,s&&(t=`${t}${l}${y(e[s])}`)):"string"==typeof t&&n&&(x?t=t?new Date(t).getTime():null:w&&(t=t?F(t):null)));if(I&&"number"==typeof t&&isFinite(t)){const n=e&&parseFloat(e[N]);t=$(t,I,n,E)}v.push(t)}return v}function E(e){const t=e.field,n=e.normalizationType,o=e.normalizationField;let r;return"field"===n?r="(NOT "+o+" = 0)":"log"!==n&&"natural-log"!==n&&"square-root"!==n||(r=`(${t} > 0)`),r}function v(e,t,n){const o=null!=t?e+" >= "+t:"",r=null!=n?e+" <= "+n:"";let i="";return i=o&&r?T(o,r):o||r,i?"("+i+")":""}function U(t,n,o,r){let i;return n?n.name!==t.objectIdField&&r.includes(n.type)||(i=new e(o,"'field' should be one of these types: "+r.join(","))):i=new e(o,"'field' is not defined in the layer schema"),i}function M(t,n,o){let r;return n?n.name!==t.objectIdField&&f(n)||(r=new e(o,"'field' should be one of these numeric types: "+c.join(","))):r=new e(o,"'field' is not defined in the layer schema"),r}function T(e,t){let n=null!=e?e:"";return null!=t&&t&&(n=n?"("+n+") AND ("+t+")":t),n}function z(t,n){if(t&&"intersects"!==t.spatialRelationship)return new e(n,"Only 'intersects' spatialRelationship is supported for featureFilter")}function O(t,n,o){const r=R({layer:t,fields:n});if(r.length)return new e(o,"Unknown fields: "+r.join(", ")+". You can only use fields defined in the layer schema");const i=V({layer:t,fields:n});return i.length?new e(o,"Unsupported fields: "+i.join(", ")+". You can only use fields that can be fetched i.e. AdapterFieldUsageInfo.supportsStatistics must be true"):void 0}function R(e){const t=e.layer;return e.fields.filter(e=>!t.getField(e))}function V(e){const t=e.layer;return e.fields.filter(e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsStatistics})}function q(e,t,n){const o=[],r=[],i=[],s=[],l=[];e.forEach((e,t)=>{const a=e.field?"field":"expression",u=e.field||e.valueExpression;e.field?(l.push(u),r.push(`var ${a}${t} = Number($feature["${u}"]);`)):(o.push(`function getValueForExpr${t}() {\n ${u} \n}`),r.push(`var ${a}${t} = Number(getValueForExpr${t}());`)),n||i.push(`${a}${t} = IIf(${a}${t} < 0, 0, ${a}${t});`),s.push(`${a}${t}`)});const a=o.length?null:l.reduce((e,t)=>`${e} + ${t}`);let u=null;t||n?t?n||a&&(u=`(( ${a} ) >= 0)`):a&&(u=`(( ${a} ) <> 0)`):a&&(u=`(( ${a} ) > 0)`);return{valueExpression:[o.length?o.join("\n"):"",r.join("\n"),i.join("\n"),`var total = ${s.join(" + ")};`,"return total;"].filter(Boolean).join("\n\n"),sqlExpression:a,sqlWhere:u}}export{I as calculateHeatmapStats,N as getDataValues,v as getRangeExpr,E as getSQLFilterForNormalization,q as getSumOfAttributesExpr,T as mergeWhereClauses,b as quantizeFeatures,F as timeOnlyToMilliseconds,O as verifyBasicFieldValidity,U as verifyFieldType,z as verifyFilterValidity,M as verifyNumericField};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import{pickRandom as i}from"../../../core/arrayUtils.js";import s from"../../../core/Error.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import{isHostedAgolService as o}from"../../../layers/support/arcgisLayerUrl.js";import{isTimeOnlyField as l,isNumericField as u}from"../../../layers/support/fieldUtils.js";import{generateRenderer as c}from"../../../rest/generateRenderer.js";import m from"../../../rest/support/GenerateRendererParameters.js";import h from"../../../rest/support/PivotQuery.js";import p from"../../../rest/support/StatisticDefinition.js";import d from"../../../rest/support/UniqueValueDefinition.js";import y from"../../../rest/support/UnPivotDefinition.js";import{getArcadeForPredominantCategory as f,getSQLForPredominantCategoryName as F}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as S,getRangeExpr as w,getSQLFilterForNormalization as g}from"../../statistics/support/utils.js";import{WorkerClient as v}from"../../statistics/support/WorkerClient.js";import{isAnyDateField as _,isIntegerField as x,castIntegerFieldToFloat as q,fieldDelimiter as V}from"../utils.js";import E from"./InMemoryLayerAdapter.js";import{getQueryParamsForExpr as b,getDataRange as z,getAttributeBinsQuery as L,processQueryAttributeBinsResult as Q,binParamsFromGenRend as T}from"./support/histogramUtils.js";import{ensureFeaturesJSON as j,getSummaryStatsQuery as N,getSummaryStatisticsFromFeatureSet as B,getSummaryStatsQueryForFields as M,getSummaryStatsPivotQuery as $,getUVQuery as O,getUniqueValuesFromFeatureSet as C,defaultNumBins as P,updateQueryWithFeatureFilter as R,getHistogramFromFeatureSet as I,getFieldExpr as k,getDomainsForFields as A,getBins as U,getPredominantCategoriesFromUVInfos as D,getMissingFields as G}from"./support/utils.js";import{processSummaryStatisticsResult as J,createUVResult as W,getEqualIntervalBins as H,createClassBreaksDefinition as Z,resolveCBResult as K}from"../../../statistics/utils.js";import{getScaleToResolutionFactor as X}from"../../../views/2d/viewpointUtils.js";const Y=5,ee=2e4,te=4e5;let ie=class extends E{constructor(){super(...arguments),this.adapterName="feature-layer-adapter"}_isStatsSupportedOnService(){const e=this.layer;if(!e.capabilities?.query?.supportsStatistics||"multipatch"===this.geometryType&&!o(e.url)&&e.version<10.5)throw new s(`${this.adapterName}:not-supported`,"Layer does not support statistics query");return Promise.resolve()}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then(e=>e.features)}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(j)}_summaryStatsFromGenRend(e){const t=e.normalizationType,i=e.normalizationField;return this.classBreaks({field:e.field,numClasses:Y,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?i:void 0,minValue:e.minValue,maxValue:e.maxValue,filter:e.filter,signal:e.signal}).then(t=>{let i,s,r;if(t.classBreakInfos?.some(e=>(e.hasAvg&&(i=e),!!i)),i){const e=i.maxValue-i.minValue;s=i.minValue+e/2,r=4*e}const a={min:t.minValue,max:t.maxValue,avg:s,stddev:r};return J(a,e.outStatisticTypes)})}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType,e.filter));const i=_(t)||l(t),s="capabilities"in this.layer?this.layer.capabilities:null,r=N(this,e,t,s?.query?.supportsPercentileStatistics??!1),a=await this.layer.queryFeatures(r,{signal:e.signal}),n=B(a,i);return J(n,e.outStatisticTypes)}async _summaryStatsForFieldsBasic(e){const{outStatisticTypes:t,fields:i}=e,s=50,r=[];for(let o=0;o<i.length;o+=s){const t=i.slice(o,o+s),a=M(this,e,t);r.push(this.layer.queryFeatures(a,{signal:e.signal}))}const a=(await Promise.all(r)).flatMap(e=>e.features).map(e=>e.attributes).reduce((e,t)=>Object.assign(e,t),{}),n={};for(const o in a){const e=o.match(/^(\w+)_value_/);if(null==a[o]||!e)continue;switch(e[1]){case"min":n.min=null==n.min?a[o]:Math.min(n.min,a[o]);break;case"max":n.max=null==n.max?a[o]:Math.max(n.max,a[o]);break;case"sum":n.sum=(n.sum||0)+a[o];break;case"count":n.count=(n.count||0)+a[o]}}return J(n,t)}async _summaryStatsForFieldsAdvanced(e,t){const{outStatisticTypes:i,fields:s}=e,r=i?.exclude?.includes("variance")||i?.include&&!i.include.includes("variance"),a=i?.exclude?.includes("stddev")||i?.include&&!i.include.includes("stddev");if(null==t.sum||!t.count||r&&a)return t;t.avg=t.sum/t.count;const n=50,o=[];for(let u=0;u<s.length;u+=n){const i=s.slice(u,u+n),r=M(this,e,i);r.outStatistics=[];for(const e of i){const i=`sumOfSquares_${e}`,s=`(power(${x(this.layer,e)?q(e):e} - ${t.avg}, 2))`,a=new p({statisticType:"sum",onStatisticField:s,outStatisticFieldName:i});r.outStatistics.push(a)}o.push(this.layer.queryFeatures(r,{signal:e.signal}))}const l=(await Promise.all(o)).reduce((e,t)=>e+Object.values(t.features[0].attributes).reduce((e,t)=>e+t,0),0);return t.variance=l/(t.count-1),t.stddev=Math.sqrt(t.variance),J(t,i)}async _summaryStatsForFields(e){const t=await this._summaryStatsForFieldsBasic(e);return this._summaryStatsForFieldsAdvanced(e,t)}async _summaryStatsUsingQueryPivot(e){await this._isStatsSupportedOnService();const t="capabilities"in this.layer?this.layer.capabilities:null,i=$(this,e,t?.query?.supportsPercentileStatistics??!1),s=await this.layer.queryPivot(i,{signal:e.signal}),r=B(s,!1);return J(r,e.outStatisticTypes)}_uvFromGenRenderer(e,t){const i=e.field??void 0,s=new d({attributeField:i}),r=new m({classificationDefinition:s});return this.generateRenderer(r,e.signal).then(e=>{const t={},s=this.getField(i);return e.uniqueValues.forEach(e=>{let i=e.value;null!=i&&""!==i&&("string"!=typeof i||""!==i.trim()&&"<null>"!==i.toLowerCase())||(i=null),null==t[i]?t[i]={count:e.count,data:u(s)&&i?Number(i):i}:t[i].count=t[i].count+e.count}),{count:t}}).then(i=>W(i,[t],e.returnAllCodedValues))}async _uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(O(this,e),{signal:e.signal})).then(t=>C(t,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:V,view:e.view,signal:e.signal})).then(i=>W(i,t,e.returnAllCodedValues,V))}_getNormalizationTotal(e,t,i,s){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,outStatisticTypes:{include:["sum"]},filter:i,signal:s}).then(e=>e.sum):Promise.resolve(null)}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.filter,e.signal).then(t=>{const i=b(e,this,t);return z(i,this,e.minValue,e.maxValue).then(s=>{const r=s.min,a=s.max;if(null==r||null==a)return{bins:[],minValue:r,maxValue:a,normalizationTotal:t};const n=e.numBins||P,o=H(r,a,n),l=se(i.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),c=this.layer.createQuery();return c.where=S(c.where,i.sqlWhere),c.sqlFormat="standard",c.outStatistics=[u],c.groupByFieldsForStatistics=[l],c.orderByFields=[l],R(c,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(c,{signal:i.signal})).then(e=>I(e,r,a,n,t))})})}async _histogramForFields(e){const{min:t,max:i}=await z({fields:e.fields,sqlWhere:e.sqlWhere,filter:e.filter,signal:e.signal},this,e.minValue,e.maxValue);if(null==t||null==i)return{bins:[],minValue:t,maxValue:i};const s="newField",r=e.numBins||P,a=se(s,H(t,i,r),null!=e.minValue&&null!=e.maxValue),n=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:s}),o=new h,{where:l,timeExtent:u}=this.createQuery();return o.where=S(l,e.sqlWhere),o.outPivots=[new y({sourceFields:e.fields,valueFieldName:s})],o.outStatistics=[n],o.groupByFieldsForStatistics=[a],o.orderByFields=[a],o.timeExtent=u,R(o,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryPivot(o,{signal:e.signal})).then(e=>I(e,t,i,r))}async _histogramFromQueryAttributeBins(e){const{field:t,normalizationType:i,filter:s,signal:r}=e,a=await this._getNormalizationTotal(t,i,s,r),{query:n,min:o,max:l}=await L(e,this,a,this.createQuery());if(!n)return{bins:[],minValue:o,maxValue:l,normalizationTotal:a};const u=await this.layer.queryAttributeBins(n,{signal:r});return Q(u,t?this.getField(t):null,{minValue:o,maxValue:l,normalizationTotal:a})}_classBreaksFromGenRend(e){const{field:t,normalizationType:i,normalizationField:s,normalizationTotal:r,signal:a}=e,n=g({field:t,normalizationType:i,normalizationField:s}),o=k({field:t,normalizationType:i,normalizationField:s,normalizationTotal:r,layer:this}),l=w(o,e.minValue,e.maxValue),u=Z({field:t,normalizationType:i,normalizationField:s,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||Y}),c=new m({classificationDefinition:u});return c.where=S(n,l),this.generateRenderer(c,a).then(t=>K(t,e.classificationMethod))}async summaryStatistics(e){const{field:t,fields:i,normalizationType:a,valueExpression:n,sqlExpression:o,view:u,features:c,useFeaturesInView:m}=e,h=t?this.getField(t):null,p=_(h)||l(h),d=n&&!(o&&this.supportsSQLExpression),y=this._hasLocalSource||c||m,f="3d"===u?.type;if(i?.length){const t={...e,fields:i};if(!this.layer.capabilities?.operations?.supportsQueryPivot)return await this._summaryStatsForFields(t);try{return await this._summaryStatsUsingQueryPivot(t)}catch{return await this._summaryStatsForFields(t)}}if(y||d)return d||c||m||f||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._summaryStatsFromMemory(e,h):this._summaryStatsFromClientQuery(e,h);if(!this.supportsSQLExpression&&(p||o||"natural-log"===a||"square-root"===a))throw new s(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return(a&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,h)).catch(()=>(r(e.signal),this._summaryStatsFromMemory(e,h)))}async uniqueValues(e){const{valueExpression:t,sqlExpression:i,features:s,useFeaturesInView:a,signal:n}=e,o=t&&!(i&&this.supportsSQLExpression),l=this._hasLocalSource||s||a||o,u=e.view,c="3d"===u?.type,m=await A(e,this);return l?o||s||a||c||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m):this._uvFromServiceQuery(e,m).catch(t=>(r(n),!e.field||e.field2||e.field3||e.filter?t:this._uvFromGenRenderer(e,m[0]))).catch(()=>(r(n),c?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m)))}async histogram(e){const{field:t,normalizationType:i,normalizationField:a,classificationMethod:n,view:o,filter:u,signal:c}=e,m=t?this.getField(t):null,h=_(m)||l(m),p=e.valueExpression||e.sqlExpression,d=e.valueExpression&&!(e.sqlExpression&&this.supportsSQLExpression),y=this._hasLocalSource||e.features||e.useFeaturesInView||d,f=this.supportsSQLExpression,F=!n||"equal-interval"===n,S=e.minValue,g=e.maxValue,v=null!=S&&null!=g,x=e.numBins||P;if(e.fields?.length){if(!f)throw new s(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");if(!this.layer.capabilities?.operations?.supportsQueryPivot)throw new s(`${this.adapterName}:not-supported`,"Layer does not support pivot queries");return this._histogramForFields(e)}if(y)return this._histogramFromMemory(e);if(this.layer.capabilities?.operations?.supportsQueryBins&&e.useQueryAttributeBins)try{return await this._histogramFromQueryAttributeBins(e)}catch{return r(c),this._histogramFromQueryAttributeBinsFromMemory(e)}if((p||f)&&F){if(!f&&(p||"natural-log"===i||"square-root"===i))throw new s(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return this._histogramForExpr(e)}if(h&&F)throw new s(`${this.adapterName}:not-supported`,"Normalization and date field are not allowed when layer does not support standardized SQL expression for queries");return i||!F?T(e,this).then(r=>{if(!v)return U(this,r,t,x,o,u,c);if(S>r.max||g<r.min)throw new s(`${this.adapterName}:insufficient-data`,"Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(F)return U(this,{min:S,max:g,sqlExpr:r.sqlExpr,excludeZerosExpr:r.excludeZerosExpr},t,x,o,u,c);{const s={field:t,normalizationType:i,normalizationField:a,normalizationTotal:r.normTotal,layer:this},n=k(s),l=w(n,S,g);return T(e,this,l).then(e=>U(this,e,t,x,o,u,c))}}):this._histogramForField(e)}async classBreaks(e){const t=!1!==e.analyzeData,i=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression||e.filter;if(t&&i)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch(()=>(r(e.signal),this._classBreaksFromMemory(e)))}async queryFeatureCount(e){if(this._hasLocalSource)throw new s(`${this.adapterName}:not-supported`,"Layer does not support count query");const t=this.layer,i=t.createQuery();return i.where=S(i.where,e.whereClause),R(i,e.filter),t.queryFeatureCount(i,{signal:e.signal})}async generateRenderer(e,t){const i=this.layer;if(this._hasLocalSource||i.version<10.1)throw new s(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)");const r=i.createQuery();return e.where=S(e.where,r.where),c(i.parsedUrl?.path??"",{source:i.dynamicDataSource??void 0,gdbVersion:i.gdbVersion??void 0},e,{signal:t})}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new s(`${this.adapterName}:not-supported`,"Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:i,signal:r,filter:a}=e,n=f(t),o=F(t),l=i&&this._hasLocalSource?await this._uvFromMemory({valueExpression:n,view:i,signal:r,filter:a}):await this._uvFromServiceQuery({sqlExpression:o.expression,valueExpression:n,signal:r,filter:a});return D(l.uniqueValueInfos,t)}async getSampleFeatures(e,s){const{view:a,requiredFields:n,returnGeometry:o,filter:l,signal:u}=e,c=e.sampleSize;if(null==c||0===c)return[];const m=this.layer.createQuery(),h=1,p="json"===s;m.outSpatialReference=a?.spatialReference,m.returnGeometry=!!o,m.outFields=n,R(m,l);let d=[],y=!1;if(a)try{const r=await a.whenLayerView(this.layer);if(y=!G(this,n,r).length,y){if(c>=1&&!e.filter&&"getSampleFeatures"in r){await this._waitForLayerViewUpdate(r);const e=await r.getSampleFeatures({minFeatureCount:c,sampleSize:c});if(null!=e)return p?e:e.map(e=>t.fromJSON(e))}if(d=await this._fetchFeaturesFromMemory(r,m,u,s),d.length>=c&&c>0)return i(d,c,h)}}catch(f){r(u)}try{if(this._hasLocalSource)return y?d:p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u);const t=await this.queryFeatureCount({view:a,filter:l,signal:u}),s=this.layer.capabilities.query.maxRecordCount;let r=-1===c?t:c;if(r=s&&r>s?s:r,t<=d.length||d.length>=s)return d;if(m.maxAllowableOffset=e.resolution||(a?a.extent.width/a.width/a.scale:X(this.layer.spatialReference))*te,t<=r)return p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u);if(t<=ee){const e=this.layer.createQuery();R(e,l);const t=await this.layer.queryObjectIds();return m.objectIds=i(t,r,h),p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u)}return this.layer.capabilities?.query?.supportsPagination&&(m.num=Math.min(r,ee)),p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u)}catch(f){return r(u),d}}load(e){const t=this.layer.load(e).then(async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this._hasLocalSource="parquet"===t.type||!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=v.getInstance(),await this.workerClient.open(e.signal)});return this.addResolvingPromise(t),Promise.resolve(this)}};function se(e,t,i){const s=[],r=t.length;return t.forEach((t,a)=>{const[n,o]=t;let l=null;l=0!==a||i?a!==r-1||i?S(`${e} >= ${n}`,`${e} ${a===r-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,s.push("WHEN ("+l+") THEN "+(a+1))}),["CASE",s.join(" "),"ELSE 0","END"].join(" ")}e([a({readOnly:!0})],ie.prototype,"adapterName",void 0),e([a({constructOnly:!0})],ie.prototype,"layer",void 0),ie=e([n("esri.smartMapping.support.adapters.FeatureLayerAdapter")],ie);export{ie as default};
5
+ import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import{pickRandom as i}from"../../../core/arrayUtils.js";import s from"../../../core/Error.js";import{throwIfAborted as r}from"../../../core/promiseUtils.js";import{property as a,subclass as n}from"../../../core/accessorSupport/decorators.js";import{isHostedAgolService as o}from"../../../layers/support/arcgisLayerUrl.js";import{isTimeOnlyField as l,isNumericField as u}from"../../../layers/support/fieldUtils.js";import{generateRenderer as c}from"../../../rest/generateRenderer.js";import m from"../../../rest/support/GenerateRendererParameters.js";import h from"../../../rest/support/PivotQuery.js";import p from"../../../rest/support/StatisticDefinition.js";import d from"../../../rest/support/UniqueValueDefinition.js";import y from"../../../rest/support/UnPivotDefinition.js";import{getArcadeForPredominantCategory as f,getSQLForPredominantCategoryName as F}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as S,getRangeExpr as w,getSQLFilterForNormalization as g}from"../../statistics/support/utils.js";import{WorkerClient as v}from"../../statistics/support/WorkerClient.js";import{isAnyDateField as _,isIntegerField as x,castIntegerFieldToFloat as q,fieldDelimiter as V}from"../utils.js";import E from"./InMemoryLayerAdapter.js";import{getQueryParamsForExpr as b,getDataRange as z,getAttributeBinsQuery as L,processQueryAttributeBinsResult as Q,binParamsFromGenRend as T}from"./support/histogramUtils.js";import{ensureFeaturesJSON as j,getSummaryStatsQuery as N,getSummaryStatisticsFromFeatureSet as B,getSummaryStatsQueryForFields as M,getSummaryStatsPivotQuery as $,getUVQuery as O,getUniqueValuesFromFeatureSet as C,defaultNumBins as P,updateQueryWithFeatureFilter as R,getHistogramFromFeatureSet as I,getFieldExpr as A,getDomainsForFields as k,getBins as U,getPredominantCategoriesFromUVInfos as D,getMissingFields as G}from"./support/utils.js";import{processSummaryStatisticsResult as J,createUVResult as W,getEqualIntervalBins as H,createClassBreaksDefinition as Z,resolveCBResult as K}from"../../../statistics/utils.js";import{getScaleToResolutionFactor as X}from"../../../views/2d/viewpointUtils.js";const Y=5,ee=2e4,te=4e5;let ie=class extends E{constructor(){super(...arguments),this.adapterName="feature-layer-adapter"}_isStatsSupportedOnService(){const e=this.layer;if(!e.capabilities?.query?.supportsStatistics||"multipatch"===this.geometryType&&!o(e.url)&&e.version<10.5)throw new s(`${this.adapterName}:not-supported`,"Layer does not support statistics query");return Promise.resolve()}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then(e=>e.features)}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(j)}_summaryStatsFromGenRend(e){const t=e.normalizationType,i=e.normalizationField;return this.classBreaks({field:e.field,numClasses:Y,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?i:void 0,minValue:e.minValue,maxValue:e.maxValue,filter:e.filter,signal:e.signal}).then(t=>{let i,s,r;if(t.classBreakInfos?.some(e=>(e.hasAvg&&(i=e),!!i)),i){const e=i.maxValue-i.minValue;s=i.minValue+e/2,r=4*e}const a={min:t.minValue,max:t.maxValue,avg:s,stddev:r};return J(a,e.outStatisticTypes)})}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType,e.filter));const i=_(t)||l(t),s="capabilities"in this.layer?this.layer.capabilities:null,r=N(this,e,t,s?.query?.supportsPercentileStatistics??!1),a=await this.layer.queryFeatures(r,{signal:e.signal}),n=B(a,i);return J(n,e.outStatisticTypes)}async _summaryStatsForFieldsBasic(e){const{outStatisticTypes:t,fields:i}=e,s=50,r=[];for(let o=0;o<i.length;o+=s){const t=i.slice(o,o+s),a=M(this,e,t);r.push(this.layer.queryFeatures(a,{signal:e.signal}))}const a=(await Promise.all(r)).flatMap(e=>e.features).map(e=>e.attributes).reduce((e,t)=>Object.assign(e,t),{}),n={};for(const o in a){const e=o.match(/^(\w+)_value_/);if(null==a[o]||!e)continue;switch(e[1]){case"min":n.min=null==n.min?a[o]:Math.min(n.min,a[o]);break;case"max":n.max=null==n.max?a[o]:Math.max(n.max,a[o]);break;case"sum":n.sum=(n.sum||0)+a[o];break;case"count":n.count=(n.count||0)+a[o]}}return J(n,t)}async _summaryStatsForFieldsAdvanced(e,t){const{outStatisticTypes:i,fields:s}=e,r=i?.exclude?.includes("variance")||i?.include&&!i.include.includes("variance"),a=i?.exclude?.includes("stddev")||i?.include&&!i.include.includes("stddev");if(null==t.sum||!t.count||r&&a)return t;t.avg=t.sum/t.count;const n=50,o=[];for(let u=0;u<s.length;u+=n){const i=s.slice(u,u+n),r=M(this,e,i);r.outStatistics=[];for(const e of i){const i=`sumOfSquares_${e}`,s=`(power(${x(this.layer,e)?q(e):e} - ${t.avg}, 2))`,a=new p({statisticType:"sum",onStatisticField:s,outStatisticFieldName:i});r.outStatistics.push(a)}o.push(this.layer.queryFeatures(r,{signal:e.signal}))}const l=(await Promise.all(o)).reduce((e,t)=>e+Object.values(t.features[0].attributes).reduce((e,t)=>e+t,0),0);return t.variance=l/(t.count-1),t.stddev=Math.sqrt(t.variance),J(t,i)}async _summaryStatsForFields(e){const t=await this._summaryStatsForFieldsBasic(e);return this._summaryStatsForFieldsAdvanced(e,t)}async _summaryStatsUsingQueryPivot(e){await this._isStatsSupportedOnService();const t="capabilities"in this.layer?this.layer.capabilities:null,i=$(this,e,t?.query?.supportsPercentileStatistics??!1),s=await this.layer.queryPivot(i,{signal:e.signal}),r=B(s,!1);return J(r,e.outStatisticTypes)}_uvFromGenRenderer(e,t){const i=e.field??void 0,s=new d({attributeField:i}),r=new m({classificationDefinition:s});return this.generateRenderer(r,e.signal).then(e=>{const t={},s=this.getField(i);return e.uniqueValues.forEach(e=>{let i=e.value;null!=i&&""!==i&&("string"!=typeof i||""!==i.trim()&&"<null>"!==i.toLowerCase())||(i=null),null==t[i]?t[i]={count:e.count,data:u(s)&&i?Number(i):i}:t[i].count=t[i].count+e.count}),{count:t}}).then(i=>W(i,[t],e.returnAllCodedValues))}async _uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(O(this,e),{signal:e.signal})).then(t=>C(t,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:V,view:e.view,signal:e.signal})).then(i=>W(i,t,e.returnAllCodedValues,V))}_getNormalizationTotal(e,t,i,s){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,outStatisticTypes:{include:["sum"]},filter:i,signal:s}).then(e=>e.sum):Promise.resolve(null)}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.filter,e.signal).then(t=>{const i=b(e,this,t);return z(i,this,e.minValue,e.maxValue).then(s=>{const r=s.min,a=s.max;if(null==r||null==a)return{bins:[],minValue:r,maxValue:a,normalizationTotal:t};const n=e.numBins||P,o=H(r,a,n),l=se(i.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),c=this.layer.createQuery();return c.where=S(c.where,i.sqlWhere),c.sqlFormat="standard",c.outStatistics=[u],c.groupByFieldsForStatistics=[l],c.orderByFields=[l],R(c,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryFeatures(c,{signal:i.signal})).then(e=>I(e,r,a,n,t))})})}async _histogramForFields(e){const{min:t,max:i}=await z({fields:e.fields,sqlWhere:e.sqlWhere,filter:e.filter,signal:e.signal},this,e.minValue,e.maxValue);if(null==t||null==i)return{bins:[],minValue:t,maxValue:i};const s="newField",r=e.numBins||P,a=se(s,H(t,i,r),null!=e.minValue&&null!=e.maxValue),n=new p({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:s}),o=new h,{where:l,timeExtent:u}=this.createQuery();return o.where=S(l,e.sqlWhere),o.outPivots=[new y({sourceFields:e.fields,valueFieldName:s})],o.outStatistics=[n],o.groupByFieldsForStatistics=[a],o.orderByFields=[a],o.timeExtent=u,R(o,e.filter),this._isStatsSupportedOnService().then(()=>this.layer.queryPivot(o,{signal:e.signal})).then(e=>I(e,t,i,r))}async _histogramFromQueryAttributeBins(e){const{field:t,normalizationType:i,filter:s,signal:r}=e,a=await this._getNormalizationTotal(t,i,s,r),{query:n,min:o,max:l}=await L(e,this,a,this.createQuery());if(!n)return{bins:[],minValue:o,maxValue:l,normalizationTotal:a};const u=await this.layer.queryAttributeBins(n,{signal:r});return Q(u,t?this.getField(t):null,{minValue:o,maxValue:l,normalizationTotal:a})}_classBreaksFromGenRend(e){const{field:t,normalizationType:i,normalizationField:s,normalizationTotal:r,signal:a}=e,n=g({field:t,normalizationType:i,normalizationField:s}),o=A({field:t,normalizationType:i,normalizationField:s,normalizationTotal:r,layer:this}),l=w(o,e.minValue,e.maxValue),u=Z({field:t,normalizationType:i,normalizationField:s,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||Y}),c=new m({classificationDefinition:u});return c.where=S(n,l),this.generateRenderer(c,a).then(t=>K(t,e.classificationMethod))}async summaryStatistics(e){const{field:t,fields:i,normalizationType:a,valueExpression:n,sqlExpression:o,view:u,features:c,useFeaturesInView:m}=e,h=t?this.getField(t):null,p=_(h)||l(h),d=n&&!(o&&this.supportsSQLExpression),y=this._hasLocalSource||c||m,f="3d"===u?.type;if(i?.length){const t={...e,fields:i};if(!this.layer.capabilities?.operations?.supportsQueryPivot)return await this._summaryStatsForFields(t);try{return await this._summaryStatsUsingQueryPivot(t)}catch{return await this._summaryStatsForFields(t)}}if(y||d)return d||c||m||f||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._summaryStatsFromMemory(e,h):this._summaryStatsFromClientQuery(e,h);if(!this.supportsSQLExpression&&(p||o||"natural-log"===a||"square-root"===a))throw new s(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return(a&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,h)).catch(()=>(r(e.signal),this._summaryStatsFromMemory(e,h)))}async uniqueValues(e){const{valueExpression:t,sqlExpression:i,features:s,useFeaturesInView:a,signal:n}=e,o=t&&!(i&&this.supportsSQLExpression),l=this._hasLocalSource||s||a||o,u=e.view,c="3d"===u?.type,m=await k(e,this);return l?o||s||a||c||this._hasLocalSource&&!this.layer.capabilities.query.supportsStatistics?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m):this._uvFromServiceQuery(e,m).catch(t=>(r(n),!e.field||e.field2||e.field3||e.filter?t:this._uvFromGenRenderer(e,m[0]))).catch(()=>(r(n),c?this._uvFromMemory(e,m):this._uvFromClientQuery(e,m)))}async histogram(e){const{field:t,normalizationType:i,normalizationField:a,classificationMethod:n,view:o,filter:u,signal:c}=e,m=t?this.getField(t):null,h=_(m)||l(m),p=e.valueExpression||e.sqlExpression,d=e.valueExpression&&!(e.sqlExpression&&this.supportsSQLExpression),y=this._hasLocalSource||e.features||e.useFeaturesInView||d,f=this.supportsSQLExpression,F=!n||"equal-interval"===n,S=e.minValue,g=e.maxValue,v=null!=S&&null!=g,x=e.numBins||P;if(e.fields?.length){if(!f)throw new s(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");if(!this.layer.capabilities?.operations?.supportsQueryPivot)throw new s(`${this.adapterName}:not-supported`,"Layer does not support pivot queries");return this._histogramForFields(e)}if(this.layer.capabilities?.operations?.supportsQueryBins&&e.useQueryAttributeBins){if(y)return this._histogramFromQueryAttributeBinsFromMemory(e);try{return await this._histogramFromQueryAttributeBins(e)}catch{return r(c),this._histogramFromQueryAttributeBinsFromMemory(e)}}if(y)return this._histogramFromMemory(e);if((p||f)&&F){if(!f&&(p||"natural-log"===i||"square-root"===i))throw new s(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return this._histogramForExpr(e)}if(h&&F)throw new s(`${this.adapterName}:not-supported`,"Normalization and date field are not allowed when layer does not support standardized SQL expression for queries");return i||!F?T(e,this).then(r=>{if(!v)return U(this,r,t,x,o,u,c);if(S>r.max||g<r.min)throw new s(`${this.adapterName}:insufficient-data`,"Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(F)return U(this,{min:S,max:g,sqlExpr:r.sqlExpr,excludeZerosExpr:r.excludeZerosExpr},t,x,o,u,c);{const s={field:t,normalizationType:i,normalizationField:a,normalizationTotal:r.normTotal,layer:this},n=A(s),l=w(n,S,g);return T(e,this,l).then(e=>U(this,e,t,x,o,u,c))}}):this._histogramForField(e)}async classBreaks(e){const t=!1!==e.analyzeData,i=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression||e.filter;if(t&&i)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch(()=>(r(e.signal),this._classBreaksFromMemory(e)))}async queryFeatureCount(e){if(this._hasLocalSource)throw new s(`${this.adapterName}:not-supported`,"Layer does not support count query");const t=this.layer,i=t.createQuery();return i.where=S(i.where,e.whereClause),R(i,e.filter),t.queryFeatureCount(i,{signal:e.signal})}async generateRenderer(e,t){const i=this.layer;if(this._hasLocalSource||i.version<10.1)throw new s(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)");const r=i.createQuery();return e.where=S(e.where,r.where),c(i.parsedUrl?.path??"",{source:i.dynamicDataSource??void 0,gdbVersion:i.gdbVersion??void 0},e,{signal:t})}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new s(`${this.adapterName}:not-supported`,"Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:i,signal:r,filter:a}=e,n=f(t),o=F(t),l=i&&this._hasLocalSource?await this._uvFromMemory({valueExpression:n,view:i,signal:r,filter:a}):await this._uvFromServiceQuery({sqlExpression:o.expression,valueExpression:n,signal:r,filter:a});return D(l.uniqueValueInfos,t)}async getSampleFeatures(e,s){const{view:a,requiredFields:n,returnGeometry:o,filter:l,signal:u}=e,c=e.sampleSize;if(null==c||0===c)return[];const m=this.layer.createQuery(),h=1,p="json"===s;m.outSpatialReference=a?.spatialReference,m.returnGeometry=!!o,m.outFields=n,R(m,l);let d=[],y=!1;if(a)try{const r=await a.whenLayerView(this.layer);if(y=!G(this,n,r).length,y){if(c>=1&&!e.filter&&"getSampleFeatures"in r){await this._waitForLayerViewUpdate(r);const e=await r.getSampleFeatures({minFeatureCount:c,sampleSize:c});if(null!=e)return p?e:e.map(e=>t.fromJSON(e))}if(d=await this._fetchFeaturesFromMemory(r,m,u,s),d.length>=c&&c>0)return i(d,c,h)}}catch(f){r(u)}try{if(this._hasLocalSource)return y?d:p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u);const t=await this.queryFeatureCount({view:a,filter:l,signal:u}),s=this.layer.capabilities.query.maxRecordCount;let r=-1===c?t:c;if(r=s&&r>s?s:r,t<=d.length||d.length>=s)return d;if(m.maxAllowableOffset=e.resolution||(a?a.extent.width/a.width/a.scale:X(this.layer.spatialReference))*te,t<=r)return p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u);if(t<=ee){const e=this.layer.createQuery();R(e,l);const t=await this.layer.queryObjectIds();return m.objectIds=i(t,r,h),p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u)}return this.layer.capabilities?.query?.supportsPagination&&(m.num=Math.min(r,ee)),p?await this._fetchFeaturesJSONFromService(m,u):await this._fetchFeaturesFromService(m,u)}catch(f){return r(u),d}}load(e){const t=this.layer.load(e).then(async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.capabilities?.query?.supportsSqlExpression,this._hasLocalSource="parquet"===t.type||!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=v.getInstance(),await this.workerClient.open(e.signal)});return this.addResolvingPromise(t),Promise.resolve(this)}};function se(e,t,i){const s=[],r=t.length;return t.forEach((t,a)=>{const[n,o]=t;let l=null;l=0!==a||i?a!==r-1||i?S(`${e} >= ${n}`,`${e} ${a===r-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,s.push("WHEN ("+l+") THEN "+(a+1))}),["CASE",s.join(" "),"ELSE 0","END"].join(" ")}e([a({readOnly:!0})],ie.prototype,"adapterName",void 0),e([a({constructOnly:!0})],ie.prototype,"layer",void 0),ie=e([n("esri.smartMapping.support.adapters.FeatureLayerAdapter")],ie);export{ie as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import a from"../../../core/Logger.js";import{assertIsSome as i}from"../../../core/maybe.js";import{timeout as s,throwIfAborted as o}from"../../../core/promiseUtils.js";import{whenOnce as n}from"../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{toQuantizationTransform as m}from"../../../geometry/support/quantizationUtils.js";import{kebabDict as p}from"../../../layers/support/fieldType.js";import{isTimeOnlyField as y}from"../../../layers/support/fieldUtils.js";import c from"../../../rest/support/QuantizationParameters.js";import{getArcadeForPredominantCategory as f}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as d,uniqueValues as h,histogram as w,classBreaks as g,heatmapStatistics as F}from"../../statistics/support/statsWorker.js";import{mergeWhereClauses as S}from"../../statistics/support/utils.js";import{WorkerClient as v}from"../../statistics/support/WorkerClient.js";import{getFieldsList as q,isAnyDateField as V,fieldDelimiter as x}from"../utils.js";import _ from"./LayerAdapter.js";import{getHistogramAttributeDefinition as z,getAttributeBinsQuery as T,processQueryAttributeBinsResult as N}from"./support/histogramUtils.js";import{ensureFeaturesJSON as M,getSummaryStatsQuery as L,getSummaryStatisticsFromFeatureSet as C,getViewInfoParams as E,getMissingFields as j,updateQueryWithFeatureFilter as b,getUVQuery as k,getUniqueValuesFromFeatureSet as I,getBins as O,getDomainsForFields as Q,getPredominantCategoriesFromUVInfos as J}from"./support/utils.js";import{processSummaryStatisticsResult as B,createUVResult as P,resolveCBResult as U}from"../../../statistics/utils.js";import{loadArcade as A}from"../../../support/loadArcade.js";const $=5;let G=null,R=class extends _{constructor(){super(...arguments),this._hasLocalSource=!1,this.adapterName="in-memory-layer-adapter"}destroy(){this.workerClient?.destroy()}async _waitForLayerViewUpdate(e){if(!e)throw new r(`${this.adapterName}:insufficient-data`,"layerView is required to fetch the features");const t=new AbortController,i=n(()=>!e.updating,t.signal);await s(i,5e3,t).catch(e=>{throw a.getLogger(this).warn("LayerView is taking too long to update. Aborting fetch from layerView."),e})}async _fetchFeatureSetFromMemory(e,t,a){const i=this.layer;if(this._hasLocalSource&&"queryFeatures"in i)return i.queryFeatures(e);if(!t)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=await t.whenLayerView(this.layer);return await this._waitForLayerViewUpdate(s),s.queryFeatures(e,{signal:a})}async _fetchFeaturesFromMemory(e,t,a,i){const s=this.layer,o="json"===i;if(this._hasLocalSource&&"queryFeatures"in s){const e=await s.queryFeatures(t);return o?M(e.features):e.features}if(await this._waitForLayerViewUpdate(e),o&&"queryFeaturesJSON"in e&&e.queryFeaturesJSON){const{features:r}=await e.queryFeaturesJSON(t,{signal:a});return r}if(!("queryFeatures"in e))throw new r(`${this.adapterName}:not-supported`,"'queryFeatures' is not supported on the layerView");const n=await e.queryFeatures(t,{signal:a});return o?M(n.features):n.features}_fetchFeaturesForStats(e,t){return q({field:e.field,field2:e.field2,field3:e.field3,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then(r=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,filter:e.filter,requiredFields:r,signal:e.signal},t))}async _summaryStatsFromClientQuery(e,t){const{view:r,signal:a}=e,i=L(this,e,t),s=await this._fetchFeatureSetFromMemory(i,r,a),o=C(s,V(t)||y(t));return B(o,e.outStatisticTypes)}async _getNormalizationTotalFromMemory(e,t,a){const{featuresJSON:i,graphics:s,layerView:o,query:n}=t,l={include:["sum"]},u=(!i&&!s&&o&&"querySummaryStatistics"in o?await o.querySummaryStatistics(n,{field:e},{signal:a}):i?await this.workerClient.summaryStatistics({field:e,outStatisticTypes:l},i):await d({attribute:{field:e,outStatisticTypes:l},features:s??[]})).sum;if(null==u)throw new r(`${this.adapterName}:invalid`,"invalid normalizationTotal");return u}async _summaryStatsFromMemory(e,t){const{view:r,field:a,valueExpression:i,normalizationType:s,signal:o}=e,n={field:a,valueExpression:i,normalizationType:s,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,outStatisticTypes:e.outStatisticTypes},{featuresJSON:l,graphics:u,layerView:m,query:y,fieldInfos:c}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"querySummaryStatistics"});return i&&r&&(l||u)&&(n.fieldType=t?.type?p.toJSON(t.type):null,n.viewInfoParams=E(r),n.timeZone=r.timeZone,n.fieldInfos=c),"percent-of-total"===s&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:l,graphics:u,layerView:m,query:y},o)),!l&&!u&&m&&"querySummaryStatistics"in m?m.querySummaryStatistics(y,n,{signal:o}):l?this.workerClient.summaryStatistics(n,l):d({attribute:n,features:u})}async _getFilteredFeatures(e,t){let r=e;const a=t?.geometry;if("intersects"===t?.spatialRelationship&&a){const t=await import("../../../geometry/operators/intersectionOperator.js");r=e.filter(({geometry:e})=>!(!e||!t.execute(e,a)))}return e.length&&"declaredClass"in e[0]&&"esri.Graphic"===e[0].declaredClass?{graphics:r}:{featuresJSON:r}}async _processStatsFromMemoryParams(e){const{features:t,filter:r}=e;if(t?.length)return this._getFilteredFeatures(t,r);const{view:a,field:i,field2:s,field3:o,normalizationField:n,valueExpression:l,layerViewFunc:u,signal:m}=e;let p=e.returnGeometry;if(null==p&&l){if(!G){const{arcadeUtils:e}=await A();G=e}const e=G.hasGeometryOperations(l);e&&await G.enableGeometryOperations(),p=e}let y=null,c=null,f=null,d=null,h=null;if(a)try{const e="subtype-sublayer"===this.layer.type?this.layer.parent:this.layer;y=await a.whenLayerView(e),c=null!=u&&null!=y&&u in y&&"function"==typeof y[u]}catch{c=!1}if(c)try{await this._waitForLayerViewUpdate(y);const e=await q({field:i,field2:s,field3:o,normalizationField:n,valueExpression:l});j(this,e,y).length?c=!1:(f=this.layer.createQuery(),f.outFields=e,f.returnGeometry=!1,b(f,r)),y.suspended&&(c=!1)}catch{c=!1}return c||(d=await this._fetchFeaturesForStats({field:i,field2:s,field3:o,valueExpression:l,normalizationField:n,returnGeometry:p,filter:r,view:a,signal:m},"json"),h=(await q({valueExpression:l})).map(e=>this.getField(e)?.toJSON()).filter(Boolean)),{layerView:y,query:f,featuresJSON:d,fieldInfos:h}}async _uvFromClientQuery(e,t){const{view:r,signal:a}=e,i=k(this,e),s=await this._fetchFeatureSetFromMemory(i,r,a),o=await I(s,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:x,view:e.view,signal:e.signal});return P(o,t,e.returnAllCodedValues,x)}async _uvFromMemory(e,t){const{view:r,field:a,valueExpression:i,returnAllCodedValues:s,signal:o}=e,{featuresJSON:n,graphics:l,layerView:u,query:m,fieldInfos:p}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryUniqueValues"}),y={field:a,field2:e.field2,field3:e.field3,fieldDelimiter:x,valueExpression:i,domains:t,returnAllCodedValues:s};return i&&r&&(n||l)&&(y.viewInfoParams=E(r),y.timeZone=r.timeZone,y.fieldInfos=p),!n&&!l&&u&&"queryUniqueValues"in u?u.queryUniqueValues(m,y,{signal:o}):n?this.workerClient.uniqueValues(y,n):h({attribute:y,features:l})}_histogramForField(e){let t=null;return t=null!=e.minValue&&null!=e.maxValue?Promise.resolve({min:e.minValue,max:e.maxValue}):this.summaryStatistics({...e,outStatisticTypes:{include:["min","max","count"]}}).then(e=>{if(!e.count)throw new r(`${this.adapterName}:insufficient-data`,"Either the layer has no features or none of the features have data for the field");return{min:e.min,max:e.max}}),t.then(t=>O(this,{min:t.min,max:t.max},e.field,e.numBins??void 0,e.view,e.filter,e.signal))}async _histogramFromQueryAttributeBinsFromMemory(e){const{field:t,normalizationType:r,signal:a}=e,i=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryAttributeBins"}),{featuresJSON:s,graphics:o,layerView:n,query:l}=i,u="percent-of-total"===r?e.normalizationTotal??await this._getNormalizationTotalFromMemory(t,i,a):void 0;if(!n||!("queryAttributeBins"in n)||s||o){const t=z(e,i,u);return s?this.workerClient.histogram(t,s):w({attribute:t,features:o})}const{query:m,min:p,max:y}=await T(e,this,u,l);if(!m)return{bins:[],minValue:p,maxValue:y,normalizationTotal:u};const c=await n.queryAttributeBins(m,{signal:a});return N(c,t?this.getField(t):null,{minValue:p,maxValue:y,normalizationTotal:u})}async _histogramFromMemory(e){const{field:t,signal:r}=e,a=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryHistogram"}),{featuresJSON:i,graphics:s,layerView:o,query:n}=a,l="percent-of-total"===e.normalizationType?e.normalizationTotal??await this._getNormalizationTotalFromMemory(t,a,r):void 0,u=z(e,a,l);return!i&&!s&&o&&"queryHistogram"in o?o.queryHistogram(n,u,{signal:r}):i?this.workerClient.histogram(u,i):w({attribute:u,features:s})}_classBreaksFromInterpolation(e){const{minValue:t,maxValue:r}=e,a=e.numClasses||$,i=[],s=(r-t)/a;for(let l=0;l<a;l++){const e=t+l*s;i.push({minValue:e,maxValue:e+s})}i[a-1].maxValue=r;const o={classBreaks:i,normalizationTotal:e.normalizationTotal},n=U(o,e.classificationMethod);return Promise.resolve(n)}async _classBreaksFromMemory(e){const{view:t,field:r,valueExpression:a,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryClassBreaks"}),m={field:r,valueExpression:a,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return a&&t&&(s||o)&&(m.viewInfoParams=E(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryClassBreaks"in n?n.queryClassBreaks(l,m,{signal:i}):s?this.workerClient.classBreaks(m,s):g({attribute:m,features:o})}async _heatmapStatsFromMemory(e){const{view:t,field:r,radius:a,signal:s}=e;i(t,"InMemoryLayerAdapter: must have a view");try{const r=await t.whenLayerView(this.layer);if("queryHeatmapStatistics"in r&&!r.updating&&!e.filter)return await r.queryHeatmapStatistics({field:e.field,radius:e.radius})}catch{o(s)}const{featuresJSON:n,graphics:l}=await this._processStatsFromMemoryParams({...e,returnGeometry:!0}),u=new c({extent:t.extent,tolerance:"2d"===t.type?t.state.resolution:t.pixelSizeAt?.(t.center)}),p={field:r,radius:a,transform:m(u),spatialReference:t.spatialReference?.toJSON(),size:t.size};return n?.length||l?.length?n?this.workerClient.heatmapStatistics(p,n):F({attribute:p,features:l}):{min:null,max:null}}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!0,supportsStatistics:!0}:null}getFieldDomain(e,t){return this.layer.getFieldDomain(e,t)}createQuery(){return this.layer.createQuery()}async summaryStatistics(e){const{field:t,valueExpression:a,sqlExpression:i,features:s,view:o}=e,n=t?this.getField(t):null,l=!!a,u="3d"===o?.type;if(!a&&i&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return l||s||u?this._summaryStatsFromMemory(e,n):this._summaryStatsFromClientQuery(e,n)}async uniqueValues(e){const{valueExpression:t,sqlExpression:a,features:i,view:s}=e,o=await Q(e,this),n=!!t,l="3d"===s?.type;if(!t&&a&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return n||i||l?this._uvFromMemory(e,o):this._uvFromClientQuery(e,o)}async histogram(e){const{features:t,valueExpression:a,normalizationType:i,sqlExpression:s}=e,o=t||!!a;if(!a&&s&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return o||i?this._histogramFromMemory(e):this._histogramForField(e)}async classBreaks(e){return!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)}async queryFeatureCount(e){const{whereClause:t,view:a,signal:i}=e;if(!a)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=this.layer.createQuery();s.where=S(s.where,t);const o=await a.whenLayerView(this.layer);return await n(()=>!o.updating,i),o.queryFeatureCount(s,{signal:i})}async generateRenderer(e,t){throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation")}async predominantCategories(e){const{fields:t,view:r,signal:a,filter:i}=e,s=f(t),o=await this._uvFromMemory({valueExpression:s,view:r,signal:a,filter:i});return J(o.uniqueValueInfos,t)}async heatmapStatistics(e){return this._heatmapStatsFromMemory(e)}async getSampleFeatures(e,a){const{view:i,sampleSize:s,requiredFields:o,returnGeometry:n,filter:l,signal:u}=e,m=this.layer.createQuery(),p=1;if(m.outSpatialReference=i?.spatialReference,m.returnGeometry=!!n,m.outFields=o,b(m,l),!i)throw new r(`${this.adapterName}:not-supported`,"view is required to get sample features for Layer");const y=await i.whenLayerView(this.layer);if(j(this,o,y).length)throw new r(`${this.adapterName}:not-supported`,"Required fields need to be passed in the outFields for Layer");const c=await this._fetchFeaturesFromMemory(y,m,u,a),f=null!=s&&s>0&&s<=c.length?s:c.length;return t(c,f,p)}load(e){const t=this.layer.load(e).then(async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression="stream"===t.type||!!t.capabilities?.query?.supportsSqlExpression,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent="fullExtent"in t?t.fullExtent:t.parent?.fullExtent,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.workerClient=v.getInstance(),await this.workerClient.open(e.signal)});return this.addResolvingPromise(t),Promise.resolve(this)}};e([l({readOnly:!0})],R.prototype,"adapterName",void 0),e([l({constructOnly:!0})],R.prototype,"layer",void 0),R=e([u("esri.smartMapping.support.adapters.InMemoryLayerAdapter")],R);export{R as default};
5
+ import{__decorate as e}from"tslib";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import a from"../../../core/Logger.js";import{assertIsSome as i}from"../../../core/maybe.js";import{timeout as s,throwIfAborted as o}from"../../../core/promiseUtils.js";import{whenOnce as n}from"../../../core/reactiveUtils.js";import{property as l,subclass as u}from"../../../core/accessorSupport/decorators.js";import{toQuantizationTransform as m}from"../../../geometry/support/quantizationUtils.js";import{kebabDict as p}from"../../../layers/support/fieldType.js";import{isTimeOnlyField as y}from"../../../layers/support/fieldUtils.js";import f from"../../../rest/support/QuantizationParameters.js";import{getArcadeForPredominantCategory as c}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as d,uniqueValues as h,histogram as w,classBreaks as g,heatmapStatistics as F}from"../../statistics/support/statsWorker.js";import{mergeWhereClauses as S}from"../../statistics/support/utils.js";import{WorkerClient as q}from"../../statistics/support/WorkerClient.js";import{getFieldsList as v,isAnyDateField as x,getWhereClause as V,fieldDelimiter as _}from"../utils.js";import z from"./LayerAdapter.js";import{getHistogramAttributeDefinition as T,getAttributeBinsQuery as N,processQueryAttributeBinsResult as M}from"./support/histogramUtils.js";import{ensureFeaturesJSON as L,getSummaryStatsQuery as E,getSummaryStatisticsFromFeatureSet as C,getViewInfoParams as j,getMissingFields as b,updateQueryWithFeatureFilter as I,getUVQuery as k,getUniqueValuesFromFeatureSet as O,getBins as Q,getDomainsForFields as J,getPredominantCategoriesFromUVInfos as B}from"./support/utils.js";import{processSummaryStatisticsResult as P,createUVResult as U,resolveCBResult as A}from"../../../statistics/utils.js";import{loadArcade as $}from"../../../support/loadArcade.js";const G=5;let R=null,D=class extends z{constructor(){super(...arguments),this._hasLocalSource=!1,this.adapterName="in-memory-layer-adapter"}destroy(){this.workerClient?.destroy()}async _waitForLayerViewUpdate(e){if(!e)throw new r(`${this.adapterName}:insufficient-data`,"layerView is required to fetch the features");const t=new AbortController,i=n(()=>!e.updating,t.signal);await s(i,5e3,t).catch(e=>{throw a.getLogger(this).warn("LayerView is taking too long to update. Aborting fetch from layerView."),e})}async _fetchFeatureSetFromMemory(e,t,a){const i=this.layer;if(this._hasLocalSource&&"queryFeatures"in i)return i.queryFeatures(e);if(!t)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=await t.whenLayerView(this.layer);return await this._waitForLayerViewUpdate(s),s.queryFeatures(e,{signal:a})}async _fetchFeaturesFromMemory(e,t,a,i){const s=this.layer,o="json"===i;if(this._hasLocalSource&&"queryFeatures"in s){const e=await s.queryFeatures(t);return o?L(e.features):e.features}if(await this._waitForLayerViewUpdate(e),o&&"queryFeaturesJSON"in e&&e.queryFeaturesJSON){const{features:r}=await e.queryFeaturesJSON(t,{signal:a});return r}if(!("queryFeatures"in e))throw new r(`${this.adapterName}:not-supported`,"'queryFeatures' is not supported on the layerView");const n=await e.queryFeatures(t,{signal:a});return o?L(n.features):n.features}_fetchFeaturesForStats(e,t){return v({field:e.field,field2:e.field2,field3:e.field3,normalizationField:e.normalizationField,valueExpression:e.valueExpression,fields:e.fields}).then(r=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,filter:e.filter,requiredFields:r,signal:e.signal},t))}async _summaryStatsFromClientQuery(e,t){const{view:r,signal:a}=e,i=E(this,e,t),s=await this._fetchFeatureSetFromMemory(i,r,a),o=C(s,x(t)||y(t));return P(o,e.outStatisticTypes)}async _getNormalizationTotalFromMemory(e,t,a){const{featuresJSON:i,graphics:s,layerView:o,query:n}=t,l={include:["sum"]},u=(!i&&!s&&o&&"querySummaryStatistics"in o?await o.querySummaryStatistics(n,{field:e},{signal:a}):i?await this.workerClient.summaryStatistics({field:e,outStatisticTypes:l},i):await d({attribute:{field:e,outStatisticTypes:l},features:s??[]})).sum;if(null==u)throw new r(`${this.adapterName}:invalid`,"invalid normalizationTotal");return u}async _summaryStatsFromMemory(e,t){const{view:r,field:a,valueExpression:i,normalizationType:s,signal:o}=e,n={field:a,valueExpression:i,normalizationType:s,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,outStatisticTypes:e.outStatisticTypes},{featuresJSON:l,graphics:u,layerView:m,query:y,fieldInfos:f}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"querySummaryStatistics"});return i&&r&&(l||u)&&(n.fieldType=t?.type?p.toJSON(t.type):null,n.viewInfoParams=j(r),n.timeZone=r.timeZone,n.fieldInfos=f),"percent-of-total"===s&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:l,graphics:u,layerView:m,query:y},o)),!l&&!u&&m&&"querySummaryStatistics"in m?m.querySummaryStatistics(y,n,{signal:o}):l?this.workerClient.summaryStatistics(n,l):d({attribute:n,features:u})}async _getFilteredFeatures(e,t){let r=e;const a=t?.geometry;if("intersects"===t?.spatialRelationship&&a){const t=await import("../../../geometry/operators/intersectionOperator.js");r=e.filter(({geometry:e})=>!(!e||!t.execute(e,a)))}return e.length&&"declaredClass"in e[0]&&"esri.Graphic"===e[0].declaredClass?{graphics:r}:{featuresJSON:r}}async _processStatsFromMemoryParams(e){const{features:t,filter:r}=e;if(t?.length)return this._getFilteredFeatures(t,r);const{view:a,field:i,field2:s,field3:o,normalizationField:n,valueExpression:l,sqlExpression:u,layerViewFunc:m,signal:p}=e;let y=e.returnGeometry;if(null==y&&l){if(!R){const{arcadeUtils:e}=await $();R=e}const e=R.hasGeometryOperations(l);e&&await R.enableGeometryOperations(),y=e}let f=null,c=null,d=null,h=null,w=null;if(a)try{const e="subtype-sublayer"===this.layer.type?this.layer.parent:this.layer;f=await a.whenLayerView(e),c=null!=m&&null!=f&&m in f&&"function"==typeof f[m]}catch{c=!1}if(c)try{await this._waitForLayerViewUpdate(f);const e=u?await V(u,this.layer.fieldsIndex):null,t=e?.fieldNames,a=await v({field:i,field2:s,field3:o,normalizationField:n,valueExpression:l,fields:t});b(this,a,f).length?c=!1:(d=this.layer.createQuery(),d.outFields=a,d.returnGeometry=!1,I(d,r)),f.suspended&&(c=!1)}catch{c=!1}if(!c){const e=u?await V(u,this.layer.fieldsIndex):null,t=e?.fieldNames;h=await this._fetchFeaturesForStats({field:i,field2:s,field3:o,fields:t,valueExpression:l,normalizationField:n,returnGeometry:y,filter:r,view:a,signal:p},"json"),w=(await v({valueExpression:l})).map(e=>this.getField(e)?.toJSON()).filter(Boolean)}return{layerView:f,query:d,featuresJSON:h,fieldInfos:w}}async _uvFromClientQuery(e,t){const{view:r,signal:a}=e,i=k(this,e),s=await this._fetchFeatureSetFromMemory(i,r,a),o=await O(s,{layer:this,field:e.field,field2:e.field2,field3:e.field3,fieldDelimiter:_,view:e.view,signal:e.signal});return U(o,t,e.returnAllCodedValues,_)}async _uvFromMemory(e,t){const{view:r,field:a,valueExpression:i,returnAllCodedValues:s,signal:o}=e,{featuresJSON:n,graphics:l,layerView:u,query:m,fieldInfos:p}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryUniqueValues"}),y={field:a,field2:e.field2,field3:e.field3,fieldDelimiter:_,valueExpression:i,domains:t,returnAllCodedValues:s};return i&&r&&(n||l)&&(y.viewInfoParams=j(r),y.timeZone=r.timeZone,y.fieldInfos=p),!n&&!l&&u&&"queryUniqueValues"in u?u.queryUniqueValues(m,y,{signal:o}):n?this.workerClient.uniqueValues(y,n):h({attribute:y,features:l})}_histogramForField(e){let t=null;return t=null!=e.minValue&&null!=e.maxValue?Promise.resolve({min:e.minValue,max:e.maxValue}):this.summaryStatistics({...e,outStatisticTypes:{include:["min","max","count"]}}).then(e=>{if(!e.count)throw new r(`${this.adapterName}:insufficient-data`,"Either the layer has no features or none of the features have data for the field");return{min:e.min,max:e.max}}),t.then(t=>Q(this,{min:t.min,max:t.max},e.field,e.numBins??void 0,e.view,e.filter,e.signal))}async _histogramFromQueryAttributeBinsFromMemory(e){const{field:t,normalizationType:r,signal:a}=e,i=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryAttributeBins"}),{featuresJSON:s,graphics:o,layerView:n,query:l}=i,u="percent-of-total"===r?e.normalizationTotal??await this._getNormalizationTotalFromMemory(t,i,a):void 0;if(!n||!("queryAttributeBins"in n)||s||o){const t=T(e,i,u);return s?this.workerClient.histogram(t,s):w({attribute:t,features:o})}const{query:m,min:p,max:y}=await N(e,this,u,l);if(!m)return{bins:[],minValue:p,maxValue:y,normalizationTotal:u};const f=await n.queryAttributeBins(m,{signal:a});return M(f,t?this.getField(t):null,{minValue:p,maxValue:y,normalizationTotal:u})}async _histogramFromMemory(e){const{field:t,signal:r}=e,a=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryHistogram"}),{featuresJSON:i,graphics:s,layerView:o,query:n}=a,l="percent-of-total"===e.normalizationType?e.normalizationTotal??await this._getNormalizationTotalFromMemory(t,a,r):void 0,u=T(e,a,l);return!i&&!s&&o&&"queryHistogram"in o?o.queryHistogram(n,u,{signal:r}):i?this.workerClient.histogram(u,i):w({attribute:u,features:s})}_classBreaksFromInterpolation(e){const{minValue:t,maxValue:r}=e,a=e.numClasses||G,i=[],s=(r-t)/a;for(let l=0;l<a;l++){const e=t+l*s;i.push({minValue:e,maxValue:e+s})}i[a-1].maxValue=r;const o={classBreaks:i,normalizationTotal:e.normalizationTotal},n=A(o,e.classificationMethod);return Promise.resolve(n)}async _classBreaksFromMemory(e){const{view:t,field:r,valueExpression:a,signal:i}=e,{featuresJSON:s,graphics:o,layerView:n,query:l,fieldInfos:u}=await this._processStatsFromMemoryParams({...e,layerViewFunc:"queryClassBreaks"}),m={field:r,valueExpression:a,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return a&&t&&(s||o)&&(m.viewInfoParams=j(t),m.timeZone=t.timeZone,m.fieldInfos=u),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(m.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:s,graphics:o,layerView:n,query:l},i)),!s&&!o&&n&&"queryClassBreaks"in n?n.queryClassBreaks(l,m,{signal:i}):s?this.workerClient.classBreaks(m,s):g({attribute:m,features:o})}async _heatmapStatsFromMemory(e){const{view:t,field:r,radius:a,signal:s}=e;i(t,"InMemoryLayerAdapter: must have a view");try{const r=await t.whenLayerView(this.layer);if("queryHeatmapStatistics"in r&&!r.updating&&!e.filter)return await r.queryHeatmapStatistics({field:e.field,radius:e.radius})}catch{o(s)}const{featuresJSON:n,graphics:l}=await this._processStatsFromMemoryParams({...e,returnGeometry:!0}),u=new f({extent:t.extent,tolerance:"2d"===t.type?t.state.resolution:t.pixelSizeAt?.(t.center)}),p={field:r,radius:a,transform:m(u),spatialReference:t.spatialReference?.toJSON(),size:t.size};return n?.length||l?.length?n?this.workerClient.heatmapStatistics(p,n):F({attribute:p,features:l}):{min:null,max:null}}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!0,supportsStatistics:!0}:null}getFieldDomain(e,t){return this.layer.getFieldDomain(e,t)}createQuery(){return this.layer.createQuery()}async summaryStatistics(e){const{field:t,valueExpression:a,sqlExpression:i,features:s,view:o}=e,n=t?this.getField(t):null,l=!!a,u="3d"===o?.type;if(!a&&i&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return l||s||u?this._summaryStatsFromMemory(e,n):this._summaryStatsFromClientQuery(e,n)}async uniqueValues(e){const{valueExpression:t,sqlExpression:a,features:i,view:s}=e,o=await J(e,this),n=!!t,l="3d"===s?.type;if(!t&&a&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return n||i||l?this._uvFromMemory(e,o):this._uvFromClientQuery(e,o)}async histogram(e){const{features:t,valueExpression:a,normalizationType:i,sqlExpression:s}=e,o=t||!!a;if(!a&&s&&!this.supportsSQLExpression)throw new r(`${this.adapterName}:not-supported`,"Layer does not support standardized SQL expression for queries");return o||i?this._histogramFromMemory(e):this._histogramForField(e)}async classBreaks(e){return!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)}async queryFeatureCount(e){const{whereClause:t,view:a,signal:i}=e;if(!a)throw new r(`${this.adapterName}:insufficient-data`,"view is required to fetch the features from layerView");const s=this.layer.createQuery();s.where=S(s.where,t);const o=await a.whenLayerView(this.layer);return await n(()=>!o.updating,i),o.queryFeatureCount(s,{signal:i})}async generateRenderer(e,t){throw new r(`${this.adapterName}:not-supported`,"Layer does not support generateRenderer operation")}async predominantCategories(e){const{fields:t,view:r,signal:a,filter:i}=e,s=c(t),o=await this._uvFromMemory({valueExpression:s,view:r,signal:a,filter:i});return B(o.uniqueValueInfos,t)}async heatmapStatistics(e){return this._heatmapStatsFromMemory(e)}async getSampleFeatures(e,a){const{view:i,sampleSize:s,requiredFields:o,returnGeometry:n,filter:l,signal:u}=e,m=this.layer.createQuery(),p=1;if(m.outSpatialReference=i?.spatialReference,m.returnGeometry=!!n,m.outFields=o,I(m,l),!i)throw new r(`${this.adapterName}:not-supported`,"view is required to get sample features for Layer");const y=await i.whenLayerView(this.layer);if(b(this,o,y).length)throw new r(`${this.adapterName}:not-supported`,"Required fields need to be passed in the outFields for Layer");const f=await this._fetchFeaturesFromMemory(y,m,u,a),c=null!=s&&s>0&&s<=f.length?s:f.length;return t(f,c,p)}load(e){const t=this.layer.load(e).then(async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression="stream"===t.type||!!t.capabilities?.query?.supportsSqlExpression,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent="fullExtent"in t?t.fullExtent:t.parent?.fullExtent,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.workerClient=q.getInstance(),await this.workerClient.open(e.signal)});return this.addResolvingPromise(t),Promise.resolve(this)}};e([l({readOnly:!0})],D.prototype,"adapterName",void 0),e([l({constructOnly:!0})],D.prototype,"layer",void 0),D=e([u("esri.smartMapping.support.adapters.InMemoryLayerAdapter")],D);export{D as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../../core/Error.js";import{resolveTimeZone as i}from"../../../../intl/date.js";import{isTimeOnlyField as n,isDateField as t,isTimestampOffsetField as a,isDateOnlyField as r}from"../../../../layers/support/fieldUtils.js";import o from"../../../../rest/support/AttributeBinsQuery.js";import l from"../../../../rest/support/AutoIntervalBinParameters.js";import s from"../../../../rest/support/DateBinParameters.js";import m from"../../../../rest/support/FixedBoundariesBinParameters.js";import u from"../../../../rest/support/FixedIntervalBinParameters.js";import d from"../../../../rest/support/GenerateRendererParameters.js";import p from"../../../../rest/support/StatisticDefinition.js";import{getSQLFilterForNormalization as f,mergeWhereClauses as c,getRangeExpr as y}from"../../../statistics/support/utils.js";import{isAnyDateField as z}from"../../utils.js";import{getSQLExpressionForDateOrTimeField as x,getFieldExpr as v,updateQueryWithFeatureFilter as w,defaultNumBins as T,generateBinParams as h,getViewInfoParams as F}from"./utils.js";import{createClassBreaksDefinition as B}from"../../../../statistics/utils.js";const V="countOFExpr",j="lowerBoundary",E="upperBoundary";function q(e,i,t){const a=e.valueExpression||e.sqlExpression,r=e.signal;if(!a){const{field:a,normalizationType:o,normalizationField:l}=e,s=a?i.getField(a):null,m=z(s)||n(s),u={field:a,normalizationType:o,normalizationField:l,normalizationTotal:t,layer:i};return{sqlExpression:m?x(i,s):v(u),sqlWhere:m?null:e.sqlWhere||f({field:a,normalizationType:o,normalizationField:l}),filter:e.filter,signal:r}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,filter:e.filter,signal:r}}async function I(e,i,n){const{field:t,normalizationType:a,normalizationField:r,signal:o}=e,l=f({field:t,normalizationType:a,normalizationField:r}),s=new d({classificationDefinition:B({field:t,normalizationType:a,normalizationField:r,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,definedInterval:e.definedInterval,breakCount:e.numBins||T}),where:c(l,n)});return i.generateRenderer(s,o).then(e=>{const{normalizationTotal:n,classBreaks:o}=e;return h({field:t,normalizationType:a,normalizationField:r,normalizationTotal:n,classBreaks:o,where:l,layer:i})})}async function M(i,t,a,o,d){const{field:p,sqlExpression:f,normalizationField:c,classificationMethod:z,normalizationType:x}=i,w=p?t.getField(p):null,h=n(w),F=r(w)||h,B=i.numBins||T;if(F){if(x||z)throw new e(`${t.adapterName}:not-supported`,"NormalizationType and classificationMethod are not supported for date-only and time-only fields");const i=(o-a)/B/1e3,n=i/86400;return new s({field:p,expression:f,interval:{unit:h?"seconds":"days",value:Math.ceil(h?i:n)},start:a,end:o})}if("defined-interval"===z)return new u({field:p,expression:f,normalizationField:c,normalizationTotal:d,normalizationType:x,interval:i.definedInterval??Math.ceil((o-a)/B),start:x?null:a,end:x?null:o,normalizationMinValue:x?a:null,normalizationMaxValue:x?o:null});if("manual"===z)throw new e(`${t.adapterName}:not-supported`,"Layer does not support manual classificationMethod");if("natural-breaks"===z||"quantile"===z||"standard-deviation"===z){const n=v({field:p,normalizationField:c,normalizationTotal:d,normalizationType:x,layer:t}),r=null!==i.minValue&&null!==i.maxValue?y(n,i.minValue,i.maxValue):void 0,o=await I(i,t,r);if(!o.intervals)throw new e(`${t.adapterName}:invalid`,"Invalid intervals returned from generate renderer");const l=[a,...o.intervals.map(e=>e[1])];return new m({field:x?null:p,expression:x?n:f,boundaries:l})}return new l({field:p,normalizationField:c,normalizationTotal:d,normalizationType:x,expression:f,numBins:B,start:x?null:a,end:x?null:o,normalizationMinValue:x?a:null,normalizationMaxValue:x?o:null})}function g(e,i,n,t){return null!=n&&null!=t?Promise.resolve({min:n,max:t}):i.summaryStatistics({...e,outStatisticTypes:{include:["min","max"]}}).then(e=>({min:e.min,max:e.max}))}async function b(e,n,r,l){const{field:s,minValue:m,maxValue:u,filter:d,view:f}=e,y=s?n.getField(s):null,z=t(y)||a(y),x=q(e,n,r),{min:v,max:T}=await g(x,n,m,u);if(null==v||null==T)return{query:null,min:v,max:T};const h=new p({statisticType:"count",outStatisticFieldName:V,onStatisticField:"1"}),{where:F,timeExtent:B}=l||{},j=c(F,x.sqlWhere),E="lowerBoundary",I="upperBoundary",b=new o({binParameters:await M(e,n,v,T,r),outStatistics:[h],binOrder:e.sortOrder,where:j,timeExtent:B,lowerBoundaryAlias:E,upperBoundaryAlias:I,outTimeZone:f?.timeZone&&z?i(f.timeZone):null});return w(b,d),{query:b,min:v,max:T}}function D(e,i=!1){if("string"!=typeof e)return e;return(i?new Date(`1970-01-01T${e}Z`):new Date(e)).getTime()}function P(e,i,t){const a=n(i);return{...t,bins:e.features.map(e=>({minValue:D(e.attributes[j],a),maxValue:D(e.attributes[E],a),count:e.attributes[V]}))}}function S(e,i,n){const{valueExpression:t,view:a}=e,{featuresJSON:r,graphics:o,fieldInfos:l}=i,s={field:e.field,valueExpression:t,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:n,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return t&&a&&(r||o)&&(s.viewInfoParams=F(a),s.timeZone=a.timeZone,s.fieldInfos=l),s}export{I as binParamsFromGenRend,D as formatHistogramBinValue,b as getAttributeBinsQuery,g as getDataRange,S as getHistogramAttributeDefinition,q as getQueryParamsForExpr,P as processQueryAttributeBinsResult};
5
+ import e from"../../../../core/Error.js";import{resolveTimeZone as i}from"../../../../intl/date.js";import{isTimeOnlyField as n,isDateField as t,isTimestampOffsetField as a,isDateOnlyField as r}from"../../../../layers/support/fieldUtils.js";import o from"../../../../rest/support/AttributeBinsQuery.js";import l from"../../../../rest/support/AutoIntervalBinParameters.js";import s from"../../../../rest/support/DateBinParameters.js";import u from"../../../../rest/support/FixedBoundariesBinParameters.js";import m from"../../../../rest/support/FixedIntervalBinParameters.js";import d from"../../../../rest/support/GenerateRendererParameters.js";import p from"../../../../rest/support/StatisticDefinition.js";import{getSQLFilterForNormalization as f,mergeWhereClauses as c,getRangeExpr as y}from"../../../statistics/support/utils.js";import{isAnyDateField as x}from"../../utils.js";import{getSQLExpressionForDateOrTimeField as z,getFieldExpr as v,updateQueryWithFeatureFilter as T,defaultNumBins as w,generateBinParams as h,getViewInfoParams as F}from"./utils.js";import{createClassBreaksDefinition as V}from"../../../../statistics/utils.js";const B="countOFExpr",E="lowerBoundary",q="upperBoundary";function b(e,i,t){const a=e.valueExpression||e.sqlExpression,r=e.signal;if(!a){const{field:a,normalizationType:o,normalizationField:l}=e,s=a?i.getField(a):null,u=x(s)||n(s),m={field:a,normalizationType:o,normalizationField:l,normalizationTotal:t,layer:i};return{sqlExpression:u?z(i,s):v(m),sqlWhere:u?null:e.sqlWhere||f({field:a,normalizationType:o,normalizationField:l}),filter:e.filter,signal:r}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,filter:e.filter,signal:r}}async function j(e,i,n){const{field:t,normalizationType:a,normalizationField:r,signal:o}=e,l=f({field:t,normalizationType:a,normalizationField:r}),s=new d({classificationDefinition:V({field:t,normalizationType:a,normalizationField:r,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,definedInterval:e.definedInterval,breakCount:e.numBins||w}),where:c(l,n)});return i.generateRenderer(s,o).then(e=>{const{normalizationTotal:n,classBreaks:o}=e;return h({field:t,normalizationType:a,normalizationField:r,normalizationTotal:n,classBreaks:o,where:l,layer:i})})}async function I(i,t,a,o,d){const{field:p,sqlExpression:f,normalizationField:c,classificationMethod:x,normalizationType:z}=i,T=p?t.getField(p):null,h=n(T),F=r(T)||h,V=i.numBins||w;if(F){if(z||x)throw new e(`${t.adapterName}:not-supported`,"NormalizationType and classificationMethod are not supported for date-only and time-only fields");const i=(o-a)/V/1e3,n=i/86400;return new s({field:p,expression:f,expressionValueType:f?"double":void 0,interval:{unit:h?"seconds":"days",value:Math.ceil(h?i:n)},start:a,end:o})}if("defined-interval"===x)return new m({field:p,expression:f,expressionValueType:f?"double":void 0,normalizationField:c,normalizationTotal:d,normalizationType:z,interval:i.definedInterval??Math.ceil((o-a)/V),start:z?null:a,end:z?null:o,normalizationMinValue:z?a:null,normalizationMaxValue:z?o:null});if("manual"===x)throw new e(`${t.adapterName}:not-supported`,"Layer does not support manual classificationMethod");if("natural-breaks"===x||"quantile"===x||"standard-deviation"===x){const n=v({field:p,normalizationField:c,normalizationTotal:d,normalizationType:z,layer:t}),r=null!==i.minValue&&null!==i.maxValue?y(n,i.minValue,i.maxValue):void 0,o=await j(i,t,r);if(!o.intervals)throw new e(`${t.adapterName}:invalid`,"Invalid intervals returned from generate renderer");const l=[a,...o.intervals.map(e=>e[1])];return new u({field:z?null:p,expression:z?n:f,expressionValueType:f?"double":void 0,boundaries:l})}return new l({field:p,normalizationField:c,normalizationTotal:d,normalizationType:z,expression:f,expressionValueType:f?"double":void 0,numBins:V,start:z?null:a,end:z?null:o,normalizationMinValue:z?a:null,normalizationMaxValue:z?o:null})}function M(e,i,n,t){return null!=n&&null!=t?Promise.resolve({min:n,max:t}):i.summaryStatistics({...e,outStatisticTypes:{include:["min","max"]}}).then(e=>({min:e.min,max:e.max}))}async function g(e,n,r,l){const{field:s,minValue:u,maxValue:m,filter:d,view:f}=e,y=s?n.getField(s):null,x=t(y)||a(y),z=b(e,n,r),{min:v,max:w}=await M(z,n,u,m);if(null==v||null==w)return{query:null,min:v,max:w};const h=new p({statisticType:"count",outStatisticFieldName:B,onStatisticField:"1"}),{where:F,timeExtent:V}=l||{},E=c(F,z.sqlWhere),q="lowerBoundary",j="upperBoundary",g=new o({binParameters:await I(e,n,v,w,r),outStatistics:[h],binOrder:e.sortOrder,where:E,timeExtent:V,lowerBoundaryAlias:q,upperBoundaryAlias:j,outTimeZone:f?.timeZone&&x?i(f.timeZone):null});return T(g,d),{query:g,min:v,max:w}}function D(e,i=!1){if("string"!=typeof e)return e;return(i?new Date(`1970-01-01T${e}Z`):new Date(e)).getTime()}function P(e,i,t){const a=n(i);return{...t,bins:e.features.map(e=>({minValue:D(e.attributes[E],a),maxValue:D(e.attributes[q],a),count:e.attributes[B]}))}}function S(e,i,n){const{valueExpression:t,view:a}=e,{featuresJSON:r,graphics:o,fieldInfos:l}=i,s={field:e.field,valueExpression:t,sqlExpression:e.sqlExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:n,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return t&&a&&(r||o)&&(s.viewInfoParams=F(a),s.timeZone=a.timeZone,s.fieldInfos=l),s}export{j as binParamsFromGenRend,D as formatHistogramBinValue,g as getAttributeBinsQuery,M as getDataRange,S as getHistogramAttributeDefinition,b as getQueryParamsForExpr,P as processQueryAttributeBinsResult};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as t}from"../../../../core/arrayUtils.js";import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import n from"../../../../layers/support/CodedValue.js";import"../../../../core/has.js";import i from"../../../../layers/support/CodedValueDomain.js";import"../../../../layers/support/Domain.js";import"../../../../layers/support/InheritedDomain.js";import"../../../../layers/support/RangeDomain.js";import l from"../../../../layers/support/Field.js";import{isStringField as o,isTimeOnlyField as r}from"../../../../layers/support/fieldUtils.js";import a from"../../../../rest/support/PivotQuery.js";import s from"../../../../rest/support/StatisticDefinition.js";import u from"../../../../rest/support/UnPivotDefinition.js";import{noDominantCategoryField as c}from"../../../statistics/support/predominanceUtils.js";import{getRangeExpr as m,getSQLFilterForNormalization as f,mergeWhereClauses as d}from"../../../statistics/support/utils.js";import{isIntegerField as p,isAnyDateField as y,getDateDiffSQL as v,castIntegerFieldToFloat as x}from"../../utils.js";import{isNullCountSupported as g,statisticTypes as h,getEqualIntervalBins as w,processNullValue as F}from"../../../../statistics/utils.js";const E=/_value$/i,S=Math.LOG10E,T={SECOND:1e3,MINUTE:6e4,HOUR:36e5},V=10;function $(t){return t.map(t=>t.toJSON())}function z(t,e){const n=[],i=t.layer,l="featureReduction"in i?i.featureReduction:null,o="binning"===l?.type,r=null!=l&&"fields"in l?l.fields?.map(t=>t.name?.toLowerCase()).filter(Boolean):[];if(!o||!e)return n;for(const a of e)r.includes(a.toLowerCase())||n.push(a);return n}function j(t,e,n){const i=[];if(e)for(const l of e){const e=t.getField(l);e&&n&&"availableFields"in n&&!n.availableFields?.includes(e.name)&&i.push(e.name)}return i}function q(t,e){const n=t&&t.features;if(0===n?.length)return{avg:null,count:0,max:null,median:null,min:null,nullcount:0,stddev:null,sum:null,variance:null};const i=n?.[0]?.attributes,l={};for(const o in i)l[o.replace(E,"").toLowerCase()]=i[o];return null!=l.totalcount&&l.totalcount>=l.count&&(l.nullcount=l.totalcount-l.count),delete l.totalcount,l.min===l.max&&null!=l.min&&null==l.stddev&&(l.stddev=l.variance=0),e&&(["min","max","avg","stddev","sum","variance"].forEach(t=>{null!=l[t]&&(l[t]=Math.ceil(l[t]))}),l.min===l.max&&null!=l.min&&(l.avg=l.min,l.stddev=l.variance=0)),l}function C(t){const e=[],n=t.classBreaks,i=n[0].minValue,l=n[n.length-1].maxValue;n.forEach(t=>{e.push([t.minValue,t.maxValue])});const o={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:i,max:l,intervals:e,sqlExpr:b(o),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function b(t){const{field:e,normalizationType:n,normalizationField:i,normalizationTotal:l,layer:o}=t,r=p(o,e);let a=e;return"percent-of-total"===n?a=`((${r?x(e):e} / ${l}) * 100)`:"log"===n?a=`(log(${e}) * ${S})`:"field"===n?a=`(${r?x(e):e} / ${i})`:"natural-log"===n?a=`(log(${r?x(e):e}))`:"square-root"===n&&(a=`(power(${r?x(e):e}, 0.5))`),a}function O(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()!==e){n=t[i];break}return n}function L(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()===e){n=t[i];break}return n}function R(t,e,n,i,l){const o={},r="countOFExpr";t&&t.features&&t.features.forEach(t=>{const e=t.attributes,n=O(e,r),i=L(e,r);null!=n&&null!=i&&0!==n&&(o[n]=i)});const a=[];return w(e,n,i).forEach((t,e)=>{const n=(e+1).toString();a.push({minValue:t[0],maxValue:t[1],count:o.hasOwnProperty(n)?o[n]:0})}),{bins:a,minValue:e,maxValue:n,normalizationTotal:l}}async function D(t,n){const i=t&&t.features,{field:l,field2:o,field3:r,fieldDelimiter:a,layer:s,view:u,signal:c,labels:m}=n,f=`countOF${!(!l||!o)?"Expr":l||"Expr"}`,d={};let p=!1;for(const e of i){const t=e.attributes,n=L(t,f);let i=l?L(t,l):O(t,f),s=o?L(t,o):null,u=r?L(t,r):null;null===i&&0===n&&(p=!0),(null==i||"string"==typeof i&&""===i.trim())&&(i=null),o&&(null==s||"string"==typeof s&&""===s.trim())&&(s=null),r&&(null==u||"string"==typeof u&&""===u.trim())&&(u=null);let c=i;o&&(c=`${F(c)}${a}${F(s)}`,r&&(c=`${c}${a}${F(u)}`)),null==d[c]?d[c]={count:n,data:c}:d[c].count=d[c].count+n}if(l&&p){const t=l+" is NULL";try{const e=await s.queryFeatureCount({whereClause:t,view:u,signal:c});return d.null.count=d.null.count+e,N(d,m)}catch{return e(c),N(d,m)}}return N(d,m)}function N(t,e){if(e)for(const n in t)t[n].label=e[n];return{count:t}}async function U(t,e,l){const o=t?l.getField(t):null,r=o?l.getFieldDomain(o.name):null;if(r)return r;const{uniqueValueInfos:a}=await l.uniqueValues({field:t,sqlWhere:e.sqlWhere,features:e.features,useFeaturesInView:e.useFeaturesInView,view:e.view,signal:e.signal}),s=a.map(t=>new n({code:t.value}));return new i({codedValues:s})}async function I(t,e){if(!t.returnAllCodedValues)return[];const{field:n,field2:i,field3:l}=t;if(n&&!i){const t=n?e.getField(n):null,i=t?e.getFieldDomain(t.name):null;return i?[i]:[]}const o=[];return n&&(o.push(U(n,t,e)),i&&(o.push(U(i,t,e)),l&&o.push(U(l,t,e)))),Promise.all(o)}function Q(t,e){return v(t,new Date(0),e,"milliseconds").sqlExpression}function M(t,e){return`EXTRACT(${e} FROM ${t}) * ${T[e]}`}function P(t){if(!t)return null;return x(["HOUR","MINUTE","SECOND"].map(e=>`(${M(t,e)})`).join(" + "))}function _(t){return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:t.spatialReference?.toJSON()}}function B(t,e){const n=new Set(t.map(t=>t.value)),i=e.filter(t=>!n.has(t));for(const l of i)t.push({value:l,count:0});t.sort((t,n)=>e.indexOf(t.value)-e.indexOf(n.value));for(const l of t)l.value===c&&(l.value=null);return{predominantCategoryInfos:t}}function W(e){const n="featureReduction"in e?e.featureReduction:null;return((null!=n&&"fields"in n?n.fields:null)??[]).map(t=>{const n=k(t,e.fieldsIndex);return n?new l({type:n,name:t.name,alias:t.alias}):null}).filter(t)}function k(t,e){switch(t.statisticType){case"avg":case"avg_angle":return"double";case"count":return"integer";case"min":case"max":case"sum":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?null:"double":null;case"mode":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?"string":"double":null;default:return null}}function A(t,e){return y(e)?Q(t,e?.name):r(e)?P(e?.name):null}function H(t,e,n){let i=null;for(const l of n){const n=l?t.getField(l):null,o=Z(t,{...e,field:l,outStatisticTypes:{include:["min","max","sum","count"]}},n,!0,!0);i?i.outStatistics=i.outStatistics.concat(o.outStatistics):i=o}return i.where=t.createQuery()?.where,i}function J(t,e,n,i){return e.map(e=>{const l=new s;let o=null,r=null,a=`${e}_value${i?`_${i}`:""}`;if("variance"===e)o="var",r=n;else if("nullcount"===e){const e=t.objectIdField;o="count",r=e&&t.getField(e)?e:"1",a="totalcount_value"}else"median"===e?(o="percentile-continuous",r=n,l.statisticParameters={value:.5}):(o=e,r=n);return l.statisticType=o,l.onStatisticField=r,l.outStatisticFieldName=a,l})}function Z(t,e,n,i=!0,l=!1){const{field:r,normalizationType:a,normalizationField:s,normalizationTotal:u,minValue:c,maxValue:p,filter:y}=e,v=t.supportsSQLExpression?A(t,n)||e.sqlExpression:null,x=b({field:r,normalizationType:a,normalizationField:s,normalizationTotal:u,layer:t}),w=v||x,F=w?m(w,c,p):null,E=f({field:r,normalizationField:s,normalizationType:a}),S=d(e.sqlWhere,E),T=d(S,F),V=g({normalizationField:s,normalizationType:a,sqlExpression:v,supportsSQLExpression:t.supportsSQLExpression,minValue:c,maxValue:p}),$=o(t.getField(r??void 0)),{include:z,exclude:j}=e.outStatisticTypes||{},q=h.filter(t=>(!z||z.includes(t))&&(!j||!j.includes(t))&&("nullcount"===t?V:!$||"count"===t)&&("median"!==t||i)),C=t.createQuery();return C.where=d(C.where,T),C.sqlFormat=v?"standard":null,C.outStatistics=J(t,q,w,l?r:void 0),X(C,y),C}function G(t,e,n=!0){const{fields:i,filter:l}=e,{include:o,exclude:r}=e.outStatisticTypes||{},s=h.filter(t=>(!o||o.includes(t))&&(!r||!r.includes(t))&&("median"!==t||n)),c=new a;c.where=d(t.createQuery()?.where,e.sqlWhere)??void 0;const m="new_value";return c.outPivots=[new u({sourceFields:i,valueFieldName:m})],c.outStatistics=J(t,s,m),X(c,l),c}function X(t,e){e&&(t.geometry=e.geometry,t.spatialRelationship=e.spatialRelationship,t.timeExtent=t.timeExtent?.intersection(e.timeExtent)??e.timeExtent,t.distance=e.distance,t.units=e.units)}function K(t,e){const{field:n,field2:i,field3:l,sqlExpression:o}=e,r=!(!n||!i),a=t.createQuery();return a.where=d(a.where,e.sqlWhere),a.sqlFormat=o?"standard":null,a.outStatistics=[Y(r?null:n,r?"1":o)].filter(Boolean),a.groupByFieldsForStatistics=[n||o,i,l].filter(Boolean),X(a,e.filter),a}function Y(t,e){const n="countOF"+(t||"Expr"),i=new s;return i.statisticType="count",i.onStatisticField=e?"1":t,i.outStatisticFieldName=n,i}function tt(t,e,n,i=V,l,o,r){const{min:a,max:s,normTotal:u,excludeZerosExpr:c}=e,m=e.intervals||w(a,s,i),f=e.sqlExpr||n;return et(t,m,f,c,l,o,r).then(t=>({bins:t.map((t,e)=>({minValue:m[e][0],maxValue:m[e][1],count:"fulfilled"===t.status?t.value:0})),minValue:a,maxValue:s,normalizationTotal:u}))}function et(t,e,n,i,l,o,r){const a=[],s=e.length;for(let u=0;u<s;u++){const t=d(i,d(n+" >= "+e[u][0],null!==e[u][1]?n+(u===s-1?" <= ":" < ")+e[u][1]:""));a.push(t)}return Promise.allSettled(a.map(e=>t.queryFeatureCount({whereClause:e,view:l,filter:o,signal:r})))}export{V as defaultNumBins,$ as ensureFeaturesJSON,C as generateBinParams,k as getAggregateFieldType,tt as getBins,I as getDomainsForFields,W as getFeatureReductionFields,b as getFieldExpr,R as getHistogramFromFeatureSet,j as getMissingFields,z as getMissingFieldsForBinning,B as getPredominantCategoriesFromUVInfos,A as getSQLExpressionForDateOrTimeField,q as getSummaryStatisticsFromFeatureSet,G as getSummaryStatsPivotQuery,Z as getSummaryStatsQuery,H as getSummaryStatsQueryForFields,K as getUVQuery,D as getUniqueValuesFromFeatureSet,_ as getViewInfoParams,P as msForTimeOnlyFieldSQL,Q as msSinceUnixEpochSQL,X as updateQueryWithFeatureFilter};
5
+ import{isSome as t}from"../../../../core/arrayUtils.js";import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import n from"../../../../layers/support/CodedValue.js";import i from"../../../../layers/support/CodedValueDomain.js";import l from"../../../../layers/support/Field.js";import{isStringField as o,isTimeOnlyField as r}from"../../../../layers/support/fieldUtils.js";import a from"../../../../rest/support/PivotQuery.js";import u from"../../../../rest/support/StatisticDefinition.js";import s from"../../../../rest/support/UnPivotDefinition.js";import{noDominantCategoryField as c}from"../../../statistics/support/predominanceUtils.js";import{getRangeExpr as f,getSQLFilterForNormalization as m,mergeWhereClauses as d}from"../../../statistics/support/utils.js";import{isIntegerField as p,isAnyDateField as y,getDateDiffSQL as v,castIntegerFieldToFloat as x}from"../../utils.js";import{isNullCountSupported as g,statisticTypes as w,getEqualIntervalBins as h,processNullValue as F}from"../../../../statistics/utils.js";const E=/_value$/i,S=Math.LOG10E,T={SECOND:1e3,MINUTE:6e4,HOUR:36e5},V=10;function $(t){return t.map(t=>t.toJSON())}function z(t,e){const n=[],i=t.layer,l="featureReduction"in i?i.featureReduction:null,o="binning"===l?.type,r=null!=l&&"fields"in l?l.fields?.map(t=>t.name?.toLowerCase()).filter(Boolean):[];if(!o||!e)return n;for(const a of e)r.includes(a.toLowerCase())||n.push(a);return n}function q(t,e,n){const i=[];if(e)for(const l of e){const e=t.getField(l);e&&n&&"availableFields"in n&&!n.availableFields?.includes(e.name)&&i.push(e.name)}return i}function C(t,e){const n=t&&t.features;if(0===n?.length)return{avg:null,count:0,max:null,median:null,min:null,nullcount:0,stddev:null,sum:null,variance:null};const i=n?.[0]?.attributes,l={};for(const o in i)l[o.replace(E,"").toLowerCase()]=i[o];return null!=l.totalcount&&l.totalcount>=l.count&&(l.nullcount=l.totalcount-l.count),delete l.totalcount,l.min===l.max&&null!=l.min&&null==l.stddev&&(l.stddev=l.variance=0),e&&(["min","max","avg","stddev","sum","variance"].forEach(t=>{null!=l[t]&&(l[t]=Math.ceil(l[t]))}),l.min===l.max&&null!=l.min&&(l.avg=l.min,l.stddev=l.variance=0)),l}function b(t){const e=[],n=t.classBreaks,i=n[0].minValue,l=n[n.length-1].maxValue;n.forEach(t=>{e.push([t.minValue,t.maxValue])});const o={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:i,max:l,intervals:e,sqlExpr:j(o),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function j(t){const{field:e,normalizationType:n,normalizationField:i,normalizationTotal:l,layer:o}=t,r=p(o,e);let a=e;return"percent-of-total"===n?a=`((${r?x(e):e} / ${l}) * 100)`:"log"===n?a=`(log(${e}) * ${S})`:"field"===n?a=`(${r?x(e):e} / ${i})`:"natural-log"===n?a=`(log(${r?x(e):e}))`:"square-root"===n&&(a=`(power(${r?x(e):e}, 0.5))`),a}function O(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()!==e){n=t[i];break}return n}function L(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()===e){n=t[i];break}return n}function R(t,e,n,i,l){const o={},r="countOFExpr";t&&t.features&&t.features.forEach(t=>{const e=t.attributes,n=O(e,r),i=L(e,r);null!=n&&null!=i&&0!==n&&(o[n]=i)});const a=[];return h(e,n,i).forEach((t,e)=>{const n=(e+1).toString();a.push({minValue:t[0],maxValue:t[1],count:o.hasOwnProperty(n)?o[n]:0})}),{bins:a,minValue:e,maxValue:n,normalizationTotal:l}}async function N(t,n){const i=t&&t.features,{field:l,field2:o,field3:r,fieldDelimiter:a,layer:u,view:s,signal:c,labels:f}=n,m=`countOF${!(!l||!o)?"Expr":l||"Expr"}`,d={};let p=!1;for(const e of i){const t=e.attributes,n=L(t,m);let i=l?L(t,l):O(t,m),u=o?L(t,o):null,s=r?L(t,r):null;null===i&&0===n&&(p=!0),(null==i||"string"==typeof i&&""===i.trim())&&(i=null),o&&(null==u||"string"==typeof u&&""===u.trim())&&(u=null),r&&(null==s||"string"==typeof s&&""===s.trim())&&(s=null);let c=i;o&&(c=`${F(c)}${a}${F(u)}`,r&&(c=`${c}${a}${F(s)}`)),null==d[c]?d[c]={count:n,data:c}:d[c].count=d[c].count+n}if(l&&p){const t=l+" is NULL";try{const e=await u.queryFeatureCount({whereClause:t,view:s,signal:c});return d.null.count=d.null.count+e,U(d,f)}catch{return e(c),U(d,f)}}return U(d,f)}function U(t,e){if(e)for(const n in t)t[n].label=e[n];return{count:t}}async function D(t,e,l){const o=t?l.getField(t):null,r=o?l.getFieldDomain(o.name):null;if(r)return r;const{uniqueValueInfos:a}=await l.uniqueValues({field:t,sqlWhere:e.sqlWhere,features:e.features,useFeaturesInView:e.useFeaturesInView,view:e.view,signal:e.signal}),u=a.map(t=>new n({code:t.value}));return new i({codedValues:u})}async function I(t,e){if(!t.returnAllCodedValues)return[];const{field:n,field2:i,field3:l}=t;if(n&&!i){const t=n?e.getField(n):null,i=t?e.getFieldDomain(t.name):null;return i?[i]:[]}const o=[];return n&&(o.push(D(n,t,e)),i&&(o.push(D(i,t,e)),l&&o.push(D(l,t,e)))),Promise.all(o)}function Q(t,e){return v(t,new Date(0),e,"milliseconds").sqlExpression}function M(t,e){return`EXTRACT(${e} FROM ${t}) * ${T[e]}`}function P(t){if(!t)return null;return x(["HOUR","MINUTE","SECOND"].map(e=>`(${M(t,e)})`).join(" + "))}function _(t){return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:t.spatialReference?.toJSON()}}function B(t,e){const n=new Set(t.map(t=>t.value)),i=e.filter(t=>!n.has(t));for(const l of i)t.push({value:l,count:0});t.sort((t,n)=>e.indexOf(t.value)-e.indexOf(n.value));for(const l of t)l.value===c&&(l.value=null);return{predominantCategoryInfos:t}}function W(e){const n="featureReduction"in e?e.featureReduction:null;return((null!=n&&"fields"in n?n.fields:null)??[]).map(t=>{const n=k(t,e.fieldsIndex);return n?new l({type:n,name:t.name,alias:t.alias}):null}).filter(t)}function k(t,e){switch(t.statisticType){case"avg":case"avg_angle":return"double";case"count":return"integer";case"min":case"max":case"sum":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?null:"double":null;case"mode":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?"string":"double":null;default:return null}}function A(t,e){return y(e)?Q(t,e?.name):r(e)?P(e?.name):null}function H(t,e,n){let i=null;for(const l of n){const n=l?t.getField(l):null,o=Z(t,{...e,field:l,outStatisticTypes:{include:["min","max","sum","count"]}},n,!0,!0);i?i.outStatistics=i.outStatistics.concat(o.outStatistics):i=o}return i.where=t.createQuery()?.where,i}function J(t,e,n,i){return e.map(e=>{const l=new u;let o=null,r=null,a=`${e}_value${i?`_${i}`:""}`;if("variance"===e)o="var",r=n;else if("nullcount"===e){const e=t.objectIdField;o="count",r=e&&t.getField(e)?e:"1",a="totalcount_value"}else"median"===e?(o="percentile-continuous",r=n,l.statisticParameters={value:.5}):(o=e,r=n);return l.statisticType=o,l.onStatisticField=r,l.outStatisticFieldName=a,l})}function Z(t,e,n,i=!0,l=!1){const{field:r,normalizationType:a,normalizationField:u,normalizationTotal:s,minValue:c,maxValue:p,filter:y}=e,v=t.supportsSQLExpression?A(t,n)||e.sqlExpression:null,x=j({field:r,normalizationType:a,normalizationField:u,normalizationTotal:s,layer:t}),h=v||x,F=h?f(h,c,p):null,E=m({field:r,normalizationField:u,normalizationType:a}),S=d(e.sqlWhere,E),T=d(S,F),V=g({normalizationField:u,normalizationType:a,sqlExpression:v,supportsSQLExpression:t.supportsSQLExpression,minValue:c,maxValue:p}),$=o(t.getField(r??void 0)),{include:z,exclude:q}=e.outStatisticTypes||{},C=w.filter(t=>(!z||z.includes(t))&&(!q||!q.includes(t))&&("nullcount"===t?V:!$||"count"===t)&&("median"!==t||i)),b=t.createQuery();return b.where=d(b.where,T),b.sqlFormat=v?"standard":null,b.outStatistics=J(t,C,h,l?r:void 0),X(b,y),b}function G(t,e,n=!0){const{fields:i,filter:l}=e,{include:o,exclude:r}=e.outStatisticTypes||{},u=w.filter(t=>(!o||o.includes(t))&&(!r||!r.includes(t))&&("median"!==t||n)),c=new a;c.where=d(t.createQuery()?.where,e.sqlWhere)??void 0;const f="new_value";return c.outPivots=[new s({sourceFields:i,valueFieldName:f})],c.outStatistics=J(t,u,f),X(c,l),c}function X(t,e){e&&(t.geometry=e.geometry,t.spatialRelationship=e.spatialRelationship,t.timeExtent=t.timeExtent?.intersection(e.timeExtent)??e.timeExtent,t.distance=e.distance,t.units=e.units)}function K(t,e){const{field:n,field2:i,field3:l,sqlExpression:o}=e,r=!(!n||!i),a=t.createQuery();return a.where=d(a.where,e.sqlWhere),a.sqlFormat=o?"standard":null,a.outStatistics=[Y(r?null:n,r?"1":o)].filter(Boolean),a.groupByFieldsForStatistics=[n||o,i,l].filter(Boolean),X(a,e.filter),a}function Y(t,e){const n="countOF"+(t||"Expr"),i=new u;return i.statisticType="count",i.onStatisticField=e?"1":t,i.outStatisticFieldName=n,i}function tt(t,e,n,i=V,l,o,r){const{min:a,max:u,normTotal:s,excludeZerosExpr:c}=e,f=e.intervals||h(a,u,i),m=e.sqlExpr||n;return et(t,f,m,c,l,o,r).then(t=>({bins:t.map((t,e)=>({minValue:f[e][0],maxValue:f[e][1],count:"fulfilled"===t.status?t.value:0})),minValue:a,maxValue:u,normalizationTotal:s}))}function et(t,e,n,i,l,o,r){const a=[],u=e.length;for(let s=0;s<u;s++){const t=d(i,d(n+" >= "+e[s][0],null!==e[s][1]?n+(s===u-1?" <= ":" < ")+e[s][1]:""));a.push(t)}return Promise.allSettled(a.map(e=>t.queryFeatureCount({whereClause:e,view:l,filter:o,signal:r})))}export{V as defaultNumBins,$ as ensureFeaturesJSON,b as generateBinParams,k as getAggregateFieldType,tt as getBins,I as getDomainsForFields,W as getFeatureReductionFields,j as getFieldExpr,R as getHistogramFromFeatureSet,q as getMissingFields,z as getMissingFieldsForBinning,B as getPredominantCategoriesFromUVInfos,A as getSQLExpressionForDateOrTimeField,C as getSummaryStatisticsFromFeatureSet,G as getSummaryStatsPivotQuery,Z as getSummaryStatsQuery,H as getSummaryStatsQueryForFields,K as getUVQuery,N as getUniqueValuesFromFeatureSet,_ as getViewInfoParams,P as msForTimeOnlyFieldSQL,Q as msSinceUnixEpochSQL,X as updateQueryWithFeatureFilter};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{convertDateTimeFieldFormatToIntlOptions as t,formatDate as e,convertDateFormatToIntlOptions as n,formatTimestamp as o,formatTimeOnly as r,formatDateOnly as i}from"../../intl/date.js";import{isDateField as s,isDateOnlyField as a,isTimestampOffsetField as l}from"../../layers/support/fieldUtils.js";import{getWellKnownBasemapId as u}from"../../support/basemapUtils.js";import{loadArcade as d}from"../../support/loadArcade.js";import{utc as m}from"../../time/constants.js";import{getTimeZoneFormattingOptions as f}from"../../time/timeZoneUtils.js";const c=",",p={light:["streets","gray","topo","terrain","oceans","osm","gray-vector","streets-vector","topo-vector","streets-relief-vector","streets-navigation-vector","topo-3d","navigation-3d","streets-3d","osm-3d","gray-3d"],dark:["satellite","hybrid","dark-gray","dark-gray-vector","streets-night-vector","navigation-dark-3d","streets-dark-3d","dark-gray-3d"]},g="percent-of-total",y="field",h={exclude:["median"]},v={years:365,months:30,days:1,hours:1/24,minutes:1/1440,seconds:1/86400,milliseconds:1/864e5},T=new Set(["integer","small-integer"]);let Z=null;const $=["date","date-only","timestamp-offset"];function U(t){return s(t)||a(t)||l(t)}async function w(t){const{field:e,field2:n,field3:o,normalizationField:r,valueExpression:i,fields:s}=t;let a=[];if(i){if(!Z){const{arcadeUtils:t}=await d();Z=t}a=Z.extractFieldNames(i)}return e&&a.push(e),n&&a.push(n),o&&a.push(o),r&&a.push(r),s&&a.push(...s),a}function F(t){let e=t.normalizationType;return e||(t.normalizationField?e=y:null!=t.normalizationTotal&&(e=g)),e??void 0}function S(t){return String(t).padStart(2,"0")}function k(t,e,n){let o;if("date"===e||"number"===e){"number"===e&&(t=new Date(t));o=`TIMESTAMP'${n?t.getFullYear():t.getUTCFullYear()}-${S((n?t.getMonth():t.getUTCMonth())+1)}-${S(n?t.getDate():t.getUTCDate())} ${S(n?t.getHours():t.getUTCHours())}:${S(n?t.getMinutes():t.getUTCMinutes())}:${S(n?t.getSeconds():t.getUTCSeconds())}'`}else o=t;return o}function C(t,e,n,o){const{hasQueryEngine:r}=t,i=`(${k(n,D(t,n),r)} - ${k(e,D(t,e),r)})`;let s=v[o],a="/";s<1&&(s=1/s,a="*");return{sqlExpression:1===s?i:`(${i} ${a} ${s})`,sqlWhere:null}}function D(t,e){if(e instanceof Date)return"date";if("number"==typeof e)return"number";if("string"==typeof e){const n=t.getField(e);if("<now>"===e.toLowerCase())return;if(s(n))return"field"}}function b(t,e=p){for(const n in e)if(e[n].includes(t))return n}function j(t,e,n=!0){let o=null;return t&&("string"==typeof t?e.includes(t)&&(o=t):o=u(t)),n?o||"gray":o}function M(t,e){const n=e&&t.getField(e);return!!n&&T.has(n.type)}function N(t){return`cast(${t} as float)`}function x(s,a){const{format:l,fieldFormat:u,timeZoneOptions:d,fieldType:c}=a??{},p=u?t(u):null;let g,y;if(d&&({timeZone:g,timeZoneName:y}=f(d.layerTimeZone,d.datesInUnknownTimezone,d.viewTimeZone,p||n(l||"short-date-short-time"),c)),"string"==typeof s&&isNaN(Date.parse("time-only"===c?`1970-01-01T${s}Z`:s)))return s;switch(c){case"date-only":{const t=p||n(l||"short-date");return"string"==typeof s?i(s,{...t}):e(s,{...t,timeZone:m})}case"time-only":{const t=p||n(l||"short-time");return"string"==typeof s?r(s,t):e(s,{...t,timeZone:m})}case"timestamp-offset":{if(!g&&"string"==typeof s&&new Date(s).toISOString()!==s)return s;const t=l||p||d?p||n(l||"short-date-short-time"):void 0,r=t?{...t,timeZone:g,timeZoneName:y}:void 0;return"string"==typeof s?o(s,r):e(s,r)}default:{const t=l||p||d?p||n(l||"short-date-short-time"):void 0;return e("string"==typeof s?new Date(s):s,t?{...t,timeZone:g,timeZoneName:y}:void 0)}}}export{N as castIntegerFieldToFloat,$ as dateTypes,p as defaultBasemapGroups,h as defaultStatisticTypes,c as fieldDelimiter,x as formatAnyDate,b as getBasemapGroup,j as getBasemapId,C as getDateDiffSQL,D as getDateType,w as getFieldsList,F as getNormalizationType,U as isAnyDateField,M as isIntegerField,v as unitValueInDays};
5
+ import{convertDateTimeFieldFormatToIntlOptions as t,formatDate as e,convertDateFormatToIntlOptions as n,formatTimestamp as r,formatTimeOnly as o,formatDateOnly as i}from"../../intl/date.js";import{isDateField as s,isDateOnlyField as a,isTimestampOffsetField as l}from"../../layers/support/fieldUtils.js";import{getWellKnownBasemapId as u}from"../../support/basemapUtils.js";import{loadArcade as f}from"../../support/loadArcade.js";import{utc as m}from"../../time/constants.js";import{getTimeZoneFormattingOptions as d}from"../../time/timeZoneUtils.js";const c=",",p={light:["streets","gray","topo","terrain","oceans","osm","gray-vector","streets-vector","topo-vector","streets-relief-vector","streets-navigation-vector","topo-3d","navigation-3d","streets-3d","osm-3d","gray-3d"],dark:["satellite","hybrid","dark-gray","dark-gray-vector","streets-night-vector","navigation-dark-3d","streets-dark-3d","dark-gray-3d"]},g="percent-of-total",y="field",h={exclude:["median"]},v={years:365,months:30,days:1,hours:1/24,minutes:1/1440,seconds:1/86400,milliseconds:1/864e5},T=new Set(["integer","small-integer"]);let Z,$=null;const w=["date","date-only","timestamp-offset"];function C(t){return s(t)||a(t)||l(t)}async function U(t,e){if(!t)return null;if(!Z){const t=await import("../../core/sql/WhereClauseCache.js").then(t=>t.WhereClauseCache);Z=new t(50,500)}return Z.get(t,e)}async function F(t){const{field:e,field2:n,field3:r,normalizationField:o,valueExpression:i,fields:s}=t;let a=[];if(i){if(!$){const{arcadeUtils:t}=await f();$=t}a=$.extractFieldNames(i)}return e&&a.push(e),n&&a.push(n),r&&a.push(r),o&&a.push(o),s&&a.push(...s),a}function S(t){let e=t.normalizationType;return e||(t.normalizationField?e=y:null!=t.normalizationTotal&&(e=g)),e??void 0}function j(t){return String(t).padStart(2,"0")}function k(t,e,n){let r;if("date"===e||"number"===e){"number"===e&&(t=new Date(t));r=`TIMESTAMP'${n?t.getFullYear():t.getUTCFullYear()}-${j((n?t.getMonth():t.getUTCMonth())+1)}-${j(n?t.getDate():t.getUTCDate())} ${j(n?t.getHours():t.getUTCHours())}:${j(n?t.getMinutes():t.getUTCMinutes())}:${j(n?t.getSeconds():t.getUTCSeconds())}'`}else r=t;return r}function D(t,e,n,r){const{hasQueryEngine:o}=t,i=`(${k(n,b(t,n),o)} - ${k(e,b(t,e),o)})`;let s=v[r],a="/";s<1&&(s=1/s,a="*");return{sqlExpression:1===s?i:`(${i} ${a} ${s})`,sqlWhere:null}}function b(t,e){if(e instanceof Date)return"date";if("number"==typeof e)return"number";if("string"==typeof e){const n=t.getField(e);if("<now>"===e.toLowerCase())return;if(s(n))return"field"}}function M(t,e=p){for(const n in e)if(e[n].includes(t))return n}function N(t,e,n=!0){let r=null;return t&&("string"==typeof t?e.includes(t)&&(r=t):r=u(t)),n?r||"gray":r}function x(t,e){const n=e&&t.getField(e);return!!n&&T.has(n.type)}function z(t){return`cast(${t} as float)`}function E(s,a){const{format:l,fieldFormat:u,timeZoneOptions:f,fieldType:c}=a??{},p=u?t(u):null;let g,y;if(f&&({timeZone:g,timeZoneName:y}=d(f.layerTimeZone,f.datesInUnknownTimezone,f.viewTimeZone,p||n(l||"short-date-short-time"),c)),"string"==typeof s&&isNaN(Date.parse("time-only"===c?`1970-01-01T${s}Z`:s)))return s;switch(c){case"date-only":{const t=p||n(l||"short-date");return"string"==typeof s?i(s,{...t}):e(s,{...t,timeZone:m})}case"time-only":{const t=p||n(l||"short-time");return"string"==typeof s?o(s,t):e(s,{...t,timeZone:m})}case"timestamp-offset":{if(!g&&"string"==typeof s&&new Date(s).toISOString()!==s)return s;const t=l||p||f?p||n(l||"short-date-short-time"):void 0,o=t?{...t,timeZone:g,timeZoneName:y}:void 0;return"string"==typeof s?r(s,o):e(s,o)}default:{const t=l||p||f?p||n(l||"short-date-short-time"):void 0;return e("string"==typeof s?new Date(s):s,t?{...t,timeZone:g,timeZoneName:y}:void 0)}}}export{z as castIntegerFieldToFloat,w as dateTypes,p as defaultBasemapGroups,h as defaultStatisticTypes,c as fieldDelimiter,E as formatAnyDate,M as getBasemapGroup,N as getBasemapId,D as getDateDiffSQL,b as getDateType,F as getFieldsList,S as getNormalizationType,U as getWhereClause,C as isAnyDateField,x as isIntegerField,v as unitValueInDays};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- const e="20251215",c="cb70e84a06043dff996672667970003499e2d499";export{e as buildDate,c as commitHash};
5
+ const c="20251216",d="79236f30035e37d8557e89a8c608cdbf58c9d550";export{c as buildDate,d as commitHash};