@arcgis/core 4.24.0-next.20220329 → 4.24.0-next.20220401

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 (456) hide show
  1. package/PopupTemplate.js +1 -1
  2. package/WebMap.js +1 -1
  3. package/WebScene.js +1 -1
  4. package/analysis/LineOfSightAnalysisObserver.js +1 -1
  5. package/analysis/LineOfSightAnalysisTarget.js +1 -1
  6. package/arcade/featureset/actions/Adapted.js +1 -1
  7. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  8. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  9. package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
  10. package/arcade/featureset/support/FeatureSet.js +1 -1
  11. package/arcade/featureset/support/RecentlyUsedCache.js +1 -1
  12. package/arcade/featureset/support/shared.js +1 -1
  13. package/arcade/functions/convertdirection.js +1 -1
  14. package/arcade/lib/character.js +1 -1
  15. package/arcade/lib/scanner.js +1 -1
  16. package/arcade/lib/tokenizer.js +1 -1
  17. package/arcade/request.js +1 -1
  18. package/arcade/treeAnalysis.js +1 -1
  19. package/assets/esri/core/workers/RemoteClient.js +1 -1
  20. package/assets/esri/core/workers/chunks/0bfedb1dbdff8205e468.js +1 -0
  21. package/assets/esri/core/workers/chunks/{5e472c89a38d6a42b84d.js → 0e29250c24a3a7b1ce13.js} +1 -1
  22. package/assets/esri/core/workers/chunks/0eb9c9477d36cd212f8b.js +1 -0
  23. package/assets/esri/core/workers/chunks/10779a256841c37f2429.js +1 -0
  24. package/assets/esri/core/workers/chunks/10a119889d1ab13402a3.js +1 -0
  25. package/assets/esri/core/workers/chunks/125b14c2ccd96d7c20c2.js +1 -0
  26. package/assets/esri/core/workers/chunks/23ec33a30db201e8b2c3.js +1 -0
  27. package/assets/esri/core/workers/chunks/2530e8ccf6e12787ce76.js +1 -0
  28. package/assets/esri/core/workers/chunks/2d9e97ba5b50aec4dd01.js +1 -0
  29. package/assets/esri/core/workers/chunks/365dc146398420f13f82.js +1 -0
  30. package/assets/esri/core/workers/chunks/3ae2827e8d55d6713d20.js +1 -0
  31. package/assets/esri/core/workers/chunks/3e3eebaa0844742db2f2.js +1 -0
  32. package/assets/esri/core/workers/chunks/3fd5b2d6eccd9098d492.js +1 -0
  33. package/assets/esri/core/workers/chunks/404f1d7bce014c7e6965.js +1 -0
  34. package/assets/esri/core/workers/chunks/411b7777bb5e943c156f.js +1 -0
  35. package/assets/esri/core/workers/chunks/{12ca192a5233bb2875d0.js → 4312902ab6e42fbe119b.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{4ef07f50da39f8607c1c.js → 44e95e87bd9e820aeb53.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{4d4c5e535d8b9ceb865a.js → 4810edf605838d07e5c5.js} +1 -1
  38. package/assets/esri/core/workers/chunks/4bce446391176a9d4588.js +1 -0
  39. package/assets/esri/core/workers/chunks/52a0e387073ea264e194.js +1 -0
  40. package/assets/esri/core/workers/chunks/560234694f3e53802aff.js +1 -0
  41. package/assets/esri/core/workers/chunks/5633710daeb3bbb79bcf.js +1 -0
  42. package/assets/esri/core/workers/chunks/5682039666f874836451.js +1 -0
  43. package/assets/esri/core/workers/chunks/6f01905936396fe87865.js +1 -0
  44. package/assets/esri/core/workers/chunks/6f7917da7166e8c6854b.js +1 -0
  45. package/assets/esri/core/workers/chunks/7388824eac8da01ea03d.js +1 -0
  46. package/assets/esri/core/workers/chunks/7745efef7d5119d0b087.js +1 -0
  47. package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +1 -0
  48. package/assets/esri/core/workers/chunks/{da64dedf9270b64f42b2.js → 79bdb26244ec7b4472fe.js} +1 -1
  49. package/assets/esri/core/workers/chunks/79ec28b3e3c57fe026aa.js +1 -0
  50. package/assets/esri/core/workers/chunks/81e9d860a044acec74ce.js +1 -0
  51. package/assets/esri/core/workers/chunks/831dc0187f71e658550c.js +1 -0
  52. package/assets/esri/core/workers/chunks/86ad6b020c01850d9095.js +1 -0
  53. package/assets/esri/core/workers/chunks/{fb7397da8d4ec2ae4587.js → 87458fbf395338511662.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{1a859be598ad96bb4719.js → 8771296b537f366596c4.js} +18 -18
  55. package/assets/esri/core/workers/chunks/8958cd555f4887526e8b.js +1 -0
  56. package/assets/esri/core/workers/chunks/{e57b71ba70f088a3a052.js → 90dcd86cdef90099abfa.js} +1 -1
  57. package/assets/esri/core/workers/chunks/93067e27eea5844edc6c.js +1 -0
  58. package/assets/esri/core/workers/chunks/{9fbee2d9bf50c4c148c6.js → 9a146c9e9b4bf7fba88f.js} +1 -1
  59. package/assets/esri/core/workers/chunks/9b9821772b6cbe189fe0.js +1 -0
  60. package/assets/esri/core/workers/chunks/{6c4ce530b493c6f7c430.js → 9df2f9f7c28b31866be8.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{d0620ce99b620621d8bc.js → a0552044e123a3c51ddf.js} +1 -1
  62. package/assets/esri/core/workers/chunks/acc1a4acd57f5657e782.js +1 -0
  63. package/assets/esri/core/workers/chunks/b055ae7c54796751b64c.js +1 -0
  64. package/assets/esri/core/workers/chunks/{acc2cfb116fee7f82ae9.js → b26bd8fde2fc65bb67fb.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{9b45b94c4dbdc8d2c5fd.js → b34ba22c7a5adce8a7a2.js} +1 -1
  66. package/assets/esri/core/workers/chunks/b75665d0bf417c6ef24a.js +1 -0
  67. package/assets/esri/core/workers/chunks/bd50ec30688463b821d1.js +1 -0
  68. package/assets/esri/core/workers/chunks/c28f7ae4756ad1ba94bd.js +1 -0
  69. package/assets/esri/core/workers/chunks/c4f713959d4115b87c6c.js +1 -0
  70. package/assets/esri/core/workers/chunks/c58aa209492bd94b7aad.js +1 -0
  71. package/assets/esri/core/workers/chunks/{9b117097b7be0efd21d4.js → c59b0b58e24e6a60cf3e.js} +1 -1
  72. package/assets/esri/core/workers/chunks/c7bd5a4d318299388645.js +1 -0
  73. package/assets/esri/core/workers/chunks/c7cee13a962396b23a5e.js +1 -0
  74. package/assets/esri/core/workers/chunks/{3bbff5ea1ea0e955c592.js → cd3679fa86129ebabfdf.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{1a36dc0daffd536ea44d.js → cee7ce362860717713bf.js} +1 -1
  76. package/assets/esri/core/workers/chunks/cf463d6309f14df2f2fa.js +1 -0
  77. package/assets/esri/core/workers/chunks/{224c0e64160bdc170051.js → d076627bb7dadea89e89.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{fff4200bc61b82dd6193.js → d1d1c45243af614f2e74.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{1e0498dc9836658d9aba.js → d5fd12ea541c1a6b7fce.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{10322d990cda5aedf2f0.js → d6e32ca237ad9309c76a.js} +1 -1
  81. package/assets/esri/core/workers/chunks/e06ad3a3d71154fed654.js +1 -0
  82. package/assets/esri/core/workers/chunks/{7a77d4cd27c30f1a5cae.js → ee3387a43dfbb3df23e1.js} +1 -1
  83. package/assets/esri/core/workers/chunks/{5d5fa2b1fc48a17eb9ab.js → f4fc165420d449e442b8.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{3d6d9906a534ddd8fa37.js → f5ee03f3fca7a75192de.js} +1 -1
  85. package/assets/esri/themes/base/widgets/_Daylight.scss +1 -1
  86. package/assets/esri/themes/base/widgets/_ElevationProfile.scss +1 -1
  87. package/assets/esri/themes/base/widgets/_Weather.scss +1 -1
  88. package/assets/esri/themes/base/widgets/_Widget.scss +12 -0
  89. package/assets/esri/themes/dark/main.css +1 -1
  90. package/assets/esri/themes/dark-blue/main.css +1 -1
  91. package/assets/esri/themes/dark-green/main.css +1 -1
  92. package/assets/esri/themes/dark-purple/main.css +1 -1
  93. package/assets/esri/themes/dark-red/main.css +1 -1
  94. package/assets/esri/themes/light/main.css +1 -1
  95. package/assets/esri/themes/light/view.css +1 -1
  96. package/assets/esri/themes/light-blue/main.css +1 -1
  97. package/assets/esri/themes/light-green/main.css +1 -1
  98. package/assets/esri/themes/light-purple/main.css +1 -1
  99. package/assets/esri/themes/light-red/main.css +1 -1
  100. package/chunks/ComponentShader.glsl.js +25 -25
  101. package/chunks/HighlightApply.glsl.js +36 -0
  102. package/chunks/HighlightBlur.glsl.js +26 -0
  103. package/chunks/HighlightDownsample.glsl.js +12 -0
  104. package/chunks/ImageMaterial.glsl.js +8 -8
  105. package/chunks/LineCallout.glsl.js +1 -1
  106. package/chunks/Pattern.glsl.js +2 -2
  107. package/chunks/SimpleAtmosphere.glsl.js +7 -7
  108. package/chunks/Stars.glsl.js +1 -1
  109. package/chunks/arcade.js +1 -1
  110. package/chunks/color.js +1 -1
  111. package/chunks/languageUtils.js +1 -1
  112. package/chunks/mat3.js +1 -1
  113. package/copyright.txt +2 -2
  114. package/core/AsyncUpdate.js +1 -1
  115. package/core/Evented.js +1 -1
  116. package/core/PooledArray.js +1 -1
  117. package/core/accessorSupport/diffUtils.js +1 -1
  118. package/core/accessorSupport/get.js +1 -1
  119. package/core/accessorSupport/read.js +1 -1
  120. package/core/accessorSupport/set.js +1 -1
  121. package/core/accessorSupport/tracking.js +1 -1
  122. package/core/accessorSupport/utils.js +1 -1
  123. package/core/arrayUtils.js +1 -1
  124. package/core/libs/gl-matrix-2/mat3.js +1 -1
  125. package/core/libs/gl-matrix-2/math/mat3.js +1 -1
  126. package/core/number.js +1 -1
  127. package/core/object.js +1 -1
  128. package/core/string.js +1 -1
  129. package/core/unitUtils.js +1 -1
  130. package/core/watchUtils.js +1 -1
  131. package/core/workers/RemoteClient.js +1 -1
  132. package/exports/csv.js +1 -1
  133. package/geometry/support/heightModelInfoUtils.js +1 -1
  134. package/geometry/support/meshUtils/exporters/gltf/geometry.js +1 -1
  135. package/geometry/support/normalizeUtils.js +1 -1
  136. package/identity/IdentityManagerBase.js +1 -1
  137. package/interfaces.d.ts +155 -20
  138. package/layers/ImageryLayer.js +1 -1
  139. package/layers/MapImageLayer.js +1 -1
  140. package/layers/RouteLayer.js +1 -1
  141. package/layers/SceneLayer.js +1 -1
  142. package/layers/SubtypeGroupLayer.js +1 -1
  143. package/layers/TileLayer.js +1 -1
  144. package/layers/VectorTileLayer.js +1 -1
  145. package/layers/WMSLayer.js +1 -1
  146. package/layers/WMTSLayer.js +1 -1
  147. package/layers/WebTileLayer.js +1 -1
  148. package/layers/graphics/data/AttributesBuilder.js +1 -1
  149. package/layers/graphics/data/QueryEngine.js +1 -1
  150. package/layers/graphics/editingSupport.js +1 -1
  151. package/layers/graphics/sources/connections/GeoEventConnection.js +1 -1
  152. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  153. package/layers/graphics/sources/support/inferenceUtils.js +1 -1
  154. package/layers/mixins/ArcGISCachedService.js +1 -1
  155. package/layers/mixins/ArcGISImageService.js +1 -1
  156. package/layers/ogc/ogcFeatureUtils.js +1 -1
  157. package/layers/support/ExportImageServiceParameters.js +1 -1
  158. package/layers/support/PixelBlock.js +1 -1
  159. package/layers/support/RasterJobHandler.js +1 -1
  160. package/layers/support/SpriteSource.js +1 -1
  161. package/layers/support/Sublayer.js +1 -1
  162. package/layers/support/TilemapCache.js +1 -1
  163. package/layers/support/WMTSSublayer.js +1 -1
  164. package/layers/support/arcgisLayerUrl.js +1 -1
  165. package/layers/support/fieldUtils.js +1 -1
  166. package/layers/support/kmlUtils.js +1 -1
  167. package/layers/support/layerUtils.js +1 -1
  168. package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
  169. package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
  170. package/layers/support/rasterDatasets/RasterFactory.js +1 -1
  171. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  172. package/layers/support/rasterDatasets/multipartParser.js +1 -1
  173. package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
  174. package/layers/support/rasterDatasets/xmlUtilities.js +1 -1
  175. package/layers/support/rasterFormats/RasterCodec.js +1 -1
  176. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  177. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  178. package/layers/support/vectorTileLayerLoader.js +1 -1
  179. package/layers/support/wmsUtils.js +1 -1
  180. package/layers/support/wmtsUtils.js +1 -1
  181. package/libs/i3s/I3SModule.js +1 -1
  182. package/libs/vxl/VxlModule.js +1 -1
  183. package/package.json +1 -1
  184. package/portal/Portal.js +1 -1
  185. package/portal/PortalItem.js +1 -1
  186. package/portal/schemas/definitions.js +1 -1
  187. package/portal/support/layersLoader.js +1 -1
  188. package/portal/support/portalItemUtils.js +1 -1
  189. package/portal/support/portalLayers.js +1 -1
  190. package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
  191. package/renderers/support/DictionaryLoader.js +1 -1
  192. package/renderers/support/RasterSymbolizer.js +1 -1
  193. package/renderers/support/numberUtils.js +1 -1
  194. package/renderers/support/rasterRendererHelper.js +1 -1
  195. package/renderers/support/utils.js +1 -1
  196. package/request.js +1 -1
  197. package/rest/imageService.js +1 -1
  198. package/rest/operations/find.js +1 -1
  199. package/rest/query/operations/query.js +1 -1
  200. package/rest/query/operations/queryRelatedRecords.js +1 -1
  201. package/rest/query/operations/queryTopFeatures.js +1 -1
  202. package/rest/support/DirectionLine.js +1 -1
  203. package/rest/support/DirectionPoint.js +1 -1
  204. package/rest/support/PointBarrier.js +1 -1
  205. package/rest/support/PolygonBarrier.js +1 -1
  206. package/rest/support/PolylineBarrier.js +1 -1
  207. package/rest/support/RouteInfo.js +1 -1
  208. package/rest/support/Stop.js +1 -1
  209. package/smartMapping/labels/clusters.js +1 -1
  210. package/smartMapping/popup/dotDensity.js +1 -1
  211. package/smartMapping/popup/support/clusterUtils.js +1 -1
  212. package/smartMapping/popup/support/utils.js +1 -1
  213. package/smartMapping/raster/support/utils.js +1 -1
  214. package/smartMapping/renderers/color.js +1 -1
  215. package/smartMapping/renderers/location.js +1 -1
  216. package/smartMapping/renderers/predominance.js +1 -1
  217. package/smartMapping/renderers/relationship.js +1 -1
  218. package/smartMapping/renderers/size.js +1 -1
  219. package/smartMapping/renderers/support/utils.js +1 -1
  220. package/smartMapping/renderers/type.js +1 -1
  221. package/smartMapping/renderers/univariateColorSize.js +1 -1
  222. package/smartMapping/statistics/summaryStatisticsForAge.js +1 -1
  223. package/smartMapping/statistics/support/ageUtils.js +1 -1
  224. package/smartMapping/statistics/support/utils.js +1 -1
  225. package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
  226. package/smartMapping/support/adapters/support/utils.js +1 -1
  227. package/smartMapping/support/utils.js +1 -1
  228. package/smartMapping/symbology/support/Theme.js +1 -1
  229. package/smartMapping/symbology/support/colorRamps.js +1 -1
  230. package/smartMapping/symbology/support/symbologyUtils.js +1 -1
  231. package/smartMapping/symbology/support/utils.js +1 -1
  232. package/statistics/utils.js +1 -1
  233. package/support/basemapDefinitions.js +1 -1
  234. package/support/basemapUtils.js +1 -1
  235. package/support/elevationInfoUtils.js +1 -1
  236. package/support/popupUtils.js +1 -1
  237. package/support/revision.js +1 -1
  238. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  239. package/symbols/cim/cimAnalyzer.js +1 -1
  240. package/symbols/cim/utils.js +1 -1
  241. package/symbols/support/previewSymbol3D.js +1 -1
  242. package/symbols/support/renderUtils.js +1 -1
  243. package/symbols/support/symbolLayerUtils.js +1 -1
  244. package/views/2d/engine/Bitmap.js +1 -1
  245. package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
  246. package/views/2d/engine/imagery/RasterBitmap.js +1 -1
  247. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  248. package/views/2d/engine/vectorTiles/TextShaping.js +1 -1
  249. package/views/2d/engine/vectorTiles/TileParser.js +1 -1
  250. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
  251. package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
  252. package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
  253. package/views/2d/engine/webgl/Profiler.js +1 -1
  254. package/views/2d/engine/webgl/Utils.js +1 -1
  255. package/views/2d/engine/webgl/brushes/WGLGeometryBrush.js +1 -1
  256. package/views/2d/engine/webgl/definitions.js +1 -1
  257. package/views/2d/engine/webgl/effects/HittestEffect.js +1 -1
  258. package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
  259. package/views/2d/engine/webgl/mesh/templates/WGLTemplateStore.js +1 -1
  260. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  261. package/views/2d/engine/webgl/util/Lock.js +1 -1
  262. package/views/2d/layers/RouteLayerView2D.js +1 -1
  263. package/views/2d/layers/features/schemaUtils.js +1 -1
  264. package/views/2d/layers/features/sources/SnapshotFeatureSource.js +1 -1
  265. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  266. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  267. package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
  268. package/views/2d/layers/support/webStyleUtils.js +1 -1
  269. package/views/2d/support/Timeline.js +1 -1
  270. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  271. package/views/3d/analysis/LineOfSight/LineOfSightIntersectionResult.js +1 -1
  272. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  273. package/views/3d/analysis/Slice/SliceController.js +1 -1
  274. package/views/3d/environment/PanoramicAtmosphere.js +1 -1
  275. package/views/3d/environment/SceneViewAtmosphere.js +1 -1
  276. package/views/3d/environment/StarsTechnique.js +1 -1
  277. package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
  278. package/views/3d/glTF/loader.js +1 -1
  279. package/views/3d/interactive/analysisTools/lineOfSight/LineOfSightTool.js +1 -1
  280. package/views/3d/interactive/analysisTools/slice/SliceTool.js +1 -1
  281. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  282. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  283. package/views/3d/layers/I3SMeshView3D.js +1 -1
  284. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  285. package/views/3d/layers/LayerView3D.js +1 -1
  286. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  287. package/views/3d/layers/RouteLayerView3D.js +1 -1
  288. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  289. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  290. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  291. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  292. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  293. package/views/3d/layers/i3s/I3SNodeLoader.js +1 -1
  294. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  295. package/views/3d/layers/i3s/IDBMockCache.js +5 -0
  296. package/views/3d/layers/i3s/PointCloudWorkerUtil.js +1 -1
  297. package/views/3d/layers/support/PopupSceneLayerView.js +1 -1
  298. package/views/3d/state/ViewStateManager.js +1 -1
  299. package/views/3d/state/controllers/RotateController.js +1 -1
  300. package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
  301. package/views/3d/state/controllers/global/ZoomController.js +1 -1
  302. package/views/3d/state/controllers/global/ZoomStepController.js +1 -1
  303. package/views/3d/state/controllers/local/PinchAndPanController.js +1 -1
  304. package/views/3d/state/controllers/local/ZoomController.js +1 -1
  305. package/views/3d/support/HighlightOptions.js +1 -1
  306. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  307. package/views/3d/support/debugFlags.js +1 -1
  308. package/views/3d/support/orientedBoundingBox.js +1 -1
  309. package/views/3d/terrain/TerrainSurface.js +1 -1
  310. package/views/3d/webgl-engine/Stage.js +1 -1
  311. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  312. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  313. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +3 -3
  314. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +5 -5
  315. package/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js +1 -1
  316. package/views/3d/webgl-engine/lib/HighlightHelper.js +1 -1
  317. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  318. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  319. package/views/3d/webgl-engine/lib/edgeRendering/EdgeRenderer.js +1 -1
  320. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShaderParameters.js +1 -1
  321. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  322. package/views/3d/webgl-engine/lib/lodRendering/InstanceData.js +1 -1
  323. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  324. package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
  325. package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
  326. package/views/3d/webgl-engine/parts/ScreenshotManager.js +1 -1
  327. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +5 -0
  328. package/views/3d/webgl-engine/shaders/HighlightApplyTechnique.js +5 -0
  329. package/views/3d/webgl-engine/shaders/HighlightBlur.glsl.js +5 -0
  330. package/views/3d/webgl-engine/shaders/HighlightBlurTechnique.js +5 -0
  331. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +5 -0
  332. package/views/3d/webgl-engine/shaders/HighlightDownsampleTechnique.js +5 -0
  333. package/views/3d/webgl-engine/shaders/HighlightOptions.js +4 -0
  334. package/views/3d/webgl-engine/shaders/HighlightPassParameters.js +5 -0
  335. package/views/3d/webgl-engine/shaders/ImageMaterial.glsl.js +1 -1
  336. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  337. package/views/3d/webgl-engine/shaders/NativeLineTechnique.js +1 -1
  338. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  339. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +5 -7
  340. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +14 -14
  341. package/views/SceneView.js +1 -1
  342. package/views/draw/support/GraphicMover.js +1 -1
  343. package/views/input/InputHandler.js +1 -1
  344. package/views/input/InputManager.js +1 -1
  345. package/views/layers/ImageryTileLayerView.js +1 -1
  346. package/views/layers/MapImageLayerView.js +1 -1
  347. package/views/layers/TileLayerView.js +1 -1
  348. package/views/layers/support/popupUtils.js +1 -1
  349. package/views/support/DefaultsFromMap.js +1 -1
  350. package/views/support/Scheduler.js +1 -1
  351. package/views/support/screenshotUtils.js +1 -1
  352. package/views/ui/DefaultUI.js +1 -1
  353. package/views/webgl/ShaderTranspiler.js +1 -1
  354. package/webscene/Slide.js +1 -1
  355. package/webscene/spec-certification/spec.js +1 -1
  356. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  357. package/widgets/Attachments/support/attachmentUtils.js +1 -1
  358. package/widgets/Attachments.js +1 -1
  359. package/widgets/Attribution.js +1 -1
  360. package/widgets/BasemapLayerList.js +1 -1
  361. package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
  362. package/widgets/Bookmarks.js +1 -1
  363. package/widgets/BuildingExplorer/support/filterUtils.js +1 -1
  364. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  365. package/widgets/CoordinateConversion/support/coordinateConversionUtils.js +1 -1
  366. package/widgets/CoordinateConversion/support/formatUtils.js +1 -1
  367. package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
  368. package/widgets/Directions/DirectionsViewModel.js +1 -1
  369. package/widgets/Directions.js +1 -1
  370. package/widgets/Editor/EditorViewModel.js +1 -1
  371. package/widgets/Editor/workflowUtils.js +1 -1
  372. package/widgets/Editor.js +1 -1
  373. package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
  374. package/widgets/Feature/FeatureMedia.js +1 -1
  375. package/widgets/Feature/support/featureUtils.js +1 -1
  376. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  377. package/widgets/FeatureForm/InputField.js +1 -1
  378. package/widgets/FeatureForm.js +1 -1
  379. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  380. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  381. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  382. package/widgets/FeatureTemplates.js +1 -1
  383. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  384. package/widgets/LayerList/ListItemPanel.js +1 -1
  385. package/widgets/LayerList.js +1 -1
  386. package/widgets/Legend/LegendViewModel.js +1 -1
  387. package/widgets/Legend/styles/Card.js +1 -1
  388. package/widgets/Legend/styles/Classic.js +1 -1
  389. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  390. package/widgets/Legend/support/colorRampUtils.js +1 -1
  391. package/widgets/Legend/support/relationshipRampUtils.js +1 -1
  392. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  393. package/widgets/Popup/PopupViewModel.js +1 -1
  394. package/widgets/Popup/actionUtils.js +1 -1
  395. package/widgets/Print/PrintViewModel.js +1 -1
  396. package/widgets/Print.js +1 -1
  397. package/widgets/ScaleBar/ScaleBarViewModel.js +1 -1
  398. package/widgets/Search/SearchViewModel.js +1 -1
  399. package/widgets/Search/support/layerSearchUtils.js +1 -1
  400. package/widgets/Slider.js +1 -1
  401. package/widgets/Swipe.js +1 -1
  402. package/widgets/TableList.js +1 -1
  403. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  404. package/widgets/TimeSlider.js +1 -1
  405. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  406. package/widgets/support/DatePicker.js +1 -1
  407. package/widgets/support/Popover.js +1 -1
  408. package/widgets/support/SnappingControls.js +1 -1
  409. package/widgets/support/TimePicker.js +1 -1
  410. package/widgets/support/timeWidgetUtils.js +1 -1
  411. package/assets/esri/core/workers/chunks/083a5d10f8e243641cb9.js +0 -1
  412. package/assets/esri/core/workers/chunks/0872812ce4d0ec8faf8f.js +0 -1
  413. package/assets/esri/core/workers/chunks/0bc26899780c33637746.js +0 -1
  414. package/assets/esri/core/workers/chunks/113362697da1b69deaed.js +0 -1
  415. package/assets/esri/core/workers/chunks/11a2f9708938eac98815.js +0 -1
  416. package/assets/esri/core/workers/chunks/11a45709b703be84caaf.js +0 -1
  417. package/assets/esri/core/workers/chunks/1c1294ff1ebbd8f774f7.js +0 -1
  418. package/assets/esri/core/workers/chunks/1c915cc9a9d5729b6f17.js +0 -1
  419. package/assets/esri/core/workers/chunks/31786756b3d44540f8c0.js +0 -1
  420. package/assets/esri/core/workers/chunks/36a6f34fe40785beff5d.js +0 -1
  421. package/assets/esri/core/workers/chunks/373c16f8b8093d001064.js +0 -1
  422. package/assets/esri/core/workers/chunks/382a331a592abb61267f.js +0 -1
  423. package/assets/esri/core/workers/chunks/3bf106fe34e3992032c4.js +0 -1
  424. package/assets/esri/core/workers/chunks/3dcec610f1c1497d87bc.js +0 -1
  425. package/assets/esri/core/workers/chunks/46495e726d8739260d44.js +0 -1
  426. package/assets/esri/core/workers/chunks/4a82a6a473b3d540d0be.js +0 -1
  427. package/assets/esri/core/workers/chunks/4b6719377a95ac10fa43.js +0 -1
  428. package/assets/esri/core/workers/chunks/4d2ef57ff3a5cfc1313f.js +0 -1
  429. package/assets/esri/core/workers/chunks/4fd2b8153d62592210a2.js +0 -1
  430. package/assets/esri/core/workers/chunks/56e6a1079269e2964b02.js +0 -1
  431. package/assets/esri/core/workers/chunks/5b4d9786c010d265346c.js +0 -1
  432. package/assets/esri/core/workers/chunks/604637e1c3937b376a0d.js +0 -1
  433. package/assets/esri/core/workers/chunks/60f83257e361f87fa6fd.js +0 -1
  434. package/assets/esri/core/workers/chunks/6d3f80be6fceb2c18b5d.js +0 -1
  435. package/assets/esri/core/workers/chunks/6f827a32646bab0a8777.js +0 -1
  436. package/assets/esri/core/workers/chunks/70bd2ab42e3801ef5974.js +0 -1
  437. package/assets/esri/core/workers/chunks/746222184b361b50d6ba.js +0 -1
  438. package/assets/esri/core/workers/chunks/7fb72b2d11e8d840f982.js +0 -1
  439. package/assets/esri/core/workers/chunks/85bb6a1a7704fcdcbec2.js +0 -1
  440. package/assets/esri/core/workers/chunks/8b4c76cebb100e6c06f8.js +0 -1
  441. package/assets/esri/core/workers/chunks/9586a6b320edb1922926.js +0 -1
  442. package/assets/esri/core/workers/chunks/99638697ffda9022ce92.js +0 -1
  443. package/assets/esri/core/workers/chunks/a9da1cb118ca62a9581d.js +0 -1
  444. package/assets/esri/core/workers/chunks/aaa41a5013eef713c032.js +0 -1
  445. package/assets/esri/core/workers/chunks/ac321f939dd488ff6ce4.js +0 -1
  446. package/assets/esri/core/workers/chunks/add6027a96398ecf69de.js +0 -1
  447. package/assets/esri/core/workers/chunks/b75206b46ba81606087c.js +0 -1
  448. package/assets/esri/core/workers/chunks/bf8456828e38a768eba3.js +0 -1
  449. package/assets/esri/core/workers/chunks/c0720d0d8adcba6738d4.js +0 -1
  450. package/assets/esri/core/workers/chunks/c5bb712d5cf8c05a4e13.js +0 -1
  451. package/assets/esri/core/workers/chunks/d343f05a3366f95e0494.js +0 -1
  452. package/assets/esri/core/workers/chunks/d8b1f00075983d769985.js +0 -1
  453. package/chunks/Highlight.glsl.js +0 -88
  454. package/views/3d/webgl-engine/shaders/Highlight.glsl.js +0 -5
  455. package/views/3d/webgl-engine/shaders/HighlightTechnique.js +0 -5
  456. package/views/3d/webgl-engine/shaders/HighlightTechniqueConfiguration.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import s from"../../renderers/support/AuthoringInfo.js";import r from"../../renderers/support/AuthoringInfoVisualVariable.js";import{round as n}from"../../renderers/support/numberUtils.js";import o from"../../renderers/visualVariables/OpacityVariable.js";import l from"../heuristics/outline.js";import{createVisualVariables as t}from"./size.js";import{createRenderer as p}from"./type.js";import{verifyBasicFieldValidity as m,getBasemapInfo as d,createSymbol as u,getSymbolOutlineFromScheme as c,createColors as y}from"./support/utils.js";import b from"../statistics/predominantCategories.js";import f from"../statistics/summaryStatistics.js";import{getPredominanceExpressions as g}from"../statistics/support/predominanceUtils.js";import{createLayerAdapter as h,featureCapableLayerTypes as v,getLayerTypeLabels as w}from"../support/adapters/support/layerUtils.js";import{c as z,g as T}from"../../chunks/predominance.js";async function V(i){if(!(i&&i.layer&&i.view&&i.fields&&i.fields.length))throw new e("predominance-renderer:missing-parameters","'layer', 'view' and 'fields' parameters are required");if(i.fields.length<2)throw new e("predominance-renderer:invalid-parameters","Minimum 2 fields are required");if(i.fields.length>10)throw new e("predominance-renderer:invalid-parameters","Maximum 10 fields are supported");const s={...i};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled,s.includeOpacityVariable=i.includeOpacityVariable||!1,s.includeSizeVariable=i.includeSizeVariable||!1,s.sortBy=null==s.sortBy?"count":s.sortBy;const r=h(s.layer,v);if(s.layer=r,!r)throw new e("predominance-renderer:invalid-parameters","'layer' must be one of these types: "+w(v).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await r.load(n);const o=r.geometryType,l=s.symbolType.indexOf("3d")>-1;if(s.outlineOptimizationEnabled="polygon"===o&&s.outlineOptimizationEnabled,s.includeSizeVariable||(s.sizeOptimizationEnabled=("point"===o||"multipoint"===o||"polyline"===o)&&s.sizeOptimizationEnabled),"mesh"===o)s.symbolType="3d-volumetric",s.colorMixMode=s.colorMixMode||"replace",s.edgesType=s.edgesType||"none",s.sizeOptimizationEnabled=!1;else{if(l&&("polyline"===o||"polygon"===o))throw new e("predominance-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.indexOf("3d-volumetric")>-1&&(!s.view||"3d"!==s.view.type))throw new e("predominance-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const t=s.fields.map((e=>e.name)),p=m(r,t,"predominance-renderer:invalid-parameters");if(p)throw p;return s}async function E(e){let i=e.predominanceScheme,s=null,r=null;const n=await d(e.basemap,e.view);if(s=a(n.basemapId)?n.basemapId:null,r=a(n.basemapTheme)?n.basemapTheme:null,i)return{scheme:z(i),basemapId:s,basemapTheme:r};const o=T({basemap:s,basemapTheme:r,geometryType:e.geometryType,numColors:e.numColors,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,s=o.basemapId,r=o.basemapTheme),{scheme:i,basemapId:s,basemapTheme:r}}async function S(e,a,r,n){const o=await i("esri/smartMapping/t9n/smartMapping"),t=e.layer,m={layer:e.layer,view:e.view,signal:e.signal},[d,f]=await Promise.all([b({layer:t,fields:n,view:e.view,signal:e.signal}),e.outlineOptimizationEnabled?l(m):null]);let g=d;d&&d.predominantCategoryInfos||(g={predominantCategoryInfos:n.map((e=>({value:e,count:0})))});const h=f&&f.opacity,v=await p({layer:t,basemap:e.basemap,valueExpression:a.valueExpression,valueExpressionTitle:o.predominantCategory,numTypes:-1,defaultSymbolEnabled:e.defaultSymbolEnabled,sortBy:e.sortBy,typeScheme:r,statistics:{uniqueValueInfos:g.predominantCategoryInfos},legendOptions:e.legendOptions,outlineOptimizationEnabled:!1,sizeOptimizationEnabled:(!e.includeSizeVariable||!e.sizeOptimizationEnabled)&&e.sizeOptimizationEnabled,symbolType:e.symbolType,colorMixMode:e.colorMixMode,edgesType:e.edgesType,view:e.view,signal:e.signal}),{renderer:w,basemapId:z,basemapTheme:T,uniqueValueInfos:V,excludedUniqueValueInfos:E}=v,S=w.uniqueValueInfos,x={};for(const i of e.fields){const e=t.getField(i.name);x[e.name]=i.label||e&&e.alias||i.name}if(S.forEach(((e,a)=>{const i=x[e.value];e.label=i,V[a].label=i})),e.includeSizeVariable){let a=t.geometryType,i=null;if("polygon"===a){const s=r.sizeScheme,n=s.background;w.backgroundFillSymbol=u(a,{type:e.symbolType,color:n.color,outline:c(n,a,h)}),i=s.marker.size,a="point"}else if("polyline"===a){i=r.width}else{i=r.size}const s=y(r.colors,S.length);S.forEach(((n,o)=>{const l=u(a,{type:e.symbolType,color:s[o],size:i,outline:c(r,a,h),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}});n.symbol=l,V[o].symbol=l.clone()}))}return f&&f.visualVariables&&f.visualVariables.length&&(w.visualVariables=f.visualVariables.map((e=>e.clone()))),w.authoringInfo=new s({type:"predominance",fields:[...n]}),{renderer:w,predominantCategoryInfos:V,excludedCategoryInfos:E,predominanceScheme:r,basemapId:z,basemapTheme:T}}async function x(e,a,s){const r=await i("esri/smartMapping/t9n/smartMapping");return t({layer:e.layer,basemap:e.basemap,valueExpression:a.valueExpression,sqlExpression:a.statisticsQuery.sqlExpression,sqlWhere:a.statisticsQuery.sqlWhere,sizeScheme:s,sizeOptimizationEnabled:e.sizeOptimizationEnabled,worldScale:e.symbolType.indexOf("3d-volumetric")>-1,legendOptions:{title:r.sumOfCategories},view:e.view,signal:e.signal})}async function O(e,a){const l=await i("esri/smartMapping/t9n/smartMapping"),t=await f({layer:e.layer,valueExpression:a.valueExpression,sqlExpression:a.statisticsQuery.sqlExpression,sqlWhere:a.statisticsQuery.sqlWhere,view:e.view,signal:e.signal}),p=null==t.avg||null==t.stddev,m=1/e.fields.length*100;let d=p?100:t.avg+1.285*t.stddev;d>100&&(d=100);const u=n([m,d],{strictBounds:!0}),c=new o({valueExpression:a.valueExpression,stops:[{value:u[0],opacity:.15},{value:u[1],opacity:1}],legendOptions:{title:l.strengthOfPredominance}}),y=new r({type:"opacity",minSliderValue:t.min,maxSliderValue:t.max});return{visualVariable:c,statistics:t,defaultValuesUsed:p,authoringInfo:new s({visualVariables:[y]})}}async function I(e){const a=await V(e),i=a.layer,s=(await E({basemap:a.basemap,geometryType:i.geometryType,numColors:a.fields.length,predominanceScheme:a.predominanceScheme,worldScale:a.symbolType.indexOf("3d-volumetric")>-1,view:a.view})).scheme,r=a.fields.map((e=>e.name)),n=g(i,r),o=S(a,n.predominantCategory,s,r),l=a.includeSizeVariable?x(a,n.size,s.sizeScheme):null,t=a.includeOpacityVariable?O(a,n.opacity):null,[p,m,d]=await Promise.all([o,l,t]),u=[],c=[];if(m&&(Array.prototype.push.apply(u,m.visualVariables.map((e=>e.clone()))),delete m.sizeScheme,p.size=m,Array.prototype.push.apply(c,m.authoringInfo.visualVariables.map((e=>e.clone())))),d&&(u.push(d.visualVariable.clone()),p.opacity=d,Array.prototype.push.apply(c,d.authoringInfo.visualVariables.map((e=>e.clone())))),u.length){const e=p.renderer.visualVariables||[];Array.prototype.push.apply(e,u),p.renderer.visualVariables=e,p.renderer.authoringInfo.visualVariables=c}return p}export{I as createRenderer};
5
+ import e from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import s from"../../renderers/support/AuthoringInfo.js";import r from"../../renderers/support/AuthoringInfoVisualVariable.js";import{round as n}from"../../renderers/support/numberUtils.js";import l from"../../renderers/visualVariables/OpacityVariable.js";import o from"../heuristics/outline.js";import{createVisualVariables as t}from"./size.js";import{createRenderer as p}from"./type.js";import{verifyBasicFieldValidity as m,getBasemapInfo as d,createSymbol as u,getSymbolOutlineFromScheme as c,createColors as y}from"./support/utils.js";import b from"../statistics/predominantCategories.js";import f from"../statistics/summaryStatistics.js";import{getPredominanceExpressions as g}from"../statistics/support/predominanceUtils.js";import{createLayerAdapter as h,featureCapableLayerTypes as v,getLayerTypeLabels as w}from"../support/adapters/support/layerUtils.js";import{c as z,g as T}from"../../chunks/predominance.js";async function V(i){if(!(i&&i.layer&&i.view&&i.fields&&i.fields.length))throw new e("predominance-renderer:missing-parameters","'layer', 'view' and 'fields' parameters are required");if(i.fields.length<2)throw new e("predominance-renderer:invalid-parameters","Minimum 2 fields are required");if(i.fields.length>10)throw new e("predominance-renderer:invalid-parameters","Maximum 10 fields are supported");const s={...i};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled,s.includeOpacityVariable=i.includeOpacityVariable||!1,s.includeSizeVariable=i.includeSizeVariable||!1,s.sortBy=null==s.sortBy?"count":s.sortBy;const r=h(s.layer,v);if(s.layer=r,!r)throw new e("predominance-renderer:invalid-parameters","'layer' must be one of these types: "+w(v).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await r.load(n);const l=r.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===l&&s.outlineOptimizationEnabled,s.includeSizeVariable||(s.sizeOptimizationEnabled=("point"===l||"multipoint"===l||"polyline"===l)&&s.sizeOptimizationEnabled),"mesh"===l)s.symbolType="3d-volumetric",s.colorMixMode=s.colorMixMode||"replace",s.edgesType=s.edgesType||"none",s.sizeOptimizationEnabled=!1;else{if(o&&("polyline"===l||"polygon"===l))throw new e("predominance-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new e("predominance-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const t=s.fields.map((e=>e.name)),p=m(r,t,"predominance-renderer:invalid-parameters");if(p)throw p;return s}async function E(e){let i=e.predominanceScheme,s=null,r=null;const n=await d(e.basemap,e.view);if(s=a(n.basemapId)?n.basemapId:null,r=a(n.basemapTheme)?n.basemapTheme:null,i)return{scheme:z(i),basemapId:s,basemapTheme:r};const l=T({basemap:s,basemapTheme:r,geometryType:e.geometryType,numColors:e.numColors,theme:e.theme,worldScale:e.worldScale,view:e.view});return l&&(i=l.primaryScheme,s=l.basemapId,r=l.basemapTheme),{scheme:i,basemapId:s,basemapTheme:r}}async function S(e,a,r,n){const l=await i("esri/smartMapping/t9n/smartMapping"),t=e.layer,m={layer:e.layer,view:e.view,signal:e.signal},[d,f]=await Promise.all([b({layer:t,fields:n,view:e.view,signal:e.signal}),e.outlineOptimizationEnabled?o(m):null]);let g=d;d&&d.predominantCategoryInfos||(g={predominantCategoryInfos:n.map((e=>({value:e,count:0})))});const h=f&&f.opacity,v=await p({layer:t,basemap:e.basemap,valueExpression:a.valueExpression,valueExpressionTitle:l.predominantCategory,numTypes:-1,defaultSymbolEnabled:e.defaultSymbolEnabled,sortBy:e.sortBy,typeScheme:r,statistics:{uniqueValueInfos:g.predominantCategoryInfos},legendOptions:e.legendOptions,outlineOptimizationEnabled:!1,sizeOptimizationEnabled:(!e.includeSizeVariable||!e.sizeOptimizationEnabled)&&e.sizeOptimizationEnabled,symbolType:e.symbolType,colorMixMode:e.colorMixMode,edgesType:e.edgesType,view:e.view,signal:e.signal}),{renderer:w,basemapId:z,basemapTheme:T,uniqueValueInfos:V,excludedUniqueValueInfos:E}=v,S=w.uniqueValueInfos,x={};for(const i of e.fields){const e=t.getField(i.name);x[e.name]=i.label||e&&e.alias||i.name}if(S.forEach(((e,a)=>{const i=x[e.value];e.label=i,V[a].label=i})),e.includeSizeVariable){let a=t.geometryType,i=null;if("polygon"===a){const s=r.sizeScheme,n=s.background;w.backgroundFillSymbol=u(a,{type:e.symbolType,color:n.color,outline:c(n,a,h)}),i=s.marker.size,a="point"}else if("polyline"===a){i=r.width}else{i=r.size}const s=y(r.colors,S.length);S.forEach(((n,l)=>{const o=u(a,{type:e.symbolType,color:s[l],size:i,outline:c(r,a,h),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}});n.symbol=o,V[l].symbol=o.clone()}))}return f&&f.visualVariables&&f.visualVariables.length&&(w.visualVariables=f.visualVariables.map((e=>e.clone()))),w.authoringInfo=new s({type:"predominance",fields:[...n]}),{renderer:w,predominantCategoryInfos:V,excludedCategoryInfos:E,predominanceScheme:r,basemapId:z,basemapTheme:T}}async function x(e,a,s){const r=await i("esri/smartMapping/t9n/smartMapping");return t({layer:e.layer,basemap:e.basemap,valueExpression:a.valueExpression,sqlExpression:a.statisticsQuery.sqlExpression,sqlWhere:a.statisticsQuery.sqlWhere,sizeScheme:s,sizeOptimizationEnabled:e.sizeOptimizationEnabled,worldScale:e.symbolType.includes("3d-volumetric"),legendOptions:{title:r.sumOfCategories},view:e.view,signal:e.signal})}async function I(e,a){const o=await i("esri/smartMapping/t9n/smartMapping"),t=await f({layer:e.layer,valueExpression:a.valueExpression,sqlExpression:a.statisticsQuery.sqlExpression,sqlWhere:a.statisticsQuery.sqlWhere,view:e.view,signal:e.signal}),p=null==t.avg||null==t.stddev,m=1/e.fields.length*100;let d=p?100:t.avg+1.285*t.stddev;d>100&&(d=100);const u=n([m,d],{strictBounds:!0}),c=new l({valueExpression:a.valueExpression,stops:[{value:u[0],opacity:.15},{value:u[1],opacity:1}],legendOptions:{title:o.strengthOfPredominance}}),y=new r({type:"opacity",minSliderValue:t.min,maxSliderValue:t.max});return{visualVariable:c,statistics:t,defaultValuesUsed:p,authoringInfo:new s({visualVariables:[y]})}}async function O(e){const a=await V(e),i=a.layer,s=(await E({basemap:a.basemap,geometryType:i.geometryType,numColors:a.fields.length,predominanceScheme:a.predominanceScheme,worldScale:a.symbolType.includes("3d-volumetric"),view:a.view})).scheme,r=a.fields.map((e=>e.name)),n=g(i,r),l=S(a,n.predominantCategory,s,r),o=a.includeSizeVariable?x(a,n.size,s.sizeScheme):null,t=a.includeOpacityVariable?I(a,n.opacity):null,[p,m,d]=await Promise.all([l,o,t]),u=[],c=[];if(m&&(Array.prototype.push.apply(u,m.visualVariables.map((e=>e.clone()))),delete m.sizeScheme,p.size=m,Array.prototype.push.apply(c,m.authoringInfo.visualVariables.map((e=>e.clone())))),d&&(u.push(d.visualVariable.clone()),p.opacity=d,Array.prototype.push.apply(c,d.authoringInfo.visualVariables.map((e=>e.clone())))),u.length){const e=p.renderer.visualVariables||[];Array.prototype.push.apply(e,u),p.renderer.visualVariables=e,p.renderer.authoringInfo.visualVariables=c}return p}export{O as createRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import{clone as a}from"../../core/lang.js";import{isSome as n}from"../../core/maybe.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import l from"../../renderers/support/AuthoringInfo.js";import{AuthoringInfoClassBreakInfo as r}from"../../renderers/support/AuthoringInfoClassBreakInfo.js";import{AuthoringInfoFieldInfo as s}from"../../renderers/support/AuthoringInfoFieldInfo.js";import{createRenderer as o}from"./type.js";import{createColors as t,getClassBreaks as d,verifyBasicFieldValidity as m,getBasemapInfo as u}from"./support/utils.js";import{createLayerAdapter as f,featureCapableLayerTypes as p,getLayerTypeLabels as c}from"../support/adapters/support/layerUtils.js";import{g as h,f as y,c as b,a as w}from"../../chunks/relationship.js";import{applyColorToSymbol as v}from"../../symbols/support/utils.js";const g=["equal-interval","natural-breaks","quantile"],I=["HH","HL","LH","LL"],M={2:[["HL","HH"],["LL","LH"]],3:[["HL","HM","HH"],["ML","MM","MH"],["LL","LM","LH"]],4:[["HL","HM1","HM2","HH"],["M2L","M2M1","M2M2","M2H"],["M1L","M1M1","M1M2","M1H"],["LL","LM1","LM2","LH"]]},z={2:["L","H"],3:["L","M","H"],4:["L","M1","M2","H"]},F=e=>({minValue:e.minValue,maxValue:e.maxValue});async function T(a){if(!(a&&a.layer&&a.view&&a.field1&&a.field2))throw new e("relationship-renderer:missing-parameters","'layer', 'view', 'field1' and 'field2' parameters are required");const i={...a};if(i.symbolType=i.symbolType||"2d",i.defaultSymbolEnabled=null==i.defaultSymbolEnabled||i.defaultSymbolEnabled,i.classificationMethod=i.classificationMethod||"quantile",i.numClasses=i.numClasses||3,i.focus=i.focus||null,-1===g.indexOf(i.classificationMethod))throw new e("relationship-renderer:invalid-parameters",`classification method ${i.classificationMethod} is not supported`);if(i.numClasses<2||i.numClasses>4)throw new e("relationship-renderer:invalid-parameters","'numClasses' must be 2, 3 or 4");if(a.focus&&-1===I.indexOf(a.focus))throw new e("relationship-renderer:invalid-parameters","'focus' must be 'HH', 'HL', 'LH', 'LL' or null");const l=f(i.layer,p);if(i.layer=l,!l)throw new e("relationship-renderer:invalid-parameters","'layer' must be one of these types: "+c(p).join(", "));const r=n(i.signal)?{signal:i.signal}:null;await l.load(r);const s=l.geometryType,o=i.symbolType.indexOf("3d")>-1;if(i.outlineOptimizationEnabled="polygon"===s&&i.outlineOptimizationEnabled,i.sizeOptimizationEnabled=("point"===s||"multipoint"===s||"polyline"===s)&&i.sizeOptimizationEnabled,"mesh"===s)i.symbolType="3d-volumetric",i.colorMixMode=i.colorMixMode||"replace",i.edgesType=i.edgesType||"none";else{if("3d-volumetric-uniform"===i.symbolType&&"point"!==s)throw new e("relationship-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(o&&"polygon"===s)throw new e("relationship-renderer:not-supported","3d symbols are not supported for polygon layers");if(i.symbolType.indexOf("3d-volumetric")>-1&&(!i.view||"3d"!==i.view.type))throw new e("relationship-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const{field1:t,field2:d}=i,u=[t.field,d.field];t.normalizationField&&u.push(t.normalizationField),d.normalizationField&&u.push(d.normalizationField);const h=m(l,u,"relationship-renderer:invalid-parameters");if(h)throw h;return i}async function V(a){if(!(a&&a.renderer&&a.numClasses))throw new e("update-relationship-renderer:missing-parameters","'renderer' and 'numClasses' parameters are required");const{field1:n,field2:i,renderer:l,numClasses:r,colors:s}=a,o=r**2;if((n||i)&&!(n&&i&&n.field&&i.field))throw new e("update-relationship-renderer:missing-parameters","'field1' and 'field2' parameters are required");if(n&&!n.classBreakInfos||i&&!i.classBreakInfos)throw new e("update-relationship-renderer:missing-parameters","'field1.classBreakInfos' and 'field2.classBreakInfos' are required");if(!l.authoringInfo)throw new e("update-relationship-renderer:missing-parameters","'renderer.authoringInfo' is required");if(l.uniqueValueInfos.length!==o)throw new e("update-relationship-renderer:invalid-parameters",`Renderer must have ${o} unique value infos to support ${r} classes`);if(s&&s.length!==o)throw new e("update-relationship-renderer:invalid-parameters",`The scheme must have ${o} colors`);return a}async function H(e){let a=e.relationshipScheme,i=null,l=null;const r=await u(e.basemap,e.view);if(i=n(r.basemapId)?r.basemapId:null,l=n(r.basemapTheme)?r.basemapTheme:null,a)return{scheme:b(a),basemapId:i,basemapTheme:l};const s=w({basemap:i,basemapTheme:l,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return s&&(a=s.primaryScheme,i=s.basemapId,l=s.basemapTheme),{scheme:a,basemapId:i,basemapTheme:l}}function L(e,n){const i=a(M[e]);return y(i,n)}function k(e,a){return L(e,a).map((e=>({value:e,count:0})))}function x(e,a,n,i){const{field:l,normalizationField:r}=e,{field:s,normalizationField:o}=a,t=n.map((e=>[e.minValue,e.maxValue])),d=i.map((e=>[e.minValue,e.maxValue])),m=t.length,u=z[m];return`\n var field1 = $feature['${l}'];\n var field2 = $feature['${s}'];\n var hasNormField1 = ${r?"true":"false"};\n var hasNormField2 = ${o?"true":"false"};\n var normField1 = ${r?`$feature['${r}']`:"null"};\n var normField2 = ${o?`$feature['${o}']`:"null"};\n\n if (\n IsEmpty(field1) ||\n IsEmpty(field2) ||\n (hasNormField1 && (IsEmpty(normField1) || normField1 == 0)) ||\n (hasNormField2 && (IsEmpty(normField2) || normField2 == 0))\n ) {\n return null;\n }\n\n var value1 = IIf(hasNormField1, (field1 / normField1), field1);\n var value2 = IIf(hasNormField2, (field2 / normField2), field2);\n\n var breaks1 = ${JSON.stringify(t)};\n var breaks2 = ${JSON.stringify(d)};\n var classCodes = ${JSON.stringify(u)};\n\n function getClassCode(value, breaks) {\n var code = null;\n\n for (var i in breaks) {\n var info = breaks[i];\n if (value >= info[0] && value <= info[1]) {\n code = classCodes[i];\n break;\n }\n }\n\n return code;\n }\n\n var code1 = getClassCode(value1, breaks1);\n var code2 = getClassCode(value2, breaks2);\n\n var classValue = IIf(IsEmpty(code1) || IsEmpty(code2), null, code1 + code2);\n return classValue;\n `}async function C(a,n,r){const s=await i("esri/smartMapping/t9n/smartMapping"),{basemap:t,classificationMethod:d,field1:m,field2:u,focus:f,numClasses:p,signal:c}=a,y=a.layer,b=n.classBreakInfos,w=r.classBreakInfos;if(p!==b.length||b.length!==w.length)throw new e("relationship-renderer:error","incompatible class breaks");const v=k(p,f),g=x(a.field1,a.field2,b,w),I=(await H({basemap:t,geometryType:y.geometryType,theme:"default",relationshipScheme:a.relationshipScheme,worldScale:a.symbolType.indexOf("3d-volumetric")>-1,view:a.view})).scheme,M=await o({layer:y,basemap:t,valueExpression:g,valueExpressionTitle:s.relationship.legendTitle,numTypes:-1,sortEnabled:!1,defaultSymbolEnabled:a.defaultSymbolEnabled,typeScheme:{colors:h(I,p,f),...I},statistics:{uniqueValueInfos:v},legendOptions:a.legendOptions,outlineOptimizationEnabled:a.outlineOptimizationEnabled,sizeOptimizationEnabled:a.sizeOptimizationEnabled,symbolType:a.symbolType,colorMixMode:a.colorMixMode,edgesType:a.edgesType,view:a.view,signal:c}),z=M.renderer,T=z.uniqueValueInfos,V=s.relationship;for(const e of T)e.label=V[e.value];const L=new l({type:"relationship",classificationMethod:d,numClasses:p,focus:f,field1:{field:m.field,normalizationField:m.normalizationField,label:m.label,classBreakInfos:b.map(F)},field2:{field:u.field,normalizationField:u.normalizationField,label:u.label,classBreakInfos:w.map(F)}});return z.authoringInfo=L,{renderer:z,classBreaks:{field1:n,field2:r},uniqueValueInfos:M.uniqueValueInfos,relationshipScheme:I,basemapId:M.basemapId,basemapTheme:M.basemapTheme}}function E(e,a,n){const i=L(a,n);e.sort(((e,a)=>{const n=i.indexOf(e.value),l=i.indexOf(a.value);let r=0;return n<l?r=-1:n>l&&(r=1),r}))}function O(e,a){const{authoringInfo:n}=e;n.numClasses=a.numClasses,n.focus=a.focus||null,n.focus||delete n.focus;const{field1:i,field2:l}=a;n.field1=new s({field:i.field,normalizationField:i.normalizationField,label:i.label,classBreakInfos:i.classBreakInfos.map((e=>new r(F(e))))}),n.field2=new s({field:l.field,normalizationField:l.normalizationField,label:l.label,classBreakInfos:l.classBreakInfos.map((e=>new r(F(e))))}),e.authoringInfo=n}async function $(e){const a=await V(e),{field1:n,field2:i,renderer:l,numClasses:r,focus:s,colors:o}=a,d=l.clone();if(d.valueExpression=x(n,i,n.classBreakInfos,i.classBreakInfos),E(d.uniqueValueInfos,r,s),o){const e=t(o,o.length);d.uniqueValueInfos.forEach(((a,n)=>v(a.symbol,e[n])))}return O(d,a),d}async function S(a){const n=await T(a),{layer:i,classificationMethod:l,field1:r,field2:s,numClasses:o,view:t,signal:m}=n,u={layer:i,classificationMethod:l,field:r.field,normalizationField:r.normalizationField,normalizationType:r.normalizationField?"field":null,minValue:r.minValue,maxValue:r.maxValue,analyzeData:!(null!=r.minValue&&null!=r.maxValue),numClasses:o,view:t,signal:m},f={layer:i,classificationMethod:l,field:s.field,normalizationField:s.normalizationField,normalizationType:s.normalizationField?"field":null,minValue:s.minValue,maxValue:s.maxValue,analyzeData:!(null!=s.minValue&&null!=s.maxValue),numClasses:o,view:t,signal:m},[p,c]=await Promise.all([d(u),d(f)]);if(!p||!c)throw new e("relationship-renderer:error","error when calculating class breaks");return C(n,p.result,c.result)}export{S as createRenderer,$ as updateRenderer};
5
+ import e from"../../core/Error.js";import{clone as a}from"../../core/lang.js";import{isSome as n}from"../../core/maybe.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import l from"../../renderers/support/AuthoringInfo.js";import{AuthoringInfoClassBreakInfo as r}from"../../renderers/support/AuthoringInfoClassBreakInfo.js";import{AuthoringInfoFieldInfo as s}from"../../renderers/support/AuthoringInfoFieldInfo.js";import{createRenderer as o}from"./type.js";import{createColors as t,getClassBreaks as d,verifyBasicFieldValidity as m,getBasemapInfo as u}from"./support/utils.js";import{createLayerAdapter as f,featureCapableLayerTypes as p,getLayerTypeLabels as c}from"../support/adapters/support/layerUtils.js";import{g as h,f as y,c as b,a as w}from"../../chunks/relationship.js";import{applyColorToSymbol as v}from"../../symbols/support/utils.js";const g=["equal-interval","natural-breaks","quantile"],I=["HH","HL","LH","LL"],M={2:[["HL","HH"],["LL","LH"]],3:[["HL","HM","HH"],["ML","MM","MH"],["LL","LM","LH"]],4:[["HL","HM1","HM2","HH"],["M2L","M2M1","M2M2","M2H"],["M1L","M1M1","M1M2","M1H"],["LL","LM1","LM2","LH"]]},z={2:["L","H"],3:["L","M","H"],4:["L","M1","M2","H"]},F=e=>({minValue:e.minValue,maxValue:e.maxValue});async function T(a){if(!(a&&a.layer&&a.view&&a.field1&&a.field2))throw new e("relationship-renderer:missing-parameters","'layer', 'view', 'field1' and 'field2' parameters are required");const i={...a};if(i.symbolType=i.symbolType||"2d",i.defaultSymbolEnabled=null==i.defaultSymbolEnabled||i.defaultSymbolEnabled,i.classificationMethod=i.classificationMethod||"quantile",i.numClasses=i.numClasses||3,i.focus=i.focus||null,!g.includes(i.classificationMethod))throw new e("relationship-renderer:invalid-parameters",`classification method ${i.classificationMethod} is not supported`);if(i.numClasses<2||i.numClasses>4)throw new e("relationship-renderer:invalid-parameters","'numClasses' must be 2, 3 or 4");if(a.focus&&!I.includes(a.focus))throw new e("relationship-renderer:invalid-parameters","'focus' must be 'HH', 'HL', 'LH', 'LL' or null");const l=f(i.layer,p);if(i.layer=l,!l)throw new e("relationship-renderer:invalid-parameters","'layer' must be one of these types: "+c(p).join(", "));const r=n(i.signal)?{signal:i.signal}:null;await l.load(r);const s=l.geometryType,o=i.symbolType.includes("3d");if(i.outlineOptimizationEnabled="polygon"===s&&i.outlineOptimizationEnabled,i.sizeOptimizationEnabled=("point"===s||"multipoint"===s||"polyline"===s)&&i.sizeOptimizationEnabled,"mesh"===s)i.symbolType="3d-volumetric",i.colorMixMode=i.colorMixMode||"replace",i.edgesType=i.edgesType||"none";else{if("3d-volumetric-uniform"===i.symbolType&&"point"!==s)throw new e("relationship-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(o&&"polygon"===s)throw new e("relationship-renderer:not-supported","3d symbols are not supported for polygon layers");if(i.symbolType.includes("3d-volumetric")&&(!i.view||"3d"!==i.view.type))throw new e("relationship-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const{field1:t,field2:d}=i,u=[t.field,d.field];t.normalizationField&&u.push(t.normalizationField),d.normalizationField&&u.push(d.normalizationField);const h=m(l,u,"relationship-renderer:invalid-parameters");if(h)throw h;return i}async function V(a){if(!(a&&a.renderer&&a.numClasses))throw new e("update-relationship-renderer:missing-parameters","'renderer' and 'numClasses' parameters are required");const{field1:n,field2:i,renderer:l,numClasses:r,colors:s}=a,o=r**2;if((n||i)&&!(n&&i&&n.field&&i.field))throw new e("update-relationship-renderer:missing-parameters","'field1' and 'field2' parameters are required");if(n&&!n.classBreakInfos||i&&!i.classBreakInfos)throw new e("update-relationship-renderer:missing-parameters","'field1.classBreakInfos' and 'field2.classBreakInfos' are required");if(!l.authoringInfo)throw new e("update-relationship-renderer:missing-parameters","'renderer.authoringInfo' is required");if(l.uniqueValueInfos.length!==o)throw new e("update-relationship-renderer:invalid-parameters",`Renderer must have ${o} unique value infos to support ${r} classes`);if(s&&s.length!==o)throw new e("update-relationship-renderer:invalid-parameters",`The scheme must have ${o} colors`);return a}async function H(e){let a=e.relationshipScheme,i=null,l=null;const r=await u(e.basemap,e.view);if(i=n(r.basemapId)?r.basemapId:null,l=n(r.basemapTheme)?r.basemapTheme:null,a)return{scheme:b(a),basemapId:i,basemapTheme:l};const s=w({basemap:i,basemapTheme:l,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return s&&(a=s.primaryScheme,i=s.basemapId,l=s.basemapTheme),{scheme:a,basemapId:i,basemapTheme:l}}function L(e,n){const i=a(M[e]);return y(i,n)}function k(e,a){return L(e,a).map((e=>({value:e,count:0})))}function C(e,a,n,i){const{field:l,normalizationField:r}=e,{field:s,normalizationField:o}=a,t=n.map((e=>[e.minValue,e.maxValue])),d=i.map((e=>[e.minValue,e.maxValue])),m=t.length,u=z[m];return`\n var field1 = $feature['${l}'];\n var field2 = $feature['${s}'];\n var hasNormField1 = ${r?"true":"false"};\n var hasNormField2 = ${o?"true":"false"};\n var normField1 = ${r?`$feature['${r}']`:"null"};\n var normField2 = ${o?`$feature['${o}']`:"null"};\n\n if (\n IsEmpty(field1) ||\n IsEmpty(field2) ||\n (hasNormField1 && (IsEmpty(normField1) || normField1 == 0)) ||\n (hasNormField2 && (IsEmpty(normField2) || normField2 == 0))\n ) {\n return null;\n }\n\n var value1 = IIf(hasNormField1, (field1 / normField1), field1);\n var value2 = IIf(hasNormField2, (field2 / normField2), field2);\n\n var breaks1 = ${JSON.stringify(t)};\n var breaks2 = ${JSON.stringify(d)};\n var classCodes = ${JSON.stringify(u)};\n\n function getClassCode(value, breaks) {\n var code = null;\n\n for (var i in breaks) {\n var info = breaks[i];\n if (value >= info[0] && value <= info[1]) {\n code = classCodes[i];\n break;\n }\n }\n\n return code;\n }\n\n var code1 = getClassCode(value1, breaks1);\n var code2 = getClassCode(value2, breaks2);\n\n var classValue = IIf(IsEmpty(code1) || IsEmpty(code2), null, code1 + code2);\n return classValue;\n `}async function E(a,n,r){const s=await i("esri/smartMapping/t9n/smartMapping"),{basemap:t,classificationMethod:d,field1:m,field2:u,focus:f,numClasses:p,signal:c}=a,y=a.layer,b=n.classBreakInfos,w=r.classBreakInfos;if(p!==b.length||b.length!==w.length)throw new e("relationship-renderer:error","incompatible class breaks");const v=k(p,f),g=C(a.field1,a.field2,b,w),I=(await H({basemap:t,geometryType:y.geometryType,theme:"default",relationshipScheme:a.relationshipScheme,worldScale:a.symbolType.includes("3d-volumetric"),view:a.view})).scheme,M=await o({layer:y,basemap:t,valueExpression:g,valueExpressionTitle:s.relationship.legendTitle,numTypes:-1,sortEnabled:!1,defaultSymbolEnabled:a.defaultSymbolEnabled,typeScheme:{colors:h(I,p,f),...I},statistics:{uniqueValueInfos:v},legendOptions:a.legendOptions,outlineOptimizationEnabled:a.outlineOptimizationEnabled,sizeOptimizationEnabled:a.sizeOptimizationEnabled,symbolType:a.symbolType,colorMixMode:a.colorMixMode,edgesType:a.edgesType,view:a.view,signal:c}),z=M.renderer,T=z.uniqueValueInfos,V=s.relationship;for(const e of T)e.label=V[e.value];const L=new l({type:"relationship",classificationMethod:d,numClasses:p,focus:f,field1:{field:m.field,normalizationField:m.normalizationField,label:m.label,classBreakInfos:b.map(F)},field2:{field:u.field,normalizationField:u.normalizationField,label:u.label,classBreakInfos:w.map(F)}});return z.authoringInfo=L,{renderer:z,classBreaks:{field1:n,field2:r},uniqueValueInfos:M.uniqueValueInfos,relationshipScheme:I,basemapId:M.basemapId,basemapTheme:M.basemapTheme}}function x(e,a,n){const i=L(a,n);e.sort(((e,a)=>{const n=i.indexOf(e.value),l=i.indexOf(a.value);let r=0;return n<l?r=-1:n>l&&(r=1),r}))}function $(e,a){const{authoringInfo:n}=e;n.numClasses=a.numClasses,n.focus=a.focus||null,n.focus||delete n.focus;const{field1:i,field2:l}=a;n.field1=new s({field:i.field,normalizationField:i.normalizationField,label:i.label,classBreakInfos:i.classBreakInfos.map((e=>new r(F(e))))}),n.field2=new s({field:l.field,normalizationField:l.normalizationField,label:l.label,classBreakInfos:l.classBreakInfos.map((e=>new r(F(e))))}),e.authoringInfo=n}async function S(e){const a=await V(e),{field1:n,field2:i,renderer:l,numClasses:r,focus:s,colors:o}=a,d=l.clone();if(d.valueExpression=C(n,i,n.classBreakInfos,i.classBreakInfos),x(d.uniqueValueInfos,r,s),o){const e=t(o,o.length);d.uniqueValueInfos.forEach(((a,n)=>v(a.symbol,e[n])))}return $(d,a),d}async function q(a){const n=await T(a),{layer:i,classificationMethod:l,field1:r,field2:s,numClasses:o,view:t,signal:m}=n,u={layer:i,classificationMethod:l,field:r.field,normalizationField:r.normalizationField,normalizationType:r.normalizationField?"field":null,minValue:r.minValue,maxValue:r.maxValue,analyzeData:!(null!=r.minValue&&null!=r.maxValue),numClasses:o,view:t,signal:m},f={layer:i,classificationMethod:l,field:s.field,normalizationField:s.normalizationField,normalizationType:s.normalizationField?"field":null,minValue:s.minValue,maxValue:s.maxValue,analyzeData:!(null!=s.minValue&&null!=s.maxValue),numClasses:o,view:t,signal:m},[p,c]=await Promise.all([d(u),d(f)]);if(!p||!c)throw new e("relationship-renderer:error","error when calculating class breaks");return E(n,p.result,c.result)}export{q as createRenderer,S as updateRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../renderers/ClassBreaksRenderer.js";import"../../renderers/DictionaryRenderer.js";import"../../renderers/DotDensityRenderer.js";import"../../renderers/HeatmapRenderer.js";import"../../renderers/Renderer.js";import"../../renderers/SimpleRenderer.js";import"../../renderers/UniqueValueRenderer.js";import"../../renderers/support/jsonUtils.js";import i from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import{toPt as s}from"../../core/screenUtils.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{substitute as l}from"../../intl/substitute.js";import r from"../../renderers/support/AuthoringInfo.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as t}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{TransformationType as p}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import u from"../heuristics/ageUnit.js";import d from"../heuristics/outline.js";import y from"../heuristics/sizeRange.js";import{getSummaryStatistics as c,getClassBreaks as b,formatDate as f,updateAgeRendererAuthoringInfoVV as w,verifyBasicFieldValidity as v,getDataRange as h,getSizeRangeForAxis as z,createSymbol as g,getSymbolOutlineFromScheme as x,getSymbolSizeFromScheme as T,getBasemapInfo as S}from"./support/utils.js";import{getAgeExpressions as E,verifyDates as V,supportedAgeUnits as j}from"../statistics/support/ageUtils.js";import{getFieldsList as k,getNormalizationType as O}from"../support/utils.js";import{createLayerAdapter as I,featureCapableLayerTypes as q,getLayerTypeLabels as F}from"../support/adapters/support/layerUtils.js";import{c as U,g as D}from"../../chunks/size.js";const M="date",R=2**53-1;async function B(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};if("90-10"===s.theme)throw new i("size-visual-variable:not-supported","Only 'high-to-low', 'above', 'below' themes are supported.");const n=I(s.layer,q);if(s.layer=n,!n)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+F(q).join(", "));"height"===s.axis&&(s.sizeOptimizationEnabled=!1);const l=a(s.signal)?{signal:s.signal}:null;await n.load(l);const r=n.geometryType;if("mesh"===r)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(s.worldScale){if("polyline"===r||"polygon"===r)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if(!s.view||"3d"!==s.view.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}const o=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),t=v(n,o,"size-visual-variable:invalid-parameters");if(t)throw t;return s}async function C(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const n=I(s.layer,q);if(s.layer=n,!n)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+F(q).join(", "));const l=a(s.signal)?{signal:s.signal}:null;await n.load(l);const r=n.geometryType,o=s.symbolType.indexOf("3d")>-1;if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.indexOf("3d-volumetric")>-1&&(!s.view||"3d"!==s.view.type))throw new i("size-continuous-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),m=v(n,t,"size-continuous-renderer:invalid-parameters");if(m)throw m;return s}async function A(e){if(!e||!e.layer||!e.field&&!e.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled,s.classificationMethod=s.classificationMethod||"equal-interval",s.normalizationType=O(s);const n=I(s.layer,q);if(s.layer=n,!n)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+F(q).join(", "));if(!(null!=s.minValue&&null!=s.maxValue)&&(null!=s.minValue||null!=s.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const l=a(s.signal)?{signal:s.signal}:null;await n.load(l);const r=n.geometryType,o=s.symbolType.indexOf("3d")>-1;if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.indexOf("3d-volumetric")>-1&&(!s.view||"3d"!==s.view.type))throw new i("size-class-breaks-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField}),m=v(n,t,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return s}function W(e){const i={...e};delete i.basemap,delete i.sizeScheme,delete i.legendOptions,delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.analyzeData=!(null!=i.minValue&&null!=i.maxValue),a}function L(e){const i={...e},a=i.symbolType.indexOf("3d-volumetric")>-1,s=i;return s.worldScale=a,a&&(s.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,s}async function P(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new i("size-age-renderer:missing-parameters","'layer', 'view', 'startTime', 'endTime' parameters are required");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const n=I(s.layer,q);if(s.layer=n,!n)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+F(q).join(", "));const l=a(s.signal)?{signal:s.signal}:null;await n.load(l);const r=n.geometryType,o=s.symbolType.indexOf("3d")>-1;if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.indexOf("3d-volumetric")>-1&&(!s.view||"3d"!==s.view.type))throw new i("size-age-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=V(n,s.startTime,s.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(s.unit&&-1===j.indexOf(s.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${j.join(", ")}`);return s}async function $(e){let i=e.sizeScheme,s=null,n=null;const l=await S(e.basemap,e.view);if(s=a(l.basemapId)?l.basemapId:null,n=a(l.basemapTheme)?l.basemapTheme:null,i)return{scheme:U(i),basemapId:s,basemapTheme:n};const r=D({basemap:s,basemapTheme:n,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return r&&(i=r.primaryScheme,s=r.basemapId,n=r.basemapTheme),{scheme:i,basemapId:s,basemapTheme:n}}function H(e,i){let a;switch(i){case"point":case"multipoint":{const i=e;a=[i.minSize,i.maxSize];break}case"polyline":{const i=e;a=[i.minWidth,i.maxWidth];break}case"polygon":{const i=e;a=[i.marker.minSize,i.marker.maxSize];break}}return a}function _(e,i){e.transformationType===p.ClampedLinear&&"below"===i&&e.flipSizes()}async function G(e,a,s,n){const{theme:l,field:t,normalizationField:p,minValue:u,maxValue:d,axis:y}=e,c=e.layer,b=t&&!("function"==typeof t)?c.getField(t):null,f=b&&b.type===M,w=c.geometryType,v=await $({basemap:e.basemap,geometryType:w,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),g=v.scheme;if(!g)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const x=n&&[n.minSize,n.maxSize]||H(g,w),{minDataValue:T,maxDataValue:S,defaultValuesUsed:E}=h(a,s,l,f,"above"===l||"below"===l),V=[],j="height"===y,k=j?y:void 0,O=x[0];let I=x[1];if(j&&"number"==typeof O&&"number"==typeof I){const e=z({minSize:O,maxSize:I},k);V.push(new m({axis:"width-and-depth",minSize:e.minSize})),I=e.maxSize}const q=new m({field:t,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:p,axis:k,minSize:O,maxSize:I,minDataValue:T,maxDataValue:S,legendOptions:e.legendOptions});_(q,l),V.unshift(q);const F=new o({type:"size",theme:l,minSliderValue:null!=u?u:a.min,maxSliderValue:null!=d?d:a.max}),D=new r({visualVariables:[F]});return{basemapId:v.basemapId,basemapTheme:v.basemapTheme,visualVariables:V,statistics:a,defaultValuesUsed:E,sizeScheme:U(g),authoringInfo:D}}async function J(i,a,s,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),t=r.layer,m=r.field,p=t.geometryType,u=r.defaultSymbolEnabled,d=U(i.sizeScheme),y="polygon"===p,c=y?d.marker:d,b=y?d.background:null,f=y?"point":p,w=a&&a.opacity,v=i.visualVariables.map((e=>e.clone()));a&&a.visualVariables&&a.visualVariables.length&&v.push(...a.visualVariables.map((e=>e.clone())));return{renderer:new e({backgroundFillSymbol:b&&g(p,{type:r.symbolType,color:b.color,outline:x(b,p,w)}),classBreakInfos:[{minValue:-R,maxValue:R,symbol:g(f,{type:r.symbolType,color:c.color,size:T(c,f),outline:x(c,f,w)})}],defaultLabel:u?o.other:null,defaultSymbol:u?g(f,{type:r.symbolType,color:c.noDataColor,size:T(c,f,!0),outline:x(c,f,w)}):null,field:m,normalizationField:l,normalizationType:s,valueExpression:r.valueExpression,valueExpressionTitle:r.valueExpressionTitle,visualVariables:v,authoringInfo:i.authoringInfo&&i.authoringInfo.clone()}),visualVariables:i.visualVariables.map((e=>e.clone())),statistics:i.statistics,defaultValuesUsed:i.defaultValuesUsed,sizeScheme:U(i.sizeScheme),basemapId:i.basemapId,basemapTheme:i.basemapTheme}}function K(e,i){const a=s(e.minSize),n=(s(e.maxSize)-a)/(i>=4?i-1:i),l=[];for(let s=0;s<i;s++)l.push(a+n*s);return l}async function N(i,a){const s=await n("esri/smartMapping/t9n/smartMapping"),l=i.layer,o=i.defaultSymbolEnabled,m=l.geometryType,p="polygon"===m,u=i.symbolType.indexOf("3d-volumetric")>-1,d=await $({basemap:i.basemap,geometryType:m,sizeScheme:i.sizeScheme,worldScale:u,view:i.view}),y=d.scheme,{result:c,outlineResult:b}=a,f=c.classBreakInfos,w=i.classificationMethod,v=i.normalizationType,h=p?y.marker:y,S=p?y.background:null,E=p?"point":m,V=H(h,E),j=u&&z({minSize:V[0],maxSize:V[1]},"height"),k=K({minSize:V[0],maxSize:u?j.maxSize:V[1]},f.length),O=b&&b.opacity,I=new e({backgroundFillSymbol:S&&g(m,{type:i.symbolType,color:S.color,outline:x(S,m,O)}),classBreakInfos:f.map(((e,a)=>({minValue:e.minValue,maxValue:e.maxValue,symbol:g(E,{type:i.symbolType,color:h.color,size:k[a],widthAndDepth:j&&j.minSize,outline:x(h,E,O)}),label:e.label}))),defaultLabel:o?s.other:null,defaultSymbol:o?g(E,{type:i.symbolType,color:h.noDataColor,size:T(h,E,!0),widthAndDepth:j&&j.minSize,outline:x(h,E,O)}):null,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,normalizationType:v,normalizationField:i.normalizationField,normalizationTotal:"percent-of-total"===v?c.normalizationTotal:void 0,legendOptions:i.legendOptions,authoringInfo:new r({type:"class-breaks-size",classificationMethod:w,standardDeviationInterval:i.standardDeviationInterval})});return"standard-deviation"!==w&&t({classBreakInfos:I.classBreakInfos,classificationMethod:w,normalizationType:v,round:!0}),b&&b.visualVariables&&b.visualVariables.length&&(I.visualVariables=b.visualVariables.map((e=>e.clone()))),{renderer:I,sizeScheme:U(y),classBreaksResult:c,defaultValuesUsed:a.defaultValuesUsed,basemapId:d.basemapId,basemapTheme:d.basemapTheme}}async function Q(e){const i=await B(e),{view:a,field:s,valueExpression:n,minValue:l,maxValue:r,layer:o,normalizationField:t,signal:m,statistics:p}=i,u=t?"field":void 0,[d,f,w]=await Promise.all([p||c({layer:o,field:s,valueExpression:n,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:u,normalizationField:t,minValue:l,maxValue:r,view:a,signal:m}),"90-10"===i.theme?b({layer:o,field:s,normalizationField:t,valueExpression:n,classificationMethod:"quantile",minValue:l,maxValue:r,view:a,numClasses:10,signal:m}):null,i.sizeOptimizationEnabled?y({view:a,layer:o,signal:m}):null]);return G(i,d,null==f?void 0:f.result,w)}async function X(e){const i=await C(e),a={layer:i.layer,view:i.view,signal:i.signal},[s,n]=await Promise.all([Q(L(i)),i.outlineOptimizationEnabled?d(a):null]),l=i.normalizationField;return J(s,n,l?"field":void 0,l,i)}async function Y(e){const i=await A(e);return N(i,await b(W(i),i.outlineOptimizationEnabled))}async function Z(e){const i=await P(e),{defaultSymbolEnabled:a,view:s,startTime:r,endTime:o,symbolType:t,minValue:m,maxValue:p,signal:y}=i,c=i.layer,b={layer:i.layer,view:i.view,signal:y},[v,h]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await u({view:s,layer:c,startTime:r,endTime:o,minValue:m,maxValue:p,signal:y}),i.outlineOptimizationEnabled?d(b):null]),{unit:z,statistics:g}=v,x=E({layer:c,startTime:r,endTime:o,unit:z}).valueExpression,T=await n("esri/smartMapping/t9n/smartMapping"),S=l(T[`ageInfo_${z}`],{unit:z,startTime:f(r,z,c),endTime:f(o,z,c)}),V=await Q(L({layer:c,basemap:i.basemap,valueExpression:x,symbolType:t,statistics:g,legendOptions:{title:S},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:m,maxValue:p,signal:y})),j={layer:c,valueExpression:x,defaultSymbolEnabled:a,symbolType:t},k=await J(V,h,null,null,j);return k.renderer.authoringInfo.visualVariables.forEach((e=>w(e,r,o,z))),{...k,unit:z}}export{Z as createAgeRenderer,Y as createClassBreaksRenderer,X as createContinuousRenderer,Q as createVisualVariables};
5
+ import e from"../../renderers/ClassBreaksRenderer.js";import"../../renderers/DictionaryRenderer.js";import"../../renderers/DotDensityRenderer.js";import"../../renderers/HeatmapRenderer.js";import"../../renderers/Renderer.js";import"../../renderers/SimpleRenderer.js";import"../../renderers/UniqueValueRenderer.js";import"../../renderers/support/jsonUtils.js";import i from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import{toPt as s}from"../../core/screenUtils.js";import{fetchMessageBundle as l}from"../../intl/messages.js";import{substitute as n}from"../../intl/substitute.js";import r from"../../renderers/support/AuthoringInfo.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as t}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{TransformationType as u}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import p from"../heuristics/ageUnit.js";import d from"../heuristics/outline.js";import y from"../heuristics/sizeRange.js";import{getSummaryStatistics as c,getClassBreaks as b,formatDate as f,updateAgeRendererAuthoringInfoVV as w,verifyBasicFieldValidity as v,getDataRange as h,getSizeRangeForAxis as z,createSymbol as g,getSymbolOutlineFromScheme as T,getSymbolSizeFromScheme as x,getBasemapInfo as S}from"./support/utils.js";import{getAgeExpressions as E,verifyDates as V,supportedAgeUnits as j}from"../statistics/support/ageUtils.js";import{getFieldsList as k,getNormalizationType as I}from"../support/utils.js";import{createLayerAdapter as q,featureCapableLayerTypes as O,getLayerTypeLabels as F}from"../support/adapters/support/layerUtils.js";import{c as U,g as D}from"../../chunks/size.js";const M="date",R=2**53-1;async function B(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};if("90-10"===s.theme)throw new i("size-visual-variable:not-supported","Only 'high-to-low', 'above', 'below' themes are supported.");const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));"height"===s.axis&&(s.sizeOptimizationEnabled=!1);const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType;if("mesh"===r)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(s.worldScale){if("polyline"===r||"polygon"===r)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if(!s.view||"3d"!==s.view.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}const o=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),t=v(l,o,"size-visual-variable:invalid-parameters");if(t)throw t;return s}async function C(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-continuous-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),m=v(l,t,"size-continuous-renderer:invalid-parameters");if(m)throw m;return s}async function A(e){if(!e||!e.layer||!e.field&&!e.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled,s.classificationMethod=s.classificationMethod||"equal-interval",s.normalizationType=I(s);const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));if(!(null!=s.minValue&&null!=s.maxValue)&&(null!=s.minValue||null!=s.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-class-breaks-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField}),m=v(l,t,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return s}function W(e){const i={...e};delete i.basemap,delete i.sizeScheme,delete i.legendOptions,delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.analyzeData=!(null!=i.minValue&&null!=i.maxValue),a}function L(e){const i={...e},a=i.symbolType.includes("3d-volumetric"),s=i;return s.worldScale=a,a&&(s.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,s}async function P(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new i("size-age-renderer:missing-parameters","'layer', 'view', 'startTime', 'endTime' parameters are required");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-age-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=V(l,s.startTime,s.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(s.unit&&!j.includes(s.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${j.join(", ")}`);return s}async function $(e){let i=e.sizeScheme,s=null,l=null;const n=await S(e.basemap,e.view);if(s=a(n.basemapId)?n.basemapId:null,l=a(n.basemapTheme)?n.basemapTheme:null,i)return{scheme:U(i),basemapId:s,basemapTheme:l};const r=D({basemap:s,basemapTheme:l,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return r&&(i=r.primaryScheme,s=r.basemapId,l=r.basemapTheme),{scheme:i,basemapId:s,basemapTheme:l}}function H(e,i){let a;switch(i){case"point":case"multipoint":{const i=e;a=[i.minSize,i.maxSize];break}case"polyline":{const i=e;a=[i.minWidth,i.maxWidth];break}case"polygon":{const i=e;a=[i.marker.minSize,i.marker.maxSize];break}}return a}function _(e,i){e.transformationType===u.ClampedLinear&&"below"===i&&e.flipSizes()}async function G(e,a,s,l){const{theme:n,field:t,normalizationField:u,minValue:p,maxValue:d,axis:y}=e,c=e.layer,b=t&&!("function"==typeof t)?c.getField(t):null,f=b&&b.type===M,w=c.geometryType,v=await $({basemap:e.basemap,geometryType:w,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),g=v.scheme;if(!g)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const T=l&&[l.minSize,l.maxSize]||H(g,w),{minDataValue:x,maxDataValue:S,defaultValuesUsed:E}=h(a,s,n,f,"above"===n||"below"===n),V=[],j="height"===y,k=j?y:void 0,I=T[0];let q=T[1];if(j&&"number"==typeof I&&"number"==typeof q){const e=z({minSize:I,maxSize:q},k);V.push(new m({axis:"width-and-depth",minSize:e.minSize})),q=e.maxSize}const O=new m({field:t,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:u,axis:k,minSize:I,maxSize:q,minDataValue:x,maxDataValue:S,legendOptions:e.legendOptions});_(O,n),V.unshift(O);const F=new o({type:"size",theme:n,minSliderValue:null!=p?p:a.min,maxSliderValue:null!=d?d:a.max}),D=new r({visualVariables:[F]});return{basemapId:v.basemapId,basemapTheme:v.basemapTheme,visualVariables:V,statistics:a,defaultValuesUsed:E,sizeScheme:U(g),authoringInfo:D}}async function J(i,a,s,n,r){const o=await l("esri/smartMapping/t9n/smartMapping"),t=r.layer,m=r.field,u=t.geometryType,p=r.defaultSymbolEnabled,d=U(i.sizeScheme),y="polygon"===u,c=y?d.marker:d,b=y?d.background:null,f=y?"point":u,w=a&&a.opacity,v=i.visualVariables.map((e=>e.clone()));a&&a.visualVariables&&a.visualVariables.length&&v.push(...a.visualVariables.map((e=>e.clone())));return{renderer:new e({backgroundFillSymbol:b&&g(u,{type:r.symbolType,color:b.color,outline:T(b,u,w)}),classBreakInfos:[{minValue:-R,maxValue:R,symbol:g(f,{type:r.symbolType,color:c.color,size:x(c,f),outline:T(c,f,w)})}],defaultLabel:p?o.other:null,defaultSymbol:p?g(f,{type:r.symbolType,color:c.noDataColor,size:x(c,f,!0),outline:T(c,f,w)}):null,field:m,normalizationField:n,normalizationType:s,valueExpression:r.valueExpression,valueExpressionTitle:r.valueExpressionTitle,visualVariables:v,authoringInfo:i.authoringInfo&&i.authoringInfo.clone()}),visualVariables:i.visualVariables.map((e=>e.clone())),statistics:i.statistics,defaultValuesUsed:i.defaultValuesUsed,sizeScheme:U(i.sizeScheme),basemapId:i.basemapId,basemapTheme:i.basemapTheme}}function K(e,i){const a=s(e.minSize),l=(s(e.maxSize)-a)/(i>=4?i-1:i),n=[];for(let s=0;s<i;s++)n.push(a+l*s);return n}async function N(i,a){const s=await l("esri/smartMapping/t9n/smartMapping"),n=i.layer,o=i.defaultSymbolEnabled,m=n.geometryType,u="polygon"===m,p=i.symbolType.includes("3d-volumetric"),d=await $({basemap:i.basemap,geometryType:m,sizeScheme:i.sizeScheme,worldScale:p,view:i.view}),y=d.scheme,{result:c,outlineResult:b}=a,f=c.classBreakInfos,w=i.classificationMethod,v=i.normalizationType,h=u?y.marker:y,S=u?y.background:null,E=u?"point":m,V=H(h,E),j=p&&z({minSize:V[0],maxSize:V[1]},"height"),k=K({minSize:V[0],maxSize:p?j.maxSize:V[1]},f.length),I=b&&b.opacity,q=new e({backgroundFillSymbol:S&&g(m,{type:i.symbolType,color:S.color,outline:T(S,m,I)}),classBreakInfos:f.map(((e,a)=>({minValue:e.minValue,maxValue:e.maxValue,symbol:g(E,{type:i.symbolType,color:h.color,size:k[a],widthAndDepth:j&&j.minSize,outline:T(h,E,I)}),label:e.label}))),defaultLabel:o?s.other:null,defaultSymbol:o?g(E,{type:i.symbolType,color:h.noDataColor,size:x(h,E,!0),widthAndDepth:j&&j.minSize,outline:T(h,E,I)}):null,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,normalizationType:v,normalizationField:i.normalizationField,normalizationTotal:"percent-of-total"===v?c.normalizationTotal:void 0,legendOptions:i.legendOptions,authoringInfo:new r({type:"class-breaks-size",classificationMethod:w,standardDeviationInterval:i.standardDeviationInterval})});return"standard-deviation"!==w&&t({classBreakInfos:q.classBreakInfos,classificationMethod:w,normalizationType:v,round:!0}),b&&b.visualVariables&&b.visualVariables.length&&(q.visualVariables=b.visualVariables.map((e=>e.clone()))),{renderer:q,sizeScheme:U(y),classBreaksResult:c,defaultValuesUsed:a.defaultValuesUsed,basemapId:d.basemapId,basemapTheme:d.basemapTheme}}async function Q(e){const i=await B(e),{view:a,field:s,valueExpression:l,minValue:n,maxValue:r,layer:o,normalizationField:t,signal:m,statistics:u}=i,p=t?"field":void 0,[d,f,w]=await Promise.all([u||c({layer:o,field:s,valueExpression:l,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:p,normalizationField:t,minValue:n,maxValue:r,view:a,signal:m}),"90-10"===i.theme?b({layer:o,field:s,normalizationField:t,valueExpression:l,classificationMethod:"quantile",minValue:n,maxValue:r,view:a,numClasses:10,signal:m}):null,i.sizeOptimizationEnabled?y({view:a,layer:o,signal:m}):null]);return G(i,d,null==f?void 0:f.result,w)}async function X(e){const i=await C(e),a={layer:i.layer,view:i.view,signal:i.signal},[s,l]=await Promise.all([Q(L(i)),i.outlineOptimizationEnabled?d(a):null]),n=i.normalizationField;return J(s,l,n?"field":void 0,n,i)}async function Y(e){const i=await A(e);return N(i,await b(W(i),i.outlineOptimizationEnabled))}async function Z(e){const i=await P(e),{defaultSymbolEnabled:a,view:s,startTime:r,endTime:o,symbolType:t,minValue:m,maxValue:u,signal:y}=i,c=i.layer,b={layer:i.layer,view:i.view,signal:y},[v,h]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await p({view:s,layer:c,startTime:r,endTime:o,minValue:m,maxValue:u,signal:y}),i.outlineOptimizationEnabled?d(b):null]),{unit:z,statistics:g}=v,T=E({layer:c,startTime:r,endTime:o,unit:z}).valueExpression,x=await l("esri/smartMapping/t9n/smartMapping"),S=n(x[`ageInfo_${z}`],{unit:z,startTime:f(r,z,c),endTime:f(o,z,c)}),V=await Q(L({layer:c,basemap:i.basemap,valueExpression:T,symbolType:t,statistics:g,legendOptions:{title:S},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:m,maxValue:u,signal:y})),j={layer:c,valueExpression:T,defaultSymbolEnabled:a,symbolType:t},k=await J(V,h,null,null,j);return k.renderer.authoringInfo.visualVariables.forEach((e=>w(e,r,o,z))),{...k,unit:z}}export{Z as createAgeRenderer,Y as createClassBreaksRenderer,X as createContinuousRenderer,Q as createVisualVariables};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../Color.js";import"../../../symbols.js";import"../../../core/has.js";import t from"../../../core/Error.js";import{isSome as o}from"../../../core/maybe.js";import{formatDate as n,convertDateFormatToIntlOptions as s}from"../../../intl/date.js";import{round as i}from"../../../renderers/support/numberUtils.js";import l from"../../../renderers/support/pointCloud/PointSizeSplatAlgorithm.js";import r from"../../heuristics/outline.js";import a from"../../statistics/classBreaks.js";import m from"../../statistics/summaryStatistics.js";import{defaultBasemapGroups as u,getBasemapId as c,getBasemapGroup as f}from"../../support/utils.js";import d from"../../../symbols/edges/SketchEdges3D.js";import p from"../../../symbols/edges/SolidEdges3D.js";import{getBackgroundColorTheme as y}from"../../../views/support/colorUtils.js";import h from"../../../symbols/MeshSymbol3D.js";import b from"../../../symbols/FillSymbol3DLayer.js";import w from"../../../symbols/SimpleFillSymbol.js";import g from"../../../symbols/PolygonSymbol3D.js";import D from"../../../symbols/ExtrudeSymbol3DLayer.js";import j from"../../../symbols/SimpleLineSymbol.js";import v from"../../../symbols/LineSymbol3D.js";import x from"../../../symbols/LineSymbol3DLayer.js";import S from"../../../symbols/PathSymbol3DLayer.js";import z from"../../../symbols/SimpleMarkerSymbol.js";import V from"../../../symbols/PointSymbol3D.js";import L from"../../../symbols/IconSymbol3DLayer.js";import k from"../../../symbols/ObjectSymbol3DLayer.js";const U=/^(\d+(\.\d+)?)\s*(%)$/i,I=[0,0,0,.4],T=["hours","minutes","seconds"],F=[].concat(u.light).concat(u.dark);function B(e,t,o){if("string"==typeof e){const t=o.getField(e);if(t&&"date"===t.type)return t.alias||t.name}else if("number"==typeof e||e instanceof Date){const o=T.indexOf(t)>-1?"short-date-short-time":"short-date";return n(e,s(o))}return e}function M(e,o){return new t(e,o)}function C(e,t,o){return e+t>0&&0>e-t&&o<0?0:e}function P(e,t,o,n,s=!0){const i="90-10"===o&&t?{min:t.classBreakInfos[0].maxValue,max:t.classBreakInfos[t.classBreakInfos.length-1].minValue,avg:null,stddev:null}:e,{avg:l,stddev:r,min:a,max:m}=i,u=E(i,n,s);let c=u?u[0]:a,f=u?u[1]:m;return u?{minDataValue:c,maxDataValue:f,defaultValuesUsed:!0}:("above"===o?c=C(l,r,a):"below"===o&&(f=C(l,r,a)),{minDataValue:c,maxDataValue:f,defaultValuesUsed:!1})}function E(e,t,o){let n,s;const i=A({statistics:e,isDate:t});return i.defaultValuesUsed?(n=i.min,s=i.max):!o||null!=e.avg&&e.stddev||(n=e.min,s=e.max),null!=n?[n,s]:null}function A(e){let t,o,n=e&&e.statistics;if(n||(n={}),null==n.min)if(e.isDate){const e=O();t=e[0],o=e[1]}else t=0,o=100;else if(n.min===n.max)if(e.isDate){const e=O(n.min);t=e[0],o=e[1]}else n.min<0?(t=2*n.min,o=0):n.min>0?(t=0,o=2*n.min):(t=0,o=100);return{min:null!=t?t:n.min,max:null!=o?o:n.max,defaultValuesUsed:null!=t||null!=o}}function O(e){const t=("number"==typeof e?new Date(e):new Date).getUTCFullYear();let o=Date.UTC(t,0,1,12,0,0,0),n=Date.UTC(t,11,31,12,0,0,0);return"number"==typeof e&&(e<o&&(o=e),e>n&&(n=e)),[o,n]}function R(t,o){const n=[],s=t.length;for(let i=0;i<o;i++)n.push(new e(t[i%s]));return n}function Y(e,t,o,n=!0){const{minDataValue:s,maxDataValue:i,defaultValuesUsed:l}=e;return l||"above"===o||"below"===o||"90-10"===o?N(s,i,5):$(t,n)}function W(e){const{avg:t,stddev:o,min:n,max:s}=e;if(null==t||null==o)return N(n,s,5);const l=C(t,o,n),r=s-l,a=l-n,m=Math.max(r,a);return i([l-m,l-m/2,l,m/2+l,l+m],{strictBounds:!0})}function q(e,t){const{min:o,max:n}=t,[s,l,r,a,m]=e,u=null!=o&&s<o,c=null!=n&&m>n;if(null==o||null==n||!u&&!c)return e;const f=u?o:s,d=c?n:m;return i([f,u?f+(r-f)/2:l,r,c?r+(d-r)/2:a,d],{strictBounds:!0})}function N(e,t,o){const n=(t-e)/(o-1),s=[e];for(let i=1;i<=o-2;i++)s.push(e+i*n);return s.push(t),i(s,{strictBounds:!0})}function $(e,t=!0){let o=e.avg,n=o-e.stddev,s=o+e.stddev;n<e.min&&(n=e.min),s>e.max&&(s=e.max),t&&(o=n+(s-n)/2);let l=i([n,s],{strictBounds:!0});return n=l[0],s=l[1],l=[n,n+(o-n)/2,o,o+(s-o)/2,s],i(l,{strictBounds:!0})}function G(e,t,o){switch(t){case"point":case"multipoint":return o?"noDataSize"in e?e.noDataSize:null:"size"in e?e.size:null;case"polyline":return o?"noDataWidth"in e?e.noDataWidth:null:"width"in e?e.width:null;case"polygon":return"size"in e?e.size:null;default:return}}function H(e,t,o){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!=o&&t.color){const e=t.color.clone();e.a=o,t.color=e}return t}default:return}}function J(e,t){const{type:o,size:n,color:s,outline:i}=t;let l;switch(e){case"point":case"multipoint":if("2d"===o)l=new z({color:s,size:n,outline:{color:i.color,width:i.width}});else if("3d-flat"===o)l=new V({symbolLayers:[new L({size:n,resource:{primitive:"circle"},material:{color:s},outline:{color:i.color,size:i.width}})]});else if(o.indexOf("3d-volumetric")>-1){const e="3d-volumetric-uniform"===o,i=new k({height:n,resource:{primitive:e?"sphere":"cylinder"},material:{color:s}});e||(i.width=t.widthAndDepth,i.depth=t.widthAndDepth),l=new V({symbolLayers:[i]})}break;case"polyline":"2d"===o?l=new j({color:s,width:n}):"3d-flat"===o?l=new v({symbolLayers:[new x({size:n,material:{color:s}})]}):"3d-volumetric"===o&&(l=new v({symbolLayers:[new S({width:"number"==typeof n?n:parseFloat(n),height:"number"==typeof n?n:parseFloat(n),material:{color:s}})]}));break;case"polygon":"2d"===o?l=new w({color:s,outline:{color:i.color,width:i.width}}):"3d-flat"===o?l=new g({symbolLayers:[new b({material:{color:s},outline:{color:i.color,size:i.width}})]}):"3d-volumetric"===o&&(l=new g({symbolLayers:[new D({size:n,material:{color:s}})]}));break;case"mesh":{const e=t.meshInfo&&t.meshInfo.colorMixMode,o=t.meshInfo&&t.meshInfo.edgesType;l=new h({symbolLayers:[new b({material:{color:s,colorMixMode:e||null},edges:"solid"===o?new p({color:I}):"sketch"===o?new d({color:I}):null})]});break}}return l}function K(e,t,o){const n=Q({layer:e,fields:t});if(n.length)return M(o,"Unknown fields: "+n.join(", ")+". You can only use fields defined in the layer schema");const s=X({layer:e,fields:t});return s.length?M(o,"Unsupported fields: "+s.join(", ")+". You can only use fields that are accessible to the renderer i.e. FieldUsageInfo.supportsRenderer must be true"):void 0}function Q(e){const t=e.layer;return e.fields.filter((e=>!t.getField(e)))}function X(e){const t=e.layer;return e.fields.filter((e=>{const o=t.getFieldUsageInfo(e);return!o||!o.supportsRenderer}))}async function Z(e,t){const o={layer:e.layer,view:e.view,signal:e.signal},[n,s]=await Promise.all([a(e),t?r(o):null]),i=E({min:n.minValue,max:n.maxValue,avg:null,stddev:null},!1,!1);return{result:i?await a({...e,classificationMethod:"equal-interval",numClasses:1,analyzeData:!1,minValue:i[0],maxValue:i[1],normalizationTotal:i[0]+i[1]}):n,defaultValuesUsed:!!i,outlineResult:s}}function _(e){return m(e)}function ee(e,t){let{minSize:o,maxSize:n}=e;if("height"===t){o=((n-o)/2+o)/(2*2.3),n*=2}return{minSize:o,maxSize:n}}function te(e){return U.test(e)}function oe(e){const t=e.match(U),o=Number(t[1]);if("%"===t[3])return new l({scaleFactor:o/100})}function ne(e,t,o,n){e.startTime=t instanceof Date?t.getTime():t,e.endTime=o instanceof Date?o.getTime():o,e.units=n,e.field="string"==typeof t?t:"string"==typeof o?o:null}async function se(e,t){let n=null,s=null;if(!e&&!t)return{basemapId:n,basemapTheme:s};var i;!e&&t&&(e=t&&(null==(i=t.map)?void 0:i.basemap));if(e&&(n=c(e,F,!1),n)){const e=f(n);o(e)&&(s=e)}return n||"2d"!==(null==t?void 0:t.type)||(s=await y(t),o(s)&&(n="dark"===s?"dark-gray":"gray")),{basemapId:n,basemapTheme:s}}export{q as clampAboveAndBelowStopValues,R as createColors,Y as createDataValues,N as createDefaultStopValues,M as createError,$ as createStopValues,W as createStopValuesForAboveBelow,J as createSymbol,B as formatDate,C as getBaseValueForAboveBelow,se as getBasemapInfo,Z as getClassBreaks,P as getDataRange,E as getDefaultDataRange,oe as getPointSizeAlgorithm,ee as getSizeRangeForAxis,_ as getSummaryStatistics,H as getSymbolOutlineFromScheme,G as getSymbolSizeFromScheme,te as isValidPointSize,ne as updateAgeRendererAuthoringInfoVV,K as verifyBasicFieldValidity};
5
+ import e from"../../../Color.js";import"../../../symbols.js";import"../../../core/has.js";import t from"../../../core/Error.js";import{isSome as o}from"../../../core/maybe.js";import{formatDate as n,convertDateFormatToIntlOptions as s}from"../../../intl/date.js";import{round as l}from"../../../renderers/support/numberUtils.js";import i from"../../../renderers/support/pointCloud/PointSizeSplatAlgorithm.js";import r from"../../heuristics/outline.js";import a from"../../statistics/classBreaks.js";import m from"../../statistics/summaryStatistics.js";import{defaultBasemapGroups as u,getBasemapId as c,getBasemapGroup as f}from"../../support/utils.js";import d from"../../../symbols/edges/SketchEdges3D.js";import p from"../../../symbols/edges/SolidEdges3D.js";import{getBackgroundColorTheme as y}from"../../../views/support/colorUtils.js";import h from"../../../symbols/MeshSymbol3D.js";import b from"../../../symbols/FillSymbol3DLayer.js";import w from"../../../symbols/SimpleFillSymbol.js";import g from"../../../symbols/PolygonSymbol3D.js";import D from"../../../symbols/ExtrudeSymbol3DLayer.js";import j from"../../../symbols/SimpleLineSymbol.js";import v from"../../../symbols/LineSymbol3D.js";import S from"../../../symbols/LineSymbol3DLayer.js";import x from"../../../symbols/PathSymbol3DLayer.js";import z from"../../../symbols/SimpleMarkerSymbol.js";import V from"../../../symbols/PointSymbol3D.js";import L from"../../../symbols/IconSymbol3DLayer.js";import k from"../../../symbols/ObjectSymbol3DLayer.js";const U=/^(\d+(\.\d+)?)\s*(%)$/i,I=[0,0,0,.4],T=["hours","minutes","seconds"],F=[].concat(u.light).concat(u.dark);function B(e,t,o){if("string"==typeof e){const t=o.getField(e);if(t&&"date"===t.type)return t.alias||t.name}else if("number"==typeof e||e instanceof Date){const o=T.includes(t)?"short-date-short-time":"short-date";return n(e,s(o))}return e}function M(e,o){return new t(e,o)}function C(e,t,o){return e+t>0&&0>e-t&&o<0?0:e}function P(e,t,o,n,s=!0){const l="90-10"===o&&t?{min:t.classBreakInfos[0].maxValue,max:t.classBreakInfos[t.classBreakInfos.length-1].minValue,avg:null,stddev:null}:e,{avg:i,stddev:r,min:a,max:m}=l,u=E(l,n,s);let c=u?u[0]:a,f=u?u[1]:m;return u?{minDataValue:c,maxDataValue:f,defaultValuesUsed:!0}:("above"===o?c=C(i,r,a):"below"===o&&(f=C(i,r,a)),{minDataValue:c,maxDataValue:f,defaultValuesUsed:!1})}function E(e,t,o){let n,s;const l=A({statistics:e,isDate:t});return l.defaultValuesUsed?(n=l.min,s=l.max):!o||null!=e.avg&&e.stddev||(n=e.min,s=e.max),null!=n?[n,s]:null}function A(e){let t,o,n=e&&e.statistics;if(n||(n={}),null==n.min)if(e.isDate){const e=R();t=e[0],o=e[1]}else t=0,o=100;else if(n.min===n.max)if(e.isDate){const e=R(n.min);t=e[0],o=e[1]}else n.min<0?(t=2*n.min,o=0):n.min>0?(t=0,o=2*n.min):(t=0,o=100);return{min:null!=t?t:n.min,max:null!=o?o:n.max,defaultValuesUsed:null!=t||null!=o}}function R(e){const t=("number"==typeof e?new Date(e):new Date).getUTCFullYear();let o=Date.UTC(t,0,1,12,0,0,0),n=Date.UTC(t,11,31,12,0,0,0);return"number"==typeof e&&(e<o&&(o=e),e>n&&(n=e)),[o,n]}function Y(t,o){const n=[],s=t.length;for(let l=0;l<o;l++)n.push(new e(t[l%s]));return n}function W(e,t,o,n=!0){const{minDataValue:s,maxDataValue:l,defaultValuesUsed:i}=e;return i||"above"===o||"below"===o||"90-10"===o?O(s,l,5):$(t,n)}function q(e){const{avg:t,stddev:o,min:n,max:s}=e;if(null==t||null==o)return O(n,s,5);const i=C(t,o,n),r=s-i,a=i-n,m=Math.max(r,a);return l([i-m,i-m/2,i,m/2+i,i+m],{strictBounds:!0})}function N(e,t){const{min:o,max:n}=t,[s,i,r,a,m]=e,u=null!=o&&s<o,c=null!=n&&m>n;if(null==o||null==n||!u&&!c)return e;const f=u?o:s,d=c?n:m;return l([f,u?f+(r-f)/2:i,r,c?r+(d-r)/2:a,d],{strictBounds:!0})}function O(e,t,o){const n=(t-e)/(o-1),s=[e];for(let l=1;l<=o-2;l++)s.push(e+l*n);return s.push(t),l(s,{strictBounds:!0})}function $(e,t=!0){let o=e.avg,n=o-e.stddev,s=o+e.stddev;n<e.min&&(n=e.min),s>e.max&&(s=e.max),t&&(o=n+(s-n)/2);let i=l([n,s],{strictBounds:!0});return n=i[0],s=i[1],i=[n,n+(o-n)/2,o,o+(s-o)/2,s],l(i,{strictBounds:!0})}function G(e,t,o){switch(t){case"point":case"multipoint":return o?"noDataSize"in e?e.noDataSize:null:"size"in e?e.size:null;case"polyline":return o?"noDataWidth"in e?e.noDataWidth:null:"width"in e?e.width:null;case"polygon":return"size"in e?e.size:null;default:return}}function H(e,t,o){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!=o&&t.color){const e=t.color.clone();e.a=o,t.color=e}return t}default:return}}function J(e,t){const{type:o,size:n,color:s,outline:l}=t;let i;switch(e){case"point":case"multipoint":if("2d"===o)i=new z({color:s,size:n,outline:{color:l.color,width:l.width}});else if("3d-flat"===o)i=new V({symbolLayers:[new L({size:n,resource:{primitive:"circle"},material:{color:s},outline:{color:l.color,size:l.width}})]});else if(o.includes("3d-volumetric")){const e="3d-volumetric-uniform"===o,l=new k({height:n,resource:{primitive:e?"sphere":"cylinder"},material:{color:s}});e||(l.width=t.widthAndDepth,l.depth=t.widthAndDepth),i=new V({symbolLayers:[l]})}break;case"polyline":"2d"===o?i=new j({color:s,width:n}):"3d-flat"===o?i=new v({symbolLayers:[new S({size:n,material:{color:s}})]}):"3d-volumetric"===o&&(i=new v({symbolLayers:[new x({width:"number"==typeof n?n:parseFloat(n),height:"number"==typeof n?n:parseFloat(n),material:{color:s}})]}));break;case"polygon":"2d"===o?i=new w({color:s,outline:{color:l.color,width:l.width}}):"3d-flat"===o?i=new g({symbolLayers:[new b({material:{color:s},outline:{color:l.color,size:l.width}})]}):"3d-volumetric"===o&&(i=new g({symbolLayers:[new D({size:n,material:{color:s}})]}));break;case"mesh":{const e=t.meshInfo&&t.meshInfo.colorMixMode,o=t.meshInfo&&t.meshInfo.edgesType;i=new h({symbolLayers:[new b({material:{color:s,colorMixMode:e||null},edges:"solid"===o?new p({color:I}):"sketch"===o?new d({color:I}):null})]});break}}return i}function K(e,t,o){const n=Q({layer:e,fields:t});if(n.length)return M(o,"Unknown fields: "+n.join(", ")+". You can only use fields defined in the layer schema");const s=X({layer:e,fields:t});return s.length?M(o,"Unsupported fields: "+s.join(", ")+". You can only use fields that are accessible to the renderer i.e. FieldUsageInfo.supportsRenderer must be true"):void 0}function Q(e){const t=e.layer;return e.fields.filter((e=>!t.getField(e)))}function X(e){const t=e.layer;return e.fields.filter((e=>{const o=t.getFieldUsageInfo(e);return!o||!o.supportsRenderer}))}async function Z(e,t){const o={layer:e.layer,view:e.view,signal:e.signal},[n,s]=await Promise.all([a(e),t?r(o):null]),l=E({min:n.minValue,max:n.maxValue,avg:null,stddev:null},!1,!1);return{result:l?await a({...e,classificationMethod:"equal-interval",numClasses:1,analyzeData:!1,minValue:l[0],maxValue:l[1],normalizationTotal:l[0]+l[1]}):n,defaultValuesUsed:!!l,outlineResult:s}}function _(e){return m(e)}function ee(e,t){let{minSize:o,maxSize:n}=e;if("height"===t){o=((n-o)/2+o)/(2*2.3),n*=2}return{minSize:o,maxSize:n}}function te(e){return U.test(e)}function oe(e){const t=e.match(U),o=Number(t[1]);if("%"===t[3])return new i({scaleFactor:o/100})}function ne(e,t,o,n){e.startTime=t instanceof Date?t.getTime():t,e.endTime=o instanceof Date?o.getTime():o,e.units=n,e.field="string"==typeof t?t:"string"==typeof o?o:null}async function se(e,t){let n=null,s=null;if(!e&&!t)return{basemapId:n,basemapTheme:s};var l;!e&&t&&(e=t&&(null==(l=t.map)?void 0:l.basemap));if(e&&(n=c(e,F,!1),n)){const e=f(n);o(e)&&(s=e)}return n||"2d"!==(null==t?void 0:t.type)||(s=await y(t),o(s)&&(n="dark"===s?"dark-gray":"gray")),{basemapId:n,basemapTheme:s}}export{N as clampAboveAndBelowStopValues,Y as createColors,W as createDataValues,O as createDefaultStopValues,M as createError,$ as createStopValues,q as createStopValuesForAboveBelow,J as createSymbol,B as formatDate,C as getBaseValueForAboveBelow,se as getBasemapInfo,Z as getClassBreaks,P as getDataRange,E as getDefaultDataRange,oe as getPointSizeAlgorithm,ee as getSizeRangeForAxis,_ as getSummaryStatistics,H as getSymbolOutlineFromScheme,G as getSymbolSizeFromScheme,te as isValidPointSize,ne as updateAgeRendererAuthoringInfoVV,K 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/4.24/esri/copyright.txt for details.
4
4
  */
5
- import"../../renderers/PointCloudClassBreaksRenderer.js";import"../../renderers/PointCloudRenderer.js";import"../../renderers/PointCloudRGBRenderer.js";import"../../renderers/PointCloudStretchRenderer.js";import e from"../../renderers/PointCloudUniqueValueRenderer.js";import"../../renderers/ClassBreaksRenderer.js";import"../../renderers/DictionaryRenderer.js";import"../../renderers/DotDensityRenderer.js";import"../../renderers/HeatmapRenderer.js";import"../../renderers/Renderer.js";import"../../renderers/SimpleRenderer.js";import r from"../../renderers/UniqueValueRenderer.js";import"../../renderers/support/jsonUtils.js";import s from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{isSome as o}from"../../core/maybe.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import{LegendOptions as t}from"../../renderers/support/LegendOptions.js";import{createUniqueValueLabel as n,calculateDateFormatInterval as a}from"../../renderers/support/utils.js";import p from"../heuristics/outline.js";import u from"../heuristics/sizeRange.js";import{getPointSizeAlgorithm as m,verifyBasicFieldValidity as d,isValidPointSize as c,createColors as y,getSymbolSizeFromScheme as f,getSymbolOutlineFromScheme as b,createSymbol as h,getBasemapInfo as v}from"./support/utils.js";import g from"../statistics/uniqueValues.js";import{getFieldsList as w}from"../support/utils.js";import{createLayerAdapter as T,featureCapableLayerTypes as E,getLayerTypeLabels as j,LayerType as x}from"../support/adapters/support/layerUtils.js";import{c as I,g as V}from"../../chunks/type.js";const z="date";async function M(e){if(!e||!e.layer||!e.field&&!e.valueExpression)throw new s("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new s("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");const r={...e};r.symbolType=r.symbolType||"2d",r.numTypes=null==r.numTypes?10:r.numTypes,r.defaultSymbolEnabled=null==r.defaultSymbolEnabled||r.defaultSymbolEnabled,r.sortBy=null==r.sortBy?"count":r.sortBy,r.sortEnabled=null==r.sortEnabled||r.sortEnabled,r.statistics=l(r.statistics);const i=T(r.layer,E);if(r.layer=i,!i)throw new s("type-renderer:invalid-parameters","'layer' must be one of these types: "+j(E).join(", "));const t=o(r.signal)?{signal:r.signal}:null;await i.load(t);const n=i.geometryType;if(r.outlineOptimizationEnabled="polygon"===n&&r.outlineOptimizationEnabled,r.sizeOptimizationEnabled=("point"===n||"multipoint"===n||"polyline"===n)&&r.sizeOptimizationEnabled,"mesh"===n)r.symbolType="3d-volumetric",r.colorMixMode=r.colorMixMode||"replace",r.edgesType=r.edgesType||"none";else{if("3d-volumetric-uniform"===r.symbolType&&"point"!==n)throw new s("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(r.symbolType.indexOf("3d-volumetric")>-1&&(!r.view||"3d"!==r.view.type))throw new s("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const a=await w({field:r.field,valueExpression:r.valueExpression}),p=d(i,a,"type-renderer:invalid-parameters");if(p)throw p;return r}async function S(e){if(!(e&&e.layer&&e.field))throw new s("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const r={...e};r.statistics=l(r.statistics);const i=[x.PointCloudLayer],t=T(r.layer,i);if(r.layer=t,r.density=r.density||25,r.size=r.size||"100%",!c(r.size))throw new s("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");if(!t)throw new s("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+j(i).join(", "));const n=o(r.signal)?{signal:r.signal}:null;await t.load(n);const a=await w({field:r.field}),p=d(t,a,"type-point-cloud-class-renderer:invalid-parameters");if(p)throw p;return r}async function q(e){let r=e.typeScheme,s=null,l=null;const i=await v(e.basemap,e.view);if(s=o(i.basemapId)?i.basemapId:null,l=o(i.basemapTheme)?i.basemapTheme:null,r)return{scheme:I(r),basemapId:s,basemapTheme:l};const t=V({basemap:s,basemapTheme:l,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return t&&(r=t.primaryScheme,s=t.basemapId,l=t.basemapTheme),{scheme:r,basemapId:s,basemapTheme:l}}function R(e,r){let s;return s=e.label<r.label?-1:e.label>r.label?1:0,s}function C(e,r){let s;return s=e.value<r.value?-1:e.value>r.value?1:0,s}function O(e,r){let s=r.count-e.count;return 0===s&&(s=R(e,r)),s}function P(e,r){let s=r.count-e.count;return 0===s&&(s=C(e,r)),s}function B(e,r,s){let l;"count"===r?(l=P,s&&s.codedValues&&(l=O)):"value"===r&&(l=C,s&&s.codedValues&&(l=R)),l&&e.sort(l)}async function U(e,s,l,o){const p=await i("esri/smartMapping/t9n/smartMapping"),u=e.uniqueValueInfos,m=s.layer,d=s.field,c=d?m.getField(d):null,v=c?m.getFieldDomain(c.name):null,g=-1===s.numTypes?u.length:s.numTypes,w=m.geometryType,T=await q({basemap:s.basemap,geometryType:w,typeScheme:s.typeScheme,worldScale:s.symbolType.indexOf("3d-volumetric")>-1,view:s.view}),E=T.scheme,j=new r({field:d});let x,V=-1;const M={value:null,domain:v,fieldInfo:c};if(u.forEach(((e,r)=>{M.value=e.value,e.label=n(M),null===e.value&&(V=r)})),V>-1&&(x=u.splice(V,1)[0]),!1!==s.sortEnabled&&B(u,s.sortBy,v),c&&c.type===z){const e=u.filter(((e,r)=>r<g)).map((e=>e.value));M.dateFormatInterval=a(e)}const S=l&&l.opacity;let R=y(E.colors,u.length);const C=f(E,w),O=b(E,w,S);u.forEach(((e,r)=>{M.value=e.value,e.label=n(M),e.symbol=h(w,{type:s.symbolType,color:R[r],size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}})})),s.valueExpression&&(j.valueExpression=s.valueExpression,j.valueExpressionTitle=s.valueExpressionTitle),s.legendOptions&&(j.legendOptions=new t(s.legendOptions)),R=y(E.colors,g);for(let r=0;r<g;r++){const e=u[r];e&&j.addUniqueValueInfo({value:e.value,label:e.label,symbol:h(w,{type:s.symbolType,color:R[r],size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}})})}s.defaultSymbolEnabled&&(j.defaultSymbol=h(w,{type:s.symbolType,color:E.noDataColor,size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}}),j.defaultLabel=p.other),x&&(x.symbol=h(w,{type:s.symbolType,color:E.noDataColor,size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}}),u.push(x));const P=[],U=j.uniqueValueInfos.length===u.length?-1:j.uniqueValueInfos.length;if(U>-1)for(let r=U;r<u.length;r++)P.push({...u[r]});return l&&l.visualVariables&&l.visualVariables.length&&(j.visualVariables=l.visualVariables.map((e=>e.clone()))),o&&o.minSize&&(j.visualVariables?j.visualVariables.push(o.minSize):j.visualVariables=[o.minSize]),{renderer:j,uniqueValueInfos:u,excludedUniqueValueInfos:P,typeScheme:I(E),basemapId:T.basemapId,basemapTheme:T.basemapTheme}}async function D(e,r){const s=e.uniqueValueInfos,l=await q({basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:r}),o=l&&l.scheme,i="point-cloud-class"===o.theme,t=i?o.colors:y(o.colors,s.length);return B(s,"value"),s.map(((e,r)=>{const s=e.value;let l=null;return i?(l=t[s],l||(l=t[t.length-1])):l=t[r],{values:[s],color:l,label:e.label}}))}async function k(e){const r=await M(e),{layer:s,view:l,signal:o}=r,i={layer:s,field:r.field,valueExpression:r.valueExpression,returnAllCodedValues:r.returnAllCodedValues,view:l,signal:o},[t,n,a]=await Promise.all([null!=r.statistics?r.statistics:g(i),r.outlineOptimizationEnabled?p({layer:s,view:l,signal:o}):null,r.sizeOptimizationEnabled?u({layer:s,view:l,signal:o}):null]);return U(t,r,n,a)}async function A(r){const s=await S(r),l=null!=s.statistics?s.statistics:await g({layer:s.layer,field:s.field,signal:s.signal});return{renderer:new e({field:s.field,pointsPerInch:s.density,pointSizeAlgorithm:m(s.size),colorUniqueValueInfos:await D(l,s.typeScheme)})}}export{A as createPCClassRenderer,k as createRenderer};
5
+ import"../../renderers/PointCloudClassBreaksRenderer.js";import"../../renderers/PointCloudRenderer.js";import"../../renderers/PointCloudRGBRenderer.js";import"../../renderers/PointCloudStretchRenderer.js";import e from"../../renderers/PointCloudUniqueValueRenderer.js";import"../../renderers/ClassBreaksRenderer.js";import"../../renderers/DictionaryRenderer.js";import"../../renderers/DotDensityRenderer.js";import"../../renderers/HeatmapRenderer.js";import"../../renderers/Renderer.js";import"../../renderers/SimpleRenderer.js";import r from"../../renderers/UniqueValueRenderer.js";import"../../renderers/support/jsonUtils.js";import s from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{isSome as o}from"../../core/maybe.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import{LegendOptions as t}from"../../renderers/support/LegendOptions.js";import{createUniqueValueLabel as n,calculateDateFormatInterval as a}from"../../renderers/support/utils.js";import p from"../heuristics/outline.js";import u from"../heuristics/sizeRange.js";import{getPointSizeAlgorithm as m,verifyBasicFieldValidity as d,isValidPointSize as c,createColors as y,getSymbolSizeFromScheme as f,getSymbolOutlineFromScheme as b,createSymbol as h,getBasemapInfo as v}from"./support/utils.js";import g from"../statistics/uniqueValues.js";import{getFieldsList as w}from"../support/utils.js";import{createLayerAdapter as T,featureCapableLayerTypes as E,getLayerTypeLabels as j,LayerType as x}from"../support/adapters/support/layerUtils.js";import{c as I,g as V}from"../../chunks/type.js";const z="date";async function M(e){if(!e||!e.layer||!e.field&&!e.valueExpression)throw new s("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new s("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");const r={...e};r.symbolType=r.symbolType||"2d",r.numTypes=null==r.numTypes?10:r.numTypes,r.defaultSymbolEnabled=null==r.defaultSymbolEnabled||r.defaultSymbolEnabled,r.sortBy=null==r.sortBy?"count":r.sortBy,r.sortEnabled=null==r.sortEnabled||r.sortEnabled,r.statistics=l(r.statistics);const i=T(r.layer,E);if(r.layer=i,!i)throw new s("type-renderer:invalid-parameters","'layer' must be one of these types: "+j(E).join(", "));const t=o(r.signal)?{signal:r.signal}:null;await i.load(t);const n=i.geometryType;if(r.outlineOptimizationEnabled="polygon"===n&&r.outlineOptimizationEnabled,r.sizeOptimizationEnabled=("point"===n||"multipoint"===n||"polyline"===n)&&r.sizeOptimizationEnabled,"mesh"===n)r.symbolType="3d-volumetric",r.colorMixMode=r.colorMixMode||"replace",r.edgesType=r.edgesType||"none";else{if("3d-volumetric-uniform"===r.symbolType&&"point"!==n)throw new s("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(r.symbolType.includes("3d-volumetric")&&(!r.view||"3d"!==r.view.type))throw new s("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const a=await w({field:r.field,valueExpression:r.valueExpression}),p=d(i,a,"type-renderer:invalid-parameters");if(p)throw p;return r}async function S(e){if(!(e&&e.layer&&e.field))throw new s("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const r={...e};r.statistics=l(r.statistics);const i=[x.PointCloudLayer],t=T(r.layer,i);if(r.layer=t,r.density=r.density||25,r.size=r.size||"100%",!c(r.size))throw new s("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");if(!t)throw new s("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+j(i).join(", "));const n=o(r.signal)?{signal:r.signal}:null;await t.load(n);const a=await w({field:r.field}),p=d(t,a,"type-point-cloud-class-renderer:invalid-parameters");if(p)throw p;return r}async function q(e){let r=e.typeScheme,s=null,l=null;const i=await v(e.basemap,e.view);if(s=o(i.basemapId)?i.basemapId:null,l=o(i.basemapTheme)?i.basemapTheme:null,r)return{scheme:I(r),basemapId:s,basemapTheme:l};const t=V({basemap:s,basemapTheme:l,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return t&&(r=t.primaryScheme,s=t.basemapId,l=t.basemapTheme),{scheme:r,basemapId:s,basemapTheme:l}}function R(e,r){let s;return s=e.label<r.label?-1:e.label>r.label?1:0,s}function C(e,r){let s;return s=e.value<r.value?-1:e.value>r.value?1:0,s}function O(e,r){let s=r.count-e.count;return 0===s&&(s=R(e,r)),s}function P(e,r){let s=r.count-e.count;return 0===s&&(s=C(e,r)),s}function B(e,r,s){let l;"count"===r?(l=P,s&&s.codedValues&&(l=O)):"value"===r&&(l=C,s&&s.codedValues&&(l=R)),l&&e.sort(l)}async function U(e,s,l,o){const p=await i("esri/smartMapping/t9n/smartMapping"),u=e.uniqueValueInfos,m=s.layer,d=s.field,c=d?m.getField(d):null,v=c?m.getFieldDomain(c.name):null,g=-1===s.numTypes?u.length:s.numTypes,w=m.geometryType,T=await q({basemap:s.basemap,geometryType:w,typeScheme:s.typeScheme,worldScale:s.symbolType.includes("3d-volumetric"),view:s.view}),E=T.scheme,j=new r({field:d});let x,V=-1;const M={value:null,domain:v,fieldInfo:c};if(u.forEach(((e,r)=>{M.value=e.value,e.label=n(M),null===e.value&&(V=r)})),V>-1&&(x=u.splice(V,1)[0]),!1!==s.sortEnabled&&B(u,s.sortBy,v),c&&c.type===z){const e=u.filter(((e,r)=>r<g)).map((e=>e.value));M.dateFormatInterval=a(e)}const S=l&&l.opacity;let R=y(E.colors,u.length);const C=f(E,w),O=b(E,w,S);u.forEach(((e,r)=>{M.value=e.value,e.label=n(M),e.symbol=h(w,{type:s.symbolType,color:R[r],size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}})})),s.valueExpression&&(j.valueExpression=s.valueExpression,j.valueExpressionTitle=s.valueExpressionTitle),s.legendOptions&&(j.legendOptions=new t(s.legendOptions)),R=y(E.colors,g);for(let r=0;r<g;r++){const e=u[r];e&&j.addUniqueValueInfo({value:e.value,label:e.label,symbol:h(w,{type:s.symbolType,color:R[r],size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}})})}s.defaultSymbolEnabled&&(j.defaultSymbol=h(w,{type:s.symbolType,color:E.noDataColor,size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}}),j.defaultLabel=p.other),x&&(x.symbol=h(w,{type:s.symbolType,color:E.noDataColor,size:C,outline:O,meshInfo:{colorMixMode:s.colorMixMode,edgesType:s.edgesType}}),u.push(x));const P=[],U=j.uniqueValueInfos.length===u.length?-1:j.uniqueValueInfos.length;if(U>-1)for(let r=U;r<u.length;r++)P.push({...u[r]});return l&&l.visualVariables&&l.visualVariables.length&&(j.visualVariables=l.visualVariables.map((e=>e.clone()))),o&&o.minSize&&(j.visualVariables?j.visualVariables.push(o.minSize):j.visualVariables=[o.minSize]),{renderer:j,uniqueValueInfos:u,excludedUniqueValueInfos:P,typeScheme:I(E),basemapId:T.basemapId,basemapTheme:T.basemapTheme}}async function D(e,r){const s=e.uniqueValueInfos,l=await q({basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:r}),o=l&&l.scheme,i="point-cloud-class"===o.theme,t=i?o.colors:y(o.colors,s.length);return B(s,"value"),s.map(((e,r)=>{const s=e.value;let l=null;return i?(l=t[s],l||(l=t[t.length-1])):l=t[r],{values:[s],color:l,label:e.label}}))}async function k(e){const r=await M(e),{layer:s,view:l,signal:o}=r,i={layer:s,field:r.field,valueExpression:r.valueExpression,returnAllCodedValues:r.returnAllCodedValues,view:l,signal:o},[t,n,a]=await Promise.all([null!=r.statistics?r.statistics:g(i),r.outlineOptimizationEnabled?p({layer:s,view:l,signal:o}):null,r.sizeOptimizationEnabled?u({layer:s,view:l,signal:o}):null]);return U(t,r,n,a)}async function A(r){const s=await S(r),l=null!=s.statistics?s.statistics:await g({layer:s.layer,field:s.field,signal:s.signal});return{renderer:new e({field:s.field,pointsPerInch:s.density,pointSizeAlgorithm:m(s.size),colorUniqueValueInfos:await D(l,s.typeScheme)})}}export{A as createPCClassRenderer,k as createRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import{isSome as i}from"../../core/maybe.js";import o from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as l}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as t,createContinuousRenderer as r}from"./size.js";import{verifyBasicFieldValidity as u,createStopValuesForAboveBelow as m,clampAboveAndBelowStopValues as p,createDefaultStopValues as c}from"./support/utils.js";import{getFieldsList as d}from"../support/utils.js";import{createLayerAdapter as v,featureCapableLayerTypes as b,getLayerTypeLabels as f}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as y}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as w}from"../../symbols/support/cimSymbolUtils.js";import{Symbol3DMaterial as h}from"../../symbols/support/Symbol3DMaterial.js";const z=2**53-1;async function V(o){var a,s;if(!(o&&o.layer&&(o.field||o.valueExpression||o.sqlExpression)))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(o.valueExpression&&!o.sqlExpression&&!o.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===o.theme&&null!=(a=o.sizeOptions)&&a.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");const l={...o},n=v(l.layer,b);if(l.layer=n,l.theme=l.theme||null!=(s=l.colorOptions)&&s.theme?l.theme:"high-to-low","90-10"===l.theme)throw new e("univariate-colorsize-visual-variables:not-supported","Only 'high-to-low', 'above-and-below', 'above', 'below' themes are supported.");if(!n)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const t=i(l.signal)?{signal:l.signal}:null;await n.load(t);const r=await d({field:l.field,normalizationField:l.normalizationField,valueExpression:l.valueExpression}),m=u(n,r,"univariate-colorsize-visual-variables:invalid-parameters");if(m)throw m;return l}function g(e,i){var o;const a={...e},{sizeOptions:s,theme:l}=a,n=a.legendOptions||(null==(o=a.sizeOptions)?void 0:o.legendOptions);return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===l?null:l,legendOptions:n}}function O(e,i){var o;const a={...e},s=a.colorOptions,l=a.theme||(null==s?void 0:s.theme),n=a.legendOptions||(null==(o=a.colorOptions)?void 0:o.legendOptions);return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:l,legendOptions:n}}async function x(o){var a;if(!(o&&o.layer&&(o.field||o.valueExpression||o.sqlExpression)))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(o.valueExpression&&!o.sqlExpression&&!o.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...o};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=null!=(a=s.colorOptions.isContinuous)&&a;const l=v(s.layer,b);if(s.layer=l,!l)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const n=i(s.signal)?{signal:s.signal}:null;if(await l.load(n),"above-and-below"===s.theme&&s.symbolOptions){if(s.symbolType.indexOf("3d-volumetric")>-1)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==l.geometryType&&"polygon"!==l.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const t=await d({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=u(l,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return s}function E(e){const i={...e},o={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete o.sizeOptimizationEnabled,{...i,...o}}function S(e,i){if("type"in e&&"cim"===e.type)w(e,i);else if("type"in e&&e.type.indexOf("3d")>-1){e.symbolLayers.forEach((e=>{"material"in e&&"color"in e.material&&(e.material?e.material.color=i:e.material=new h({color:i}))}))}else"color"in e&&(e.color=i)}function j(e,i,o){if((null!=i&&i.symbolStyle||null!=i&&i.symbols)&&("point"===o||"polygon"===o))return i.symbols||y(i.symbolStyle);const a=e.classBreakInfos[0].symbol;return{above:a.clone(),below:a.clone()}}function T(e,i,o){var s;const l=o.symbolOptions,n=o.layer,t=null!=l&&l.symbols?"custom":null==l?void 0:l.symbolStyle,r=null==(s=o.colorOptions)?void 0:s.isContinuous;if(I(e,i,r),t||!r){const{stops:o}=i.size.visualVariables[0],{above:s,below:u}=j(e,l,n.geometryType);if(!r){const e=i.color.colorScheme.colors,o=e[0];S(s,e[e.length-1]),S(u,o)}e.classBreakInfos=[new a({minValue:-z,maxValue:o[2].value,symbol:u}),new a({minValue:o[2].value,maxValue:z,symbol:s})],t&&(e.authoringInfo.univariateSymbolStyle=t)}}function I(e,i,o=!0){var a;const s=null==i||null==(a=i.authoringInfo)?void 0:a.clone(),l=i.size.visualVariables.map((e=>e.clone()));o?l.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables.filter((e=>"size"===e.type)),l.push(...e.visualVariables.filter((e=>"target"in e&&"outline"===e.target)).map((e=>e.clone()))),e.authoringInfo=s,e.visualVariables=l}function q(e){const i={...e},o=i.symbolType,a=o.indexOf("3d-volumetric")>-1;delete i.symbolType,delete i.defaultSymbolEnabled;const s=i;return s.worldScale=a,a&&(s.sizeOptions={...s.sizeOptions},s.sizeOptions.axis="3d-volumetric-uniform"===o?"all":"height"),s}async function D(e,i,o,a){const n=i[0],t=i[1],r=Math.round((t-n)/2)+n,u=e.clone();u.stops=[new s({value:o[0],size:t}),new s({value:o[1],size:r}),new s({value:o[2],size:n}),new s({value:o[3],size:r}),new s({value:o[4],size:t})],e.stops=[new s({value:a[0],size:l(u,a[0])}),new s({value:a[1],size:l(u,a[1])}),new s({value:a[2],size:l(u,a[2])}),new s({value:a[3],size:l(u,a[3])}),new s({value:a[4],size:l(u,a[4])})]}async function U(e,i,o,a){const s=e.find((e=>"width-and-depth"!==e.axis&&!e.target)),l="number"==typeof(null==s?void 0:s.minSize)?null==s?void 0:s.minSize:null,n="number"==typeof(null==s?void 0:s.maxSize)?null==s?void 0:s.maxSize:null;if(null!=(null==s?void 0:s.minDataValue)&&null!=l&&null!=n)if(a)if("above-and-below"===a){s.minDataValue=null,s.maxDataValue=null,s.minSize=null,s.maxSize=null;const e=m(o),a=p(e,o);await D(s,[l,n],e,a),i.stops.forEach(((e,i)=>e.value=a[i]))}else{const{minDataValue:e,maxDataValue:o}=s,a=c(e,o,5);i.stops.forEach(((e,i)=>e.value=a[i])),s.minDataValue=a[0],s.maxDataValue=a[a.length-1]}else s.minDataValue=i.stops[0].value,s.maxDataValue=i.stops[i.stops.length-1].value}function C(e,i,a){const{theme:s,minValue:l,maxValue:n}=e,t=i.authoringInfo.visualVariables[0].clone(),r=a.authoringInfo.visualVariables[0].clone();if("above-and-below"===s){const e=i.visualVariable.stops;t.minSliderValue=r.minSliderValue=null!=l?l:e[0].value,t.maxSliderValue=r.maxSliderValue=null!=n?n:e[e.length-1].value,r.theme="above-and-below"}return new o({type:"univariate-color-size",univariateTheme:s,visualVariables:[t,r]})}async function B(e){const i=await V(e),o=await n(O(i)),{visualVariable:a,statistics:s}=o,l=await t(g(i,s)),r=l.visualVariables;return await U(r,a,s,i.theme),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:s,defaultValuesUsed:o.defaultValuesUsed,color:{visualVariable:a,colorScheme:o.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:C(i,o,l)}}async function F(e){return k(e)}async function k(e){var i;const o=await x(e),{renderer:a,statistics:s,defaultValuesUsed:l}=await r(E(o)),n=q(o);n.statistics=s;const t=await B(n);return"above-and-below"===o.theme?T(a,t,o):I(a,t),{renderer:a,statistics:s,defaultValuesUsed:l,color:null!=(i=o.colorOptions)&&i.isContinuous||"above-and-below"!==o.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}export{F as createContinuousRenderer,k as createRenderer,B as createVisualVariables};
5
+ import e from"../../core/Error.js";import{isSome as i}from"../../core/maybe.js";import o from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as l}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as t,createContinuousRenderer as r}from"./size.js";import{verifyBasicFieldValidity as u,createStopValuesForAboveBelow as m,clampAboveAndBelowStopValues as p,createDefaultStopValues as c}from"./support/utils.js";import{getFieldsList as d}from"../support/utils.js";import{createLayerAdapter as v,featureCapableLayerTypes as b,getLayerTypeLabels as f}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as y}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as w}from"../../symbols/support/cimSymbolUtils.js";import{Symbol3DMaterial as h}from"../../symbols/support/Symbol3DMaterial.js";const z=2**53-1;async function V(o){var a,s;if(!(o&&o.layer&&(o.field||o.valueExpression||o.sqlExpression)))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(o.valueExpression&&!o.sqlExpression&&!o.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===o.theme&&null!=(a=o.sizeOptions)&&a.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");const l={...o},n=v(l.layer,b);if(l.layer=n,l.theme=l.theme||null!=(s=l.colorOptions)&&s.theme?l.theme:"high-to-low","90-10"===l.theme)throw new e("univariate-colorsize-visual-variables:not-supported","Only 'high-to-low', 'above-and-below', 'above', 'below' themes are supported.");if(!n)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const t=i(l.signal)?{signal:l.signal}:null;await n.load(t);const r=await d({field:l.field,normalizationField:l.normalizationField,valueExpression:l.valueExpression}),m=u(n,r,"univariate-colorsize-visual-variables:invalid-parameters");if(m)throw m;return l}function g(e,i){var o;const a={...e},{sizeOptions:s,theme:l}=a,n=a.legendOptions||(null==(o=a.sizeOptions)?void 0:o.legendOptions);return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===l?null:l,legendOptions:n}}function O(e,i){var o;const a={...e},s=a.colorOptions,l=a.theme||(null==s?void 0:s.theme),n=a.legendOptions||(null==(o=a.colorOptions)?void 0:o.legendOptions);return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:l,legendOptions:n}}async function x(o){var a;if(!(o&&o.layer&&(o.field||o.valueExpression||o.sqlExpression)))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(o.valueExpression&&!o.sqlExpression&&!o.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...o};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=null!=(a=s.colorOptions.isContinuous)&&a;const l=v(s.layer,b);if(s.layer=l,!l)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const n=i(s.signal)?{signal:s.signal}:null;if(await l.load(n),"above-and-below"===s.theme&&s.symbolOptions){if(s.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==l.geometryType&&"polygon"!==l.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const t=await d({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=u(l,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return s}function E(e){const i={...e},o={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete o.sizeOptimizationEnabled,{...i,...o}}function S(e,i){if("type"in e&&"cim"===e.type)w(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach((e=>{"material"in e&&"color"in e.material&&(e.material?e.material.color=i:e.material=new h({color:i}))}))}else"color"in e&&(e.color=i)}function j(e,i,o){if((null!=i&&i.symbolStyle||null!=i&&i.symbols)&&("point"===o||"polygon"===o))return i.symbols||y(i.symbolStyle);const a=e.classBreakInfos[0].symbol;return{above:a.clone(),below:a.clone()}}function T(e,i,o){var s;const l=o.symbolOptions,n=o.layer,t=null!=l&&l.symbols?"custom":null==l?void 0:l.symbolStyle,r=null==(s=o.colorOptions)?void 0:s.isContinuous;if(I(e,i,r),t||!r){const{stops:o}=i.size.visualVariables[0],{above:s,below:u}=j(e,l,n.geometryType);if(!r){const e=i.color.colorScheme.colors,o=e[0];S(s,e[e.length-1]),S(u,o)}e.classBreakInfos=[new a({minValue:-z,maxValue:o[2].value,symbol:u}),new a({minValue:o[2].value,maxValue:z,symbol:s})],t&&(e.authoringInfo.univariateSymbolStyle=t)}}function I(e,i,o=!0){var a;const s=null==i||null==(a=i.authoringInfo)?void 0:a.clone(),l=i.size.visualVariables.map((e=>e.clone()));o?l.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables.filter((e=>"size"===e.type)),l.push(...e.visualVariables.filter((e=>"target"in e&&"outline"===e.target)).map((e=>e.clone()))),e.authoringInfo=s,e.visualVariables=l}function q(e){const i={...e},o=i.symbolType,a=o.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const s=i;return s.worldScale=a,a&&(s.sizeOptions={...s.sizeOptions},s.sizeOptions.axis="3d-volumetric-uniform"===o?"all":"height"),s}async function D(e,i,o,a){const n=i[0],t=i[1],r=Math.round((t-n)/2)+n,u=e.clone();u.stops=[new s({value:o[0],size:t}),new s({value:o[1],size:r}),new s({value:o[2],size:n}),new s({value:o[3],size:r}),new s({value:o[4],size:t})],e.stops=[new s({value:a[0],size:l(u,a[0])}),new s({value:a[1],size:l(u,a[1])}),new s({value:a[2],size:l(u,a[2])}),new s({value:a[3],size:l(u,a[3])}),new s({value:a[4],size:l(u,a[4])})]}async function U(e,i,o,a){const s=e.find((e=>"width-and-depth"!==e.axis&&!e.target)),l="number"==typeof(null==s?void 0:s.minSize)?null==s?void 0:s.minSize:null,n="number"==typeof(null==s?void 0:s.maxSize)?null==s?void 0:s.maxSize:null;if(null!=(null==s?void 0:s.minDataValue)&&null!=l&&null!=n)if(a)if("above-and-below"===a){s.minDataValue=null,s.maxDataValue=null,s.minSize=null,s.maxSize=null;const e=m(o),a=p(e,o);await D(s,[l,n],e,a),i.stops.forEach(((e,i)=>e.value=a[i]))}else{const{minDataValue:e,maxDataValue:o}=s,a=c(e,o,5);i.stops.forEach(((e,i)=>e.value=a[i])),s.minDataValue=a[0],s.maxDataValue=a[a.length-1]}else s.minDataValue=i.stops[0].value,s.maxDataValue=i.stops[i.stops.length-1].value}function C(e,i,a){const{theme:s,minValue:l,maxValue:n}=e,t=i.authoringInfo.visualVariables[0].clone(),r=a.authoringInfo.visualVariables[0].clone();if("above-and-below"===s){const e=i.visualVariable.stops;t.minSliderValue=r.minSliderValue=null!=l?l:e[0].value,t.maxSliderValue=r.maxSliderValue=null!=n?n:e[e.length-1].value,r.theme="above-and-below"}return new o({type:"univariate-color-size",univariateTheme:s,visualVariables:[t,r]})}async function B(e){const i=await V(e),o=await n(O(i)),{visualVariable:a,statistics:s}=o,l=await t(g(i,s)),r=l.visualVariables;return await U(r,a,s,i.theme),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:s,defaultValuesUsed:o.defaultValuesUsed,color:{visualVariable:a,colorScheme:o.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:C(i,o,l)}}async function F(e){return k(e)}async function k(e){var i;const o=await x(e),{renderer:a,statistics:s,defaultValuesUsed:l}=await r(E(o)),n=q(o);n.statistics=s;const t=await B(n);return"above-and-below"===o.theme?T(a,t,o):I(a,t),{renderer:a,statistics:s,defaultValuesUsed:l,color:null!=(i=o.colorOptions)&&i.isContinuous||"above-and-below"!==o.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}export{F as createContinuousRenderer,k as createRenderer,B as createVisualVariables};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import r from"./summaryStatistics.js";import{getAgeExpressions as t,verifyDates as i,supportedAgeUnits as s}from"./support/ageUtils.js";import{createLayerAdapter as n,featureCapableLayerTypes as m,getLayerTypeLabels as o}from"../support/adapters/support/layerUtils.js";async function l(r){if(!(r&&r.layer&&r.startTime&&r.endTime&&r.unit))throw new e("summary-statistics-for-age:missing-parameters","'layer', 'startTime', 'endTime' and 'unit' parameters are required");const{layer:t,...l}=r,u=n(t,m),p={layerAdapter:u,...l};if(!u)throw new e("summary-statistics-for-age:invalid-parameters","'layer' must be one of these types: "+o(m).join(", "));const y=p.view,f=a(p.signal)?{signal:p.signal}:null;await Promise.all([y&&y.when(),u.load(f)]);const d=i(u,p.startTime,p.endTime,"summary-statistics-for-age:invalid-parameters");if(d)throw d;if(-1===s.indexOf(p.unit))throw new e("summary-statistics-for-age:invalid-parameters",`Supported units are: ${s.join(", ")}`);return p}async function u(e){const{layerAdapter:a,...i}=await l(e),{view:s,startTime:n,endTime:m,unit:o,minValue:u,maxValue:p,signal:y}=i,{valueExpression:f,statisticsQuery:d}=t({layer:a,startTime:n,endTime:m,unit:o}),c={layer:a,valueExpression:f,...d,minValue:u,maxValue:p,view:s,signal:y};return r(c)}export{u as default};
5
+ import e from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import r from"./summaryStatistics.js";import{getAgeExpressions as t,verifyDates as i,supportedAgeUnits as s}from"./support/ageUtils.js";import{createLayerAdapter as n,featureCapableLayerTypes as m,getLayerTypeLabels as o}from"../support/adapters/support/layerUtils.js";async function l(r){if(!(r&&r.layer&&r.startTime&&r.endTime&&r.unit))throw new e("summary-statistics-for-age:missing-parameters","'layer', 'startTime', 'endTime' and 'unit' parameters are required");const{layer:t,...l}=r,u=n(t,m),p={layerAdapter:u,...l};if(!u)throw new e("summary-statistics-for-age:invalid-parameters","'layer' must be one of these types: "+o(m).join(", "));const y=p.view,c=a(p.signal)?{signal:p.signal}:null;await Promise.all([y&&y.when(),u.load(c)]);const d=i(u,p.startTime,p.endTime,"summary-statistics-for-age:invalid-parameters");if(d)throw d;if(!s.includes(p.unit))throw new e("summary-statistics-for-age:invalid-parameters",`Supported units are: ${s.join(", ")}`);return p}async function u(e){const{layerAdapter:a,...i}=await l(e),{view:s,startTime:n,endTime:m,unit:o,minValue:u,maxValue:p,signal:y}=i,{valueExpression:c,statisticsQuery:d}=t({layer:a,startTime:n,endTime:m,unit:o}),f={layer:a,valueExpression:c,...d,minValue:u,maxValue:p,view:s,signal:y};return r(f)}export{u 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/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Error.js";import{getDateType as t,getDateDiffSQL as n}from"../../support/utils.js";import{createLayerAdapter as r}from"../../support/adapters/support/layerUtils.js";const a=["date","number"],i=["years","months","days","hours","minutes","seconds"];function s(n,r,i,s){const o=[];let m=null;return[r,i].every((e=>{const r=t(n,e);return r&&o.push(r),!!r}))?o[0]===o[1]?"field"===o[0]?r===i&&(m=new e(s,"'startTime' and 'endTime' parameters cannot be identical")):m=new e(s,"Invalid combination of 'startTime' and 'endTime' parameters"):a.indexOf(o[0])>-1&&a.indexOf(o[1])>-1&&(m=new e(s,"Invalid combination of 'startTime' and 'endTime' parameters")):m=new e(s,"'startTime' and 'endTime' parameters must be one of these values: a date object, unix epoch time, name of a valid date field or <now>"),m}function o(e){const t=e.map((e=>`$feature["${e}"];`));return t.length?t.join("\n")+"\n":""}function m(e,t,n){let r;return r="number"===t?e:"date"===t?e.getTime():'$feature["'+e+'"]',"var "+n+" = "+r+";"}function u(e,n,r,a){const i=t(e,n),s=t(e,r),u=[m(n,i,"startTime"),m(r,s,"endTime"),`var retVal = null;\n\n if (startTime != null && endTime != null) {\n startTime = Date(startTime);\n endTime = Date(endTime);\n retVal = DateDiff(endTime, startTime, "${a}");\n }\n\n return retVal;`],d=[];return"field"===i&&d.push(n),"field"===s&&d.push(r),o(d)+u.join("\n")}function d(e){const{layer:t,startTime:a,endTime:i}=e,s=r(t),o=e.unit||"days",m=n(s,a,i,o);return{valueExpression:u(s,a,i,o),statisticsQuery:m,histogramQuery:m}}export{d as getAgeExpressions,i as supportedAgeUnits,s as verifyDates};
5
+ import e from"../../../core/Error.js";import{getDateType as t,getDateDiffSQL as n}from"../../support/utils.js";import{createLayerAdapter as r}from"../../support/adapters/support/layerUtils.js";const a=["date","number"],i=["years","months","days","hours","minutes","seconds"];function s(n,r,i,s){const o=[];let m=null;return[r,i].every((e=>{const r=t(n,e);return r&&o.push(r),!!r}))?o[0]===o[1]?"field"===o[0]?r===i&&(m=new e(s,"'startTime' and 'endTime' parameters cannot be identical")):m=new e(s,"Invalid combination of 'startTime' and 'endTime' parameters"):a.includes(o[0])&&a.includes(o[1])&&(m=new e(s,"Invalid combination of 'startTime' and 'endTime' parameters")):m=new e(s,"'startTime' and 'endTime' parameters must be one of these values: a date object, unix epoch time, name of a valid date field or <now>"),m}function o(e){const t=e.map((e=>`$feature["${e}"];`));return t.length?t.join("\n")+"\n":""}function m(e,t,n){let r;return r="number"===t?e:"date"===t?e.getTime():'$feature["'+e+'"]',"var "+n+" = "+r+";"}function u(e,n,r,a){const i=t(e,n),s=t(e,r),u=[m(n,i,"startTime"),m(r,s,"endTime"),`var retVal = null;\n\n if (startTime != null && endTime != null) {\n startTime = Date(startTime);\n endTime = Date(endTime);\n retVal = DateDiff(endTime, startTime, "${a}");\n }\n\n return retVal;`],d=[];return"field"===i&&d.push(n),"field"===s&&d.push(r),o(d)+u.join("\n")}function d(e){const{layer:t,startTime:a,endTime:i}=e,s=r(t),o=e.unit||"days",m=n(s,a,i,o);return{valueExpression:u(s,a,i,o),statisticsQuery:m,histogramQuery:m}}export{d as getAgeExpressions,i as supportedAgeUnits,s as verifyDates};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../core/Error.js";import{isSome as t}from"../../../core/maybe.js";import n from"../../../geometry/SpatialReference.js";import{isNumericField as i,numericTypes as o}from"../../../layers/support/fieldUtils.js";import{getNormalizedValue as r}from"../../../statistics/utils.js";import{loadArcade as l}from"../../../support/arcadeOnDemand.js";let s=null;async function a(e,t){if(!t)return[];const i=e.field,o=e.valueExpression,a=e.normalizationType,f=e.normalizationField,c=e.normalizationTotal,u=[],d=e.viewInfoParams;let p=null,m=null;if(o){if(!s){const{arcadeUtils:e}=await l();s=e}p=s.createFunction(o),m=d&&s.getViewInfo({viewingMode:d.viewingMode,scale:d.scale,spatialReference:new n(d.spatialReference)})}return t.forEach((e=>{const t=e.attributes;let n;if(o){const t=s.createExecContext(e,m);n=s.executeFunction(p,t)}else t&&(n=t[i]);if(a&&isFinite(n)){const e=t&&parseFloat(t[f]);n=r(n,a,e,c)}u.push(n)})),u}function f(e){const t=e.field,n=e.normalizationType,i=e.normalizationField;let o;return"field"===n?o="(NOT "+i+" = 0)":"log"!==n&&"natural-log"!==n&&"square-root"!==n||(o=`(${t} > 0)`),o}function c(t,n){return new e(t,n)}function u(e,t,n){const i=null!=t?e+" >= "+t:"",o=null!=n?e+" <= "+n:"";let r="";return r=i&&o?m(i,o):i||o,r?"("+r+")":""}function d(e,t,n,i){let o=null;return t?t.name!==e.objectIdField&&-1!==i.indexOf(t.type)||(o=c(n,"'field' should be one of these types: "+i.join(","))):o=c(n,"'field' is not defined in the layer schema"),o}function p(e,t,n){let r;return t?t.name!==e.objectIdField&&i(t)||(r=c(n,"'field' should be one of these numeric types: "+o.join(","))):r=c(n,"'field' is not defined in the layer schema"),r}function m(e,n){let i=t(e)?e:"";return t(n)&&n&&(i=i?"("+i+") AND ("+n+")":n),i}function y(e,t,n){const i=h({layer:e,fields:t});if(i.length)return c(n,"Unknown fields: "+i.join(", ")+". You can only use fields defined in the layer schema");const o=g({layer:e,fields:t});return o.length?c(n,"Unsupported fields: "+o.join(", ")+". You can only use fields that can be fetched i.e. AdapterFieldUsageInfo.supportsStatistics must be true"):void 0}function h(e){const t=e.layer;return e.fields.filter((e=>!t.getField(e)))}function g(e){const t=e.layer;return e.fields.filter((e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsStatistics}))}export{c as createError,a as getDataValues,u as getRangeExpr,f as getSQLFilterForNormalization,m as mergeWhereClauses,y as verifyBasicFieldValidity,d as verifyFieldType,p as verifyNumericField};
5
+ import e from"../../../core/Error.js";import{isSome as t}from"../../../core/maybe.js";import n from"../../../geometry/SpatialReference.js";import{isNumericField as i,numericTypes as o}from"../../../layers/support/fieldUtils.js";import{getNormalizedValue as r}from"../../../statistics/utils.js";import{loadArcade as l}from"../../../support/arcadeOnDemand.js";let s=null;async function a(e,t){if(!t)return[];const i=e.field,o=e.valueExpression,a=e.normalizationType,f=e.normalizationField,c=e.normalizationTotal,u=[],d=e.viewInfoParams;let p=null,m=null;if(o){if(!s){const{arcadeUtils:e}=await l();s=e}p=s.createFunction(o),m=d&&s.getViewInfo({viewingMode:d.viewingMode,scale:d.scale,spatialReference:new n(d.spatialReference)})}return t.forEach((e=>{const t=e.attributes;let n;if(o){const t=s.createExecContext(e,m);n=s.executeFunction(p,t)}else t&&(n=t[i]);if(a&&isFinite(n)){const e=t&&parseFloat(t[f]);n=r(n,a,e,c)}u.push(n)})),u}function f(e){const t=e.field,n=e.normalizationType,i=e.normalizationField;let o;return"field"===n?o="(NOT "+i+" = 0)":"log"!==n&&"natural-log"!==n&&"square-root"!==n||(o=`(${t} > 0)`),o}function c(t,n){return new e(t,n)}function u(e,t,n){const i=null!=t?e+" >= "+t:"",o=null!=n?e+" <= "+n:"";let r="";return r=i&&o?m(i,o):i||o,r?"("+r+")":""}function d(e,t,n,i){let o=null;return t?t.name!==e.objectIdField&&i.includes(t.type)||(o=c(n,"'field' should be one of these types: "+i.join(","))):o=c(n,"'field' is not defined in the layer schema"),o}function p(e,t,n){let r;return t?t.name!==e.objectIdField&&i(t)||(r=c(n,"'field' should be one of these numeric types: "+o.join(","))):r=c(n,"'field' is not defined in the layer schema"),r}function m(e,n){let i=t(e)?e:"";return t(n)&&n&&(i=i?"("+i+") AND ("+n+")":n),i}function y(e,t,n){const i=h({layer:e,fields:t});if(i.length)return c(n,"Unknown fields: "+i.join(", ")+". You can only use fields defined in the layer schema");const o=g({layer:e,fields:t});return o.length?c(n,"Unsupported fields: "+o.join(", ")+". You can only use fields that can be fetched i.e. AdapterFieldUsageInfo.supportsStatistics must be true"):void 0}function h(e){const t=e.layer;return e.fields.filter((e=>!t.getField(e)))}function g(e){const t=e.layer;return e.fields.filter((e=>{const n=t.getFieldUsageInfo(e);return!n||!n.supportsStatistics}))}export{c as createError,a as getDataValues,u as getRangeExpr,f as getSQLFilterForNormalization,m as mergeWhereClauses,y as verifyBasicFieldValidity,d as verifyFieldType,p 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/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import{pickRandom as a}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{unwrap as s,isSome as i}from"../../../core/maybe.js";import{timeout as o,throwIfAborted as n}from"../../../core/promiseUtils.js";import{whenOnce as l}from"../../../core/reactiveUtils.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as p}from"../../../layers/support/fieldType.js";import{isNumericField as c,isDateField as d}from"../../../layers/support/fieldUtils.js";import h from"../../../rest/support/FeatureSet.js";import{summaryStatistics as y,uniqueValues as f,classBreaks as g,histogram as F}from"../../statistics/support/statsWorker.js";import{WorkerClient as w}from"../../statistics/support/WorkerClient.js";import{getFieldsList as _}from"../utils.js";import S from"./FeatureLayerAdapter.js";import v from"./LayerAdapter.js";import{getMissingFields as x,ensureFeaturesJSON as L,getViewInfoParams as C,getUniqueValuesFromFeatureSet as E,getHistogramFromFeatureSet as z}from"./support/utils.js";import{createUVResult as T}from"../../../statistics/utils.js";let j=class extends v{constructor(e){super(e)}destroy(){var e;this._featureLayerAdapter=null,null==(e=this.workerClient)||e.destroy()}_hasCachedStatistics(e){return this.layer.hasCachedStatistics(e)}_updateQuery(e,t=[],a=[]){if(!a.length)return e;const r=this.layer.objectIdField,s=e.clone(),i=t.filter((e=>{const t=this.layer.getField(e);return-1===a.indexOf(t.name)})),o=i.some((e=>this.layer.getField(e).name===r));return s.outFields=o?i:[...i,r],s}async _fetchFeaturesFromMemory(e,t,a){if(!e)throw new r("scene-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const s=await e.whenLayerView(this.layer),i=new AbortController,u=i.signal,m=l((()=>!s.updating),u);await o(m,5e3,i);const p=await x(this,a,s);n(u);const c=this._updateQuery(t,a,p),d=await s.queryFeatures(c,{signal:u});n(u);const h=d.features;return p.length?s.whenGraphicAttributes(h,p):h}async _fetchFeaturesJSONFromMemory(e,t,a){return this._fetchFeaturesFromMemory(e,t,a).then(L)}_fetchFeaturesForStats(e,t){return _({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((a=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:a,signal:e.signal},t)))}async _processStatsFromMemoryParams(e){const t=e.features;if(null!=t&&t.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:a,field:s,normalizationField:i,valueExpression:o,signal:n}=e,l=await this._fetchFeaturesForStats({field:s,valueExpression:o,normalizationField:i,view:a,signal:n});if(null==l||!l.length)throw new r("scene-layer-adapter:insufficient-data","No features are available to calculate statistics");return{graphics:l}}_generateFeatureSetForCachedHistogram(e,a=e.minimum,r=e.maximum,s){const i=[];for(let t=0;t<s;t++)i[t]=0;const o=e.counts.length,n=e.minimum,l=e.maximum;for(let t=0;t<o;t++){const u=(t+.5)/o,m=((1-u)*n+u*l-a)/(r-a)*s;m>=0&&m<=s&&(i[m===s?s-1:Math.floor(m)]+=e.counts[t])}const u=[];i.forEach(((e,a)=>{const r=new t({attributes:{}});r.attributes.EXPR_1=a+1,r.attributes.countOFExpr=e,u.push(r)}));const m=new h;return m.features=u,m}_getCachedStatistics(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.minValue||e.maxValue?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression', 'sqlWhere', 'minValue' or 'maxValue' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((e=>{const t=e.stats,{min:a,max:r,totalValuesCount:s}=t;let{avg:i,stddev:o,sum:n,variance:l,count:u}=t;return 0===a&&0===r||(i=0===i?null:i,n=0===n?null:n,o=0===o?null:o,l=0===l?null:l,u=0===u?null:u),null==u&&(null!=n&&null!=i?u=Math.round(n/i):null!=s&&(u=s)),{avg:i,count:u,max:r,min:a,stddev:o,sum:n,variance:l}}))}async _getNormalizationTotal(e,t,a){const s=(t?await this.workerClient.summaryStatistics({field:e},t):await y({attribute:{field:e},features:a})).sum;if(null==s)throw new r("scene-layer-adapter:invalid","invalid normalizationTotal");return s}async _getSummaryStatisticsFromMemory(e,t){const{view:a,field:r,normalizationField:s,valueExpression:i}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams(e),l={field:r,valueExpression:i,normalizationType:e.normalizationType,normalizationField:s,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue};return e.valueExpression&&a&&o&&(l.fieldType=null!=t&&t.type?p.toJSON(t.type):null,l.viewInfoParams=C(a)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotal(r,o,n)),o?this.workerClient.summaryStatistics(l,o):y({attribute:l,features:n})}_getCachedStatisticsForUniqueValues(e,a){const s=this.layer,i=a&&a.name,o=a&&this.getFieldDomain(e.field);return e.valueExpression||e.sqlExpression||e.sqlWhere?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression' or 'sqlWhere' is specified")):s.queryCachedStatistics(i,{signal:e.signal}).then((r=>{const o=r.stats;if(!o.mostFrequentValues)return Promise.reject();const n=r.labels&&r.labels.labels,l={},u=[],m="countOF"+i;o.mostFrequentValues.forEach((e=>{const r=new t({attributes:{}});r.attributes[i]=a&&a.name!==s.objectIdField&&(c(a)||d(a))?Number(e.value):e.value,r.attributes[m]=e.count,u.push(r)})),n&&n.forEach((e=>{l[e.value]=e.label}));const p=new h;return p.features=u,E(p,this,e.field,e.view,l,e.signal)})).then((t=>T(t,o,e.returnAllCodedValues)))}async _getUniqueValuesFromMemory(e,t){const a=t&&this.getFieldDomain(e.field),{view:r,field:s,valueExpression:i,returnAllCodedValues:o}=e,n={field:s,valueExpression:i,domain:a,returnAllCodedValues:o},{featuresJSON:l,graphics:u}=await this._processStatsFromMemoryParams(e);return e.valueExpression&&r&&l&&(n.viewInfoParams=C(r)),l?this.workerClient.uniqueValues(n,l):f({attribute:n,features:u})}_getCachedStatisticsForHistogram(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.normalizationType?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression' or 'sqlExpression' or 'sqlWhere' or 'normalizationType' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((t=>{const a=t.stats,{minValue:r,maxValue:s}=e,i=null!=r?r:a.min,o=null!=s?s:a.max,n=e.numBins||10,l=this._generateFeatureSetForCachedHistogram(a.histogram,i,o,n);return z(l,i,o,n)}))}async _getClassBreaksFromMemory(e){const{view:t,field:a,normalizationField:r,valueExpression:s}=e,{featuresJSON:i,graphics:o}=await this._processStatsFromMemoryParams(e),n={field:a,valueExpression:s,normalizationType:e.normalizationType,normalizationField:r,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(n.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotal(a,i,o)),i?this.workerClient.classBreaks(n,i):g({attribute:n,features:o})}async _getHistogramFromMemory(e){const{view:t,field:a}=e,{featuresJSON:r,graphics:s}=await this._processStatsFromMemoryParams(e),i={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&r&&(i.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(i.normalizationTotal=await this._getNormalizationTotal(a,r,s)),r?this.workerClient.histogram(i,r):F({attribute:i,features:s})}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){const t=this.getField(e);if(!t)return null;const a=this.layer.getFieldUsageInfo(t.name);return{supportsLabelingInfo:a.supportsLabelingInfo,supportsPopupTemplate:a.supportsPopupTemplate,supportsRenderer:a.supportsRenderer,supportsLayerQuery:a.supportsLayerQuery,supportsStatistics:!0}}getFieldDomain(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.getFieldDomain(e,t):null}summaryStatistics(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.summaryStatistics(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatistics(e,t).catch((()=>(n(e.signal),this._getSummaryStatisticsFromMemory(e,t)))):this._getSummaryStatisticsFromMemory(e,t)}uniqueValues(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.uniqueValues(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForUniqueValues(e,t).catch((()=>(n(e.signal),this._getUniqueValuesFromMemory(e,t)))):this._getUniqueValuesFromMemory(e,t)}histogram(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.histogram(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForHistogram(e,t).catch((()=>(n(e.signal),this._getHistogramFromMemory(e)))):this._getHistogramFromMemory(e)}classBreaks(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.classBreaks(e):this._hasCachedStatistics(t&&t.name)?Promise.reject(new r("scene-layer-adapter:not-supported","Cached stats not supported")):this._getClassBreaksFromMemory(e)}queryFeatureCount(e){return this._featureLayerAdapter?this._featureLayerAdapter.queryFeatureCount(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support count query"))}generateRenderer(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.generateRenderer(e,t):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support generateRenderer operation"))}heatmapStatistics(e){return this._featureLayerAdapter?this._featureLayerAdapter.heatmapStatistics(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support heatmapStatistics operation"))}async predominantCategories(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.predominantCategories(e);throw new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support predominantCategories")}async getSampleFeatures(e,t){const{view:r,sampleSize:s,requiredFields:i,returnGeometry:o,signal:l}=e,u=1,m="json"===t,p=this.layer.createQuery();p.outFields=i,p.returnGeometry=!!o,p.where=null,p.num=s;let c=[];try{if(c=m?await this._fetchFeaturesJSONFromMemory(r,p,i):await this._fetchFeaturesFromMemory(r,p,i),c.length&&s>0&&s<=c.length)return a(c,s,u)}catch(h){n(l)}let d=null;if(this._featureLayerAdapter){const a={...e};delete a.view,d=await this._featureLayerAdapter.getSampleFeatures(a,t)}return d&&d.length?d:a(c,c.length,u)}load(e){const t=this.layer.load(e).then((async t=>{this.workerClient=w.getInstance(),await this.workerClient.open(s(s(e).signal));const a=t.associatedLayer;if(this.geometryType=t.geometryType,i(a)){this._featureLayerAdapter=new S({layer:a});return this._featureLayerAdapter.load(e).then((()=>{this.objectIdField=this._featureLayerAdapter.objectIdField,this.supportsSQLExpression=this._featureLayerAdapter.supportsSQLExpression,this.minScale=this._featureLayerAdapter.minScale,this.maxScale=this._featureLayerAdapter.maxScale,this.fullExtent=this._featureLayerAdapter.fullExtent}))}this.objectIdField=t.objectIdField,this.supportsSQLExpression=!1,this.hasQueryEngine=!1,this.fullExtent=t.fullExtent}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([u({constructOnly:!0})],j.prototype,"layer",void 0),j=e([m("esri.smartMapping.support.adapters.SceneLayerAdapter")],j);const A=j;export{A as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import{pickRandom as a}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{unwrap as s,isSome as i}from"../../../core/maybe.js";import{timeout as o,throwIfAborted as n}from"../../../core/promiseUtils.js";import{whenOnce as l}from"../../../core/reactiveUtils.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as p}from"../../../layers/support/fieldType.js";import{isNumericField as c,isDateField as d}from"../../../layers/support/fieldUtils.js";import h from"../../../rest/support/FeatureSet.js";import{summaryStatistics as y,uniqueValues as f,classBreaks as g,histogram as F}from"../../statistics/support/statsWorker.js";import{WorkerClient as w}from"../../statistics/support/WorkerClient.js";import{getFieldsList as _}from"../utils.js";import S from"./FeatureLayerAdapter.js";import v from"./LayerAdapter.js";import{getMissingFields as x,ensureFeaturesJSON as L,getViewInfoParams as C,getUniqueValuesFromFeatureSet as E,getHistogramFromFeatureSet as z}from"./support/utils.js";import{createUVResult as T}from"../../../statistics/utils.js";let A=class extends v{constructor(e){super(e)}destroy(){var e;this._featureLayerAdapter=null,null==(e=this.workerClient)||e.destroy()}_hasCachedStatistics(e){return this.layer.hasCachedStatistics(e)}_updateQuery(e,t=[],a=[]){if(!a.length)return e;const r=this.layer.objectIdField,s=e.clone(),i=t.filter((e=>{const t=this.layer.getField(e);return!a.includes(t.name)})),o=i.some((e=>this.layer.getField(e).name===r));return s.outFields=o?i:[...i,r],s}async _fetchFeaturesFromMemory(e,t,a){if(!e)throw new r("scene-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const s=await e.whenLayerView(this.layer),i=new AbortController,u=i.signal,m=l((()=>!s.updating),u);await o(m,5e3,i);const p=await x(this,a,s);n(u);const c=this._updateQuery(t,a,p),d=await s.queryFeatures(c,{signal:u});n(u);const h=d.features;return p.length?s.whenGraphicAttributes(h,p):h}async _fetchFeaturesJSONFromMemory(e,t,a){return this._fetchFeaturesFromMemory(e,t,a).then(L)}_fetchFeaturesForStats(e,t){return _({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((a=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:a,signal:e.signal},t)))}async _processStatsFromMemoryParams(e){const t=e.features;if(null!=t&&t.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:a,field:s,normalizationField:i,valueExpression:o,signal:n}=e,l=await this._fetchFeaturesForStats({field:s,valueExpression:o,normalizationField:i,view:a,signal:n});if(null==l||!l.length)throw new r("scene-layer-adapter:insufficient-data","No features are available to calculate statistics");return{graphics:l}}_generateFeatureSetForCachedHistogram(e,a=e.minimum,r=e.maximum,s){const i=[];for(let t=0;t<s;t++)i[t]=0;const o=e.counts.length,n=e.minimum,l=e.maximum;for(let t=0;t<o;t++){const u=(t+.5)/o,m=((1-u)*n+u*l-a)/(r-a)*s;m>=0&&m<=s&&(i[m===s?s-1:Math.floor(m)]+=e.counts[t])}const u=[];i.forEach(((e,a)=>{const r=new t({attributes:{}});r.attributes.EXPR_1=a+1,r.attributes.countOFExpr=e,u.push(r)}));const m=new h;return m.features=u,m}_getCachedStatistics(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.minValue||e.maxValue?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression', 'sqlWhere', 'minValue' or 'maxValue' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((e=>{const t=e.stats,{min:a,max:r,totalValuesCount:s}=t;let{avg:i,stddev:o,sum:n,variance:l,count:u}=t;return 0===a&&0===r||(i=0===i?null:i,n=0===n?null:n,o=0===o?null:o,l=0===l?null:l,u=0===u?null:u),null==u&&(null!=n&&null!=i?u=Math.round(n/i):null!=s&&(u=s)),{avg:i,count:u,max:r,min:a,stddev:o,sum:n,variance:l}}))}async _getNormalizationTotal(e,t,a){const s=(t?await this.workerClient.summaryStatistics({field:e},t):await y({attribute:{field:e},features:a})).sum;if(null==s)throw new r("scene-layer-adapter:invalid","invalid normalizationTotal");return s}async _getSummaryStatisticsFromMemory(e,t){const{view:a,field:r,normalizationField:s,valueExpression:i}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams(e),l={field:r,valueExpression:i,normalizationType:e.normalizationType,normalizationField:s,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue};return e.valueExpression&&a&&o&&(l.fieldType=null!=t&&t.type?p.toJSON(t.type):null,l.viewInfoParams=C(a)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotal(r,o,n)),o?this.workerClient.summaryStatistics(l,o):y({attribute:l,features:n})}_getCachedStatisticsForUniqueValues(e,a){const s=this.layer,i=a&&a.name,o=a&&this.getFieldDomain(e.field);return e.valueExpression||e.sqlExpression||e.sqlWhere?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression' or 'sqlWhere' is specified")):s.queryCachedStatistics(i,{signal:e.signal}).then((r=>{const o=r.stats;if(!o.mostFrequentValues)throw new Error;const n=r.labels&&r.labels.labels,l={},u=[],m="countOF"+i;o.mostFrequentValues.forEach((e=>{const r=new t({attributes:{}});r.attributes[i]=a&&a.name!==s.objectIdField&&(c(a)||d(a))?Number(e.value):e.value,r.attributes[m]=e.count,u.push(r)})),n&&n.forEach((e=>{l[e.value]=e.label}));const p=new h;return p.features=u,E(p,this,e.field,e.view,l,e.signal)})).then((t=>T(t,o,e.returnAllCodedValues)))}async _getUniqueValuesFromMemory(e,t){const a=t&&this.getFieldDomain(e.field),{view:r,field:s,valueExpression:i,returnAllCodedValues:o}=e,n={field:s,valueExpression:i,domain:a,returnAllCodedValues:o},{featuresJSON:l,graphics:u}=await this._processStatsFromMemoryParams(e);return e.valueExpression&&r&&l&&(n.viewInfoParams=C(r)),l?this.workerClient.uniqueValues(n,l):f({attribute:n,features:u})}_getCachedStatisticsForHistogram(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.normalizationType?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression' or 'sqlExpression' or 'sqlWhere' or 'normalizationType' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((t=>{const a=t.stats,{minValue:r,maxValue:s}=e,i=null!=r?r:a.min,o=null!=s?s:a.max,n=e.numBins||10,l=this._generateFeatureSetForCachedHistogram(a.histogram,i,o,n);return z(l,i,o,n)}))}async _getClassBreaksFromMemory(e){const{view:t,field:a,normalizationField:r,valueExpression:s}=e,{featuresJSON:i,graphics:o}=await this._processStatsFromMemoryParams(e),n={field:a,valueExpression:s,normalizationType:e.normalizationType,normalizationField:r,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(n.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotal(a,i,o)),i?this.workerClient.classBreaks(n,i):g({attribute:n,features:o})}async _getHistogramFromMemory(e){const{view:t,field:a}=e,{featuresJSON:r,graphics:s}=await this._processStatsFromMemoryParams(e),i={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&r&&(i.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(i.normalizationTotal=await this._getNormalizationTotal(a,r,s)),r?this.workerClient.histogram(i,r):F({attribute:i,features:s})}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){const t=this.getField(e);if(!t)return null;const a=this.layer.getFieldUsageInfo(t.name);return{supportsLabelingInfo:a.supportsLabelingInfo,supportsPopupTemplate:a.supportsPopupTemplate,supportsRenderer:a.supportsRenderer,supportsLayerQuery:a.supportsLayerQuery,supportsStatistics:!0}}getFieldDomain(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.getFieldDomain(e,t):null}summaryStatistics(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.summaryStatistics(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatistics(e,t).catch((()=>(n(e.signal),this._getSummaryStatisticsFromMemory(e,t)))):this._getSummaryStatisticsFromMemory(e,t)}uniqueValues(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.uniqueValues(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForUniqueValues(e,t).catch((()=>(n(e.signal),this._getUniqueValuesFromMemory(e,t)))):this._getUniqueValuesFromMemory(e,t)}histogram(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.histogram(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForHistogram(e,t).catch((()=>(n(e.signal),this._getHistogramFromMemory(e)))):this._getHistogramFromMemory(e)}classBreaks(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.classBreaks(e):this._hasCachedStatistics(t&&t.name)?Promise.reject(new r("scene-layer-adapter:not-supported","Cached stats not supported")):this._getClassBreaksFromMemory(e)}queryFeatureCount(e){return this._featureLayerAdapter?this._featureLayerAdapter.queryFeatureCount(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support count query"))}generateRenderer(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.generateRenderer(e,t):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support generateRenderer operation"))}heatmapStatistics(e){return this._featureLayerAdapter?this._featureLayerAdapter.heatmapStatistics(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support heatmapStatistics operation"))}async predominantCategories(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.predominantCategories(e);throw new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support predominantCategories")}async getSampleFeatures(e,t){const{view:r,sampleSize:s,requiredFields:i,returnGeometry:o,signal:l}=e,u=1,m="json"===t,p=this.layer.createQuery();p.outFields=i,p.returnGeometry=!!o,p.where=null,p.num=s;let c=[];try{if(c=m?await this._fetchFeaturesJSONFromMemory(r,p,i):await this._fetchFeaturesFromMemory(r,p,i),c.length&&s>0&&s<=c.length)return a(c,s,u)}catch(h){n(l)}let d=null;if(this._featureLayerAdapter){const a={...e};delete a.view,d=await this._featureLayerAdapter.getSampleFeatures(a,t)}return d&&d.length?d:a(c,c.length,u)}load(e){const t=this.layer.load(e).then((async t=>{this.workerClient=w.getInstance(),await this.workerClient.open(s(s(e).signal));const a=t.associatedLayer;if(this.geometryType=t.geometryType,i(a)){this._featureLayerAdapter=new S({layer:a});return this._featureLayerAdapter.load(e).then((()=>{this.objectIdField=this._featureLayerAdapter.objectIdField,this.supportsSQLExpression=this._featureLayerAdapter.supportsSQLExpression,this.minScale=this._featureLayerAdapter.minScale,this.maxScale=this._featureLayerAdapter.maxScale,this.fullExtent=this._featureLayerAdapter.fullExtent}))}this.objectIdField=t.objectIdField,this.supportsSQLExpression=!1,this.hasQueryEngine=!1,this.fullExtent=t.fullExtent}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([u({constructOnly:!0})],A.prototype,"layer",void 0),A=e([m("esri.smartMapping.support.adapters.SceneLayerAdapter")],A);const j=A;export{j 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/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{createKernel as n,createValueFunction as o}from"../../../../renderers/support/heatmapUtils.js";import{noDominantCategoryField as e}from"../../../statistics/support/predominanceUtils.js";import{isIntegerField as a,castIntegerFieldToFloat as r,getDateDiffSQL as i}from"../../utils.js";import{getEqualIntervalBins as l}from"../../../../statistics/utils.js";const u=/_value$/i,s=Math.LOG10E;function c(t){return t.map((t=>t.toJSON()))}async function m(t,n,o){const e=[];if(n)for(const a of n){const n=t.getField(a);"availableFields"in o&&-1===o.availableFields.indexOf(n.name)&&e.push(n.name)}return e}function f(t,n){const o=t&&t.features,e=o&&o[0]&&o[0].attributes,a={};for(const r in e)a[r.replace(u,"").toLowerCase()]=e[r];return null!=a.totalcount&&a.totalcount>=a.count&&(a.nullcount=a.totalcount-a.count),delete a.totalcount,a.min===a.max&&null!=a.min&&null==a.stddev&&(a.stddev=a.variance=0),n&&(["min","max","avg","stddev","sum","variance"].forEach((t=>{null!=a[t]&&(a[t]=Math.ceil(a[t]))})),a.min===a.max&&null!=a.min&&(a.avg=a.min,a.stddev=a.variance=0)),a}function d(t,e=10,a,r,i,l){const u=new Float64Array(i*l),s=n(e),c=Math.round(3*e);let m=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=0,p=0,v=0,x=0;const h=o(r,a);for(const{geometry:n,attributes:o}of t){const t=n.x-c,e=n.y-c,a=Math.max(0,t),r=Math.max(0,e),y=Math.min(l,n.y+c),g=Math.min(i,n.x+c),w=+h(o);for(let n=r;n<y;n++){const o=s[n-e];for(let e=a;e<g;e++){const a=s[e-t],r=n*i+e,l=u[r];d=u[r]+=o*a*w;const c=d-l;p+=c,v+=c*c,d<m&&(m=d),d>f&&(f=d),x++}}}if(!x)return{mean:0,stddev:0,min:0,max:0,mid:0,count:0};const y=(f-m)/2;return{mean:p/x,stdDev:Math.sqrt((v-p*p/x)/x),min:m,max:f,mid:y,count:x}}function p(t){const n=[],o=t.classBreaks,e=o[0].minValue,a=o[o.length-1].maxValue;o.forEach((t=>{n.push([t.minValue,t.maxValue])}));const r={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:e,max:a,intervals:n,sqlExpr:v(r),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function v(t){const{field:n,normalizationType:o,normalizationField:e,normalizationTotal:i,layer:l}=t,u=a(l,n);let c=n;return"percent-of-total"===o?c=`((${u?r(n):n} / ${i}) * 100)`:"log"===o?c=`(log(${n}) * ${s})`:"field"===o?c=`(${u?r(n):n} / ${e})`:"natural-log"===o?c=`(log(${u?r(n):n}))`:"square-root"===o&&(c=`(power(${u?r(n):n}, 0.5))`),c}function x(t,n){let o;if(n=n.toLowerCase(),t)for(const e in t)if(e.toLowerCase()!==n){o=t[e];break}return o}function h(t,n){let o;if(n=n.toLowerCase(),t)for(const e in t)if(e.toLowerCase()===n){o=t[e];break}return o}function y(t,n,o,e,a){const r={},i="countOFExpr";t&&t.features&&t.features.forEach((t=>{const n=t.attributes,o=x(n,i),e=h(n,i);0!==o&&(r[o]=e)}));const u=[];return l(n,o,e).forEach(((t,n)=>{const o=(n+1).toString();u.push({minValue:t[0],maxValue:t[1],count:r.hasOwnProperty(o)?r[o]:0})})),{bins:u,minValue:n,maxValue:o,normalizationTotal:a}}function g(n,o,e,a,r,i){const l=n&&n.features,u="countOF"+(e||"Expr"),s={};let c=!1;if(l.forEach((t=>{const n=t.attributes,o=h(n,u);let a=e?h(n,e):x(n,u);null===a&&0===o&&(c=!0),(null==a||"string"==typeof a&&""===a.trim())&&(a=null),null==s[a]?s[a]={count:o,data:a}:s[a].count=s[a].count+o})),e&&c){const n=e+" is NULL";return o.queryFeatureCount({whereClause:n,view:a,signal:i}).then((t=>(t=t||0,s.null.count=s.null.count+t,w(s,r)))).catch((()=>(t(i),w(s,r))))}return Promise.resolve(w(s,r))}function w(t,n){if(n)for(const o in t)t[o].label=n[o];return{count:t}}function E(t,n){return i(t,new Date(0),n,"milliseconds").sqlExpression}function T(t){var n;return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:null==(n=t.spatialReference)?void 0:n.toJSON()}}function b(t,n){const o=t.map((t=>t.value)),a=n.filter((t=>-1===o.indexOf(t)));for(const e of a)t.push({value:e,count:0});t.sort(((t,o)=>n.indexOf(t.value)-n.indexOf(o.value)));for(const r of t)r.value===e&&(r.value=null);return{predominantCategoryInfos:t}}export{d as calculateHeatmapStats,c as ensureFeaturesJSON,p as generateBinParams,v as getFieldExpr,y as getHistogramFromFeatureSet,m as getMissingFields,b as getPredominantCategoriesFromUVInfos,f as getSummaryStatisticsFromFeatureSet,g as getUniqueValuesFromFeatureSet,T as getViewInfoParams,E as msSinceUnixEpochSQL};
5
+ import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{createKernel as n,createValueFunction as o}from"../../../../renderers/support/heatmapUtils.js";import{noDominantCategoryField as e}from"../../../statistics/support/predominanceUtils.js";import{isIntegerField as a,castIntegerFieldToFloat as r,getDateDiffSQL as i}from"../../utils.js";import{getEqualIntervalBins as l}from"../../../../statistics/utils.js";const u=/_value$/i,s=Math.LOG10E;function c(t){return t.map((t=>t.toJSON()))}async function m(t,n,o){const e=[];if(n)for(const a of n){const n=t.getField(a);"availableFields"in o&&!o.availableFields.includes(n.name)&&e.push(n.name)}return e}function f(t,n){const o=t&&t.features,e=o&&o[0]&&o[0].attributes,a={};for(const r in e)a[r.replace(u,"").toLowerCase()]=e[r];return null!=a.totalcount&&a.totalcount>=a.count&&(a.nullcount=a.totalcount-a.count),delete a.totalcount,a.min===a.max&&null!=a.min&&null==a.stddev&&(a.stddev=a.variance=0),n&&(["min","max","avg","stddev","sum","variance"].forEach((t=>{null!=a[t]&&(a[t]=Math.ceil(a[t]))})),a.min===a.max&&null!=a.min&&(a.avg=a.min,a.stddev=a.variance=0)),a}function d(t,e=10,a,r,i,l){const u=new Float64Array(i*l),s=n(e),c=Math.round(3*e);let m=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=0,p=0,v=0,h=0;const x=o(r,a);for(const{geometry:n,attributes:o}of t){const t=n.x-c,e=n.y-c,a=Math.max(0,t),r=Math.max(0,e),y=Math.min(l,n.y+c),g=Math.min(i,n.x+c),w=+x(o);for(let n=r;n<y;n++){const o=s[n-e];for(let e=a;e<g;e++){const a=s[e-t],r=n*i+e,l=u[r];d=u[r]+=o*a*w;const c=d-l;p+=c,v+=c*c,d<m&&(m=d),d>f&&(f=d),h++}}}if(!h)return{mean:0,stddev:0,min:0,max:0,mid:0,count:0};const y=(f-m)/2;return{mean:p/h,stdDev:Math.sqrt((v-p*p/h)/h),min:m,max:f,mid:y,count:h}}function p(t){const n=[],o=t.classBreaks,e=o[0].minValue,a=o[o.length-1].maxValue;o.forEach((t=>{n.push([t.minValue,t.maxValue])}));const r={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:e,max:a,intervals:n,sqlExpr:v(r),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function v(t){const{field:n,normalizationType:o,normalizationField:e,normalizationTotal:i,layer:l}=t,u=a(l,n);let c=n;return"percent-of-total"===o?c=`((${u?r(n):n} / ${i}) * 100)`:"log"===o?c=`(log(${n}) * ${s})`:"field"===o?c=`(${u?r(n):n} / ${e})`:"natural-log"===o?c=`(log(${u?r(n):n}))`:"square-root"===o&&(c=`(power(${u?r(n):n}, 0.5))`),c}function h(t,n){let o;if(n=n.toLowerCase(),t)for(const e in t)if(e.toLowerCase()!==n){o=t[e];break}return o}function x(t,n){let o;if(n=n.toLowerCase(),t)for(const e in t)if(e.toLowerCase()===n){o=t[e];break}return o}function y(t,n,o,e,a){const r={},i="countOFExpr";t&&t.features&&t.features.forEach((t=>{const n=t.attributes,o=h(n,i),e=x(n,i);0!==o&&(r[o]=e)}));const u=[];return l(n,o,e).forEach(((t,n)=>{const o=(n+1).toString();u.push({minValue:t[0],maxValue:t[1],count:r.hasOwnProperty(o)?r[o]:0})})),{bins:u,minValue:n,maxValue:o,normalizationTotal:a}}function g(n,o,e,a,r,i){const l=n&&n.features,u="countOF"+(e||"Expr"),s={};let c=!1;if(l.forEach((t=>{const n=t.attributes,o=x(n,u);let a=e?x(n,e):h(n,u);null===a&&0===o&&(c=!0),(null==a||"string"==typeof a&&""===a.trim())&&(a=null),null==s[a]?s[a]={count:o,data:a}:s[a].count=s[a].count+o})),e&&c){const n=e+" is NULL";return o.queryFeatureCount({whereClause:n,view:a,signal:i}).then((t=>(t=t||0,s.null.count=s.null.count+t,w(s,r)))).catch((()=>(t(i),w(s,r))))}return Promise.resolve(w(s,r))}function w(t,n){if(n)for(const o in t)t[o].label=n[o];return{count:t}}function E(t,n){return i(t,new Date(0),n,"milliseconds").sqlExpression}function T(t){var n;return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:null==(n=t.spatialReference)?void 0:n.toJSON()}}function b(t,n){const o=t.map((t=>t.value)),a=n.filter((t=>!o.includes(t)));for(const e of a)t.push({value:e,count:0});t.sort(((t,o)=>n.indexOf(t.value)-n.indexOf(o.value)));for(const r of t)r.value===e&&(r.value=null);return{predominantCategoryInfos:t}}export{d as calculateHeatmapStats,c as ensureFeaturesJSON,p as generateBinParams,v as getFieldExpr,y as getHistogramFromFeatureSet,m as getMissingFields,b as getPredominantCategoriesFromUVInfos,f as getSummaryStatisticsFromFeatureSet,g as getUniqueValuesFromFeatureSet,T as getViewInfoParams,E as msSinceUnixEpochSQL};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{loadArcade as e}from"../../support/arcadeOnDemand.js";import{getWellKnownBasemapId as t}from"../../support/basemapUtils.js";const r={light:["streets","gray","topo","terrain","national-geographic","oceans","osm","gray-vector","streets-vector","topo-vector","streets-relief-vector","streets-navigation-vector","arcgis-light-gray","arcgis-navigation","arcgis-streets","arcgis-streets-relief","arcgis-topographic","arcgis-oceans","osm-standard","osm-standard-relief","osm-streets","osm-streets-relief","osm-light-gray","arcgis-terrain","arcgis-charted-territory","arcgis-community","arcgis-colored-pencil","arcgis-modern-antique","arcgis-midcentury","arcgis-newspaper","arcgis-hillshade-light"],dark:["satellite","hybrid","dark-gray","dark-gray-vector","streets-night-vector","arcgis-imagery","arcgis-imagery-standard","arcgis-dark-gray","arcgis-navigation-night","arcgis-streets-night","osm-dark-gray","arcgis-nova","arcgis-hillshade-dark"]},i="percent-of-total",n="field",a={years:365,months:30,days:1,hours:1/24,minutes:1/1440,seconds:1/86400,milliseconds:1/864e5},s=["integer","small-integer"];let o=null;async function c(t){const r=t.field,i=t.normalizationField,n=t.valueExpression;let a=[];if(n){if(!o){const{arcadeUtils:t}=await e();o=t}a=o.extractFieldNames(n)}return r&&a.push(r),i&&a.push(i),a}function g(e){let t=e.normalizationType;return t||(e.normalizationField?t=n:null!=e.normalizationTotal&&(t=i)),t}function l(e){return String(e).padStart(2,"0")}function u(e,t,r){let i;if("date"===t||"number"===t){"number"===t&&(e=new Date(e));i=`TIMESTAMP'${r?e.getFullYear():e.getUTCFullYear()}-${l((r?e.getMonth():e.getUTCMonth())+1)}-${l(r?e.getDate():e.getUTCDate())} ${l(r?e.getHours():e.getUTCHours())}:${l(r?e.getMinutes():e.getUTCMinutes())}:${l(r?e.getSeconds():e.getUTCSeconds())}'`}else i=e;return i}function d(e,t,r,i){const{hasQueryEngine:n}=e;let s=`(${u(r,f(e,r),n)} - ${u(t,f(e,t),n)})`;n&&(s=`(${s} * ${a.milliseconds})`);let o=a[i],c="/";o<1&&(o=1/o,c="*");return{sqlExpression:1===o?s:`(${s} ${c} ${o})`,sqlWhere:null}}function f(e,t){if(t instanceof Date)return"date";if("number"==typeof t)return"number";if("string"==typeof t){const r=e.getField(t);if("<now>"===t.toLowerCase())return;if(r&&"date"===r.type)return"field"}}function m(e,t=r){for(const r in t)if(t[r].indexOf(e)>-1)return r}function p(e,r,i=!0){let n=null;return e&&("string"==typeof e?r.includes(e)&&(n=e):n=t(e)),i?n||"gray":n}function y(e,t){const r=t&&e.getField(t);return r&&s.indexOf(r.type)>-1}function h(e){return`cast(${e} as float)`}export{h as castIntegerFieldToFloat,r as defaultBasemapGroups,m as getBasemapGroup,p as getBasemapId,d as getDateDiffSQL,f as getDateType,c as getFieldsList,g as getNormalizationType,y as isIntegerField,a as unitValueInDays};
5
+ import{loadArcade as e}from"../../support/arcadeOnDemand.js";import{getWellKnownBasemapId as t}from"../../support/basemapUtils.js";const r={light:["streets","gray","topo","terrain","national-geographic","oceans","osm","gray-vector","streets-vector","topo-vector","streets-relief-vector","streets-navigation-vector","arcgis-light-gray","arcgis-navigation","arcgis-streets","arcgis-streets-relief","arcgis-topographic","arcgis-oceans","osm-standard","osm-standard-relief","osm-streets","osm-streets-relief","osm-light-gray","arcgis-terrain","arcgis-charted-territory","arcgis-community","arcgis-colored-pencil","arcgis-modern-antique","arcgis-midcentury","arcgis-newspaper","arcgis-hillshade-light"],dark:["satellite","hybrid","dark-gray","dark-gray-vector","streets-night-vector","arcgis-imagery","arcgis-imagery-standard","arcgis-dark-gray","arcgis-navigation-night","arcgis-streets-night","osm-dark-gray","arcgis-nova","arcgis-hillshade-dark"]},i="percent-of-total",n="field",s={years:365,months:30,days:1,hours:1/24,minutes:1/1440,seconds:1/86400,milliseconds:1/864e5},a=["integer","small-integer"];let o=null;async function c(t){const r=t.field,i=t.normalizationField,n=t.valueExpression;let s=[];if(n){if(!o){const{arcadeUtils:t}=await e();o=t}s=o.extractFieldNames(n)}return r&&s.push(r),i&&s.push(i),s}function l(e){let t=e.normalizationType;return t||(e.normalizationField?t=n:null!=e.normalizationTotal&&(t=i)),t}function g(e){return String(e).padStart(2,"0")}function u(e,t,r){let i;if("date"===t||"number"===t){"number"===t&&(e=new Date(e));i=`TIMESTAMP'${r?e.getFullYear():e.getUTCFullYear()}-${g((r?e.getMonth():e.getUTCMonth())+1)}-${g(r?e.getDate():e.getUTCDate())} ${g(r?e.getHours():e.getUTCHours())}:${g(r?e.getMinutes():e.getUTCMinutes())}:${g(r?e.getSeconds():e.getUTCSeconds())}'`}else i=e;return i}function d(e,t,r,i){const{hasQueryEngine:n}=e;let a=`(${u(r,f(e,r),n)} - ${u(t,f(e,t),n)})`;n&&(a=`(${a} * ${s.milliseconds})`);let o=s[i],c="/";o<1&&(o=1/o,c="*");return{sqlExpression:1===o?a:`(${a} ${c} ${o})`,sqlWhere:null}}function f(e,t){if(t instanceof Date)return"date";if("number"==typeof t)return"number";if("string"==typeof t){const r=e.getField(t);if("<now>"===t.toLowerCase())return;if(r&&"date"===r.type)return"field"}}function m(e,t=r){for(const r in t)if(t[r].includes(e))return r}function p(e,r,i=!0){let n=null;return e&&("string"==typeof e?r.includes(e)&&(n=e):n=t(e)),i?n||"gray":n}function y(e,t){const r=t&&e.getField(t);return r&&a.includes(r.type)}function h(e){return`cast(${e} as float)`}export{h as castIntegerFieldToFloat,r as defaultBasemapGroups,m as getBasemapGroup,p as getBasemapId,d as getDateDiffSQL,f as getDateType,c as getFieldsList,l as getNormalizationType,y as isIntegerField,s 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/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{clone as s}from"../../../core/lang.js";import{isSome as e}from"../../../core/maybe.js";import{defaultBasemapGroups as t,getBasemapId as a,getBasemapGroup as p}from"../../support/utils.js";function m(s,t,m){let o=null,i=null;if(t&&(o=a(t,s,!1),o)){const s=p(o);e(s)&&(i=s)}return!o&&m&&(o="dark"===m?"dark-gray":"gray",i=m),o||i||(o="gray",i="light"),{basemapId:o,basemapTheme:i}}class o{constructor(s){this.name=null,this.label=null,this.description=null,this.supportedBasemaps=null,this.basemapGroups=null,this.schemes=null;const{name:e,label:a,description:p,schemes:m}=s;this.name=e,this.label=a,this.description=p,this.schemes=m;const o=s.basemapGroups||t;let i=[];if(o)for(const t in o)i=i.concat(o[t]);this.supportedBasemaps=i,this.basemapGroups=o}isBasemapSupported(s){const e=a(s,this.supportedBasemaps);return!!(e&&this.supportedBasemaps.indexOf(e)>-1)}getRawSchemes(t){const{basemapId:a,basemapTheme:o}=m(this.supportedBasemaps,t.basemap,t.basemapTheme);let i=o;if(a){const s=p(a,this.basemapGroups);e(s)&&(i=s)}let r=t.geometryType;"multipoint"===r?r="point":"mesh"===r&&(r="polygon");const n=this.schemes[r]||this.schemes.default;return{schemesInfo:s(n[i]),basemapId:a,basemapTheme:o}}}export{o as default};
5
+ import{clone as s}from"../../../core/lang.js";import{isSome as e}from"../../../core/maybe.js";import{defaultBasemapGroups as t,getBasemapId as a,getBasemapGroup as p}from"../../support/utils.js";function m(s,t,m){let o=null,i=null;if(t&&(o=a(t,s,!1),o)){const s=p(o);e(s)&&(i=s)}return!o&&m&&(o="dark"===m?"dark-gray":"gray",i=m),o||i||(o="gray",i="light"),{basemapId:o,basemapTheme:i}}class o{constructor(s){this.name=null,this.label=null,this.description=null,this.supportedBasemaps=null,this.basemapGroups=null,this.schemes=null;const{name:e,label:a,description:p,schemes:m}=s;this.name=e,this.label=a,this.description=p,this.schemes=m;const o=s.basemapGroups||t;let i=[];if(o)for(const t in o)i=i.concat(o[t]);this.supportedBasemaps=i,this.basemapGroups=o}isBasemapSupported(s){const e=a(s,this.supportedBasemaps);return!(!e||!this.supportedBasemaps.includes(e))}getRawSchemes(t){const{basemapId:a,basemapTheme:o}=m(this.supportedBasemaps,t.basemap,t.basemapTheme);let i=o;if(a){const s=p(a,this.basemapGroups);e(s)&&(i=s)}let r=t.geometryType;"multipoint"===r?r="point":"mesh"===r&&(r="polygon");const n=this.schemes[r]||this.schemes.default;return{schemesInfo:s(n[i]),basemapId:a,basemapTheme:o}}}export{o 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/4.24/esri/copyright.txt for details.
4
4
  */
5
- import n from"../../../Color.js";import o from"./colors.js";function s(o){const s=[];for(const t in o){const r=Number(t);if(!isNaN(r)){const e=o[t];s.push({colors:e.map((o=>new n(o))),numClasses:r})}}return{name:o.name,tags:[...o.tags],colors:o.stops.map((o=>new n(o))),colorsForClassBreaks:s}}function t(n){return Array.isArray(n[2]&&n[2][0])}function r(){const n=[];for(const r in o){const e=o[r];t(e)||n.push(s(e))}return n}function e(){const n=[];for(const s in o){const r=o[s];t(r)||n.push(r.name)}return n}function c(n){let r=null;for(const e in o){const c=o[e];if(!t(c)&&c.name===n){r=s(c);break}}return r}function i(n){const{includedTags:r,excludedTags:e}=n;if(!r&&!e)return[];const c=!(r&&r.length),i=!(e&&e.length),u=[];for(const a in o){const n=o[a];if(!t(n)){const o=!!c||r.every((o=>n.tags.indexOf(o)>-1)),t=!i&&e.every((o=>n.tags.indexOf(o)>-1));o&&!t&&u.push(s(n))}}return u}export{r as all,c as byName,i as byTag,e as names};
5
+ import n from"../../../Color.js";import o from"./colors.js";function s(o){const s=[];for(const t in o){const r=Number(t);if(!isNaN(r)){const c=o[t];s.push({colors:c.map((o=>new n(o))),numClasses:r})}}return{name:o.name,tags:[...o.tags],colors:o.stops.map((o=>new n(o))),colorsForClassBreaks:s}}function t(n){return Array.isArray(n[2]&&n[2][0])}function r(){const n=[];for(const r in o){const c=o[r];t(c)||n.push(s(c))}return n}function c(){const n=[];for(const s in o){const r=o[s];t(r)||n.push(r.name)}return n}function e(n){let r=null;for(const c in o){const e=o[c];if(!t(e)&&e.name===n){r=s(e);break}}return r}function u(n){const{includedTags:r,excludedTags:c}=n;if(!r&&!c)return[];const e=!(r&&r.length),u=!(c&&c.length),i=[];for(const a in o){const n=o[a];if(!t(n)){const o=!!e||r.every((o=>n.tags.includes(o))),t=!u&&c.every((o=>n.tags.includes(o)));o&&!t&&i.push(s(n))}}return i}export{r as all,e as byName,u as byTag,c as names};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import e from"./Theme.js";function n(n){const t=n.themeDictionary,r=new Map;for(const o in t){const n=t[o];r.set(o,new e(n))}return r}function t(e,n){const t=[];return e.forEach((e=>{e.isBasemapSupported(n)&&t.push({name:e.name,label:e.label,description:e.description,basemaps:[...e.supportedBasemaps]})})),t}function r(e,n){if(!e)return;if(!n)return;let t=null;const r=[n.primaryScheme,...n.secondarySchemes];for(const o of r)if(o.name.toLowerCase()===e.toLowerCase()){t=o;break}return t}function o(e,n,t){if(!e&&!n)return[];if(!t)return[];const r=!(e&&e.length),o=!(n&&n.length),s=[t.primaryScheme,...t.secondarySchemes],a=[];for(const m of s){const t=!!r||e.some((e=>m.tags.indexOf(e)>-1)),s=!o&&n.some((e=>m.tags.indexOf(e)>-1));t&&!s&&a.push(m)}return a}function s(e){const n=e.theme;if(n)return n.getRawSchemes({basemap:e.basemap,geometryType:e.geometryType,basemapTheme:e.basemapTheme})}export{n as createThemes,r as filterSchemesByName,o as filterSchemesByTag,s as getRawSchemes,t as getThemesforBasemap};
5
+ import e from"./Theme.js";function n(n){const t=n.themeDictionary,r=new Map;for(const s in t){const n=t[s];r.set(s,new e(n))}return r}function t(e,n){const t=[];return e.forEach((e=>{e.isBasemapSupported(n)&&t.push({name:e.name,label:e.label,description:e.description,basemaps:[...e.supportedBasemaps]})})),t}function r(e,n){if(!e)return;if(!n)return;let t=null;const r=[n.primaryScheme,...n.secondarySchemes];for(const s of r)if(s.name.toLowerCase()===e.toLowerCase()){t=s;break}return t}function s(e,n,t){if(!e&&!n)return[];if(!t)return[];const r=!(e&&e.length),s=!(n&&n.length),o=[t.primaryScheme,...t.secondarySchemes],a=[];for(const c of o){const t=!!r||e.some((e=>c.tags.includes(e))),o=!s&&n.some((e=>c.tags.includes(e)));t&&!o&&a.push(c)}return a}function o(e){const n=e.theme;if(n)return n.getRawSchemes({basemap:e.basemap,geometryType:e.geometryType,basemapTheme:e.basemapTheme})}export{n as createThemes,r as filterSchemesByName,s as filterSchemesByTag,o as getRawSchemes,t as getThemesforBasemap};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.24/esri/copyright.txt for details.
4
4
  */
5
- import{createScreenPoint as e,pt2px as t,toPt as n}from"../../../core/screenUtils.js";import{defaultBasemapGroups as r,getBasemapId as i}from"../../support/utils.js";const o=r.light,c=r.dark,s=[...o,...c];function l(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b}function u(e,t){let n=0;if(e.length===t.length){let r=e.every(((e,n)=>l(e,t[n])));if(r)n=1;else{r=e.slice(0).reverse().every(((e,n)=>l(e,t[n]))),r&&(n=-1)}}return n}function f(t){const n=t.width,r=t.height;let i=t.pixelSizeAt(t.toMap(e(.5*n,.5*r),{exclude:[]}));if(i<=0&&(i=t.pixelSizeAt(t.toMap(e(.5*n,.95*r),{exclude:[]})),i<=0)){const e=t.camera.position.clone();e.z=0,i=2*t.pixelSizeAt(e)}return i}function p(e,r){return Math.ceil(f(r)*t(n(e)))}function a(e){return"multipoint"===e?"point":"mesh"===e?"polygon":e}function h(e){const t=i(e,s,!1);return t?o.indexOf(t)>-1?"light":c.indexOf(t)>-1?"dark":void 0:null}function d(e){if(!e)return[];const t=new Set,n=[e.primaryScheme];e.secondarySchemes&&n.push(...e.secondarySchemes);for(const r of n)r&&"tags"in r&&r.tags&&r.tags.forEach((e=>t.add(e)));return[...t]}export{h as getBasemapTheme,f as getPixelSize,a as getStorageType,d as getTagsFromSchemes,u as hasIdenticalColors,p as toWorldScale};
5
+ import{createScreenPoint as e,pt2px as t,toPt as n}from"../../../core/screenUtils.js";import{defaultBasemapGroups as r,getBasemapId as i}from"../../support/utils.js";const o=r.light,c=r.dark,s=[...o,...c];function l(e,t){return e.r===t.r&&e.g===t.g&&e.b===t.b}function u(e,t){let n=0;if(e.length===t.length){let r=e.every(((e,n)=>l(e,t[n])));if(r)n=1;else{r=e.slice(0).reverse().every(((e,n)=>l(e,t[n]))),r&&(n=-1)}}return n}function f(t){const n=t.width,r=t.height;let i=t.pixelSizeAt(t.toMap(e(.5*n,.5*r),{exclude:[]}));if(i<=0&&(i=t.pixelSizeAt(t.toMap(e(.5*n,.95*r),{exclude:[]})),i<=0)){const e=t.camera.position.clone();e.z=0,i=2*t.pixelSizeAt(e)}return i}function p(e,r){return Math.ceil(f(r)*t(n(e)))}function a(e){return"multipoint"===e?"point":"mesh"===e?"polygon":e}function h(e){const t=i(e,s,!1);return t?o.includes(t)?"light":c.includes(t)?"dark":void 0:null}function d(e){if(!e)return[];const t=new Set,n=[e.primaryScheme];e.secondarySchemes&&n.push(...e.secondarySchemes);for(const r of n)r&&"tags"in r&&r.tags&&r.tags.forEach((e=>t.add(e)));return[...t]}export{h as getBasemapTheme,f as getPixelSize,a as getStorageType,d as getTagsFromSchemes,u as hasIdenticalColors,p as toWorldScale};