@arcgis/core 5.2.0-next.124 → 5.2.0-next.126

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 (417) hide show
  1. package/analysis/ElevationProfile/ElevationProfileDisplayUnits.d.ts +3 -2
  2. package/analysis/VolumeMeasurement/VolumeMeasurementDisplayUnits.d.ts +1 -0
  3. package/arcade/functions/string.js +1 -1
  4. package/arcgisGlobal.d.ts +2 -0
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/05afa8c2b5929ce0545a.js +1 -0
  7. package/assets/esri/core/workers/chunks/0a20f84b5f004a77a9f9.js +1 -0
  8. package/assets/esri/core/workers/chunks/{97cd4145c016cf379120.js → 0a2b7c691a577cb3d189.js} +1 -1
  9. package/assets/esri/core/workers/chunks/0ccd4200c5a2a5de6e16.js +1 -0
  10. package/assets/esri/core/workers/chunks/{064445e6f9512817ac87.js → 12b5a645c0987a0efe54.js} +2 -2
  11. package/assets/esri/core/workers/chunks/{bdf012e591a8476db467.js → 1406a884241809b62bff.js} +1 -1
  12. package/assets/esri/core/workers/chunks/168b45c5d8233f23793e.js +2 -0
  13. package/assets/esri/core/workers/chunks/17218d714cb07b607c2f.js +1 -0
  14. package/assets/esri/core/workers/chunks/1d040aa8951fff3141d9.js +1 -0
  15. package/assets/esri/core/workers/chunks/{ce08e3369641da0d7a27.js → 1dbb3e25e005a8220779.js} +2 -2
  16. package/assets/esri/core/workers/chunks/{c39ebd8d469f1e8bb61e.js → 25e212fe9a2ea37c9e81.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{216d8cb86548e92a8196.js → 2e3fd81653dc0d86456c.js} +1 -1
  18. package/assets/esri/core/workers/chunks/30604a29df320d7a4c6b.js +1 -0
  19. package/assets/esri/core/workers/chunks/3a40146568e6dd0b1828.js +1 -0
  20. package/assets/esri/core/workers/chunks/3ef367c9b7bf1588307d.js +1 -0
  21. package/assets/esri/core/workers/chunks/4327d2c39a660bd89da7.js +1 -0
  22. package/assets/esri/core/workers/chunks/4678a8170d8a3ccd1a7b.js +1 -0
  23. package/assets/esri/core/workers/chunks/{45d87af48a21644590c2.js → 4716693eca44e8f89f5c.js} +1 -1
  24. package/assets/esri/core/workers/chunks/474d9541d387b31ad275.js +1 -0
  25. package/assets/esri/core/workers/chunks/{20e4277a4a6c57957202.js → 4d18451e0ea6ca54101a.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{26bc509a031788bfa678.js → 4f464047c6f6c9486efd.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{58528ccb7f72ae76d52b.js → 540f60e31b19d85e9371.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{44857a76be2c0ac65bb9.js → 55a560fd872f7463b33d.js} +1 -1
  29. package/assets/esri/core/workers/chunks/56acda1eed3a013430e2.js +1 -0
  30. package/assets/esri/core/workers/chunks/56e97b98dcb8a3f2bcb7.js +1 -0
  31. package/assets/esri/core/workers/chunks/{eb7f45736c852725b0bb.js → 57ab87e70ef85b9405f9.js} +122 -122
  32. package/assets/esri/core/workers/chunks/{59cd139712d919e6a738.js → 5adf2792416b22cd602f.js} +1 -1
  33. package/assets/esri/core/workers/chunks/5fe5ef5ccf480634d159.js +1 -0
  34. package/assets/esri/core/workers/chunks/67678054342178b601cf.js +1 -0
  35. package/assets/esri/core/workers/chunks/67dcf9b873cb037b2647.js +1 -0
  36. package/assets/esri/core/workers/chunks/6c3535aa7250c08b9e5b.js +1 -0
  37. package/assets/esri/core/workers/chunks/6e8187a77846239ed112.js +2 -0
  38. package/assets/esri/core/workers/chunks/76548469fe1b9c3b2051.js +1 -0
  39. package/assets/esri/core/workers/chunks/{52744dfd430cd0c0edfb.js → 78abd6c42f39e6f6ffbb.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{5993db944b9e7825e0bc.js → 7926faab76a721a2e1c4.js} +1 -1
  41. package/assets/esri/core/workers/chunks/7d6da4e89aa951e6523f.js +1 -0
  42. package/assets/esri/core/workers/chunks/7dd94567833386dc74de.js +1 -0
  43. package/assets/esri/core/workers/chunks/{dc0816f064be576a2fa6.js → 7fcee3a1b900ddc9a5e3.js} +1 -1
  44. package/assets/esri/core/workers/chunks/806f96ad09e882be41af.js +1 -0
  45. package/assets/esri/core/workers/chunks/8190fcb1dd10ad20feed.js +1 -0
  46. package/assets/esri/core/workers/chunks/84db05e872dbf35c80a2.js +1 -0
  47. package/assets/esri/core/workers/chunks/85739ed6af0f0a3cb302.js +1 -0
  48. package/assets/esri/core/workers/chunks/{b22de8bf4a4a739bc36d.js → 97602019a1ccad22a03a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/9ca98fffd43e63d5ade3.js +1 -0
  50. package/assets/esri/core/workers/chunks/9d6a96e4c7ccedcb0c13.js +1 -0
  51. package/assets/esri/core/workers/chunks/9ec04faad97be55309b8.js +1 -0
  52. package/assets/esri/core/workers/chunks/a08385ebf1715414c1a6.js +1 -0
  53. package/assets/esri/core/workers/chunks/{e22a013ec38989caf9de.js → a790fc6b22acf651574b.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{2f52ad525744b8793d49.js → a8258636096416c837a2.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{770ca70d363184e39d60.js → ab8a1140bf31f46f8ebf.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{813dd84933b407c8fe86.js → b34305474a861aaf6ccb.js} +1 -1
  57. package/assets/esri/core/workers/chunks/{dc923e50958b68a50014.js → b96358d475dc98034aa4.js} +1 -1
  58. package/assets/esri/core/workers/chunks/ba435cc73956d9c64a11.js +1 -0
  59. package/assets/esri/core/workers/chunks/c5b733c3a5b2680042a2.js +1 -0
  60. package/assets/esri/core/workers/chunks/{f0709c48daca93e759c8.js → c692e583e87af58f6d91.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{39985c51465b79ff0910.js → c77496c350004ee66eb2.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{9e5b30b907102bc0c201.js → cb7cb7d57c4e7f76600f.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{58a17fb3c0dd07c63d57.js → cfaba0470619786e1ef8.js} +2 -2
  64. package/assets/esri/core/workers/chunks/d371d9279b30548efa02.js +1 -0
  65. package/assets/esri/core/workers/chunks/d5f0fed415b5b155d57c.js +1 -0
  66. package/assets/esri/core/workers/chunks/{d3d48401462ef3bf0ad9.js → d5f72670634e73c0b53a.js} +1 -1
  67. package/assets/esri/core/workers/chunks/d6e914f6ed45ea59034e.js +1 -0
  68. package/assets/esri/core/workers/chunks/{5afc12671a9a1bb6c56c.js → dc52e036547612949d32.js} +1 -1
  69. package/assets/esri/core/workers/chunks/e0894a308c84d5c158b0.js +1 -0
  70. package/assets/esri/core/workers/chunks/e1ae83ff3e0225708d4d.js +1 -0
  71. package/assets/esri/core/workers/chunks/e35eb93c0fb1f6de8db0.js +1 -0
  72. package/assets/esri/core/workers/chunks/{df79c00b5ddbef7148a0.js → eaa7cb3ffa8c11706a09.js} +1 -1
  73. package/assets/esri/core/workers/chunks/eebbc86a15ae3adb5f38.js +1 -0
  74. package/assets/esri/core/workers/chunks/{eb780f2dafa14f776166.js → f71ec8a260405ed07958.js} +1 -1
  75. package/assets/esri/core/workers/chunks/fdbda3d2afea25142b86.js +1 -0
  76. package/assets/esri/libs/pdfjs/pdf.worker.mjs +4 -63051
  77. package/assets/esri/themes/base/_FocusRegionOverlayItem.scss +18 -0
  78. package/assets/esri/themes/base/_View.scss +4 -0
  79. package/assets/esri/themes/base/_core.scss +1 -0
  80. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +13 -0
  81. package/assets/esri/themes/dark/main.css +1 -1
  82. package/assets/esri/themes/light/main.css +1 -1
  83. package/assets/esri/themes/light/view.css +1 -1
  84. package/assets/esri/widgets/Editor/t9n/messages.ar.json +1 -1
  85. package/assets/esri/widgets/Editor/t9n/messages.bg.json +1 -1
  86. package/assets/esri/widgets/Editor/t9n/messages.bs.json +1 -1
  87. package/assets/esri/widgets/Editor/t9n/messages.ca.json +1 -1
  88. package/assets/esri/widgets/Editor/t9n/messages.cs.json +1 -1
  89. package/assets/esri/widgets/Editor/t9n/messages.da.json +1 -1
  90. package/assets/esri/widgets/Editor/t9n/messages.de.json +1 -1
  91. package/assets/esri/widgets/Editor/t9n/messages.el.json +1 -1
  92. package/assets/esri/widgets/Editor/t9n/messages.en.json +1 -1
  93. package/assets/esri/widgets/Editor/t9n/messages.es.json +1 -1
  94. package/assets/esri/widgets/Editor/t9n/messages.et.json +1 -1
  95. package/assets/esri/widgets/Editor/t9n/messages.fi.json +1 -1
  96. package/assets/esri/widgets/Editor/t9n/messages.fr.json +1 -1
  97. package/assets/esri/widgets/Editor/t9n/messages.he.json +1 -1
  98. package/assets/esri/widgets/Editor/t9n/messages.hr.json +1 -1
  99. package/assets/esri/widgets/Editor/t9n/messages.hu.json +1 -1
  100. package/assets/esri/widgets/Editor/t9n/messages.id.json +1 -1
  101. package/assets/esri/widgets/Editor/t9n/messages.it.json +1 -1
  102. package/assets/esri/widgets/Editor/t9n/messages.ja.json +1 -1
  103. package/assets/esri/widgets/Editor/t9n/messages.ko.json +1 -1
  104. package/assets/esri/widgets/Editor/t9n/messages.lt.json +1 -1
  105. package/assets/esri/widgets/Editor/t9n/messages.lv.json +1 -1
  106. package/assets/esri/widgets/Editor/t9n/messages.nl.json +1 -1
  107. package/assets/esri/widgets/Editor/t9n/messages.no.json +1 -1
  108. package/assets/esri/widgets/Editor/t9n/messages.pl.json +1 -1
  109. package/assets/esri/widgets/Editor/t9n/messages.pt-BR.json +1 -1
  110. package/assets/esri/widgets/Editor/t9n/messages.pt-PT.json +1 -1
  111. package/assets/esri/widgets/Editor/t9n/messages.ro.json +1 -1
  112. package/assets/esri/widgets/Editor/t9n/messages.ru.json +1 -1
  113. package/assets/esri/widgets/Editor/t9n/messages.sk.json +1 -1
  114. package/assets/esri/widgets/Editor/t9n/messages.sl.json +1 -1
  115. package/assets/esri/widgets/Editor/t9n/messages.sr.json +1 -1
  116. package/assets/esri/widgets/Editor/t9n/messages.sv.json +1 -1
  117. package/assets/esri/widgets/Editor/t9n/messages.th.json +1 -1
  118. package/assets/esri/widgets/Editor/t9n/messages.tr.json +1 -1
  119. package/assets/esri/widgets/Editor/t9n/messages.uk.json +1 -1
  120. package/assets/esri/widgets/Editor/t9n/messages.vi.json +1 -1
  121. package/assets/esri/widgets/Editor/t9n/messages.zh-CN.json +1 -1
  122. package/assets/esri/widgets/Editor/t9n/messages.zh-HK.json +1 -1
  123. package/assets/esri/widgets/Editor/t9n/messages.zh-TW.json +1 -1
  124. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ar.json +1 -1
  125. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.bg.json +1 -1
  126. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.bs.json +1 -1
  127. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ca.json +1 -1
  128. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.cs.json +1 -1
  129. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.da.json +1 -1
  130. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.de.json +1 -1
  131. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.el.json +1 -1
  132. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.es.json +1 -1
  133. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.et.json +1 -1
  134. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.fi.json +1 -1
  135. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.fr.json +1 -1
  136. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.he.json +1 -1
  137. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.hr.json +1 -1
  138. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.hu.json +1 -1
  139. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.id.json +1 -1
  140. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.it.json +1 -1
  141. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ja.json +1 -1
  142. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ko.json +1 -1
  143. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.lt.json +1 -1
  144. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.lv.json +1 -1
  145. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.nl.json +1 -1
  146. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.no.json +1 -1
  147. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pl.json +1 -1
  148. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pt-BR.json +1 -1
  149. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.pt-PT.json +1 -1
  150. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ro.json +1 -1
  151. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.ru.json +1 -1
  152. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sk.json +1 -1
  153. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sl.json +1 -1
  154. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sr.json +1 -1
  155. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.sv.json +1 -1
  156. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.th.json +1 -1
  157. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.tr.json +1 -1
  158. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.uk.json +1 -1
  159. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.vi.json +1 -1
  160. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-CN.json +1 -1
  161. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-HK.json +1 -1
  162. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.zh-TW.json +1 -1
  163. package/chunks/GaussianSplatColorComposition.glsl.js +2 -0
  164. package/chunks/GaussianSplatEmissionComposition.glsl.js +11 -0
  165. package/chunks/GlobalIllumination.glsl.js +9 -9
  166. package/chunks/GlobalIlluminationBlur.glsl.js +8 -8
  167. package/chunks/HeatmapDensity.glsl.js +5 -5
  168. package/chunks/Pattern.glsl.js +30 -30
  169. package/chunks/RibbonLine.glsl.js +19 -19
  170. package/chunks/earcut.js +1 -1
  171. package/chunks/portal.js +1 -1
  172. package/config.js +1 -1
  173. package/core/accessorSupport/types.d.ts +5 -1
  174. package/graphic/MapImageGraphicOrigin.js +1 -1
  175. package/graphic/TileGraphicOrigin.js +1 -1
  176. package/interfaces.d.ts +8 -0
  177. package/kernel.js +1 -1
  178. package/layers/OrientedImageryLayer.js +1 -1
  179. package/layers/ParquetLayer.d.ts +3 -2
  180. package/layers/ParquetLayer.js +1 -1
  181. package/layers/SceneLayer.js +1 -1
  182. package/layers/geospatialPDF/GeospatialPDFFrame.js +1 -1
  183. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +2 -2
  184. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +1 -1
  185. package/layers/geospatialPDF/LGIDictMapFrame.js +1 -1
  186. package/layers/geospatialPDF/ViewportMeasureFrame.js +1 -1
  187. package/layers/geospatialPDF/geospatialPDFParserUtils.js +2 -0
  188. package/layers/geospatialPDF/projectionToWKTUtils.js +2 -0
  189. package/layers/geospatialPDF/renderExtentUtils.js +1 -1
  190. package/layers/geospatialPDF/sharedUtils.js +1 -1
  191. package/layers/mixins/ArcGISImageService.js +1 -1
  192. package/layers/mixins/TemporalLayer.js +1 -1
  193. package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
  194. package/layers/orientedImagery/transformations/utils.js +1 -1
  195. package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
  196. package/layers/raster/types.d.ts +6 -0
  197. package/layers/support/TimeInfo.js +1 -1
  198. package/layers/support/TimeSeriesCalculation.d.ts +32 -0
  199. package/layers/support/TimeSeriesCalculation.js +2 -0
  200. package/layers/support/TimeSeriesInfo.d.ts +19 -0
  201. package/layers/support/TimeSeriesInfo.js +1 -1
  202. package/layers/support/commonProperties.js +1 -1
  203. package/layers/support/layersMapping.js +1 -1
  204. package/layers/support/timeSeriesUtils.d.ts +25 -1
  205. package/layers/support/timeSeriesUtils.js +1 -1
  206. package/layers/types.d.ts +1 -0
  207. package/package.json +2 -2
  208. package/popup/FeatureContentCollection.d.ts +12 -2
  209. package/popup/FeatureContentCollection.js +1 -1
  210. package/popup/types.d.ts +14 -3
  211. package/portal/schemas/definitions.js +1 -1
  212. package/portal/schemas/sceneLayerItem.js +1 -1
  213. package/renderers/support/AuthoringInfo.d.ts +8 -1
  214. package/renderers/support/AuthoringInfo.js +1 -1
  215. package/renderers/support/AuthoringInfoVisualVariable.d.ts +8 -1
  216. package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
  217. package/rest/imageService/fetchRasterInfo.js +1 -1
  218. package/rest/knowledgeGraph/DataModel.js +1 -1
  219. package/smartMapping/renderers/color.d.ts +12 -0
  220. package/smartMapping/renderers/color.js +1 -1
  221. package/smartMapping/renderers/opacity.d.ts +6 -0
  222. package/smartMapping/renderers/opacity.js +1 -1
  223. package/smartMapping/renderers/size.d.ts +12 -0
  224. package/smartMapping/renderers/size.js +1 -1
  225. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  226. package/smartMapping/renderers/support/rendererUtils.js +1 -1
  227. package/smartMapping/renderers/support/timeSeriesUtils.js +1 -1
  228. package/smartMapping/renderers/type.d.ts +6 -0
  229. package/smartMapping/renderers/type.js +1 -1
  230. package/smartMapping/renderers/univariateColorSize.d.ts +6 -0
  231. package/smartMapping/renderers/univariateColorSize.js +1 -1
  232. package/support/revision.js +1 -1
  233. package/symbols/support/gfxUtils.js +1 -1
  234. package/symbols/support/previewSymbol3D.js +1 -1
  235. package/symbols/support/svgUtils.js +1 -1
  236. package/time/timeZoneUtils.js +1 -1
  237. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  238. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +8 -0
  239. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  240. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  241. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +8 -0
  242. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  243. package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +3 -2
  244. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  245. package/views/3d/analysis/Dimension/DimensionController.js +1 -1
  246. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  247. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +3 -2
  248. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  249. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  250. package/views/3d/analysis/LineOfSight/lineOfSightPlacementUtils.js +1 -1
  251. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  252. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  253. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  254. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +1 -0
  255. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  256. package/views/3d/input/handlers/DragRotate.js +1 -1
  257. package/views/3d/input/handlers/PinchAndPanNavigation.js +1 -1
  258. package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +1 -1
  259. package/views/3d/input/handlers/ground/GroundNavigation.js +1 -1
  260. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  261. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  262. package/views/3d/interactive/placementTools/GroundNavigationPlacementTool3D.js +2 -0
  263. package/views/3d/navigation/Navigation3D.d.ts +7 -0
  264. package/views/3d/navigation/Navigation3D.js +1 -1
  265. package/views/3d/navigation/modes/navigationModeUtils.d.ts +32 -0
  266. package/views/3d/navigation/modes/navigationModeUtils.js +2 -0
  267. package/views/3d/state/Constraints.js +1 -1
  268. package/views/3d/state/controllers/GroundNavigationController.js +1 -1
  269. package/views/3d/state/controllers/RotateController.js +1 -1
  270. package/views/3d/state/utils/groundNavigationUtils.js +1 -1
  271. package/views/3d/support/engineContent/line.js +1 -1
  272. package/views/3d/support/planarDistanceToGroundRatio.js +2 -0
  273. package/views/3d/terrain/OverlayManager.js +1 -1
  274. package/views/3d/terrain/OverlayRenderer.js +1 -1
  275. package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +13 -13
  276. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +2 -2
  277. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  278. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  279. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  280. package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
  281. package/views/3d/webgl-engine/lib/GaussianSplatRenderer.js +1 -1
  282. package/views/3d/webgl-engine/lib/GaussianSplatShadows.js +1 -1
  283. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  284. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  285. package/views/3d/webgl-engine/shaders/GaussianSplatColorComposition.glsl.js +2 -0
  286. package/views/3d/webgl-engine/shaders/GaussianSplatColorCompositionTechnique.js +2 -0
  287. package/views/3d/webgl-engine/shaders/GaussianSplatDepthPolicy.js +1 -1
  288. package/views/3d/webgl-engine/shaders/{GaussianSplatComposition.glsl.js → GaussianSplatEmissionComposition.glsl.js} +1 -1
  289. package/views/3d/webgl-engine/shaders/GaussianSplatEmissionCompositionTechnique.js +2 -0
  290. package/views/3d/webgl-engine/shaders/GaussianSplatTechnique.js +1 -1
  291. package/views/DOMContainer.d.ts +27 -0
  292. package/views/DOMContainer.js +1 -1
  293. package/views/PopupView.d.ts +1 -1
  294. package/views/View.d.ts +10 -1
  295. package/views/View.js +1 -1
  296. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  297. package/views/analysis/LengthDimensionResult.d.ts +4 -1
  298. package/views/draw/support/managers/TooltipManager.js +1 -1
  299. package/views/input/types.d.ts +46 -0
  300. package/views/interactive/options/SnappingOptions.d.ts +4 -2
  301. package/views/interactive/options/SnappingOptions.js +1 -1
  302. package/views/interactive/options/ViewOptions.d.ts +18 -0
  303. package/views/interactive/options/bindViewToolOptions.js +2 -0
  304. package/views/interactive/snapping/SnappingManagerPool.js +1 -1
  305. package/views/interactive/snapping/allLayerSnapping.js +1 -1
  306. package/views/overlay/FocusRegionOverlayItem.js +2 -0
  307. package/views/selection/SelectionOperation.d.ts +27 -1
  308. package/views/selection/types.d.ts +8 -20
  309. package/views/webgl/renderState.js +1 -1
  310. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +1 -0
  311. package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
  312. package/widgets/AreaMeasurement2D.js +1 -1
  313. package/widgets/BasemapLayerList/BasemapLayerListViewModel.d.ts +1 -0
  314. package/widgets/BasemapLayerList.d.ts +1 -0
  315. package/widgets/BatchAttributeForm/expressions/types.d.ts +1 -0
  316. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +2 -0
  317. package/widgets/BatchAttributeForm/types.d.ts +5 -1
  318. package/widgets/BatchAttributeForm.d.ts +1 -0
  319. package/widgets/Bookmarks/BookmarksViewModel.d.ts +1 -0
  320. package/widgets/Bookmarks.d.ts +1 -0
  321. package/widgets/CatalogLayerList/CatalogLayerListViewModel.d.ts +1 -0
  322. package/widgets/CatalogLayerList.d.ts +1 -0
  323. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +1 -0
  324. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
  325. package/widgets/DistanceMeasurement2D.js +1 -1
  326. package/widgets/Editor.d.ts +1 -0
  327. package/widgets/Editor.js +1 -1
  328. package/widgets/FeatureForm.d.ts +1 -0
  329. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +37 -1
  330. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  331. package/widgets/FeatureTable/support/FeatureStore.d.ts +26 -2
  332. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  333. package/widgets/FeatureTable.d.ts +12 -1
  334. package/widgets/FeatureTable.js +1 -1
  335. package/widgets/FeatureTemplates.d.ts +1 -0
  336. package/widgets/Features/FeaturesViewModel.d.ts +1 -0
  337. package/widgets/Features.d.ts +2 -1
  338. package/widgets/HistogramRangeSlider.d.ts +1 -0
  339. package/widgets/Home/HomeViewModel.d.ts +1 -0
  340. package/widgets/Home.d.ts +1 -0
  341. package/widgets/LayerList/LayerListViewModel.d.ts +1 -0
  342. package/widgets/LayerList.d.ts +1 -0
  343. package/widgets/Locate/LocateViewModel.d.ts +1 -0
  344. package/widgets/Locate.d.ts +1 -0
  345. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  346. package/widgets/OrientedImageryViewer/components/Alert.js +1 -1
  347. package/widgets/OrientedImageryViewer/navigation/NavigationManagerPanoramic.js +1 -1
  348. package/widgets/OrientedImageryViewer/types.d.ts +4 -1
  349. package/widgets/OrientedImageryViewer.d.ts +4 -1
  350. package/widgets/OrientedImageryViewer.js +1 -1
  351. package/widgets/Popup/types.d.ts +7 -0
  352. package/widgets/Popup.d.ts +1 -0
  353. package/widgets/Print/PrintViewModel.d.ts +1 -0
  354. package/widgets/Print.d.ts +1 -0
  355. package/widgets/Search.d.ts +1 -0
  356. package/widgets/Sketch.d.ts +1 -0
  357. package/widgets/Slider.d.ts +4 -0
  358. package/widgets/TimeSlider.d.ts +1 -0
  359. package/widgets/Track/TrackViewModel.d.ts +1 -0
  360. package/widgets/Track.d.ts +1 -0
  361. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.d.ts +1 -0
  362. package/widgets/UtilityNetworkTrace.d.ts +1 -0
  363. package/widgets/ValuePicker/types.d.ts +1 -0
  364. package/widgets/ValuePicker.d.ts +1 -0
  365. package/widgets/smartMapping/SmartMappingSliderBase.d.ts +1 -0
  366. package/widgets/support/SelectionList/types.d.ts +2 -0
  367. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +2 -1
  368. package/assets/esri/core/workers/chunks/0148cb611bf7c8c5fe8a.js +0 -1
  369. package/assets/esri/core/workers/chunks/033debcbf6b3683dc4fe.js +0 -2
  370. package/assets/esri/core/workers/chunks/0acc754907395e83bbc6.js +0 -1
  371. package/assets/esri/core/workers/chunks/1c38ce72160d5a4e4b3d.js +0 -1
  372. package/assets/esri/core/workers/chunks/1e46703cb566c25458ad.js +0 -1
  373. package/assets/esri/core/workers/chunks/23279303cd7698314c56.js +0 -1
  374. package/assets/esri/core/workers/chunks/25c90092def215949db9.js +0 -1
  375. package/assets/esri/core/workers/chunks/29ae19206bbeb480be0f.js +0 -1
  376. package/assets/esri/core/workers/chunks/2f829321bfbd3bacd64f.js +0 -1
  377. package/assets/esri/core/workers/chunks/38890ac5917942374ab8.js +0 -1
  378. package/assets/esri/core/workers/chunks/463d69f596d1d34ef275.js +0 -2
  379. package/assets/esri/core/workers/chunks/475906b079f4f1ddacf2.js +0 -1
  380. package/assets/esri/core/workers/chunks/49affbed22e201f7c32b.js +0 -1
  381. package/assets/esri/core/workers/chunks/4c4ba466e23159991322.js +0 -1
  382. package/assets/esri/core/workers/chunks/4f58e0322707f63f5bf2.js +0 -1
  383. package/assets/esri/core/workers/chunks/606ac9358f508bda94f2.js +0 -1
  384. package/assets/esri/core/workers/chunks/724ea2e2843e6dac0a90.js +0 -1
  385. package/assets/esri/core/workers/chunks/7285a37cd5359aa4bac5.js +0 -1
  386. package/assets/esri/core/workers/chunks/753d1ff177ecee8e2377.js +0 -1
  387. package/assets/esri/core/workers/chunks/781fa83e8063b8f685dc.js +0 -1
  388. package/assets/esri/core/workers/chunks/78c1b75b1a8937eaa3cd.js +0 -1
  389. package/assets/esri/core/workers/chunks/7ff536284942c5284a16.js +0 -1
  390. package/assets/esri/core/workers/chunks/83c7c4218bc6ba2f16ee.js +0 -1
  391. package/assets/esri/core/workers/chunks/8984d02c0ce828fd223a.js +0 -1
  392. package/assets/esri/core/workers/chunks/8e102a2e134ce6ce0724.js +0 -1
  393. package/assets/esri/core/workers/chunks/92c852700ad1006f1e76.js +0 -1
  394. package/assets/esri/core/workers/chunks/9af36ee6a0df224859bc.js +0 -1
  395. package/assets/esri/core/workers/chunks/a3ab53b534e2872131be.js +0 -1
  396. package/assets/esri/core/workers/chunks/ac7af417ebf7721d7400.js +0 -1
  397. package/assets/esri/core/workers/chunks/aed479c14d93955f4798.js +0 -1
  398. package/assets/esri/core/workers/chunks/bb5ed2a796a45c41b0b4.js +0 -1
  399. package/assets/esri/core/workers/chunks/be52c319a0a81ce1ba36.js +0 -1
  400. package/assets/esri/core/workers/chunks/c0ec87800faf99cbd8bd.js +0 -1
  401. package/assets/esri/core/workers/chunks/c3008b20cb5fd38bd900.js +0 -1
  402. package/assets/esri/core/workers/chunks/ca5a4f62b09cc8579dc0.js +0 -1
  403. package/assets/esri/core/workers/chunks/d090baaa974e1e83fa44.js +0 -1
  404. package/assets/esri/core/workers/chunks/d25210574168ead2f813.js +0 -1
  405. package/assets/esri/core/workers/chunks/e4e1db4e9e5f13167401.js +0 -1
  406. package/assets/esri/core/workers/chunks/e9f8325a4cf89ae816cc.js +0 -1
  407. package/assets/esri/core/workers/chunks/ed7d4e8725aaa0ca4589.js +0 -1
  408. package/chunks/GaussianSplatComposition.glsl.js +0 -22
  409. package/layers/geospatialPDF/GeospatialPDFParserUtils.js +0 -2
  410. package/layers/geospatialPDF/Projection.js +0 -2
  411. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechnique.js +0 -2
  412. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +0 -2
  413. /package/assets/esri/core/workers/chunks/{064445e6f9512817ac87.js.LICENSE.txt → 12b5a645c0987a0efe54.js.LICENSE.txt} +0 -0
  414. /package/assets/esri/core/workers/chunks/{033debcbf6b3683dc4fe.js.LICENSE.txt → 168b45c5d8233f23793e.js.LICENSE.txt} +0 -0
  415. /package/assets/esri/core/workers/chunks/{463d69f596d1d34ef275.js.LICENSE.txt → 1dbb3e25e005a8220779.js.LICENSE.txt} +0 -0
  416. /package/assets/esri/core/workers/chunks/{ce08e3369641da0d7a27.js.LICENSE.txt → 6e8187a77846239ed112.js.LICENSE.txt} +0 -0
  417. /package/assets/esri/core/workers/chunks/{58a17fb3c0dd07c63d57.js.LICENSE.txt → cfaba0470619786e1ef8.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{toPt as a}from"../../core/screenUtils.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import s from"../../renderers/ClassBreaksRenderer.js";import l from"../../renderers/support/AuthoringInfo.js";import t from"../../renderers/support/AuthoringInfoSizeStop.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{castSizeFromStringOrNumber as p}from"../../renderers/visualVariables/support/castSizeVariable.js";import d from"../../renderers/visualVariables/support/SizeStop.js";import c from"../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import f from"../heuristics/ageUnit.js";import y from"../heuristics/outline.js";import z from"../heuristics/referenceSize.js";import v from"../heuristics/sizeRange.js";import{getTypeSchemeData as w}from"./type.js";import{createPrimitiveOverrides as h,updateReferenceSizeSymbol as b,createReferenceSizeSymbol as g}from"./support/referenceSizeUtils.js";import{spliceVisualVariables as S,updateAuthoringInfoVisualVariable as x,getAuthoringInfoVisualVariable as E,isSizeVV as T,processRegenerateParams as V,getRendererToUpdate as k,getStyleType as O,hasOutlineVV as I,hasScaleDependentSizeVV as B,findSizeVVIndex as F,findOutlineVVIndex as R}from"./support/regenerateUtils.js";import{createPrimitiveOverrides as j,updateSpikeSymbol as q,createSpikeSymbol as D,defaultSpikeSymbolStyle as G}from"./support/spikeUtils.js";import{getTimeSeriesSummaryStatistics as N,resolveDataSeriesInfo as U}from"./support/timeSeriesUtils.js";import{errorCallback as P,getTitleAndExpressionForAgeRenderer as M,updateAgeRendererAuthoringInfoVV as C,getClassBreaks as W,getSummaryStatistics as $,createSymbol as A,getSymbolOutlineFromScheme as H,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as J,getSizeRangeForAxis as K,getDataRange as Q,getBasemapInfo as X}from"./support/utils.js";import{verifyDates as Y,supportedAgeUnits as Z}from"../statistics/support/ageUtils.js";import{verifyBinningParams as _}from"../support/binningUtils.js";import{getNormalizationType as ee,getFieldsList as ie,isAnyDateField as ae}from"../support/utils.js";import{createLayerAdapter as re,featureCapableLayerTypes as ne,getLayerTypeLabels as se,binningCapableLayerTypes as le}from"../support/adapters/support/layerUtils.js";import{cloneScheme as te,getSchemes as oe}from"../symbology/size.js";import{getColorFromSymbol as ue}from"../../symbols/support/utils.js";const me=2**53-1,pe=[5,112.5];async function de(e,a){const r=U({...e});if(!(r&&r.layer&&(r.field||r.valueExpression||r.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(r.valueExpression&&!r.sqlExpression&&!r.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");if("reference-size"===r.theme&&!r.view&&!r.field)throw new i("size-visual-variable:missing-parameters","'view' and 'field' are required when 'theme' is 'reference-size'");if("reference-size"===r.theme&&r.valueExpression)throw new i("size-visual-variable:missing-parameters","'valueExpression' is not supported when 'theme' is 'reference-size'");r.forBinning&&_(r,"size-visual-variable");const n={...r},s=r.forBinning?le:ne,l=re(n.layer,s,r.forBinning);if(!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+se(s).join(", "));"height"===n.axis&&(n.sizeOptimizationEnabled=!1);const t=null!=n.signal?{signal:n.signal}:null;await l.load(t);const o=l.geometryType;if("mesh"===o)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(n.worldScale){if("polyline"===o||"polygon"===o)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if("3d"!==n.view?.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}if("reference-size"===n.theme&&!r.forBinning&&"polygon"!==o)throw new i("size-visual-variable:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===n.theme&&!r.forBinning&&"polygon"!==o&&"point"!==o)throw new i("size-visual-variable:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:n.field,normalizationField:n.normalizationField,valueExpression:n.valueExpression}),m=J(l,u,"size-visual-variable:invalid-parameters");if(m)throw m;"spike"!==n.theme||n.spikeOptions?.symbolStyle||(n.spikeOptions??={},n.spikeOptions.symbolStyle=G);const p={...n,layer:l,referenceSizeResult:a};return await fe(p),p}async function ce(e){const a=U({...e});if(!(a&&a.layer&&(a.field||a.valueExpression||a.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-continuous-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0;const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="reference-size"!==r.theme&&"spike"!==r.theme&&"polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.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");if("reference-size"===r.theme&&!a.forBinning&&"polygon"!==t)throw new i("size-continuous-renderer:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===r.theme&&!a.forBinning&&"polygon"!==t&&"point"!==t)throw new i("size-continuous-renderer:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),m=J(s,u,"size-continuous-renderer:invalid-parameters");if(m)throw m;"spike"!==r.theme||r.spikeOptions?.symbolStyle||(r.spikeOptions??={},r.spikeOptions.symbolStyle=G);const p={...r,layer:s};return await fe(p),p}async function fe(e){const i=e.layer,a=i.geometryType,r=i.layer,n=e.forBinning&&"featureReduction"in r&&"binning"===r.featureReduction?.type;if(("polygon"===a||n)&&e.view&&e.field&&!e.valueExpression&&(!e.theme||"reference-size"===e.theme)){try{e.referenceSizeResult=e.referenceSizeResult??await z({layer:r,view:e.view,filter:e.filter,forBinning:e.forBinning,signal:e.signal})}catch{}!e.theme&&e.referenceSizeResult?.isGrid&&(e.theme="reference-size"),e.referenceSizeOptions?.symbolStyle||(e.referenceSizeOptions?e.referenceSizeOptions.symbolStyle="circle":e.referenceSizeOptions={symbolStyle:"circle"})}}async function ye(e){if(!e||!(e.layer&&e.view&&e.sizeStops))throw new i("update-renderer-with-reference-size:missing-parameters","'layer', 'view and 'sizeStops' parameters are required");const{view:a,forBinning:r}=e,n=e.forBinning?le:ne,s=re(e.layer,n,e.forBinning);if(!s)throw new i("update-renderer-with-reference-size:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=s.layer;let t=e.renderer;if(!t)if(e.forBinning){if(!("featureReduction"in l&&l.featureReduction&&"renderer"in l.featureReduction&&l.featureReduction.renderer)||"class-breaks"!==l.featureReduction.renderer.type&&"unique-value"!==l.featureReduction.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Feature reduction renderer is not supported");t=l.featureReduction.renderer}else{if(!("renderer"in l)||!l.renderer||"class-breaks"!==l.renderer.type&&"unique-value"!==l.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Renderer is not supported");t=l.renderer}const o=t.authoringInfo;if(!o||!o?.visualVariables?.some(e=>"reference-size"===e.theme))throw new i("update-renderer-with-reference-size:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'reference-size'");const u=e.isGrid??(await z({view:a,layer:l,forBinning:r}))?.isGrid;return{...e,isGrid:u,renderer:t,layer:s}}async function ze(e){if(!e||!e.layer||!e.sizeStops)throw new i("update-renderer-with-spike:missing-parameters","'layer' and 'sizeStops' parameters are required");const a=e.forBinning?le:ne,r=re(e.layer,a,e.forBinning);if(!r)throw new i("update-renderer-with-spike:invalid-parameters","'layer' must be one of these types: "+se(a).join(", "));await r.load();const n=r.layer;let s=e.renderer;if(!s)if(e.forBinning){if(!("featureReduction"in n&&n.featureReduction&&"renderer"in n.featureReduction&&n.featureReduction.renderer)||"class-breaks"!==n.featureReduction.renderer.type&&"unique-value"!==n.featureReduction.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Feature reduction renderer is not supported");s=n.featureReduction.renderer}else{if(!("renderer"in n)||!n.renderer||"class-breaks"!==n.renderer.type&&"unique-value"!==n.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Renderer is not supported");s=n.renderer}const l=s.authoringInfo,t=l?.visualVariables.find(e=>"spike"===e.theme);if(!t)throw new i("update-renderer-with-spike:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'spike'");const o=e.spikeOptions??{};return o.symbolStyle??=t?.spikeSymbolStyle?void 0:G,{...e,renderer:s,layer:r,spikeOptions:o}}async function ve(e){const a=U({...e});if(!a||!a.layer||!a.field&&!a.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(a.valueExpression&&!a.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-class-breaks-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.classificationMethod??="equal-interval",r.normalizationType=ee(r);const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));if(!(null!=r.minValue&&null!=r.maxValue)&&(null!=r.minValue||null!=r.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.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 u=await ie({field:r.field,normalizationField:r.normalizationField}),m=J(s,u,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return{...r,layer:s}}function we(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 he(e){const i={...e},a=!!i.symbolType?.includes("3d-volumetric"),r=i;return r.worldScale=a,a&&(r.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,r}async function be(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 a={...e};a.symbolType??="2d",a.defaultSymbolEnabled??=!0;const r=re(a.layer,ne);if(!r)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+se(ne).join(", "));const n=null!=a.signal?{signal:a.signal}:null;await r.load(n);const s=r.geometryType,l=a.symbolType.includes("3d");if(a.outlineOptimizationEnabled="polygon"===s&&a.outlineOptimizationEnabled,"mesh"===s)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(l&&("polyline"===s||"polygon"===s))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(a.symbolType.includes("3d-volumetric")&&(!a.view||"3d"!==a.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=Y(r,a.startTime,a.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(a.unit&&!Z.includes(a.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${Z.join(", ")}`);return{...a,layer:r}}async function ge(e){const a="regenerate-size-visual-variables";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size","color-size","relationship-size","type-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const s=E(r,"size");if(!s)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable authoringInfo");const l=s.theme,t="reference-size"===l,o="spike"===l,u=r.visualVariables?.find(T);if(!u&&!t&&!o)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable");let m=s.field,p=s.normalizationField,d=null,c=null;m||(u?.field?(m=u.field,p=u.normalizationField):r.field?(m=r.field,p=r.normalizationField):(d=u?.valueExpression??r.valueExpression,c=u?.valueExpressionTitle??r.valueExpressionTitle));const{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=s.dataSeriesName,b=B(r),g=await de({layer:f,field:m,valueExpression:d,valueExpressionTitle:c,normalizationField:p,theme:l,sizeOptimizationEnabled:b,forBinning:y,dataSeriesName:h,filter:z,view:v,signal:w},e.referenceSizeResult);return"reference-size"!==l||null==s.referenceSizeScale||!g.referenceSizeResult||g.referenceSizeResult.isGrid||g.sizeOptimizationEnabled||(g.sizeOptimizationEnabled=!0),{...e,creatorParameters:g,renderer:r}}async function Se(e){const a="regenerate-size-continuous-renderer";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:s,field:l,normalizationField:t,valueExpression:o,valueExpressionTitle:u}=r,m=s?.visualVariables.find(e=>"size"===e.type),p=m.theme,{layer:d,forBinning:c,filter:f,view:y,signal:z}=e,v=m.dataSeriesName,w=I(r),h=B(r),b=await ce({layer:d,field:l,valueExpression:o,valueExpressionTitle:u,normalizationField:t,theme:p,outlineOptimizationEnabled:w,sizeOptimizationEnabled:h,forBinning:c,dataSeriesName:v,filter:f,view:y,signal:z});return"reference-size"!==p||null==m.referenceSizeScale||!b.referenceSizeResult||b.referenceSizeResult.isGrid||b.sizeOptimizationEnabled||(b.sizeOptimizationEnabled=!0),{...e,creatorParameters:b,renderer:r}}async function xe(e){const a="regenerate-size-class-breaks-renderer";await V(e,a);const r=await k(e);if("size-class-breaks"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n,field:s,normalizationField:l,normalizationType:t,normalizationTotal:o,valueExpression:u,valueExpressionTitle:m}=r,{classificationMethod:p,standardDeviationInterval:d}=n,c=r.classBreakInfos.length,{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=n?.dataSeriesName,b=I(r),g=await ve({layer:f,field:s,valueExpression:u,valueExpressionTitle:m,normalizationType:t,normalizationField:l,normalizationTotal:o,classificationMethod:p,standardDeviationInterval:d,numClasses:c,outlineOptimizationEnabled:b,forBinning:y,dataSeriesName:h,filter:z,view:v,signal:w});return{...e,creatorParameters:g,renderer:r}}async function Ee(e){const a="regenerate-size-age-renderer";await V(e,a);const r=await k(e);if("size-age"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n}=r,s=n?.visualVariables.find(e=>"size"===e.type),l=s.startTime,t=s.endTime,o=s.units,u=s.theme,{layer:m,filter:p,view:d,signal:c}=e,f=I(r),y=B(r),z=await be({layer:m,startTime:l,endTime:t,unit:o,theme:u,outlineOptimizationEnabled:f,sizeOptimizationEnabled:y,filter:p,view:d,signal:c});return{...e,creatorParameters:z,renderer:r}}async function Te(e){let i=e.sizeScheme,a=null,r=null;const n=await X(e.basemap,e.view);if(a=null!=n.basemapId?n.basemapId:null,r=null!=n.basemapTheme?n.basemapTheme:null,i)return{scheme:te(i),basemapId:a,basemapTheme:r};const s=oe({basemapTheme:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return s&&(i=s.primaryScheme,a=s.basemapId,r=s.basemapTheme),{scheme:i,basemapId:a,basemapTheme:r}}function Ve(e,i){switch(i){case"point":case"multipoint":{const i=e;return[p(i.minSize),p(i.maxSize)]}case"polyline":{const i=e;return[p(i.minWidth),p(i.maxWidth)]}case"polygon":{const i=e;return[p(i.marker.minSize),p(i.marker.maxSize)]}}}function ke(e,i){"clamped-linear"===e.transformationType&&"below"===i&&e.flipSizes()}async function Oe(e,i,a,r,n,s){const l=Ie(e,i,a,r);return l||Ve(n,s)}function Ie(e,i,a,r){return"spike"===r?[a?.minHeight??pe[0],a?.maxHeight??pe[1]]:"reference-size"===r&&i?[1,i.size]:e?[e.minSize,e.maxSize]:null}function Be(e,i){if("reference-size"===i.theme&&null!=e.min&&null!=e.max&&null!=e.avg&&null!=e.stddev){const i=100,a=0,r=0,n=1,s=e.avg,l=e.min,t=e.max,o=e.stddev,u=0!==s?o/s:0,m=l>r&&l<n&&t<2*n&&u<.5,p=l>a&&l<i&&t<2*i&&u<.5;return{minDataValue:m?r:p?a:l,maxDataValue:m?n:p?i:s+2*o,defaultValuesUsed:!1}}const{theme:a,field:r}=i,n=i.layer,s=r&&!("function"==typeof r)?n.getField(r):null,l=ae(s);return Q(e,a,l,"above"===a||"below"===a)}function Fe(e,a){if(("spike"===a||"reference-size"===a)&&null!=e.minDataValue&&null!=e.maxDataValue&&null!=e.minSize&&null!=e.maxSize&&"number"==typeof e.minSize&&"number"==typeof e.maxSize)return[new d({value:e.minDataValue,size:e.minSize}),new d({value:e.maxDataValue,size:e.maxSize})];throw new i("get-size-stops-for-theme","Invalid size variable or theme")}async function Re(e,a,n,s){const{theme:u,field:p,normalizationField:d,minValue:f,maxValue:y,axis:z}=e,v=e.layer.geometryType,w=await Te({basemap:e.basemap,geometryType:v,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),h=w.scheme;if(!h)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const b=await Oe(n,s,e.spikeOptions,u,h,v),{minDataValue:g,maxDataValue:S,defaultValuesUsed:x}=Be(a,e),E=[],T="height"===z,V=T?z:void 0,k=b[0];let O=b[1];if(T&&"number"==typeof k&&"number"==typeof O){const e=K({minSize:k,maxSize:O},V);E.push(new m({axis:"width-and-depth",minSize:e.minSize})),O=e.maxSize}const I=new m({field:p??void 0,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:d,axis:V,minSize:k,maxSize:O,minDataValue:g,maxDataValue:S,legendOptions:r(c,e.legendOptions)});ke(I,u),E.unshift(I);const B=new o("reference-size"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,referenceSizeScale:s?.isGrid||e.sizeOptimizationEnabled?e?.view?.scale:void 0,referenceSizeSymbolStyle:e.referenceSizeOptions?.symbolStyle,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:"spike"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,spikeSymbolStyle:e.spikeOptions?.symbolStyle,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:{type:"size",theme:u,dataSeriesName:e.dataSeriesName,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}),F=new l({visualVariables:[B]});return{basemapId:w.basemapId,basemapTheme:w.basemapTheme,visualVariables:E,statistics:a,isGrid:s?.isGrid,defaultValuesUsed:x,sizeScheme:te(h),authoringInfo:F}}async function je(e,i,a,r,l){const t=await n("esri/smartMapping/t9n/smartMapping"),o=l.layer,u=l.field,m=o.geometryType,p=l.defaultSymbolEnabled,d=te(e.sizeScheme),c="polygon"===m,f=c?d.marker:d,y=c?d.background:null,z=c?"point":m,v=i?.opacity,w=e.isGrid,b=l.theme,S="reference-size"===b,x="spike"===b,E=S||x?[]:e.visualVariables.map(e=>e.clone());i?.visualVariables?.length&&E.push(...i.visualVariables.map(e=>e.clone()));const T=S?g({type:l.referenceSizeOptions?.symbolStyle||"circle",color:f.color,primitiveOverrides:h({view:l.view,field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b),sizeByScaleEnabled:w||!!l.sizeOptimizationEnabled})}):x?D({color:f.color,strokeColor:f.outline.color,baseWidth:l.spikeOptions?.baseWidth,strokeWidth:l.spikeOptions?.strokeWidth,defaultHeight:l.spikeOptions?.defaultHeight,primitiveOverrides:j({field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b)}),symbolStyle:l.spikeOptions?.symbolStyle}):A(z,{type:l.symbolType,color:f.color,size:L(f,z),outline:H(f,z,v)});return{renderer:new s({backgroundFillSymbol:!w&&y?A(m,{type:l.symbolType,color:y.color,outline:H(y,m,v)}):null,classBreakInfos:[{minValue:-me,maxValue:me,symbol:T}],defaultLabel:p?t.other:null,defaultSymbol:!p||S||x?null:A(z,{type:l.symbolType,color:f.noDataColor,size:L(f,z,!0),outline:H(f,z,v)}),field:u,normalizationField:r,normalizationType:a,valueExpression:l.valueExpression,valueExpressionTitle:l.valueExpressionTitle,visualVariables:E,authoringInfo:e.authoringInfo?.clone()}),visualVariables:e.visualVariables.map(e=>e.clone()),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,isGrid:w,sizeScheme:te(e.sizeScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}function qe(e,i){const r=a(e.minSize),n=(a(e.maxSize)-r)/(i>=4?i-1:i),s=[];for(let a=0;a<i;a++)s.push(r+n*a);return s}async function De(e,i){const a=await n("esri/smartMapping/t9n/smartMapping"),r=e.layer,t=e.defaultSymbolEnabled,o=r.geometryType,m="polygon"===o,p=e.symbolType?.includes("3d-volumetric"),d=await Te({basemap:e.basemap,geometryType:o,sizeScheme:e.sizeScheme,worldScale:p,view:e.view}),c=d.scheme,{result:f,outlineResult:y}=i,z=f?.classBreakInfos??[],v=e.classificationMethod,w=e.normalizationType,h=m?c.marker:c,b=m?c.background:null,g=m?"point":o,S=Ve(h,g),x=p?K({minSize:S[0],maxSize:S[1]},"height"):null,E=qe({minSize:S[0],maxSize:x?x.maxSize:S[1]},z.length),T=y?.opacity,V=new s({backgroundFillSymbol:b&&A(o,{type:e.symbolType,color:b.color,outline:H(b,o,T)}),classBreakInfos:z.map((i,a)=>({minValue:i.minValue,maxValue:i.maxValue,symbol:A(g,{type:e.symbolType,color:h.color,size:E[a],widthAndDepth:x?.minSize,outline:H(h,g,T)}),label:i.label})),defaultLabel:t?a.other:null,defaultSymbol:t?A(g,{type:e.symbolType,color:h.noDataColor,size:L(h,g,!0),widthAndDepth:x?.minSize,outline:H(h,g,T)}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:w,normalizationField:e.normalizationField,normalizationTotal:"percent-of-total"===w?f?.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new l({type:"class-breaks-size",classificationMethod:v,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName})});return"standard-deviation"!==v&&u({classBreakInfos:V.classBreakInfos,classificationMethod:v,normalizationType:w,round:!0}),y?.visualVariables?.length&&(V.visualVariables=y.visualVariables.map(e=>e.clone())),{renderer:V,sizeScheme:te(c),classBreaksResult:f,defaultValuesUsed:!!i.defaultValuesUsed,basemapId:d.basemapId,basemapTheme:d.basemapTheme}}async function Ge(e){const i=await de(e),{view:a,field:r,valueExpression:n,minValue:s,maxValue:l,layer:t,normalizationField:o,signal:u,statistics:m,filter:p,dataSeriesName:d}=i,c=o?"field":void 0,[f,y]=await Promise.all([m??(d?N({layer:t,view:a,signal:u,dataSeriesName:d,filter:p}):$({layer:t,field:r,valueExpression:n,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:c,normalizationField:o,filter:p,minValue:s,maxValue:l,view:a,signal:u})),i.sizeOptimizationEnabled?v({view:a,layer:t,signal:u,filter:p}).catch(P):null]);return Re(i,f,y,i.referenceSizeResult)}async function Ne(e){const{view:i,filter:a,renderer:r,signal:n,creatorParameters:s}=await ge(e),{field:l,normalizationField:o,valueExpression:u,valueExpressionTitle:p,theme:d,layer:c,sizeOptimizationEnabled:f,spikeOptions:y,referenceSizeResult:z,dataSeriesName:w}=s,h=o?"field":void 0,b=r.authoringInfo?.clone(),[g,S]=await Promise.all([(w?N({layer:c,view:i,signal:n,dataSeriesName:w,filter:a}):Promise.resolve(null)).then(e=>e??$({layer:c,field:l,valueExpression:u,normalizationField:o,normalizationType:h,filter:a,view:i,signal:n})),f&&!z?v({view:i,layer:c,signal:n,filter:a}).catch(P):null]),x=Ie(S,z,y,d),{minDataValue:E,maxDataValue:V}=Be(g,{theme:d,layer:c,field:l}),k=r.visualVariables?.find(T),O=(k?.stops?null:k)??new m({field:l??void 0,valueExpression:u,valueExpressionTitle:p,valueUnit:"unknown",normalizationField:o});x&&(O.minSize=x[0],O.maxSize=x[1]),O.minDataValue=E,O.maxDataValue=V,w&&(O.valueExpression=u??null,O.valueExpressionTitle=p??null),ke(O,d);const I=b.visualVariables.find(e=>"size"===e.type);I.dataSeriesName=w??I.dataSeriesName,I.minSliderValue=g.min,I.maxSliderValue=g.max;const B="reference-size"===d;return(B||"spike"===d)&&(I.sizeStops=Fe(O,d).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),B&&(I.referenceSizeScale=z?.isGrid||f?i?.scale:void 0)),{visualVariables:"reference-size"===d||"spike"===d?[]:[O],isGrid:!!z?.isGrid,authoringInfo:b,statistics:g}}async function Ue(e){const i=await ce(e),a={layer:i.layer,view:i.view,filter:i.filter,signal:i.signal},[r,n]=await Promise.all([Ge(he(i)),i.outlineOptimizationEnabled?y(a).catch(P):null]),s=i.normalizationField;return je(r,n,s?"field":void 0,s,i)}async function Pe(e){const{renderer:i,view:a,signal:r,filter:n,creatorParameters:s,forBinning:l}=await Se(e),{layer:t,sizeOptimizationEnabled:o,outlineOptimizationEnabled:u,theme:m,referenceSizeResult:p,valueExpression:d,valueExpressionTitle:c}=s,[f,z]=await Promise.all([Ne({...e,referenceSizeResult:p}),u?y({layer:t,view:a,filter:n,signal:r}).catch(P):null]),v="reference-size"===m,w="spike"===m;S(i,f.visualVariables,F),S(i,z?.visualVariables,R),i.valueExpression=d??null,i.valueExpressionTitle=c??null,x(i,f.authoringInfo,"size");const h=f.statistics;if(!v&&!w)return{renderer:i,statistics:h};if(w){return{renderer:await Ce({layer:t,renderer:i,forBinning:l,sizeStops:E(i,"size","spike")?.sizeStops}),statistics:h}}const b=f.isGrid;return{renderer:await Me({layer:t,renderer:i,view:a,forBinning:l,sizeOptimizationEnabled:o,sizeStops:E(i,"size","reference-size")?.sizeStops,isGrid:b}),isGrid:b,statistics:h}}async function Me(a){const{layer:r,referenceSizeOptions:n,renderer:s,sizeScheme:o,sizeStops:u,typeScheme:m,view:p,isGrid:d}=await ye(a),c=s.clone();c.authoringInfo??=new l;const f=c.authoringInfo.visualVariables.find(e=>"reference-size"===e.theme),y=a.field??f?.field,z=a.normalizationField??f?.normalizationField;if(!y)throw new i("update-renderer-with-reference-size:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const v=h({view:p,field:y,normalizationField:z,sizeStops:u,sizeByScaleEnabled:d||!!a.sizeOptimizationEnabled}),w=n?.symbolStyle||f?.referenceSizeSymbolStyle||"circle";if("class-breaks"===c.type){const e="polygon"===("geometryType"in r?r.geometryType:null)&&o&&"marker"in o?o.marker:null;c.classBreakInfos.forEach(i=>{const a=e?.color??ue(i.symbol,1);"cim"===i.symbol.type?b(i.symbol,{type:w,color:a,primitiveOverrides:v}):a&&(i.symbol=g({type:w,color:a,primitiveOverrides:v}))})}else if("unique-value"===c.type){const i=c.uniqueValueGroups,a="polygon"===("geometryType"in r?r.geometryType:null)&&m&&"colors"in m?m.colors:null,n=a?e(a,c.uniqueValueInfos?.length??0):null;let s=0;if(i){for(const e of i)for(const i of e.classes??[]){const e=n?n[s]:ue(i.symbol,1);"cim"===i.symbol?.type?b(i.symbol,{type:w,color:e,primitiveOverrides:v}):e&&(i.symbol=g({type:w,color:e,primitiveOverrides:v})),s++}c.uniqueValueGroups=i}}return f&&(f.field=y,f.normalizationField=z,f.sizeStops=u.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),f.referenceSizeScale=d||a.sizeOptimizationEnabled?p.scale:void 0,f.referenceSizeSymbolStyle=w),c}async function Ce(a){const{layer:r,renderer:n,sizeScheme:s,sizeStops:o,typeScheme:u,spikeOptions:m}=await ze(a),p=n.clone();p.authoringInfo??=new l;const d=p.authoringInfo.visualVariables.find(e=>"spike"===e.theme),c=a.field??d?.field,f=a.normalizationField??d?.normalizationField;if(!c)throw new i("update-renderer-with-spike:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const y=j({field:c,normalizationField:f,sizeStops:o}),z="geometryType"in r?r.geometryType:null,v={primitiveOverrides:y,...m},h=m?.symbolStyle,b=h&&h.includes("outline")&&(h.includes("solid-fill")||h.includes("gradient-fill"));if("class-breaks"===p.type){if(s||b){const e=z?await Te({geometryType:z,sizeScheme:s,view:a.view}):null,i=e?.scheme,r="polygon"===z&&i&&"marker"in i?i.marker:i;if(s){const e=r&&"color"in r?r?.color:void 0;v.color=e}if(b){const e=r&&"outline"in r?r.outline.color:void 0;v.strokeColor=e}}p.classBreakInfos.forEach(e=>{if("cim"===e.symbol.type)q(e.symbol,v);else{const i=v.color??ue(e.symbol,1)??void 0;i&&(e.symbol=D({...v,color:i}))}})}else if("unique-value"===p.type){const i=p.uniqueValueGroups,r=p.uniqueValueInfos?.length??0;let n=null;if(u||b){const i=z&&r?await w({numColors:r,geometryType:z,typeScheme:u,view:a.view}):null,s=i?.scheme;if(u){const i=s&&"colors"in s?s.colors:null;n=i?e(i,r):null}if(b){const e=s&&"outline"in s?s.outline.color:void 0;v.strokeColor=e}}let s=0;if(i){for(const e of i)for(const i of e.classes??[]){if("cim"===i.symbol?.type)q(i.symbol,{...v,color:n?.[s]});else{const e=n?.[s]??ue(i.symbol,1)??void 0;e&&(i.symbol=D({...v,color:e}))}s++}p.uniqueValueGroups=i}}return d&&(d.field=c,d.normalizationField=f,d.sizeStops=o.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),h&&(d.spikeSymbolStyle=h)),p}async function We(e){const i=await ve(e);return De(i,await W(we(i),i.outlineOptimizationEnabled))}async function $e(e){const{renderer:a,creatorParameters:r}=await xe(e),{outlineOptimizationEnabled:n,normalizationType:s,classificationMethod:l,valueExpression:t,valueExpressionTitle:o}=r,{result:m,outlineResult:p}=await W(we(r),n),d=m.classBreakInfos;if(r.numClasses!==d.length)throw new i("regenerate-class-breaks-renderer:invalid-parameters","The number of class breaks generated does not match the number of class breaks in the renderer.");return a.classBreakInfos.forEach((e,i)=>{e.minValue=d[i].minValue,e.maxValue=d[i].maxValue,e.label=d[i].label}),a.normalizationTotal="percent-of-total"===s?m.normalizationTotal:void 0,"standard-deviation"!==l&&u({classBreakInfos:a.classBreakInfos,classificationMethod:l,normalizationType:s,round:!0}),S(a,p?.visualVariables,R),a.valueExpression=t??null,a.valueExpressionTitle=o??null,{renderer:a}}async function Ae(e){const i=await be(e),{defaultSymbolEnabled:a,view:r,startTime:n,endTime:s,symbolType:l,minValue:t,maxValue:o,signal:u,filter:m,layer:p}=i,[d,c]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await f({view:r,layer:p,startTime:n,endTime:s,minValue:t,maxValue:o,signal:u,filter:m}),i.outlineOptimizationEnabled?y({layer:p,view:r,filter:m,signal:u}).catch(P):null]),{unit:z,statistics:v}=d,{valueExpression:w,title:h}=await M(i,z),b=await Ge(he({layer:p,basemap:i.basemap,valueExpression:w,symbolType:l,statistics:v,legendOptions:{title:h},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:t,maxValue:o,filter:m,signal:u})),g={layer:p,valueExpression:w,defaultSymbolEnabled:a,symbolType:l},S=await je(b,c,null,null,g),x=S.renderer.authoringInfo?.visualVariables;return x?.forEach(e=>C(e,n,s,z)),{...S,unit:z}}async function He(e){const{renderer:i,creatorParameters:a}=await Ee(e),{layer:r,outlineOptimizationEnabled:n,sizeOptimizationEnabled:s,startTime:l,endTime:t,theme:o,view:u,signal:m,filter:p}=a,[d,c]=await Promise.all([f({view:u,layer:r,startTime:l,endTime:t,signal:m,filter:p}),n?y({layer:r,view:u,filter:p,signal:m}).catch(P):null]),{unit:z,statistics:v}=d,{valueExpression:w,title:h}=await M(a,z),b=await Ge(he({layer:r,valueExpression:w,statistics:v,legendOptions:{title:h},sizeOptimizationEnabled:s,theme:o,view:u,filter:p,signal:m}));S(i,b.visualVariables,F),S(i,c?.visualVariables,R),i.authoringInfo=b.authoringInfo.clone();const g=i.authoringInfo?.visualVariables;return g?.forEach(e=>C(e,l,t,z)),{renderer:i}}export{Ae as createAgeRenderer,We as createClassBreaksRenderer,Ue as createContinuousRenderer,Ge as createVisualVariables,Fe as getSizeStopsForTheme,He as regenerateAgeRenderer,$e as regenerateClassBreaksRenderer,Pe as regenerateContinuousRenderer,Ne as regenerateVisualVariables,Me as updateRendererWithReferenceSize,Ce as updateRendererWithSpike};
2
+ import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{toPt as a}from"../../core/screenUtils.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import s from"../../renderers/ClassBreaksRenderer.js";import l from"../../renderers/support/AuthoringInfo.js";import t from"../../renderers/support/AuthoringInfoSizeStop.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{castSizeFromStringOrNumber as d}from"../../renderers/visualVariables/support/castSizeVariable.js";import p from"../../renderers/visualVariables/support/SizeStop.js";import c from"../../renderers/visualVariables/support/SizeVariableLegendOptions.js";import f from"../heuristics/ageUnit.js";import y from"../heuristics/outline.js";import z from"../heuristics/referenceSize.js";import v from"../heuristics/sizeRange.js";import{getTypeSchemeData as w}from"./type.js";import{createPrimitiveOverrides as h,updateReferenceSizeSymbol as b,createReferenceSizeSymbol as g}from"./support/referenceSizeUtils.js";import{spliceVisualVariables as S,updateAuthoringInfoVisualVariable as x,getAuthoringInfoVisualVariable as E,isSizeVV as T,processRegenerateParams as V,getRendererToUpdate as k,getStyleType as O,hasOutlineVV as I,hasScaleDependentSizeVV as B,findSizeVVIndex as F,findOutlineVVIndex as R}from"./support/regenerateUtils.js";import{createPrimitiveOverrides as N,updateSpikeSymbol as j,createSpikeSymbol as q,defaultSpikeSymbolStyle as C}from"./support/spikeUtils.js";import{getTimeSeriesSummaryStatistics as D,resolveDataSeriesInfo as G}from"./support/timeSeriesUtils.js";import{errorCallback as U,getTitleAndExpressionForAgeRenderer as P,updateAgeRendererAuthoringInfoVV as M,getClassBreaks as W,getSummaryStatistics as $,createSymbol as A,getSymbolOutlineFromScheme as H,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as J,getSizeRangeForAxis as K,getDataRange as Q,getBasemapInfo as X}from"./support/utils.js";import{verifyDates as Y,supportedAgeUnits as Z}from"../statistics/support/ageUtils.js";import{verifyBinningParams as _}from"../support/binningUtils.js";import{getNormalizationType as ee,getFieldsList as ie,isAnyDateField as ae}from"../support/utils.js";import{createLayerAdapter as re,featureCapableLayerTypes as ne,getLayerTypeLabels as se,binningCapableLayerTypes as le}from"../support/adapters/support/layerUtils.js";import{cloneScheme as te,getSchemes as oe}from"../symbology/size.js";import{getColorFromSymbol as ue}from"../../symbols/support/utils.js";const me=2**53-1,de=[5,112.5];async function pe(e,a){const r=G({...e});if(!(r&&r.layer&&(r.field||r.valueExpression||r.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(r.valueExpression&&!r.sqlExpression&&!r.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");if("reference-size"===r.theme&&!r.view&&!r.field)throw new i("size-visual-variable:missing-parameters","'view' and 'field' are required when 'theme' is 'reference-size'");if("reference-size"===r.theme&&r.valueExpression)throw new i("size-visual-variable:missing-parameters","'valueExpression' is not supported when 'theme' is 'reference-size'");r.forBinning&&_(r,"size-visual-variable");const n={...r},s=r.forBinning?le:ne,l=re(n.layer,s,r.forBinning);if(!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+se(s).join(", "));"height"===n.axis&&(n.sizeOptimizationEnabled=!1);const t=null!=n.signal?{signal:n.signal}:null;await l.load(t);const o=l.geometryType;if("mesh"===o)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(n.worldScale){if("polyline"===o||"polygon"===o)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if("3d"!==n.view?.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}if("reference-size"===n.theme&&!r.forBinning&&"polygon"!==o)throw new i("size-visual-variable:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===n.theme&&!r.forBinning&&"polygon"!==o&&"point"!==o)throw new i("size-visual-variable:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:n.field,normalizationField:n.normalizationField,valueExpression:n.valueExpression}),m=J(l,u,"size-visual-variable:invalid-parameters");if(m)throw m;"spike"!==n.theme||n.spikeOptions?.symbolStyle||(n.spikeOptions??={},n.spikeOptions.symbolStyle=C);const d={...n,layer:l,referenceSizeResult:a};return await fe(d),d}async function ce(e){const a=G({...e});if(!(a&&a.layer&&(a.field||a.valueExpression||a.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-continuous-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0;const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="reference-size"!==r.theme&&"spike"!==r.theme&&"polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.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");if("reference-size"===r.theme&&!a.forBinning&&"polygon"!==t)throw new i("size-continuous-renderer:invalid-parameters","Reference size is only supported for polygon layers");if("spike"===r.theme&&!a.forBinning&&"polygon"!==t&&"point"!==t)throw new i("size-continuous-renderer:invalid-parameters","Spike is only supported for point and polygon layers");const u=await ie({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),m=J(s,u,"size-continuous-renderer:invalid-parameters");if(m)throw m;"spike"!==r.theme||r.spikeOptions?.symbolStyle||(r.spikeOptions??={},r.spikeOptions.symbolStyle=C);const d={...r,layer:s};return await fe(d),d}async function fe(e){const i=e.layer,a=i.geometryType,r=i.layer,n=e.forBinning&&"featureReduction"in r&&"binning"===r.featureReduction?.type;if(("polygon"===a||n)&&e.view&&e.field&&!e.valueExpression&&(!e.theme||"reference-size"===e.theme)){try{e.referenceSizeResult=e.referenceSizeResult??await z({layer:r,view:e.view,filter:e.filter,forBinning:e.forBinning,signal:e.signal})}catch{}!e.theme&&e.referenceSizeResult?.isGrid&&(e.theme="reference-size"),e.referenceSizeOptions?.symbolStyle||(e.referenceSizeOptions?e.referenceSizeOptions.symbolStyle="circle":e.referenceSizeOptions={symbolStyle:"circle"})}}async function ye(e){if(!e||!(e.layer&&e.view&&e.sizeStops))throw new i("update-renderer-with-reference-size:missing-parameters","'layer', 'view and 'sizeStops' parameters are required");const{view:a,forBinning:r}=e,n=e.forBinning?le:ne,s=re(e.layer,n,e.forBinning);if(!s)throw new i("update-renderer-with-reference-size:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));const l=s.layer;let t=e.renderer;if(!t)if(e.forBinning){if(!("featureReduction"in l&&l.featureReduction&&"renderer"in l.featureReduction&&l.featureReduction.renderer)||"class-breaks"!==l.featureReduction.renderer.type&&"unique-value"!==l.featureReduction.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Feature reduction renderer is not supported");t=l.featureReduction.renderer}else{if(!("renderer"in l)||!l.renderer||"class-breaks"!==l.renderer.type&&"unique-value"!==l.renderer.type)throw new i("update-renderer-with-reference-size:invalid-parameters","Renderer is not supported");t=l.renderer}const o=t.authoringInfo;if(!o||!o?.visualVariables?.some(e=>"reference-size"===e.theme))throw new i("update-renderer-with-reference-size:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'reference-size'");const u=e.isGrid??(await z({view:a,layer:l,forBinning:r}))?.isGrid;return{...e,isGrid:u,renderer:t,layer:s}}async function ze(e){if(!e||!e.layer||!e.sizeStops)throw new i("update-renderer-with-spike:missing-parameters","'layer' and 'sizeStops' parameters are required");const a=e.forBinning?le:ne,r=re(e.layer,a,e.forBinning);if(!r)throw new i("update-renderer-with-spike:invalid-parameters","'layer' must be one of these types: "+se(a).join(", "));await r.load();const n=r.layer;let s=e.renderer;if(!s)if(e.forBinning){if(!("featureReduction"in n&&n.featureReduction&&"renderer"in n.featureReduction&&n.featureReduction.renderer)||"class-breaks"!==n.featureReduction.renderer.type&&"unique-value"!==n.featureReduction.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Feature reduction renderer is not supported");s=n.featureReduction.renderer}else{if(!("renderer"in n)||!n.renderer||"class-breaks"!==n.renderer.type&&"unique-value"!==n.renderer.type)throw new i("update-renderer-with-spike:invalid-parameters","Renderer is not supported");s=n.renderer}const l=s.authoringInfo,t=l?.visualVariables.find(e=>"spike"===e.theme);if(!t)throw new i("update-renderer-with-spike:invalid-parameters","'renderer.authoringInfo.visualVariables' should have an authoringInfoVisualVariable with 'theme' set to 'spike'");const o=e.spikeOptions??{};return o.symbolStyle??=t?.spikeSymbolStyle?void 0:C,{...e,renderer:s,layer:r,spikeOptions:o}}async function ve(e){const a=G({...e});if(!a||!a.layer||!a.field&&!a.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(a.valueExpression&&!a.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&_(a,"size-class-breaks-renderer");const r={...a};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.classificationMethod??="equal-interval",r.normalizationType=ee(r);const n=a.forBinning?le:ne,s=re(r.layer,n,a.forBinning);if(!s)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+se(n).join(", "));if(!(null!=r.minValue&&null!=r.maxValue)&&(null!=r.minValue||null!=r.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const l=null!=r.signal?{signal:r.signal}:null;await s.load(l);const t=s.geometryType,o=r.symbolType.includes("3d");if(r.outlineOptimizationEnabled="polygon"===t&&r.outlineOptimizationEnabled,"mesh"===t)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===t||"polygon"===t))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.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 u=await ie({field:r.field,normalizationField:r.normalizationField}),m=J(s,u,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return{...r,layer:s}}function we(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 he(e){const i={...e},a=!!i.symbolType?.includes("3d-volumetric"),r=i;return r.worldScale=a,a&&(r.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,r}async function be(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 a={...e};a.symbolType??="2d",a.defaultSymbolEnabled??=!0;const r=re(a.layer,ne);if(!r)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+se(ne).join(", "));const n=null!=a.signal?{signal:a.signal}:null;await r.load(n);const s=r.geometryType,l=a.symbolType.includes("3d");if(a.outlineOptimizationEnabled="polygon"===s&&a.outlineOptimizationEnabled,"mesh"===s)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(l&&("polyline"===s||"polygon"===s))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(a.symbolType.includes("3d-volumetric")&&(!a.view||"3d"!==a.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=Y(r,a.startTime,a.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(a.unit&&!Z.includes(a.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${Z.join(", ")}`);return{...a,layer:r}}async function ge(e){const a="regenerate-size-visual-variables";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size","color-size","relationship-size","type-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const s=E(r,"size");if(!s)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable authoringInfo");const l=s.theme,t="reference-size"===l,o="spike"===l,u=r.visualVariables?.find(T);if(!u&&!t&&!o)throw new i(`${a}:invalid-parameters`,"Renderer does not have a size visual variable");let m=s.field,d=s.normalizationField,p=null,c=null;m||(u?.field?(m=u.field,d=u.normalizationField):r.field?(m=r.field,d=r.normalizationField):(p=u?.valueExpression??r.valueExpression,c=u?.valueExpressionTitle??r.valueExpressionTitle));const{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=s.dataSeriesName,b=s.dataSeriesCalculationName,g=B(r),S=await pe({layer:f,field:m,valueExpression:p,valueExpressionTitle:c,normalizationField:d,theme:l,sizeOptimizationEnabled:g,forBinning:y,dataSeriesName:h,dataSeriesCalculationName:b,filter:z,view:v,signal:w},e.referenceSizeResult);return"reference-size"!==l||null==s.referenceSizeScale||!S.referenceSizeResult||S.referenceSizeResult.isGrid||S.sizeOptimizationEnabled||(S.sizeOptimizationEnabled=!0),{...e,creatorParameters:S,renderer:r}}async function Se(e){const a="regenerate-size-continuous-renderer";V(e,a);const r=await k(e),n=O(r);if(!n||!["size-continuous","univariate-color-size"].includes(n))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:s,field:l,normalizationField:t,valueExpression:o,valueExpressionTitle:u}=r,m=s?.visualVariables.find(e=>"size"===e.type),d=m.theme,{layer:p,forBinning:c,filter:f,view:y,signal:z}=e,v=m.dataSeriesName,w=m.dataSeriesCalculationName,h=I(r),b=B(r),g=await ce({layer:p,field:l,valueExpression:o,valueExpressionTitle:u,normalizationField:t,theme:d,outlineOptimizationEnabled:h,sizeOptimizationEnabled:b,forBinning:c,dataSeriesName:v,dataSeriesCalculationName:w,filter:f,view:y,signal:z});return"reference-size"!==d||null==m.referenceSizeScale||!g.referenceSizeResult||g.referenceSizeResult.isGrid||g.sizeOptimizationEnabled||(g.sizeOptimizationEnabled=!0),{...e,creatorParameters:g,renderer:r}}async function xe(e){const a="regenerate-size-class-breaks-renderer";await V(e,a);const r=await k(e);if("size-class-breaks"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n,field:s,normalizationField:l,normalizationType:t,normalizationTotal:o,valueExpression:u,valueExpressionTitle:m}=r,{classificationMethod:d,standardDeviationInterval:p}=n,c=r.classBreakInfos.length,{layer:f,forBinning:y,filter:z,view:v,signal:w}=e,h=n?.dataSeriesName,b=n?.dataSeriesCalculationName,g=I(r),S=await ve({layer:f,field:s,valueExpression:u,valueExpressionTitle:m,normalizationType:t,normalizationField:l,normalizationTotal:o,classificationMethod:d,standardDeviationInterval:p,numClasses:c,outlineOptimizationEnabled:g,forBinning:y,dataSeriesName:h,dataSeriesCalculationName:b,filter:z,view:v,signal:w});return{...e,creatorParameters:S,renderer:r}}async function Ee(e){const a="regenerate-size-age-renderer";await V(e,a);const r=await k(e);if("size-age"!==O(r))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{authoringInfo:n}=r,s=n?.visualVariables.find(e=>"size"===e.type),l=s.startTime,t=s.endTime,o=s.units,u=s.theme,{layer:m,filter:d,view:p,signal:c}=e,f=I(r),y=B(r),z=await be({layer:m,startTime:l,endTime:t,unit:o,theme:u,outlineOptimizationEnabled:f,sizeOptimizationEnabled:y,filter:d,view:p,signal:c});return{...e,creatorParameters:z,renderer:r}}async function Te(e){let i=e.sizeScheme,a=null,r=null;const n=await X(e.basemap,e.view);if(a=null!=n.basemapId?n.basemapId:null,r=null!=n.basemapTheme?n.basemapTheme:null,i)return{scheme:te(i),basemapId:a,basemapTheme:r};const s=oe({basemapTheme:r,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return s&&(i=s.primaryScheme,a=s.basemapId,r=s.basemapTheme),{scheme:i,basemapId:a,basemapTheme:r}}function Ve(e,i){switch(i){case"point":case"multipoint":{const i=e;return[d(i.minSize),d(i.maxSize)]}case"polyline":{const i=e;return[d(i.minWidth),d(i.maxWidth)]}case"polygon":{const i=e;return[d(i.marker.minSize),d(i.marker.maxSize)]}}}function ke(e,i){"clamped-linear"===e.transformationType&&"below"===i&&e.flipSizes()}async function Oe(e,i,a,r,n,s){const l=Ie(e,i,a,r);return l||Ve(n,s)}function Ie(e,i,a,r){return"spike"===r?[a?.minHeight??de[0],a?.maxHeight??de[1]]:"reference-size"===r&&i?[1,i.size]:e?[e.minSize,e.maxSize]:null}function Be(e,i){if("reference-size"===i.theme&&null!=e.min&&null!=e.max&&null!=e.avg&&null!=e.stddev){const i=100,a=0,r=0,n=1,s=e.avg,l=e.min,t=e.max,o=e.stddev,u=0!==s?o/s:0,m=l>r&&l<n&&t<2*n&&u<.5,d=l>a&&l<i&&t<2*i&&u<.5;return{minDataValue:m?r:d?a:l,maxDataValue:m?n:d?i:s+2*o,defaultValuesUsed:!1}}const{theme:a,field:r}=i,n=i.layer,s=r&&!("function"==typeof r)?n.getField(r):null,l=ae(s);return Q(e,a,l,"above"===a||"below"===a)}function Fe(e,a){if(("spike"===a||"reference-size"===a)&&null!=e.minDataValue&&null!=e.maxDataValue&&null!=e.minSize&&null!=e.maxSize&&"number"==typeof e.minSize&&"number"==typeof e.maxSize)return[new p({value:e.minDataValue,size:e.minSize}),new p({value:e.maxDataValue,size:e.maxSize})];throw new i("get-size-stops-for-theme","Invalid size variable or theme")}async function Re(e,a,n,s){const{theme:u,field:d,normalizationField:p,minValue:f,maxValue:y,axis:z}=e,v=e.layer.geometryType,w=await Te({basemap:e.basemap,geometryType:v,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),h=w.scheme;if(!h)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const b=await Oe(n,s,e.spikeOptions,u,h,v),{minDataValue:g,maxDataValue:S,defaultValuesUsed:x}=Be(a,e),E=[],T="height"===z,V=T?z:void 0,k=b[0];let O=b[1];if(T&&"number"==typeof k&&"number"==typeof O){const e=K({minSize:k,maxSize:O},V);E.push(new m({axis:"width-and-depth",minSize:e.minSize})),O=e.maxSize}const I=new m({field:d??void 0,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:p,axis:V,minSize:k,maxSize:O,minDataValue:g,maxDataValue:S,legendOptions:r(c,e.legendOptions)});ke(I,u),E.unshift(I);const B=new o("reference-size"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,referenceSizeScale:s?.isGrid||e.sizeOptimizationEnabled?e?.view?.scale:void 0,referenceSizeSymbolStyle:e.referenceSizeOptions?.symbolStyle,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:"spike"===u?{type:"size",field:e.field,normalizationField:e.normalizationField,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,spikeSymbolStyle:e.spikeOptions?.symbolStyle,sizeStops:Fe(I,u).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),theme:u,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}:{type:"size",theme:u,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName,minSliderValue:null!=f?f:a.min,maxSliderValue:null!=y?y:a.max}),F=new l({visualVariables:[B]});return{basemapId:w.basemapId,basemapTheme:w.basemapTheme,visualVariables:E,statistics:a,isGrid:s?.isGrid,defaultValuesUsed:x,sizeScheme:te(h),authoringInfo:F}}async function Ne(e,i,a,r,l){const t=await n("esri/smartMapping/t9n/smartMapping"),o=l.layer,u=l.field,m=o.geometryType,d=l.defaultSymbolEnabled,p=te(e.sizeScheme),c="polygon"===m,f=c?p.marker:p,y=c?p.background:null,z=c?"point":m,v=i?.opacity,w=e.isGrid,b=l.theme,S="reference-size"===b,x="spike"===b,E=S||x?[]:e.visualVariables.map(e=>e.clone());i?.visualVariables?.length&&E.push(...i.visualVariables.map(e=>e.clone()));const T=S?g({type:l.referenceSizeOptions?.symbolStyle||"circle",color:f.color,primitiveOverrides:h({view:l.view,field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b),sizeByScaleEnabled:w||!!l.sizeOptimizationEnabled})}):x?q({color:f.color,strokeColor:f.outline.color,baseWidth:l.spikeOptions?.baseWidth,strokeWidth:l.spikeOptions?.strokeWidth,defaultHeight:l.spikeOptions?.defaultHeight,primitiveOverrides:N({field:u,normalizationField:r,sizeStops:Fe(e.visualVariables[0],b)}),symbolStyle:l.spikeOptions?.symbolStyle}):A(z,{type:l.symbolType,color:f.color,size:L(f,z),outline:H(f,z,v)});return{renderer:new s({backgroundFillSymbol:!w&&y?A(m,{type:l.symbolType,color:y.color,outline:H(y,m,v)}):null,classBreakInfos:[{minValue:-me,maxValue:me,symbol:T}],defaultLabel:d?t.other:null,defaultSymbol:!d||S||x?null:A(z,{type:l.symbolType,color:f.noDataColor,size:L(f,z,!0),outline:H(f,z,v)}),field:u,normalizationField:r,normalizationType:a,valueExpression:l.valueExpression,valueExpressionTitle:l.valueExpressionTitle,visualVariables:E,authoringInfo:e.authoringInfo?.clone()}),visualVariables:e.visualVariables.map(e=>e.clone()),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,isGrid:w,sizeScheme:te(e.sizeScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}function je(e,i){const r=a(e.minSize),n=(a(e.maxSize)-r)/(i>=4?i-1:i),s=[];for(let a=0;a<i;a++)s.push(r+n*a);return s}async function qe(e,i){const a=await n("esri/smartMapping/t9n/smartMapping"),r=e.layer,t=e.defaultSymbolEnabled,o=r.geometryType,m="polygon"===o,d=e.symbolType?.includes("3d-volumetric"),p=await Te({basemap:e.basemap,geometryType:o,sizeScheme:e.sizeScheme,worldScale:d,view:e.view}),c=p.scheme,{result:f,outlineResult:y}=i,z=f?.classBreakInfos??[],v=e.classificationMethod,w=e.normalizationType,h=m?c.marker:c,b=m?c.background:null,g=m?"point":o,S=Ve(h,g),x=d?K({minSize:S[0],maxSize:S[1]},"height"):null,E=je({minSize:S[0],maxSize:x?x.maxSize:S[1]},z.length),T=y?.opacity,V=new s({backgroundFillSymbol:b&&A(o,{type:e.symbolType,color:b.color,outline:H(b,o,T)}),classBreakInfos:z.map((i,a)=>({minValue:i.minValue,maxValue:i.maxValue,symbol:A(g,{type:e.symbolType,color:h.color,size:E[a],widthAndDepth:x?.minSize,outline:H(h,g,T)}),label:i.label})),defaultLabel:t?a.other:null,defaultSymbol:t?A(g,{type:e.symbolType,color:h.noDataColor,size:L(h,g,!0),widthAndDepth:x?.minSize,outline:H(h,g,T)}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:w,normalizationField:e.normalizationField,normalizationTotal:"percent-of-total"===w?f?.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new l({type:"class-breaks-size",classificationMethod:v,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return"standard-deviation"!==v&&u({classBreakInfos:V.classBreakInfos,classificationMethod:v,normalizationType:w,round:!0}),y?.visualVariables?.length&&(V.visualVariables=y.visualVariables.map(e=>e.clone())),{renderer:V,sizeScheme:te(c),classBreaksResult:f,defaultValuesUsed:!!i.defaultValuesUsed,basemapId:p.basemapId,basemapTheme:p.basemapTheme}}async function Ce(e){const i=await pe(e),{view:a,field:r,valueExpression:n,minValue:s,maxValue:l,layer:t,normalizationField:o,signal:u,statistics:m,filter:d,dataSeriesName:p}=i,c=o?"field":void 0,[f,y]=await Promise.all([m??(p?D({layer:t,view:a,signal:u,dataSeriesName:p,dataSeriesCalculationName:i.dataSeriesCalculationName,filter:d}):$({layer:t,field:r,valueExpression:n,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:c,normalizationField:o,filter:d,minValue:s,maxValue:l,view:a,signal:u})),i.sizeOptimizationEnabled?v({view:a,layer:t,signal:u,filter:d}).catch(U):null]);return Re(i,f,y,i.referenceSizeResult)}async function De(e){const{view:i,filter:a,renderer:r,signal:n,creatorParameters:s}=await ge(e),{field:l,normalizationField:o,valueExpression:u,valueExpressionTitle:d,theme:p,layer:c,sizeOptimizationEnabled:f,spikeOptions:y,referenceSizeResult:z,dataSeriesName:w,dataSeriesCalculationName:h}=s,b=o?"field":void 0,g=r.authoringInfo?.clone(),[S,x]=await Promise.all([(w?D({layer:c,view:i,signal:n,dataSeriesName:w,dataSeriesCalculationName:h,filter:a}):Promise.resolve(null)).then(e=>e??$({layer:c,field:l,valueExpression:u,normalizationField:o,normalizationType:b,filter:a,view:i,signal:n})),f&&!z?v({view:i,layer:c,signal:n,filter:a}).catch(U):null]),E=Ie(x,z,y,p),{minDataValue:V,maxDataValue:k}=Be(S,{theme:p,layer:c,field:l}),O=r.visualVariables?.find(T),I=(O?.stops?null:O)??new m({field:l??void 0,valueExpression:u,valueExpressionTitle:d,valueUnit:"unknown",normalizationField:o});E&&(I.minSize=E[0],I.maxSize=E[1]),I.minDataValue=V,I.maxDataValue=k,w&&(I.valueExpression=u??null,I.valueExpressionTitle=d??null),ke(I,p);const B=g.visualVariables.find(e=>"size"===e.type);B.dataSeriesName=w??B.dataSeriesName,B.dataSeriesCalculationName=h??B.dataSeriesCalculationName,B.minSliderValue=S.min,B.maxSliderValue=S.max;const F="reference-size"===p;return(F||"spike"===p)&&(B.sizeStops=Fe(I,p).map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),F&&(B.referenceSizeScale=z?.isGrid||f?i?.scale:void 0)),{visualVariables:"reference-size"===p||"spike"===p?[]:[I],isGrid:!!z?.isGrid,authoringInfo:g,statistics:S}}async function Ge(e){const i=await ce(e),a={layer:i.layer,view:i.view,filter:i.filter,signal:i.signal},[r,n]=await Promise.all([Ce(he(i)),i.outlineOptimizationEnabled?y(a).catch(U):null]),s=i.normalizationField;return Ne(r,n,s?"field":void 0,s,i)}async function Ue(e){const{renderer:i,view:a,signal:r,filter:n,creatorParameters:s,forBinning:l}=await Se(e),{layer:t,sizeOptimizationEnabled:o,outlineOptimizationEnabled:u,theme:m,referenceSizeResult:d,valueExpression:p,valueExpressionTitle:c}=s,[f,z]=await Promise.all([De({...e,referenceSizeResult:d}),u?y({layer:t,view:a,filter:n,signal:r}).catch(U):null]),v="reference-size"===m,w="spike"===m;S(i,f.visualVariables,F),S(i,z?.visualVariables,R),i.valueExpression=p??null,i.valueExpressionTitle=c??null,x(i,f.authoringInfo,"size");const h=f.statistics;if(!v&&!w)return{renderer:i,statistics:h};if(w){return{renderer:await Me({layer:t,renderer:i,forBinning:l,sizeStops:E(i,"size","spike")?.sizeStops}),statistics:h}}const b=f.isGrid;return{renderer:await Pe({layer:t,renderer:i,view:a,forBinning:l,sizeOptimizationEnabled:o,sizeStops:E(i,"size","reference-size")?.sizeStops,isGrid:b}),isGrid:b,statistics:h}}async function Pe(a){const{layer:r,referenceSizeOptions:n,renderer:s,sizeScheme:o,sizeStops:u,typeScheme:m,view:d,isGrid:p}=await ye(a),c=s.clone();c.authoringInfo??=new l;const f=c.authoringInfo.visualVariables.find(e=>"reference-size"===e.theme),y=a.field??f?.field,z=a.normalizationField??f?.normalizationField;if(!y)throw new i("update-renderer-with-reference-size:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const v=h({view:d,field:y,normalizationField:z,sizeStops:u,sizeByScaleEnabled:p||!!a.sizeOptimizationEnabled}),w=n?.symbolStyle||f?.referenceSizeSymbolStyle||"circle";if("class-breaks"===c.type){const e="polygon"===("geometryType"in r?r.geometryType:null)&&o&&"marker"in o?o.marker:null;c.classBreakInfos.forEach(i=>{const a=e?.color??ue(i.symbol,1);"cim"===i.symbol.type?b(i.symbol,{type:w,color:a,primitiveOverrides:v}):a&&(i.symbol=g({type:w,color:a,primitiveOverrides:v}))})}else if("unique-value"===c.type){const i=c.uniqueValueGroups,a="polygon"===("geometryType"in r?r.geometryType:null)&&m&&"colors"in m?m.colors:null,n=a?e(a,c.uniqueValueInfos?.length??0):null;let s=0;if(i){for(const e of i)for(const i of e.classes??[]){const e=n?n[s]:ue(i.symbol,1);"cim"===i.symbol?.type?b(i.symbol,{type:w,color:e,primitiveOverrides:v}):e&&(i.symbol=g({type:w,color:e,primitiveOverrides:v})),s++}c.uniqueValueGroups=i}}return f&&(f.field=y,f.normalizationField=z,f.sizeStops=u.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),f.referenceSizeScale=p||a.sizeOptimizationEnabled?d.scale:void 0,f.referenceSizeSymbolStyle=w),c}async function Me(a){const{layer:r,renderer:n,sizeScheme:s,sizeStops:o,typeScheme:u,spikeOptions:m}=await ze(a),d=n.clone();d.authoringInfo??=new l;const p=d.authoringInfo.visualVariables.find(e=>"spike"===e.theme),c=a.field??p?.field,f=a.normalizationField??p?.normalizationField;if(!c)throw new i("update-renderer-with-spike:invalid-parameters","'field' parameter or authoring info with 'field' is required.");const y=N({field:c,normalizationField:f,sizeStops:o}),z="geometryType"in r?r.geometryType:null,v={primitiveOverrides:y,...m},h=m?.symbolStyle,b=h&&h.includes("outline")&&(h.includes("solid-fill")||h.includes("gradient-fill"));if("class-breaks"===d.type){if(s||b){const e=z?await Te({geometryType:z,sizeScheme:s,view:a.view}):null,i=e?.scheme,r="polygon"===z&&i&&"marker"in i?i.marker:i;if(s){const e=r&&"color"in r?r?.color:void 0;v.color=e}if(b){const e=r&&"outline"in r?r.outline.color:void 0;v.strokeColor=e}}d.classBreakInfos.forEach(e=>{if("cim"===e.symbol.type)j(e.symbol,v);else{const i=v.color??ue(e.symbol,1)??void 0;i&&(e.symbol=q({...v,color:i}))}})}else if("unique-value"===d.type){const i=d.uniqueValueGroups,r=d.uniqueValueInfos?.length??0;let n=null;if(u||b){const i=z&&r?await w({numColors:r,geometryType:z,typeScheme:u,view:a.view}):null,s=i?.scheme;if(u){const i=s&&"colors"in s?s.colors:null;n=i?e(i,r):null}if(b){const e=s&&"outline"in s?s.outline.color:void 0;v.strokeColor=e}}let s=0;if(i){for(const e of i)for(const i of e.classes??[]){if("cim"===i.symbol?.type)j(i.symbol,{...v,color:n?.[s]});else{const e=n?.[s]??ue(i.symbol,1)??void 0;e&&(i.symbol=q({...v,color:e}))}s++}d.uniqueValueGroups=i}}return p&&(p.field=c,p.normalizationField=f,p.sizeStops=o.map(({label:e,size:i,value:a})=>new t({label:e,size:i,value:a})),h&&(p.spikeSymbolStyle=h)),d}async function We(e){const i=await ve(e);return qe(i,await W(we(i),i.outlineOptimizationEnabled))}async function $e(e){const{renderer:a,creatorParameters:r}=await xe(e),{outlineOptimizationEnabled:n,normalizationType:s,classificationMethod:l,valueExpression:t,valueExpressionTitle:o}=r,{result:m,outlineResult:d}=await W(we(r),n),p=m.classBreakInfos;if(r.numClasses!==p.length)throw new i("regenerate-class-breaks-renderer:invalid-parameters","The number of class breaks generated does not match the number of class breaks in the renderer.");return a.classBreakInfos.forEach((e,i)=>{e.minValue=p[i].minValue,e.maxValue=p[i].maxValue,e.label=p[i].label}),a.normalizationTotal="percent-of-total"===s?m.normalizationTotal:void 0,"standard-deviation"!==l&&u({classBreakInfos:a.classBreakInfos,classificationMethod:l,normalizationType:s,round:!0}),S(a,d?.visualVariables,R),a.valueExpression=t??null,a.valueExpressionTitle=o??null,{renderer:a}}async function Ae(e){const i=await be(e),{defaultSymbolEnabled:a,view:r,startTime:n,endTime:s,symbolType:l,minValue:t,maxValue:o,signal:u,filter:m,layer:d}=i,[p,c]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await f({view:r,layer:d,startTime:n,endTime:s,minValue:t,maxValue:o,signal:u,filter:m}),i.outlineOptimizationEnabled?y({layer:d,view:r,filter:m,signal:u}).catch(U):null]),{unit:z,statistics:v}=p,{valueExpression:w,title:h}=await P(i,z),b=await Ce(he({layer:d,basemap:i.basemap,valueExpression:w,symbolType:l,statistics:v,legendOptions:{title:h},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:t,maxValue:o,filter:m,signal:u})),g={layer:d,valueExpression:w,defaultSymbolEnabled:a,symbolType:l},S=await Ne(b,c,null,null,g),x=S.renderer.authoringInfo?.visualVariables;return x?.forEach(e=>M(e,n,s,z)),{...S,unit:z}}async function He(e){const{renderer:i,creatorParameters:a}=await Ee(e),{layer:r,outlineOptimizationEnabled:n,sizeOptimizationEnabled:s,startTime:l,endTime:t,theme:o,view:u,signal:m,filter:d}=a,[p,c]=await Promise.all([f({view:u,layer:r,startTime:l,endTime:t,signal:m,filter:d}),n?y({layer:r,view:u,filter:d,signal:m}).catch(U):null]),{unit:z,statistics:v}=p,{valueExpression:w,title:h}=await P(a,z),b=await Ce(he({layer:r,valueExpression:w,statistics:v,legendOptions:{title:h},sizeOptimizationEnabled:s,theme:o,view:u,filter:d,signal:m}));S(i,b.visualVariables,F),S(i,c?.visualVariables,R),i.authoringInfo=b.authoringInfo.clone();const g=i.authoringInfo?.visualVariables;return g?.forEach(e=>M(e,l,t,z)),{renderer:i}}export{Ae as createAgeRenderer,We as createClassBreaksRenderer,Ge as createContinuousRenderer,Ce as createVisualVariables,Fe as getSizeStopsForTheme,He as regenerateAgeRenderer,$e as regenerateClassBreaksRenderer,Ue as regenerateContinuousRenderer,De as regenerateVisualVariables,Pe as updateRendererWithReferenceSize,Me as updateRendererWithSpike};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../core/Error.js";async function n(n,r){const{layer:i,view:t,forBinning:a,filter:s}=n;if(!i||!t)throw new e(`${r}:missing-parameters`,"'layer' and 'view' parameters are required");await i.load();const o="featureReduction"in i?i.featureReduction:null;if(a){if("binning"!==o?.type)throw new e(`${r}:invalid-parameters`,"'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true");if(s)throw new e(`${r}:invalid-parameters`,"'filter' parameter is not supported when 'forBinning' parameter is true")}return n}async function r(n){const{layer:r,forBinning:i,renderer:t}=n;await r.load();const a="featureReduction"in r?r.featureReduction:null,s=t?.clone()??(i&&"binning"===a?.type?a?.renderer?.clone():"renderer"in r?r.renderer?.clone():null);if(!s)throw new e("get-renderer-to-update:invalid-parameters","renderer not available");return s}function i(e,n,r){const i=e?.authoringInfo?.visualVariables;return i?.find(e=>"reference-size"===r?e.type===n&&"reference-size"===e.theme:"spike"===r?e.type===n&&"spike"===e.theme:e.type===n)}function t(e){if(!e)return null;const n=e.type,r="visualVariables"in e?e.visualVariables:null,t=r?.find(d),a=r?.find(z),s=e.authoringInfo,o=i(e,"color"),u=i(e,"size"),l=i(e,"size","reference-size"),c=i(e,"size","spike");if("class-breaks"===n){if("univariate-color-size"===s?.type)return"univariate-color-size";if(t)return a?u?.units?"color-size-age":o?.units?"color-age-size":"color-size":o?.units?"color-age":l||c?"color-size":"color-continuous";if(a)return u?.units?"size-age":"size-continuous";if(e.classBreakInfos.length>1)return"class-breaks-color"===s?.type?"color-class-breaks":"class-breaks-size"===s?.type?"size-class-breaks":null;if(l||c)return"size-continuous"}return"unique-value"===n?e.valueExpression?"predominance"===s?.type?"predominance":"relationship"===s?.type?a||l||c?"relationship-size":"relationship":a||l||c?"type-size":"type":a?u?.units?"type-size-age":"type-size":l||c?"type-size":"type":"pie-chart"===n?"pie-chart":"dot-density"===n?"dot-density":"heatmap"===n?"heatmap":"simple"===n?"location":null}function a(e){return!!e.visualVariables?.some(h)}function s(e){return!!e.visualVariables?.some(v)}function o(e){return e?.findIndex(h)??-1}function u(e){return e?.findIndex(z)??-1}function l(e){return e?.findIndex(d)??-1}function c(e){return e?.findIndex(y)??-1}function f(e){return e?.findIndex(m)??-1}function p(e){return e?.findIndex(v)??-1}function d(e){return"color"===e.type}function y(e){return"opacity"===e.type}function m(e){return"rotation"===e.type}function z(e){return"size"===e.type&&"outline"!==e.target&&"$view.scale"!==e.valueExpression}function h(e){return"size"===e.type&&"outline"===e.target}function v(e){return"size"===e.type&&"$view.scale"===e.valueExpression&&"outline"!==e.target&&Array.isArray(e.stops)}function g(e,n,r){const i=e.visualVariables,t=r(i);if(!n||Array.isArray(n)&&!n.length)return;Array.isArray(n)||(n=[n]);const a=n.map(e=>e.clone());i?t>-1?i.splice(t,1,...a):i.push(...a):e.visualVariables=a}function b(e,n,r){const t=n?.visualVariables.find(e=>e.type===r),a=i(e,r);a&&t&&(a.dataSeriesName=t.dataSeriesName,a.minSliderValue=t.minSliderValue,a.maxSliderValue=t.maxSliderValue,"size"===r&&("reference-size"!==a.theme&&"spike"!==a.theme||(a.sizeStops=t.sizeStops?.map(e=>e.clone()),"reference-size"===a.theme&&(a.referenceSizeScale=t.referenceSizeScale))))}export{l as findColorVVIndex,c as findOpacityVVIndex,o as findOutlineVVIndex,f as findRotationVVIndex,p as findScaleDependentSizeVVIndex,u as findSizeVVIndex,i as getAuthoringInfoVisualVariable,r as getRendererToUpdate,t as getStyleType,a as hasOutlineVV,s as hasScaleDependentSizeVV,d as isColorVV,y as isOpacityVV,h as isOutlineVV,m as isRotationVV,v as isScaleDependentSizeVV,z as isSizeVV,n as processRegenerateParams,g as spliceVisualVariables,b as updateAuthoringInfoVisualVariable};
2
+ import e from"../../../core/Error.js";async function n(n,r){const{layer:i,view:t,forBinning:a,filter:s}=n;if(!i||!t)throw new e(`${r}:missing-parameters`,"'layer' and 'view' parameters are required");await i.load();const o="featureReduction"in i?i.featureReduction:null;if(a){if("binning"!==o?.type)throw new e(`${r}:invalid-parameters`,"'layer' must have 'featureReduction' property defined with 'binning' type when 'forBinning' parameter is true");if(s)throw new e(`${r}:invalid-parameters`,"'filter' parameter is not supported when 'forBinning' parameter is true")}return n}async function r(n){const{layer:r,forBinning:i,renderer:t}=n;await r.load();const a="featureReduction"in r?r.featureReduction:null,s=t?.clone()??(i&&"binning"===a?.type?a?.renderer?.clone():"renderer"in r?r.renderer?.clone():null);if(!s)throw new e("get-renderer-to-update:invalid-parameters","renderer not available");return s}function i(e,n,r){const i=e?.authoringInfo?.visualVariables;return i?.find(e=>"reference-size"===r?e.type===n&&"reference-size"===e.theme:"spike"===r?e.type===n&&"spike"===e.theme:e.type===n)}function t(e){if(!e)return null;const n=e.type,r="visualVariables"in e?e.visualVariables:null,t=r?.find(d),a=r?.find(z),s=e.authoringInfo,o=i(e,"color"),u=i(e,"size"),l=i(e,"size","reference-size"),c=i(e,"size","spike");if("class-breaks"===n){if("univariate-color-size"===s?.type)return"univariate-color-size";if(t)return a?u?.units?"color-size-age":o?.units?"color-age-size":"color-size":o?.units?"color-age":l||c?"color-size":"color-continuous";if(a)return u?.units?"size-age":"size-continuous";if(e.classBreakInfos.length>1)return"class-breaks-color"===s?.type?"color-class-breaks":"class-breaks-size"===s?.type?"size-class-breaks":null;if(l||c)return"size-continuous"}return"unique-value"===n?e.valueExpression?"predominance"===s?.type?"predominance":"relationship"===s?.type?a||l||c?"relationship-size":"relationship":a||l||c?"type-size":"type":a?u?.units?"type-size-age":"type-size":l||c?"type-size":"type":"pie-chart"===n?"pie-chart":"dot-density"===n?"dot-density":"heatmap"===n?"heatmap":"simple"===n?"location":null}function a(e){return!!e.visualVariables?.some(h)}function s(e){return!!e.visualVariables?.some(v)}function o(e){return e?.findIndex(h)??-1}function u(e){return e?.findIndex(z)??-1}function l(e){return e?.findIndex(d)??-1}function c(e){return e?.findIndex(y)??-1}function f(e){return e?.findIndex(m)??-1}function p(e){return e?.findIndex(v)??-1}function d(e){return"color"===e.type}function y(e){return"opacity"===e.type}function m(e){return"rotation"===e.type}function z(e){return"size"===e.type&&"outline"!==e.target&&"$view.scale"!==e.valueExpression}function h(e){return"size"===e.type&&"outline"===e.target}function v(e){return"size"===e.type&&"$view.scale"===e.valueExpression&&"outline"!==e.target&&Array.isArray(e.stops)}function g(e,n,r){const i=e.visualVariables,t=r(i);if(!n||Array.isArray(n)&&!n.length)return;Array.isArray(n)||(n=[n]);const a=n.map(e=>e.clone());i?t>-1?i.splice(t,1,...a):i.push(...a):e.visualVariables=a}function b(e,n,r){const t=n?.visualVariables.find(e=>e.type===r),a=i(e,r);a&&t&&(a.dataSeriesName=t.dataSeriesName,a.dataSeriesCalculationName=t.dataSeriesCalculationName,a.minSliderValue=t.minSliderValue,a.maxSliderValue=t.maxSliderValue,"size"===r&&("reference-size"!==a.theme&&"spike"!==a.theme||(a.sizeStops=t.sizeStops?.map(e=>e.clone()),"reference-size"===a.theme&&(a.referenceSizeScale=t.referenceSizeScale))))}export{l as findColorVVIndex,c as findOpacityVVIndex,o as findOutlineVVIndex,f as findRotationVVIndex,p as findScaleDependentSizeVVIndex,u as findSizeVVIndex,i as getAuthoringInfoVisualVariable,r as getRendererToUpdate,t as getStyleType,a as hasOutlineVV,s as hasScaleDependentSizeVV,d as isColorVV,y as isOpacityVV,h as isOutlineVV,m as isRotationVV,v as isScaleDependentSizeVV,z as isSizeVV,n as processRegenerateParams,g as spliceVisualVariables,b as updateAuthoringInfoVisualVariable};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../core/Error.js";import r from"../../../renderers/visualVariables/RotationVariable.js";import{regenerateVisualVariable as a}from"../opacity.js";import{getRendererToUpdate as i,getStyleType as t,findOpacityVVIndex as n,spliceVisualVariables as s,updateAuthoringInfoVisualVariable as o,findRotationVVIndex as l,findSizeVVIndex as c,getAuthoringInfoVisualVariable as u,hasScaleDependentSizeVV as d}from"./regenerateUtils.js";import{resolveDataSeriesInfo as p}from"./timeSeriesUtils.js";async function w(r){let a=await i(r);const n=t(a),s=r.includedParts,o=s?.includes("size-variable")??!0,l=s?.includes("color-variable")??!0,c=s?.includes("class-breaks")??!0,u=s?.includes("opacity-variable")??!0,d=s?.includes("rotation-variable")??!0;switch(a=await f({params:r,renderer:a,styleType:n,includeOpacityVariable:u,includeRotationVariable:d}),r={...r,renderer:a},n){case"color-continuous":{if(!l)return a;const{regenerateContinuousRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-age":{if(!l)return a;const{regenerateAgeRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"size-continuous":{if(!o)return a;const{regenerateContinuousRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-age":{if(!o)return a;const{regenerateAgeRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"color-size":{let e=a;if(l){const{regenerateContinuousRenderer:a}=await(import("../color.js"));e=(await a(r)).renderer}return o?await m(r,e):e}case"type":{const{regenerateRenderer:e}=await(import("../type.js"));return(await e(r)).renderer}case"type-size":{const{regenerateRenderer:e}=await(import("../type.js")),{renderer:a}=await e(r);return o?await m(r,a):a}case"predominance":{const{regenerateRenderer:e}=await(import("../predominance.js"));return(await e(r)).renderer}case"relationship":{if(!c)return a;const{regenerateRenderer:e}=await(import("../relationship.js"));return(await e(r)).renderer}case"relationship-size":{let e=a;if(c){const{regenerateRenderer:a}=await(import("../relationship.js")),{renderer:i}=await a(r);e=i}return o?await m(r,e):e}case"pie-chart":{const{regenerateRenderer:e}=await(import("../pieChart.js"));return(await e(r)).renderer}case"dot-density":{const{regenerateRenderer:e}=await(import("../dotDensity.js"));return(await e(r)).renderer}case"heatmap":{const{regenerateRenderer:e}=await(import("../heatmap.js"));return(await e(r)).renderer}case"location":{const{regenerateRenderer:e}=await(import("../location.js"));return(await e(r)).renderer}case"univariate-color-size":{const{regenerateRenderer:e}=await(import("../univariateColorSize.js"));return(await e(r)).renderer}default:throw new e("regenerate-renderer:invalid-parameters","renderer type not supported")}}async function m(e,r){const{regenerateVisualVariables:a,updateRendererWithReferenceSize:i,updateRendererWithSpike:t}=await(import("../size.js")),{visualVariables:n,authoringInfo:l,isGrid:p}=await a({...e,renderer:r});s(r,n,c),o(r,l,"size");const w=u(r,"size","reference-size"),m=u(r,"size","spike");return w||m?m?await t({layer:e.layer,renderer:r,sizeStops:m.sizeStops,forBinning:e.forBinning}):await i({layer:e.layer,renderer:r,sizeStops:w.sizeStops,view:e.view,forBinning:e.forBinning,sizeOptimizationEnabled:d(r),isGrid:p}):r}async function f({params:e,renderer:r,styleType:i,includeOpacityVariable:t,includeRotationVariable:c}){if(!("visualVariables"in r))return r;if(t&&"predominance"!==i&&-1!==n(r.visualVariables)){const i=await a({...e,renderer:r});s(r,i?.visualVariable,n),o(r,i?.authoringInfo,"opacity")}if(c){const a=await g(e,r);s(r,a,l)}return r}async function g(e,a){const i=a.visualVariables?.[l(a.visualVariables)],t=u(a,"rotation");if(!i)return null;const n=new r({axis:i.axis,rotationType:i.rotationType,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,legendOptions:i.legendOptions?.clone()});if(!t?.dataSeriesName)return n;const s=p({layer:e.layer,view:e.view,field:n.field??null,dataSeriesName:t.dataSeriesName,valueExpression:n.valueExpression??null,valueExpressionTitle:n.valueExpressionTitle??null});return n.field=s.field??null,n.valueExpression=s.valueExpression??null,n.valueExpressionTitle=s.valueExpressionTitle??null,n}export{w as regenerateRenderer};
2
+ import e from"../../../core/Error.js";import r from"../../../renderers/visualVariables/RotationVariable.js";import{regenerateVisualVariable as a}from"../opacity.js";import{getRendererToUpdate as i,getStyleType as t,findOpacityVVIndex as n,spliceVisualVariables as s,updateAuthoringInfoVisualVariable as o,findRotationVVIndex as l,findSizeVVIndex as c,getAuthoringInfoVisualVariable as u,hasScaleDependentSizeVV as d}from"./regenerateUtils.js";import{resolveDataSeriesInfo as p}from"./timeSeriesUtils.js";async function w(r){let a=await i(r);const n=t(a),s=r.includedParts,o=s?.includes("size-variable")??!0,l=s?.includes("color-variable")??!0,c=s?.includes("class-breaks")??!0,u=s?.includes("opacity-variable")??!0,d=s?.includes("rotation-variable")??!0;switch(a=await f({params:r,renderer:a,styleType:n,includeOpacityVariable:u,includeRotationVariable:d}),r={...r,renderer:a},n){case"color-continuous":{if(!l)return a;const{regenerateContinuousRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"color-age":{if(!l)return a;const{regenerateAgeRenderer:e}=await(import("../color.js"));return(await e(r)).renderer}case"size-continuous":{if(!o)return a;const{regenerateContinuousRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-class-breaks":{if(!c)return a;const{regenerateClassBreaksRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"size-age":{if(!o)return a;const{regenerateAgeRenderer:e}=await(import("../size.js"));return(await e(r)).renderer}case"color-size":{let e=a;if(l){const{regenerateContinuousRenderer:a}=await(import("../color.js"));e=(await a(r)).renderer}return o?await m(r,e):e}case"type":{const{regenerateRenderer:e}=await(import("../type.js"));return(await e(r)).renderer}case"type-size":{const{regenerateRenderer:e}=await(import("../type.js")),{renderer:a}=await e(r);return o?await m(r,a):a}case"predominance":{const{regenerateRenderer:e}=await(import("../predominance.js"));return(await e(r)).renderer}case"relationship":{if(!c)return a;const{regenerateRenderer:e}=await(import("../relationship.js"));return(await e(r)).renderer}case"relationship-size":{let e=a;if(c){const{regenerateRenderer:a}=await(import("../relationship.js")),{renderer:i}=await a(r);e=i}return o?await m(r,e):e}case"pie-chart":{const{regenerateRenderer:e}=await(import("../pieChart.js"));return(await e(r)).renderer}case"dot-density":{const{regenerateRenderer:e}=await(import("../dotDensity.js"));return(await e(r)).renderer}case"heatmap":{const{regenerateRenderer:e}=await(import("../heatmap.js"));return(await e(r)).renderer}case"location":{const{regenerateRenderer:e}=await(import("../location.js"));return(await e(r)).renderer}case"univariate-color-size":{const{regenerateRenderer:e}=await(import("../univariateColorSize.js"));return(await e(r)).renderer}default:throw new e("regenerate-renderer:invalid-parameters","renderer type not supported")}}async function m(e,r){const{regenerateVisualVariables:a,updateRendererWithReferenceSize:i,updateRendererWithSpike:t}=await(import("../size.js")),{visualVariables:n,authoringInfo:l,isGrid:p}=await a({...e,renderer:r});s(r,n,c),o(r,l,"size");const w=u(r,"size","reference-size"),m=u(r,"size","spike");return w||m?m?await t({layer:e.layer,renderer:r,sizeStops:m.sizeStops,forBinning:e.forBinning}):await i({layer:e.layer,renderer:r,sizeStops:w.sizeStops,view:e.view,forBinning:e.forBinning,sizeOptimizationEnabled:d(r),isGrid:p}):r}async function f({params:e,renderer:r,styleType:i,includeOpacityVariable:t,includeRotationVariable:c}){if(!("visualVariables"in r))return r;if(t&&"predominance"!==i&&-1!==n(r.visualVariables)){const i=await a({...e,renderer:r});s(r,i?.visualVariable,n),o(r,i?.authoringInfo,"opacity")}if(c){const a=await g(e,r);s(r,a,l)}return r}async function g(e,a){const i=a.visualVariables?.[l(a.visualVariables)],t=u(a,"rotation");if(!i)return null;const n=new r({axis:i.axis,rotationType:i.rotationType,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,legendOptions:i.legendOptions?.clone()});if(!t?.dataSeriesName)return n;const s=p({layer:e.layer,view:e.view,field:n.field??null,dataSeriesName:t.dataSeriesName,dataSeriesCalculationName:t.dataSeriesCalculationName,valueExpression:n.valueExpression??null,valueExpressionTitle:n.valueExpressionTitle??null});return n.field=s.field??null,n.valueExpression=s.valueExpression??null,n.valueExpressionTitle=s.valueExpressionTitle??null,n}export{w as regenerateRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../core/Error.js";import{getSourceLayer as s,getDataSeriesInfo as i}from"../../../layers/support/dataSeriesUtils.js";import{createTimeSeriesExpression as t}from"../../../layers/support/timeSeriesUtils.js";import r from"../../statistics/summaryStatistics.js";const a=new Set(["big-integer","double","integer","long","single","small-integer"]);function n(s,i){const t=i.fieldTimeMappings??[],r=[];for(const n of t){const t=n.fieldName;if(!t)throw new e("time-series-summary-statistics:invalid-parameters","Found a time series mapping with an empty 'fieldName'");const o=s.getField(t);if(!o)throw new e("time-series-summary-statistics:invalid-parameters",`Field '${t}' defined in time series '${i.name}' does not exist`);if(!a.has(o.type))throw new e("time-series-summary-statistics:invalid-parameters",`Field '${t}' in time series '${i.name}' has unsupported type '${o.type}'`);r.push(t)}return r}async function o(t){const a=s(t.layer);if(!a)throw new e("time-series-summary-statistics:invalid-parameters","'layer' must support dataSeriesInfos");const o=i(a,t.dataSeriesName);if(!o)throw new e("time-series-summary-statistics:invalid-parameters","'dataSeriesName' is not valid");if("time-series-fields"!==o.type)throw new e("time-series-summary-statistics:invalid-parameters","'dataSeriesName' has unsupported type");const m=n(a,o);return r({layer:t.layer,fields:m,view:t.view,filter:t.filter,signal:t.signal})}function m(r){if(!r.dataSeriesName||!r.layer)return r;const a=s(r.layer);if(!a)throw new e("resolve-data-series-info:invalid-parameters","'layer' must support dataSeriesInfos");const n=i(a,r.dataSeriesName);if(!n)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesName' is not valid");if("time-series-fields"!==n.type)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesName' has unsupported type");const o=t(n);r.valueExpression=o;const m=a.dataSeriesInfos?.indexOf(n)??-1;return r.valueExpressionTitle=n.title||`${n.name} ${m}`,"field"in r&&(r.field=null),r}export{o as getTimeSeriesSummaryStatistics,m as resolveDataSeriesInfo};
2
+ import e from"../../../core/Error.js";import{getSourceLayer as t,getDataSeriesInfo as i}from"../../../layers/support/dataSeriesUtils.js";import{createTimeSeriesExpression as a}from"../../../layers/support/timeSeriesUtils.js";import s from"../../statistics/summaryStatistics.js";import{isIntegerField as r,castIntegerFieldToFloat as n}from"../../support/utils.js";import{createLayerAdapter as o,featureCapableLayerTypes as l}from"../../support/adapters/support/layerUtils.js";const m=new Set(["big-integer","double","integer","long","single","small-integer"]);function u(t,i){const a=i.fieldTimeMappings??[],s=[];for(const r of a){const a=r.fieldName;if(!a)throw new e("time-series-summary-statistics:invalid-parameters","Found a time series mapping with an empty 'fieldName'");const n=t.getField(a);if(!n)throw new e("time-series-summary-statistics:invalid-parameters",`Field '${a}' defined in time series '${i.name}' does not exist`);if(!m.has(n.type))throw new e("time-series-summary-statistics:invalid-parameters",`Field '${a}' in time series '${i.name}' has unsupported type '${n.type}'`);s.push(a)}return s}function p(t,i,a){if(null==i)return;const s=t.calculationMethods?.find(e=>e.name===i);if(!s?.type)throw new e(`${a}:invalid-parameters`,"'dataSeriesCalculationName' is not valid");return s}function d(e,t,i){const a="change-from-first"===i||"percent-change-from-first"===i,s="percent-change-from-first"===i||"percent-change-from-previous"===i;return t.slice(1).map((i,o)=>{const l=a?t[0]:t[o],m=r(e,l)?n(l):l,u=r(e,i)?n(i):i;return{sqlExpression:s?`CASE WHEN ${l} IS NULL OR ${l} = 0 OR ${i} IS NULL THEN NULL ELSE 100.0 * (${u} - ${m}) / ${m} END`:`CASE WHEN ${l} IS NULL OR ${i} IS NULL THEN NULL ELSE ${u} - ${m} END`}})}function c(e){const t=e.filter(e=>e.count),i=t.reduce((e,t)=>e+(t.count??0),0);if(!i)return{count:0};const a=Math.min(...t.map(e=>e.min)),s=Math.max(...t.map(e=>e.max)),r=t.reduce((e,t)=>e+(t.sum??0),0),n=r/i,o=t.reduce((e,t)=>e+(t.variance??0)*Math.max((t.count??0)-1,0),0),l=t.reduce((e,t)=>e+(t.count??0)*((t.avg??0)-n)**2,0),m=i>1?(o+l)/(i-1):0,u=Math.sqrt(m);return{min:a,max:s,avg:n,count:i,sum:r,variance:m,stddev:u}}async function f(t,i,a,r){const n=o(t.layer,l);if(!n)throw new e("time-series-summary-statistics:invalid-parameters","'layer' must be a feature-capable layer");await n.load(null!=t.signal?{signal:t.signal}:null);return c(await Promise.all(d(i,a,r).map(({sqlExpression:e})=>s({layer:n,sqlExpression:e,view:t.view,filter:t.filter,signal:t.signal}))))}function y(e,t,i){const a=e.dataSeriesInfos?.indexOf(t)??-1,s=t.title||`${t.name} ${a}`,r=i?.title;return r||(i?.type?`${s} ${i.type}`:s)}async function v(a){const r=t(a.layer);if(!r)throw new e("time-series-summary-statistics:invalid-parameters","'layer' must support dataSeriesInfos");const n=i(r,a.dataSeriesName);if(!n)throw new e("time-series-summary-statistics:invalid-parameters","'dataSeriesName' is not valid");if("time-series-fields"!==n.type)throw new e("time-series-summary-statistics:invalid-parameters","'dataSeriesName' has unsupported type");const o=p(n,a.dataSeriesCalculationName,"time-series-summary-statistics"),l=u(r,n);return o?.type?f(a,r,l,o.type):s({layer:a.layer,fields:l,view:a.view,filter:a.filter,signal:a.signal})}function w(s){if(!s.dataSeriesName||!s.layer){if(null!=s.dataSeriesCalculationName)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesCalculationName' requires a valid 'dataSeriesName' and 'layer'");return s}const r=t(s.layer);if(!r)throw new e("resolve-data-series-info:invalid-parameters","'layer' must support dataSeriesInfos");const n=i(r,s.dataSeriesName);if(!n)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesName' is not valid");if("time-series-fields"!==n.type)throw new e("resolve-data-series-info:invalid-parameters","'dataSeriesName' has unsupported type");const o=p(n,s.dataSeriesCalculationName,"resolve-data-series-info"),l=a(n,{calculationMethod:o?.type??void 0});return s.valueExpression=l,s.valueExpressionTitle=y(r,n,o),"field"in s&&(s.field=null),s}export{v as getTimeSeriesSummaryStatistics,w as resolveDataSeriesInfo};
@@ -182,6 +182,12 @@ export interface RendererParameters extends AbortOptions {
182
182
  * precedence is `dataSeriesName` over `valueExpression` over `field`.
183
183
  */
184
184
  dataSeriesName?: string | null;
185
+ /**
186
+ * Name of the calculation method to use in the data series configuration referenced by `dataSeriesName`.
187
+ *
188
+ * @since 5.2
189
+ */
190
+ dataSeriesCalculationName?: string | null;
185
191
  /**
186
192
  * Provides options for setting a title to a field that will override the field
187
193
  * alias defined in the service. This title will represent the field in the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import o from"../../renderers/PointCloudUniqueValueRenderer.js";import t from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as u,calculateDateFormatInterval as p,dateFormatIntervalOptions as m}from"../../renderers/support/utils.js";import d from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import c from"../heuristics/outline.js";import f from"../heuristics/sizeRange.js";import{spliceVisualVariables as y,findOutlineVVIndex as v,findScaleDependentSizeVVIndex as b,processRegenerateParams as g,getRendererToUpdate as h,getStyleType as w,hasOutlineVV as T,hasScaleDependentSizeVV as E}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as z}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as x,errorCallback as I,getBasemapInfo as V,isValidPointSize as S,verifyBasicFieldValidity as j,getSymbolSizeFromScheme as M,getSymbolOutlineFromScheme as O,createSymbol as q}from"./support/utils.js";import U from"../statistics/uniqueValues.js";import{verifyBinningParams as C}from"../support/binningUtils.js";import{getFieldsList as B,fieldDelimiter as R,isAnyDateField as N}from"../support/utils.js";import{createLayerAdapter as P,getLayerTypeLabels as Z,binningCapableLayerTypes as F,featureCapableLayerTypes as A}from"../support/adapters/support/layerUtils.js";import{cloneScheme as D,getSchemes as k}from"../symbology/type.js";async function L(e){const n=z({...e});if(!n?.layer||!n.field&&!n.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(n.valueExpression&&!n.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");n.forBinning&&C(n,"type-renderer");const r={...n,layer:n.layer};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.sortBy??="count",r.sortEnabled??=!0,r.statistics=l(r.statistics);const o=null==r.numTypes?10:r.numTypes,t=n.forBinning?F:A,s=P(r.layer,t,n.forBinning);if(!s)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+Z(t).join(", "));const a=null!=r.signal?{signal:r.signal}:null;await s.load(a);const u=s.geometryType;r.outlineOptimizationEnabled="polygon"===u&&r.outlineOptimizationEnabled;const p="featureReduction"in n.layer&&"cluster"===n.layer.featureReduction?.type;if(r.sizeOptimizationEnabled=!("point"!==u&&"multipoint"!==u&&"polyline"!==u||p)&&r.sizeOptimizationEnabled,"mesh"===u)r.symbolType="3d-volumetric",r.colorMixMode=r.colorMixMode||"replace",r.edgesType=r.edgesType||"none";else{if("3d-volumetric-uniform"===r.symbolType&&"point"!==u)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const m=await B({field:r.field,field2:r.field2,field3:r.field3,valueExpression:r.valueExpression}),d=j(s,m,"type-renderer:invalid-parameters");if(d)throw d;return{...r,layer:s,numTypes:o}}async function $(e){const l="regenerate-type-renderer";await g(e,l);const n=await h(e),r=w(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:y}=e,v=n.authoringInfo?.dataSeriesName,b=T(n),z=E(n),x=await L({layer:m,field:o,field2:t,field3:s,valueExpression:a,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:b,sizeOptimizationEnabled:z,dataSeriesName:v,forBinning:d,filter:c,view:f,signal:y});return{...e,creatorParameters:x,renderer:n}}async function G(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[10],o=P(n.layer,r);if(!o)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+Z(r).join(", "));if(n.layer=o,n.density=n.density||25,n.size=n.size||"100%",!S(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const t=null!=n.signal?{signal:n.signal}:null;await o.load(t);const s=await B({field:n.field}),a=j(o,s,"type-point-cloud-class-renderer:invalid-parameters");if(a)throw a;return n}async function H(e){let i=e.typeScheme,l=null,n=null;const r=await V(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:D(i),basemapId:l,basemapTheme:n};const o=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return o&&(i=o.primaryScheme,l=o.basemapId,n=o.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function J(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function K(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function Q(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function W(e,i){let l=i.count-e.count;return 0===l&&(l=K(e,i)),l}function X(e,i,l){let n;"count"===i?(n=W,l&&"codedValues"in l&&l.codedValues&&(n=Q)):"value"===i&&(n=K,l&&"codedValues"in l&&l.codedValues&&(n=J)),n&&e.sort(n)}async function Y(e,i,l,r){const o=await n("esri/smartMapping/t9n/smartMapping"),{field:p,field2:m,field3:d}=i,c=e.uniqueValueInfos,f=i.layer,y=p?f.getField(p):null,v=y?f.getFieldDomain(y.name):null,b=-1===i.numTypes?c.length:i.numTypes,g=f.geometryType,h=new t({field:p,field2:m,field3:d,fieldDelimiter:p&&m?R:null}),w=[],T=[],E={value:null,domain:v,fieldInfo:y};c.forEach((e,i)=>{E.value=e.value,e.label=u(E);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&w.unshift(i)});for(const n of w)T.unshift(c.splice(n,1)[0]);!1!==i.sortEnabled&&X(c,i.sortBy,v),_(E,i,c);const z=l?.opacity,x=await H({numColors:c.length,basemap:i.basemap,geometryType:g,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),I=x.scheme,V=I.colors.map(e=>e.clone()),S=M(I,g),j=O(I,g,z);c.forEach((e,l)=>{E.value=e.value,e.label=u(E),e.symbol=q(g,{type:i.symbolType,color:V[l],size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})}),i.valueExpression&&(h.valueExpression=i.valueExpression,h.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(h.legendOptions=new a(i.legendOptions));for(let n=0;n<b;n++){const e=c[n];e&&h.addUniqueValueInfo({value:e.value,label:e.label,symbol:q(g,{type:i.symbolType,color:V[n].clone(),size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(h.defaultSymbol=q(g,{type:i.symbolType,color:I.noDataColor,size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),h.defaultLabel=o.other);for(const n of T)n.symbol=q(g,{type:i.symbolType,color:I.noDataColor,size:S,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),c.push(n);const U=[],C=h.uniqueValueInfos?.length??0,B=C===c.length?-1:C;if(B>-1)for(let n=B;n<c.length;n++)U.push({...c[n]});return l?.visualVariables?.length&&(h.visualVariables=l.visualVariables.map(e=>e.clone())),r?.minSize&&(h.visualVariables?h.visualVariables.push(r.minSize):h.visualVariables=[r.minSize]),i.dataSeriesName&&(h.authoringInfo=new s({dataSeriesName:i.dataSeriesName})),{renderer:h,uniqueValueInfos:c,excludedUniqueValueInfos:U,typeScheme:D(I),basemapId:x.basemapId,basemapTheme:x.basemapTheme}}function _(e,i,l){const{field:n,numTypes:o,layer:t,view:s}=i,a=n?t.getField(n):null;if(a&&(N(a)||r(a))){const i=l.filter((e,i)=>i<o).map(e=>e.value),n=r(a)?null:p(i),u=n?m[n]:void 0;if(e.dateFormatOptions={fieldType:a.type,format:u},s){const i=t.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function ee(i,l){const n=i.uniqueValueInfos,r=await H({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),o=r?.scheme,t="point-cloud-class"===o?.theme,s=t?o.colors:e(o?.colors??[],n.length);return X(n,"value"),n.map((e,i)=>{const l=e.value;let n=null;return t?(n=s[l],n||(n=s[s.length-1])):n=s[i],new d({values:[l],color:n,label:e.label})})}async function ie(e){const i=await L(e),{layer:l,view:n,signal:r,filter:o}=i,t={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:o,signal:r},[s,a,u]=await Promise.all([null!=i.statistics?i.statistics:U(t),i.outlineOptimizationEnabled?c({layer:l,view:n,signal:r,filter:o}).catch(I):null,i.sizeOptimizationEnabled?f({layer:l,view:n,signal:r,filter:o}).catch(I):null]);return Y(s,i,a,u)}async function le(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:o}=await $(e),{layer:t,outlineOptimizationEnabled:s,sizeOptimizationEnabled:a,field:u,valueExpression:p,valueExpressionTitle:m}=i,[d,g]=await Promise.all([s?c({layer:t,view:l,signal:n,filter:r}).catch(I):null,a?f({layer:t,view:l,signal:n,filter:r}).catch(I):null]);return y(o,d?.visualVariables,v),y(o,g?.minSize,b),i.dataSeriesName&&(o.field=u,o.valueExpression=p,o.valueExpressionTitle=m),{renderer:o}}async function ne(e){const i=await G(e),l=null!=i.statistics?i.statistics:await U({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new o({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:x(i.size),colorUniqueValueInfos:await ee(l,i.typeScheme)})}}export{ne as createPCClassRenderer,ie as createRenderer,H as getTypeSchemeData,le as regenerateRenderer};
2
+ import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as l}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import{isTimeOnlyField as r}from"../../layers/support/fieldUtils.js";import a from"../../renderers/PointCloudUniqueValueRenderer.js";import o from"../../renderers/UniqueValueRenderer.js";import t from"../../renderers/support/AuthoringInfo.js";import s from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as u,calculateDateFormatInterval as p,dateFormatIntervalOptions as m}from"../../renderers/support/utils.js";import d from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import c from"../heuristics/outline.js";import f from"../heuristics/sizeRange.js";import{spliceVisualVariables as y,findOutlineVVIndex as v,findScaleDependentSizeVVIndex as g,processRegenerateParams as h,getRendererToUpdate as b,getStyleType as w,hasOutlineVV as T,hasScaleDependentSizeVV as E}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as z}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as x,errorCallback as I,getBasemapInfo as S,isValidPointSize as V,verifyBasicFieldValidity as j,getSymbolSizeFromScheme as M,getSymbolOutlineFromScheme as O,createSymbol as C}from"./support/utils.js";import q from"../statistics/uniqueValues.js";import{verifyBinningParams as U}from"../support/binningUtils.js";import{getFieldsList as N,fieldDelimiter as B,isAnyDateField as R}from"../support/utils.js";import{createLayerAdapter as P,getLayerTypeLabels as Z,binningCapableLayerTypes as F,featureCapableLayerTypes as A}from"../support/adapters/support/layerUtils.js";import{cloneScheme as D,getSchemes as k}from"../symbology/type.js";async function L(e){const n=z({...e});if(!n?.layer||!n.field&&!n.valueExpression)throw new i("type-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(n.valueExpression&&!n.view)throw new i("type-renderer:missing-parameters","View is required when 'valueExpression' is specified");n.forBinning&&U(n,"type-renderer");const r={...n,layer:n.layer};r.symbolType=r.symbolType||"2d",r.defaultSymbolEnabled??=!0,r.sortBy??="count",r.sortEnabled??=!0,r.statistics=l(r.statistics);const a=null==r.numTypes?10:r.numTypes,o=n.forBinning?F:A,t=P(r.layer,o,n.forBinning);if(!t)throw new i("type-renderer:invalid-parameters","'layer' must be one of these types: "+Z(o).join(", "));const s=null!=r.signal?{signal:r.signal}:null;await t.load(s);const u=t.geometryType;r.outlineOptimizationEnabled="polygon"===u&&r.outlineOptimizationEnabled;const p="featureReduction"in n.layer&&"cluster"===n.layer.featureReduction?.type;if(r.sizeOptimizationEnabled=!("point"!==u&&"multipoint"!==u&&"polyline"!==u||p)&&r.sizeOptimizationEnabled,"mesh"===u)r.symbolType="3d-volumetric",r.colorMixMode=r.colorMixMode||"replace",r.edgesType=r.edgesType||"none";else{if("3d-volumetric-uniform"===r.symbolType&&"point"!==u)throw new i("type-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(r.symbolType.includes("3d-volumetric")&&"3d"!==r.view?.type)throw new i("type-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const m=await N({field:r.field,field2:r.field2,field3:r.field3,valueExpression:r.valueExpression}),d=j(t,m,"type-renderer:invalid-parameters");if(d)throw d;return{...r,layer:t,numTypes:a}}async function $(e){const l="regenerate-type-renderer";await h(e,l);const n=await b(e),r=w(n);if(!r||!["type","type-size"].includes(r))throw new i(`${l}:invalid-parameters`,"Renderer is invalid");const{field:a,field2:o,field3:t,valueExpression:s,valueExpressionTitle:u}=n,p=n.uniqueValueInfos.length,{layer:m,forBinning:d,filter:c,view:f,signal:y}=e,v=n.authoringInfo?.dataSeriesName,g=n.authoringInfo?.dataSeriesCalculationName,z=T(n),x=E(n),I=await L({layer:m,field:a,field2:o,field3:t,valueExpression:s,valueExpressionTitle:u,numTypes:p,outlineOptimizationEnabled:z,sizeOptimizationEnabled:x,dataSeriesName:v,dataSeriesCalculationName:g,forBinning:d,filter:c,view:f,signal:y});return{...e,creatorParameters:I,renderer:n}}async function G(e){if(!e?.layer||!e.field)throw new i("type-point-cloud-class-renderer:missing-parameters","'layer' and 'field' parameters are required");const n={...e,layer:e.layer};n.statistics=l(n.statistics);const r=[10],a=P(n.layer,r);if(!a)throw new i("type-point-cloud-class-renderer:invalid-parameters","'layer' must be one of these types: "+Z(r).join(", "));if(n.layer=a,n.density=n.density||25,n.size=n.size||"100%",!V(n.size))throw new i("type-point-cloud-class-renderer:invalid-parameters","Invalid 'size' parameter. It should be a string of the form '100%'");const o=null!=n.signal?{signal:n.signal}:null;await a.load(o);const t=await N({field:n.field}),s=j(a,t,"type-point-cloud-class-renderer:invalid-parameters");if(s)throw s;return n}async function H(e){let i=e.typeScheme,l=null,n=null;const r=await S(e.basemap,e.view);if(l=null!=r.basemapId?r.basemapId:null,n=null!=r.basemapTheme?r.basemapTheme:null,i)return{scheme:D(i),basemapId:l,basemapTheme:n};const a=k({numColors:e.numColors,basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return a&&(i=a.primaryScheme,l=a.basemapId,n=a.basemapTheme),{scheme:i,basemapId:l,basemapTheme:n}}function J(e,i){let l;return l=e.label<i.label?-1:e.label>i.label?1:0,l}function K(e,i){let l;return l=e.value<i.value?-1:e.value>i.value?1:0,l}function Q(e,i){let l=i.count-e.count;return 0===l&&(l=J(e,i)),l}function W(e,i){let l=i.count-e.count;return 0===l&&(l=K(e,i)),l}function X(e,i,l){let n;"count"===i?(n=W,l&&"codedValues"in l&&l.codedValues&&(n=Q)):"value"===i&&(n=K,l&&"codedValues"in l&&l.codedValues&&(n=J)),n&&e.sort(n)}async function Y(e,i,l,r){const a=await n("esri/smartMapping/t9n/smartMapping"),{field:p,field2:m,field3:d}=i,c=e.uniqueValueInfos,f=i.layer,y=p?f.getField(p):null,v=y?f.getFieldDomain(y.name):null,g=-1===i.numTypes?c.length:i.numTypes,h=f.geometryType,b=new o({field:p,field2:m,field3:d,fieldDelimiter:p&&m?B:null}),w=[],T=[],E={value:null,domain:v,fieldInfo:y};c.forEach((e,i)=>{E.value=e.value,e.label=u(E);const l=e.value;(null===l||"string"==typeof l&&l.toLowerCase().includes("<null>"))&&w.unshift(i)});for(const n of w)T.unshift(c.splice(n,1)[0]);!1!==i.sortEnabled&&X(c,i.sortBy,v),_(E,i,c);const z=l?.opacity,x=await H({numColors:c.length,basemap:i.basemap,geometryType:h,typeScheme:i.typeScheme,worldScale:!!i.symbolType?.includes("3d-volumetric"),view:i.view}),I=x.scheme,S=I.colors.map(e=>e.clone()),V=M(I,h),j=O(I,h,z);c.forEach((e,l)=>{E.value=e.value,e.label=u(E),e.symbol=C(h,{type:i.symbolType,color:S[l],size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})}),i.valueExpression&&(b.valueExpression=i.valueExpression,b.valueExpressionTitle=i.valueExpressionTitle),i.legendOptions&&(b.legendOptions=new s(i.legendOptions));for(let n=0;n<g;n++){const e=c[n];e&&b.addUniqueValueInfo({value:e.value,label:e.label,symbol:C(h,{type:i.symbolType,color:S[n].clone(),size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}})})}i.defaultSymbolEnabled&&(b.defaultSymbol=C(h,{type:i.symbolType,color:I.noDataColor,size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),b.defaultLabel=a.other);for(const n of T)n.symbol=C(h,{type:i.symbolType,color:I.noDataColor,size:V,outline:j,meshInfo:{colorMixMode:i.colorMixMode,edgesType:i.edgesType}}),c.push(n);const q=[],U=b.uniqueValueInfos?.length??0,N=U===c.length?-1:U;if(N>-1)for(let n=N;n<c.length;n++)q.push({...c[n]});return l?.visualVariables?.length&&(b.visualVariables=l.visualVariables.map(e=>e.clone())),r?.minSize&&(b.visualVariables?b.visualVariables.push(r.minSize):b.visualVariables=[r.minSize]),i.dataSeriesName&&(b.authoringInfo=new t({dataSeriesName:i.dataSeriesName,dataSeriesCalculationName:i.dataSeriesCalculationName})),{renderer:b,uniqueValueInfos:c,excludedUniqueValueInfos:q,typeScheme:D(I),basemapId:x.basemapId,basemapTheme:x.basemapTheme}}function _(e,i,l){const{field:n,numTypes:a,layer:o,view:t}=i,s=n?o.getField(n):null;if(s&&(R(s)||r(s))){const i=l.filter((e,i)=>i<a).map(e=>e.value),n=r(s)?null:p(i),u=n?m[n]:void 0;if(e.dateFormatOptions={fieldType:s.type,format:u},t){const i=o.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:"preferredTimeZone"in i?i.preferredTimeZone:null,viewTimeZone:t.timeZone,datesInUnknownTimezone:"datesInUnknownTimezone"in i&&i.datesInUnknownTimezone}}}}async function ee(i,l){const n=i.uniqueValueInfos,r=await H({numColors:n.length,basemap:"gray",theme:"point-cloud-class",geometryType:"point",typeScheme:l}),a=r?.scheme,o="point-cloud-class"===a?.theme,t=o?a.colors:e(a?.colors??[],n.length);return X(n,"value"),n.map((e,i)=>{const l=e.value;let n=null;return o?(n=t[l],n||(n=t[t.length-1])):n=t[i],new d({values:[l],color:n,label:e.label})})}async function ie(e){const i=await L(e),{layer:l,view:n,signal:r,filter:a}=i,o={layer:l,field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression,returnAllCodedValues:i.returnAllCodedValues,view:n,filter:a,signal:r},[t,s,u]=await Promise.all([null!=i.statistics?i.statistics:q(o),i.outlineOptimizationEnabled?c({layer:l,view:n,signal:r,filter:a}).catch(I):null,i.sizeOptimizationEnabled?f({layer:l,view:n,signal:r,filter:a}).catch(I):null]);return Y(t,i,s,u)}async function le(e){const{creatorParameters:i,view:l,signal:n,filter:r,renderer:a}=await $(e),{layer:o,outlineOptimizationEnabled:t,sizeOptimizationEnabled:s,field:u,valueExpression:p,valueExpressionTitle:m}=i,[d,h]=await Promise.all([t?c({layer:o,view:l,signal:n,filter:r}).catch(I):null,s?f({layer:o,view:l,signal:n,filter:r}).catch(I):null]);return y(a,d?.visualVariables,v),y(a,h?.minSize,g),i.dataSeriesName&&(a.field=u,a.valueExpression=p,a.valueExpressionTitle=m),{renderer:a}}async function ne(e){const i=await G(e),l=null!=i.statistics?i.statistics:await q({layer:i.layer,field:i.field,signal:i.signal});return{renderer:new a({field:i.field,pointsPerInch:i.density??void 0,pointSizeAlgorithm:x(i.size),colorUniqueValueInfos:await ee(l,i.typeScheme)})}}export{ne as createPCClassRenderer,ie as createRenderer,H as getTypeSchemeData,le as regenerateRenderer};
@@ -228,6 +228,12 @@ export interface VisualVariablesParamsBase extends AbortOptions {
228
228
  * precedence is `dataSeriesName` over `valueExpression` over `field`.
229
229
  */
230
230
  dataSeriesName?: string | null;
231
+ /**
232
+ * Name of the calculation method to use in the data series configuration referenced by `dataSeriesName`.
233
+ *
234
+ * @since 5.2
235
+ */
236
+ dataSeriesCalculationName?: string | null;
231
237
  /**
232
238
  * A SQL expression evaluating to a number. When provided, statistics are
233
239
  * queried from the server for the entire layer. Only use this parameter when generating a renderer based on
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createContinuousRenderer as l,createVisualVariables as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,findSizeVVIndex as c,getAuthoringInfoVisualVariable as v,processRegenerateParams as d,getRendererToUpdate as f,getStyleType as b,hasOutlineVV as y,hasScaleDependentSizeVV as w}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as h}from"./support/timeSeriesUtils.js";import{verifyBasicFieldValidity as z,createStopValuesForAboveBelow as g,clampAboveAndBelowStopValues as V,createDefaultStopValues as x}from"./support/utils.js";import{verifyBinningParams as E}from"../support/binningUtils.js";import{isAnyDateField as O,getFieldsList as S}from"../support/utils.js";import{binningCapableLayerTypes as T,featureCapableLayerTypes as I,createLayerAdapter as j,getLayerTypeLabels as B}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as U}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as q}from"../../symbols/support/cimSymbolUtils.js";import D from"../../symbols/support/Symbol3DMaterial.js";const C=2**53-1;async function F(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===a.theme&&a.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");a.forBinning&&E(a,"univariate-colorsize-visual-variables");const s={...a,layer:a.layer},o=a.forBinning?T:I,n=j(s.layer,o,a.forBinning);if(!n)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));s.layer=n,s.theme=s.theme||s.colorOptions?.theme?s.theme:"high-to-low";const l=null!=s.signal?{signal:s.signal}:null;await n.load(l);const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(n,t,"univariate-colorsize-visual-variables:invalid-parameters");if(r)throw r;return s}function k(e,i){const a={...e},{sizeOptions:s,theme:o}=a,n=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:n}}function N(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,n=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:n}}async function A(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&E(a,"univariate-colorsize-continuous-renderer");const s={...a,layer:a.layer};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=s.colorOptions.isContinuous??!1;const o=a.forBinning?T:I,n=j(s.layer,o,a.forBinning);if(!n)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));const l=null!=s.signal?{signal:s.signal}:null;if(await n.load(l),"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"!==n.geometryType&&"polygon"!==n.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(n,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return{...s,layer:n}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await d(i,a);const s=await f(i);if("univariate-color-size"!==b(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:n,filter:l,view:t,signal:r}=i,u=v(s,"color")?.dataSeriesName??v(s,"size")?.dataSeriesName,{field:p,normalizationField:m,valueExpression:c,valueExpressionTitle:h}=s,z=y(s),g=w(s),V=s.authoringInfo?.univariateTheme,x=await A({layer:o,field:p,normalizationField:m,valueExpression:c,valueExpressionTitle:h,outlineOptimizationEnabled:z,theme:V,colorOptions:{isContinuous:"above-and-below"===V?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:g},dataSeriesName:u,forBinning:n,filter:l,view:t,signal:r});return{...i,creatorParameters:x,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)q(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new D({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||U(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,n=s.layer,l=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),l||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,n.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-C,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:C,symbol:r})],l&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=l)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),n=o?[]:i.size.visualVariables.map(e=>e.clone());a?n.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&n.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=n}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,n){const l=i[0],t=i[1],r=Math.round((t-l)/2)+l,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:l}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:n[0],size:o(u,n[0])}),new s({value:n[1],size:o(u,n[1])}),new s({value:n[2],size:o(u,n[2])}),new s({value:n[3],size:o(u,n[3])}),new s({value:n[4],size:o(u,n[4])})]}async function K(e,i,a,s,o){const n=e.find(e=>"width-and-depth"!==e.axis&&!e.target),l="number"==typeof n?.minSize?n?.minSize:null,t="number"==typeof n?.maxSize?n?.maxSize:null;if(null!=n?.minDataValue&&null!=l&&null!=t)if(s)if("above-and-below"===s){n.minDataValue=null,n.maxDataValue=null,n.minSize=null,n.maxSize=null;const e=g(a,o),s=V(e,a);await J(n,[l,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=n,s=x(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),n.minDataValue=s[0],n.maxDataValue=s[s.length-1]}else n.minDataValue=i.stops[0].value,n.maxDataValue=i.stops[i.stops.length-1].value}function Q(e,a,s){const{theme:o,minValue:n,maxValue:l}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=n??u[0].value,t.maxSliderValue=r.maxSliderValue=l??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function W(e){const i=await F(e),a=await n(N(i)),{visualVariable:s,statistics:o}=a,l=await t(k(i,o)),r=l.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,O(p)),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:Q(i,a,l)}}async function X(e){return Y(e)}async function Y(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await l(M(i)),n=H(i);n.statistics=s;const t=await W(n);return"above-and-below"===i.theme?$(a,t,i):G(a,t),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}async function Z(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:l,valueExpression:d,valueExpressionTitle:f}=i,{renderer:b,statistics:y}=await r(e),w=await F({...H(i),statistics:y}),h=await n(N(w)),z=h.visualVariable,g=(await t(k(w))).visualVariables,V=s?a.getField(s):null;await K(g,z,y,o,O(V));const x=l?.isContinuous||"above-and-below"!==o,E=b.visualVariables?.find(u);b.valueExpression=d??null,b.valueExpressionTitle=f??null,x&&E?.stops&&(E.stops.forEach((e,i)=>e.value=z.stops[i].value),E.valueExpression=z.valueExpression??null,E.valueExpressionTitle=z.valueExpressionTitle??null,p(b,h.authoringInfo,"color")),m(b,g,c);const S=v(b,"size");if((!o||"high-to-low"===o)&&"reference-size"===S?.theme&&2===S.sizeStops?.length){const{stops:e}=z;S.sizeStops[0].value=e[0].value,S.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&g[0]?.stops){const e=g[0].stops;b.classBreakInfos[0].maxValue=e[2].value,b.classBreakInfos[1].minValue=e[2].value}return{renderer:b}}export{X as createContinuousRenderer,Y as createRenderer,W as createVisualVariables,Z as regenerateRenderer};
2
+ import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as l}from"./color.js";import{createContinuousRenderer as n,createVisualVariables as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,findSizeVVIndex as c,getAuthoringInfoVisualVariable as v,processRegenerateParams as d,getRendererToUpdate as f,getStyleType as b,hasOutlineVV as y,hasScaleDependentSizeVV as w}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as h}from"./support/timeSeriesUtils.js";import{verifyBasicFieldValidity as z,createStopValuesForAboveBelow as g,clampAboveAndBelowStopValues as V,createDefaultStopValues as x}from"./support/utils.js";import{verifyBinningParams as E}from"../support/binningUtils.js";import{isAnyDateField as O,getFieldsList as S}from"../support/utils.js";import{binningCapableLayerTypes as T,featureCapableLayerTypes as I,createLayerAdapter as j,getLayerTypeLabels as B}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as C}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as U}from"../../symbols/support/cimSymbolUtils.js";import q from"../../symbols/support/Symbol3DMaterial.js";const D=2**53-1;async function F(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===a.theme&&a.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");a.forBinning&&E(a,"univariate-colorsize-visual-variables");const s={...a,layer:a.layer},o=a.forBinning?T:I,l=j(s.layer,o,a.forBinning);if(!l)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));s.layer=l,s.theme=s.theme||s.colorOptions?.theme?s.theme:"high-to-low";const n=null!=s.signal?{signal:s.signal}:null;await l.load(n);const t=await S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(l,t,"univariate-colorsize-visual-variables:invalid-parameters");if(r)throw r;return s}function N(e,i){const a={...e},{sizeOptions:s,theme:o}=a,l=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:l}}function k(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,l=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:l}}async function A(i){const a=h({...i});if(!a?.layer||!(a.field||a.valueExpression||a.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(a.valueExpression&&!a.sqlExpression&&!a.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");a.forBinning&&E(a,"univariate-colorsize-continuous-renderer");const s={...a,layer:a.layer};s.symbolType=s.symbolType||"2d",s.colorOptions||(s.colorOptions={}),s.colorOptions.isContinuous=s.colorOptions.isContinuous??!1;const o=a.forBinning?T:I,l=j(s.layer,o,a.forBinning);if(!l)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+B(o).join(", "));const n=null!=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 S({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),r=z(l,t,"univariate-colorsize-continuous-renderer:invalid-parameters");if(r)throw r;return{...s,layer:l}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await d(i,a);const s=await f(i);if("univariate-color-size"!==b(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:l,filter:n,view:t,signal:r}=i,u=v(s,"color")?.dataSeriesName??v(s,"size")?.dataSeriesName,p=v(s,"color")?.dataSeriesCalculationName??v(s,"size")?.dataSeriesCalculationName,{field:m,normalizationField:c,valueExpression:h,valueExpressionTitle:z}=s,g=y(s),V=w(s),x=s.authoringInfo?.univariateTheme,E=await A({layer:o,field:m,normalizationField:c,valueExpression:h,valueExpressionTitle:z,outlineOptimizationEnabled:g,theme:x,colorOptions:{isContinuous:"above-and-below"===x?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:V},dataSeriesName:u,dataSeriesCalculationName:p,forBinning:l,filter:n,view:t,signal:r});return{...i,creatorParameters:E,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)U(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new q({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||C(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,l=s.layer,n=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),n||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,l.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-D,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:D,symbol:r})],n&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=n)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),l=o?[]:i.size.visualVariables.map(e=>e.clone());a?l.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&l.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=l}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,l){const n=i[0],t=i[1],r=Math.round((t-n)/2)+n,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:n}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:l[0],size:o(u,l[0])}),new s({value:l[1],size:o(u,l[1])}),new s({value:l[2],size:o(u,l[2])}),new s({value:l[3],size:o(u,l[3])}),new s({value:l[4],size:o(u,l[4])})]}async function K(e,i,a,s,o){const l=e.find(e=>"width-and-depth"!==e.axis&&!e.target),n="number"==typeof l?.minSize?l?.minSize:null,t="number"==typeof l?.maxSize?l?.maxSize:null;if(null!=l?.minDataValue&&null!=n&&null!=t)if(s)if("above-and-below"===s){l.minDataValue=null,l.maxDataValue=null,l.minSize=null,l.maxSize=null;const e=g(a,o),s=V(e,a);await J(l,[n,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=l,s=x(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),l.minDataValue=s[0],l.maxDataValue=s[s.length-1]}else l.minDataValue=i.stops[0].value,l.maxDataValue=i.stops[i.stops.length-1].value}function Q(e,a,s){const{theme:o,minValue:l,maxValue:n}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=l??u[0].value,t.maxSliderValue=r.maxSliderValue=n??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function W(e){const i=await F(e),a=await l(k(i)),{visualVariable:s,statistics:o}=a,n=await t(N(i,o)),r=n.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,O(p)),{basemapId:n.basemapId,basemapTheme:n.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:n.sizeScheme},authoringInfo:Q(i,a,n)}}async function X(e){return Y(e)}async function Y(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await n(M(i)),l=H(i);l.statistics=s;const t=await W(l);return"above-and-below"===i.theme?$(a,t,i):G(a,t),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?t.color:null,size:t.size,basemapId:t.basemapId,basemapTheme:t.basemapTheme}}async function Z(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:n,valueExpression:d,valueExpressionTitle:f}=i,{renderer:b,statistics:y}=await r(e),w=await F({...H(i),statistics:y}),h=await l(k(w)),z=h.visualVariable,g=(await t(N(w))).visualVariables,V=s?a.getField(s):null;await K(g,z,y,o,O(V));const x=n?.isContinuous||"above-and-below"!==o,E=b.visualVariables?.find(u);b.valueExpression=d??null,b.valueExpressionTitle=f??null,x&&E?.stops&&(E.stops.forEach((e,i)=>e.value=z.stops[i].value),E.valueExpression=z.valueExpression??null,E.valueExpressionTitle=z.valueExpressionTitle??null,p(b,h.authoringInfo,"color")),m(b,g,c);const S=v(b,"size");if((!o||"high-to-low"===o)&&"reference-size"===S?.theme&&2===S.sizeStops?.length){const{stops:e}=z;S.sizeStops[0].value=e[0].value,S.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&g[0]?.stops){const e=g[0].stops;b.classBreakInfos[0].maxValue=e[2].value,b.classBreakInfos[1].minValue=e[2].value}return{renderer:b}}export{X as createContinuousRenderer,Y as createRenderer,W as createVisualVariables,Z as regenerateRenderer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const b="20260927",e="d9dd5e9ba9bfc2bfdc5eb49e17f3f128911ebfac";export{b as buildDate,e as revision};
2
+ const e="20260929",c="7012c974759d1222c40beaeef038078e481a19db";export{e as buildDate,c as revision};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{getAssetUrl as t}from"../../assets.js";import e from"../../Color.js";import o from"../../request.js";import{LRUCache as s}from"../../core/LRUCache.js";import{pt2px as r}from"../../core/screenUtils.js";import{getCIMSymbolColor as n}from"./cimSymbolUtils.js";const i="picture-fill",l="simple-fill",a="simple-line",c="simple-marker",h="text",d="cim",m=new Map([["dash",[4,3]],["dashdot",[4,3,1,3]],["dot",[1,3]],["longdash",[8,3]],["longdashdot",[8,3,1,3]],["longdashdotdot",[8,3,1,3,1,3]],["shortdash",[4,1]],["shortdashdot",[4,1,1,1]],["shortdashdotdot",[4,1,1,1,1,1]],["shortdot",[1,1]],["solid",[]]]),p=new s(1e3);function u(e){const o=e.style;let s=null;if(e)switch(e.type){case c:"cross"!==o&&"x"!==o&&(s=e.color);break;case l:o&&"solid"!==o?"none"!==o&&(s={type:"pattern",x:0,y:0,src:t(`esri/symbols/patterns/${o}.png`),width:5,height:5}):s=e.color;break;case i:s={type:"pattern",src:e.url,width:r(e.width)*e.xscale,height:r(e.height)*e.yscale,x:r(e.xoffset),y:r(e.yoffset)};break;case h:s=e.color;break;case d:s=n(e)}return s}function f(t,e){const s=t+"-"+e,r=p.get(s);return null!=r?Promise.resolve(r):o(t,{responseType:"image"}).then(t=>{const o=t.data,r=o.naturalWidth,n=o.naturalHeight,i=document.createElement("canvas");i.width=r,i.height=n;const l=i.getContext("2d");l.fillStyle=e,l.fillRect(0,0,r,n),l.globalCompositeOperation="destination-in",l.drawImage(o,0,0);const a=i.toDataURL();return p.put(s,a),a})}function y(t){if(!t)return null;let e=null;switch(t.type){case l:case i:case c:e=y(t.outline);break;case a:{const o=r(t.width);null!=t.style&&"none"!==t.style&&0!==o&&(e={color:t.color,style:w(t.style),width:o,cap:t.cap,join:"miter"===t.join?r(t.miterLimit):t.join},e.dashArray=g(e).join(",")||"none");break}default:e=null}return e}function g(t){if(!t?.style)return[];const{dashArray:e,style:o,width:s}=t;if("string"==typeof e&&"none"!==e)return e.split(",").map(t=>Number(t));const r=s??0,n=m.has(o)?m.get(o).map(t=>t*r):[];if("butt"!==t.cap)for(const[i,l]of n.entries())n[i]=i%2==1?l+r:Math.max(l-r,1);return n}const w=(()=>{const t={};return e=>{if(t[e])return t[e];const o=e.replaceAll("-","");return t[e]=o,o}})(),b=new e([128,128,128]);export{b as defaultThematicColor,w as dekebabifyLineStyle,g as getDashArray,u as getFill,f as getPatternUrlWithColor,y as getStroke};
2
+ import{getAssetUrl as t}from"../../assets.js";import e from"../../Color.js";import o from"../../request.js";import{LRUCache as r}from"../../core/LRUCache.js";import{pt2px as s}from"../../core/screenUtils.js";import{getCIMSymbolColor as n}from"./cimSymbolUtils.js";const i="picture-fill",l="simple-fill",a="simple-line",c="simple-marker",h="text",d="cim",m=new Map([["dash",[4,3]],["dashdot",[4,3,1,3]],["dot",[1,3]],["longdash",[8,3]],["longdashdot",[8,3,1,3]],["longdashdotdot",[8,3,1,3,1,3]],["shortdash",[4,1]],["shortdashdot",[4,1,1,1]],["shortdashdotdot",[4,1,1,1,1,1]],["shortdot",[1,1]],["solid",[]]]),p=new r(1e3);function u(e){const o=e.style;let r=null;if(e)switch(e.type){case c:"cross"!==o&&"x"!==o&&(r=e.color);break;case l:o&&"solid"!==o?"none"!==o&&(r={type:"pattern",x:0,y:0,src:t(`esri/symbols/patterns/${o}.png`),width:5,height:5}):r=e.color;break;case i:r={type:"pattern",src:e.url,width:s(e.width)*e.xscale,height:s(e.height)*e.yscale,x:s(e.xoffset),y:s(e.yoffset)};break;case h:r=e.color;break;case d:r=n(e)}return r}function f(t,e){const r=t+"-"+e,s=p.get(r);return null!=s?Promise.resolve(s):o(t,{responseType:"image"}).then(t=>{const o=t.data,s=o.naturalWidth,n=o.naturalHeight,i=document.createElement("canvas");i.width=s,i.height=n;const l=i.getContext("2d");l.fillStyle=e,l.fillRect(0,0,s,n),l.globalCompositeOperation="destination-in",l.drawImage(o,0,0);const a=i.toDataURL();return p.put(r,a),a})}function y(t){if(!t)return null;let e=null;switch(t.type){case l:case i:case c:e=y(t.outline);break;case a:{const o=s(t.width);null!=t.style&&"none"!==t.style&&0!==o&&(e={color:t.color,style:b(t.style),width:o,cap:t.cap,join:"miter"===t.join?s(t.miterLimit):t.join},e.dashArray=g(e).join(",")||"none");break}default:e=null}return e}function g(t){if(!t?.style)return[];const{dashArray:e,style:o}=t;return"string"==typeof e&&"none"!==e?e.split(",").map(t=>Number(t)):w(m.get(o)??[],t)}function w(t,e){const o=e.width??0,r=t.map(t=>t*o);if("butt"!==e.cap)for(const[s,n]of r.entries())r[s]=s%2==1?n+o:Math.max(n-o,1);return r}const b=(()=>{const t={};return e=>{if(t[e])return t[e];const o=e.replaceAll("-","");return t[e]=o,o}})(),j=new e([128,128,128]);export{j as defaultThematicColor,b as dekebabifyLineStyle,g as getDashArray,u as getFill,f as getPatternUrlWithColor,y as getStroke,w as scaleDashArrayForStroke};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{getAssetUrl as e}from"../../assets.js";import{toHSV as t,toRGB as l}from"../../core/colorUtils.js";import s from"../../core/Error.js";import a from"../../core/Logger.js";import{pt2px as n}from"../../core/screenUtils.js";import{defaultThematicColor as r,dekebabifyLineStyle as i,getPatternUrlWithColor as o}from"./gfxUtils.js";import{adjustColorComponentBrightness as c,shapes as u,getTetrahedronShapes as p,getDiamondShapes as h,getCylinderShapes as m,getCubeShapes as f,getInvertedConeShapes as y,getConeShapes as d,getPathSymbolShapes as b,getWaterSymbolShapes as v,getExtrudeSymbolShapes as g}from"./previewUtils.js";import{defaultObjectPrimitive as k,defaultIconPrimitive as w}from"./primitives.js";import{renderSymbol as x,tintImageWithColor as M}from"./renderUtils.js";import{isVolumetricSymbol as L,getIconHref as j}from"./utils.js";import{resolveWebStyleSymbol as z}from"./webStyleSymbolUtils.js";const S=22,P=120,U=80,C=50,D=20;function O(e){const t=e.outline,l=null!=e.material?e.material.color:null,s=null!=l?l.toHex():null;if(null==t||"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type&&"none"===t.pattern.style)return"fill"===e.type&&"#ffffff"===s?{color:"#bdc3c7",width:.75}:null;const a=n(t.size)||0;return{color:"rgba("+(null!=t.color?t.color.toRgba():"255,255,255,1")+")",width:Math.min(a,U),style:"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type?i(t.pattern.style):null,join:"butt",cap:"patternCap"in t?t.patternCap:"butt"}}async function E(t,l){if(t.thumbnail?.url)return t.thumbnail.url;if("icon"===l.type){const e=l?.resource?.href;if(e)return j(l)}const s=e("esri/images/Legend/legend3dsymboldefault.png");if(t.styleOrigin&&(t.styleOrigin.styleName||t.styleOrigin.styleUrl)){const e=await z(t.styleOrigin,{portal:t.styleOrigin.portal}).catch(()=>null);if(e&&"thumbnail"in e&&e.thumbnail?.url)return e.thumbnail.url}return s}function q(e,s=1){const a=e.a,n=t(e),r=n.h,i=n.s/s,o=100-(100-n.v)/s,{r:c,g:u,b:p}=l({h:r,s:i,v:o});return[c,u,p,a]}function R(e){return"water"===e.type?null==e.color?null:e.color:null==e.material?.color?null:e.material.color}function Z(e,t=0){const l=R(e);if(!l){if("fill"===e.type)return null;const l=r.r,s=c(l,t);return[s,s,s,100]}const s=l.toRgba();for(let a=0;a<3;a++)s[a]=c(s[a],t);return s}async function H(t,l){const s=t.style;if("none"===s)return null;return{type:"pattern",x:0,y:0,src:await o(e(`esri/symbols/patterns/${s}.png`),l.toCss(!0)),width:5,height:5}}function I(e){return e.outline?O(e):{color:"rgba(0, 0, 0, 1)",width:1.5}}function N(e,t){const l=R(e);if(!l)return null;let s="rgba(";return s+=c(l.r,t)+",",s+=c(l.g,t)+",",s+=c(l.b,t)+",",s+l.a+");"}function T(e,t){const l=e.edges;if(!l||!l.color||!l.size)return null;return{color:l.color.toCss(!0),width:Math.min(n(l.size),t,U),join:"round"}}function F(e,t){const l=N(e,t);if(!l)return null;if("pattern"in e&&null!=e.pattern&&"style"===e.pattern.type&&"none"===e.pattern.style)return null;const s={color:l,width:Math.min(e.size?n(e.size):.75,U)};return"pattern"in e&&"style"===e.pattern?.type&&(s.style=i(e.pattern.style)),"cap"in e&&e.cap&&(s.cap=e.cap),"join"in e&&e.join&&(s.join="miter"===e.join?n(2):e.join),s}function $(e,t,l){const s=null!=l?.75*l:0;return{type:"linear",x1:s?.25*s:0,y1:s?.5*s:0,x2:s||4,y2:s?.5*s:4,colors:[{color:e,offset:0},{color:t,offset:1}]}}function A(e){const t=e.depth,l=e.height,s=e.width;return 0!==s&&0!==t&&0!==l&&s===t&&null!=s&&null!=l&&s<l}function B(e,t,l){const s=[];if(!e)return s;switch(e.type){case"icon":{const l=0,a=0,n=t,r=t;switch(e.resource?.primitive??w){case"circle":s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:Z(e,0),stroke:O(e)});break;case"square":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[l,a]},{command:"L",values:[n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"triangle":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"cross":s.push({shape:{type:"path",path:[{command:"M",values:[.5*n,a]},{command:"L",values:[.5*n,r]},{command:"M",values:[l,.5*r]},{command:"L",values:[n,.5*r]}]},stroke:I(e)});break;case"x":s.push({shape:{type:"path",path:[{command:"M",values:[l,a]},{command:"L",values:[n,r]},{command:"M",values:[n,a]},{command:"L",values:[l,r]}]},stroke:I(e)});break;case"kite":s.push({shape:{type:"path",path:[{command:"M",values:[l,.5*r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,.5*r]},{command:"L",values:[.5*n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)})}break}case"object":switch(e.resource?.primitive??k){case"cone":{const a=$(Z(e,0),Z(e,-.6),l?D:t),n=d(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a});break}case"inverted-cone":{const l=Z(e,0),a=$(l,Z(e,-.6),t),n=y(t);s.push({shape:n[0],fill:a},{shape:n[1],fill:l});break}case"cube":{const a=f(t,l);s.push({shape:a[0],fill:Z(e,0)},{shape:a[1],fill:Z(e,-.3)},{shape:a[2],fill:Z(e,-.5)});break}case"cylinder":{const a=$(Z(e,0),Z(e,-.6),l?D:t),n=m(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a},{shape:n[2],fill:Z(e,0)});break}case"diamond":{const l=h(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.3)},{shape:l[3],fill:Z(e,-.7)});break}case"sphere":{const l=$(Z(e,0),Z(e,-.6));l.x1=0,l.y1=0,l.x2=.25*t,l.y2=.25*t,s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:l});break}case"tetrahedron":{const l=p(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.6)});break}}break}return s}function G(e){const t="number"==typeof e?.size?e?.size:null;return t?n(t):null}function J(e){return"icon"===e.type?"multiply":"tint"}function K(e){return(e.material?.emissive?.strength??0)>0}async function Q(e,t){const l=G(t),s=t?.maxSize?n(t.maxSize):null,r=t?.disableUpsampling??!1,i=e.symbolLayers,o=[],c=[];let u=!1,p=0,h=0,m=null,f=0;i.forEach(a=>{if("icon"!==a.type&&"object"!==a.type)return;a&&"icon"===a.type&&(f=Math.max(a.size&&n(a.size),f));const i="icon"===a.type?a.size&&n(a.size):0,y=l||i?Math.ceil(Math.min(l||i,s||P)):S;let d="icon"===a.type?a.angle:null;if(null!=t?.rotation&&(d=(d??0)+t.rotation),c.push(d),"object"===a.type&&K(a)&&(m=a.material.emissive),a?.resource?.href){const t=E(e,a).then(e=>{const t=a?.material?.color,l=J(a);return M(e,y,t,l,r,m)}).then(e=>{const t=e.width,l=e.height;return p=Math.max(p,t),h=Math.max(h,l),d&&(u=!0),[{shape:{type:"image",x:0,y:0,width:t,height:l,src:e.url},fill:null,stroke:null}]});o.push(t)}else{let e=y;"icon"===a.type&&l&&(e=y*(i/f));const s="tall"===t?.symbolConfig||t?.symbolConfig?.isTall||"object"===a.type&&A(a);p=Math.max(p,s?D:e),h=Math.max(h,e),d&&a.resource?.primitive&&["square","triangle","x"].includes(a.resource?.primitive)&&(u=!0),o.push(Promise.resolve(B(a,e,s)))}});const y=await Promise.allSettled(o),d=[];return y.forEach(e=>{"fulfilled"===e.status?d.push(e.value):e.reason&&a.getLogger("esri.symbols.support.previewSymbol3D").warn("error while building swatchInfo!",e.reason)}),x(d,[p,h],{node:t?.node,scale:!1,opacity:t?.opacity,ariaLabel:t?.ariaLabel,rotations:c,useRotationSize:u,emissive:m})}function V(e,t){const l=e.symbolLayers,s=[],a=L(e),r=G(t),i=(t?.maxSize?n(t.maxSize):null)||U;let o,c=null,p=0,h=0;return l.forEach((e,t)=>{if(!e)return;if("line"!==e.type&&"path"!==e.type)return;const l=[];switch(e.type){case"line":{const s=F(e,0);if(null==s)break;const a=s?.width||0;0===t&&(o=a);const n=Math.min(r||a,i),c=0===t?n:r?n*(a/o):n,u=c>C/2?2*c:C;h=Math.max(h,c),p=Math.max(p,u),s.width=c,l.push({shape:{type:"path",path:[{command:"M",values:[0,.5*h]},{command:"L",values:[p,.5*h]}]},stroke:s});break}case"path":{const t=Math.min(r||S,i),s=Z(e,0),a=Z(e,-.2),n=N(e,-.4),o=n?{color:n,width:1}:{};if("quad"===e.profile){const t=e.width,n=e.height,r=b(t&&n?t/n:1,0===n,0===t),i={...o,join:"bevel"};l.push({shape:r[0],fill:a,stroke:i},{shape:r[1],fill:a,stroke:i},{shape:r[2],fill:s,stroke:i})}else l.push({shape:u.pathSymbol3DLayer[0],fill:a,stroke:o},{shape:u.pathSymbol3DLayer[1],fill:s,stroke:o});h=Math.max(h,t),p=h,K(e)&&(c=e.material.emissive)}}s.push(l)}),Promise.resolve(x(s,[p,h],{node:t?.node,scale:a,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:c}))}async function W(e,t){const l="mesh-3d"===e.type,s=e.symbolLayers,a=G(t),r=t?.maxSize?n(t.maxSize):null,i=a||S,o=[];let c=0,p=0,h=!1,m=null;for(let n=0;n<s.length;n++){const e=s.at(n),t=[];if(!l||"fill"===e.type){switch(e.type){case"fill":{const s=Math.min(i,r||P);if(c=Math.max(c,s),p=Math.max(p,s),h=!0,l){const l=u.meshSymbol3DFill,a=N(e,-.4),n=T(e,.05*s)??(a?{join:"round",color:a,width:1}:null);t.push({shape:l[0],fill:Z(e,0),stroke:n},{shape:l[1],fill:Z(e,-.2),stroke:n},{shape:l[2],fill:Z(e,-.6),stroke:n}),K(e)&&(m=e.material.emissive)}else{let l=Z(e,0);const s="pattern"in e?e.pattern:null,a=O(e),n=R(e);null!=s&&"style"===s.type&&"solid"!==s.style&&n&&(l=await H(s,n)),t.push({shape:u.fill[0],fill:l,stroke:a})}break}case"extrude":{const l=Z(e,0),s=Z(e,-.2),a=Math.min(i,r||P),n=g(a),o=S,u=.7*S+.5*a,h=T(e,.1*Math.min(o,u))??{join:"round",...F(e,-.4),width:1};t.push({shape:n[0],fill:s,stroke:h},{shape:n[1],fill:s,stroke:h},{shape:n[2],fill:l,stroke:h}),c=Math.max(c,o),p=Math.max(p,u),K(e)&&(m=e.material.emissive);break}case"water":{const l=R(e),s=q(l),a=q(l,2),n=q(l,3),o=v();h=!0,t.push({shape:o[0],fill:s},{shape:o[1],fill:a},{shape:o[2],fill:n});const u=Math.min(i,r||P);c=Math.max(c,u),p=Math.max(p,u);break}}o.push(t)}}return x(o,[c,p],{node:t?.node,scale:h,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:m})}function X(e,t){if(0===e.symbolLayers.length)return Promise.reject(new s("symbolPreview: renderPreviewHTML3D","No symbolLayers in the symbol."));switch(e.type){case"point-3d":return Q(e,t);case"line-3d":return V(e,t);case"polygon-3d":case"mesh-3d":return W(e,t)}return Promise.reject(new s("symbolPreview: swatchInfo3D","symbol not supported."))}export{H as getPatternDescriptor,G as getSizeFromOptions,Z as getSymbolLayerFill,X as previewSymbol3D};
2
+ import{getAssetUrl as e}from"../../assets.js";import{toHSV as t,toRGB as l}from"../../core/colorUtils.js";import s from"../../core/Error.js";import a from"../../core/Logger.js";import{pt2px as n}from"../../core/screenUtils.js";import{defaultThematicColor as r,scaleDashArrayForStroke as i,dekebabifyLineStyle as o,getPatternUrlWithColor as c}from"./gfxUtils.js";import{adjustColorComponentBrightness as p,shapes as u,getPathSymbolShapes as h,getTetrahedronShapes as m,getDiamondShapes as f,getCylinderShapes as y,getCubeShapes as d,getInvertedConeShapes as b,getConeShapes as v,getWaterSymbolShapes as g,getExtrudeSymbolShapes as w}from"./previewUtils.js";import{defaultObjectPrimitive as k,defaultIconPrimitive as x}from"./primitives.js";import{renderSymbol as M,tintImageWithColor as L}from"./renderUtils.js";import{isVolumetricSymbol as j,getIconHref as z}from"./utils.js";import{resolveWebStyleSymbol as S}from"./webStyleSymbolUtils.js";const D=22,P=120,U=80,C=50,E=20;function O(e){const t=e.outline,l=null!=e.material?e.material.color:null,s=null!=l?l.toHex():null;if(null==t||"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type&&"none"===t.pattern.style)return"fill"===e.type&&"#ffffff"===s?{color:"#bdc3c7",width:.75}:null;const a=n(t.size)||0;return{color:"rgba("+(null!=t.color?t.color.toRgba():"255,255,255,1")+")",width:Math.min(a,U),style:"pattern"in t&&null!=t.pattern&&"style"===t.pattern.type?o(t.pattern.style):null,join:"butt",cap:"patternCap"in t?t.patternCap:"butt"}}async function T(t,l){if(t.thumbnail?.url)return t.thumbnail.url;if("icon"===l.type){const e=l?.resource?.href;if(e)return z(l)}const s=e("esri/images/Legend/legend3dsymboldefault.png");if(t.styleOrigin&&(t.styleOrigin.styleName||t.styleOrigin.styleUrl)){const e=await S(t.styleOrigin,{portal:t.styleOrigin.portal}).catch(()=>null);if(e&&"thumbnail"in e&&e.thumbnail?.url)return e.thumbnail.url}return s}function R(e,s=1){const a=e.a,n=t(e),r=n.h,i=n.s/s,o=100-(100-n.v)/s,{r:c,g:p,b:u}=l({h:r,s:i,v:o});return[c,p,u,a]}function q(e){return"water"===e.type?null==e.color?null:e.color:null==e.material?.color?null:e.material.color}function Z(e,t=0){const l=q(e);if(!l){if("fill"===e.type)return null;const l=r.r,s=p(l,t);return[s,s,s,100]}const s=l.toRgba();for(let a=0;a<3;a++)s[a]=p(s[a],t);return s}async function A(t,l){const s=t.style;if("none"===s)return null;return{type:"pattern",x:0,y:0,src:await c(e(`esri/symbols/patterns/${s}.png`),l.toCss(!0)),width:5,height:5}}function H(e){return e.outline?O(e):{color:"rgba(0, 0, 0, 1)",width:1.5}}function I(e,t){const l=q(e);if(!l)return null;let s="rgba(";return s+=p(l.r,t)+",",s+=p(l.g,t)+",",s+=p(l.b,t)+",",s+l.a+");"}function N(e,t){const l=e.edges;if(!l||!l.color||!l.size)return null;return{color:l.color.toCss(!0),width:Math.min(n(l.size),t,U),join:"round"}}function F(e,t){const l=I(e,t),s="line"===e.type;if(!l)return null;if(s&&null!=e.pattern){const{pattern:t}=e;if("style"===t.type&&"none"===t.style||"template"===t.type&&t.normalizedDashTemplate.hidesLine)return null}const a={color:l,width:Math.min(e.size?n(e.size):.75,U)};return"cap"in e&&e.cap&&(a.cap=e.cap),"join"in e&&e.join&&(a.join="miter"===e.join?n(2):e.join),s&&"style"===e.pattern?.type&&(a.style=o(e.pattern.style)),a}function W(e,t,l){const s=null!=l?.75*l:0;return{type:"linear",x1:s?.25*s:0,y1:s?.5*s:0,x2:s||4,y2:s?.5*s:4,colors:[{color:e,offset:0},{color:t,offset:1}]}}function $(e){const t=e.depth,l=e.height,s=e.width;return 0!==s&&0!==t&&0!==l&&s===t&&null!=s&&null!=l&&s<l}function B(e,t,l){const s=[];if(!e)return s;switch(e.type){case"icon":{const l=0,a=0,n=t,r=t;switch(e.resource?.primitive??x){case"circle":s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:Z(e,0),stroke:O(e)});break;case"square":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[l,a]},{command:"L",values:[n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"triangle":s.push({shape:{type:"path",path:[{command:"M",values:[l,r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)});break;case"cross":s.push({shape:{type:"path",path:[{command:"M",values:[.5*n,a]},{command:"L",values:[.5*n,r]},{command:"M",values:[l,.5*r]},{command:"L",values:[n,.5*r]}]},stroke:H(e)});break;case"x":s.push({shape:{type:"path",path:[{command:"M",values:[l,a]},{command:"L",values:[n,r]},{command:"M",values:[n,a]},{command:"L",values:[l,r]}]},stroke:H(e)});break;case"kite":s.push({shape:{type:"path",path:[{command:"M",values:[l,.5*r]},{command:"L",values:[.5*n,a]},{command:"L",values:[n,.5*r]},{command:"L",values:[.5*n,r]},{command:"Z",values:[]}]},fill:Z(e,0),stroke:O(e)})}break}case"object":switch(e.resource?.primitive??k){case"cone":{const a=W(Z(e,0),Z(e,-.6),l?E:t),n=v(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a});break}case"inverted-cone":{const l=Z(e,0),a=W(l,Z(e,-.6),t),n=b(t);s.push({shape:n[0],fill:a},{shape:n[1],fill:l});break}case"cube":{const a=d(t,l);s.push({shape:a[0],fill:Z(e,0)},{shape:a[1],fill:Z(e,-.3)},{shape:a[2],fill:Z(e,-.5)});break}case"cylinder":{const a=W(Z(e,0),Z(e,-.6),l?E:t),n=y(t,l);s.push({shape:n[0],fill:a},{shape:n[1],fill:a},{shape:n[2],fill:Z(e,0)});break}case"diamond":{const l=f(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.3)},{shape:l[3],fill:Z(e,-.7)});break}case"sphere":{const l=W(Z(e,0),Z(e,-.6));l.x1=0,l.y1=0,l.x2=.25*t,l.y2=.25*t,s.push({shape:{type:"circle",cx:0,cy:0,r:.5*t},fill:l});break}case"tetrahedron":{const l=m(t);s.push({shape:l[0],fill:Z(e,-.3)},{shape:l[1],fill:Z(e,0)},{shape:l[2],fill:Z(e,-.6)});break}}break}return s}function G(e){const t="number"==typeof e?.size?e?.size:null;return t?n(t):null}function J(e){return"icon"===e.type?"multiply":"tint"}function K(e){return(e.material?.emissive?.strength??0)>0}async function Q(e,t){const l=G(t),s=t?.maxSize?n(t.maxSize):null,r=t?.disableUpsampling??!1,i=e.symbolLayers,o=[],c=[];let p=!1,u=0,h=0,m=null,f=0;i.forEach(a=>{if("icon"!==a.type&&"object"!==a.type)return;a&&"icon"===a.type&&(f=Math.max(a.size&&n(a.size),f));const i="icon"===a.type?a.size&&n(a.size):0,y=l||i?Math.ceil(Math.min(l||i,s||P)):D;let d="icon"===a.type?a.angle:null;if(null!=t?.rotation&&(d=(d??0)+t.rotation),c.push(d),"object"===a.type&&K(a)&&(m=a.material.emissive),a?.resource?.href){const t=T(e,a).then(e=>{const t=a?.material?.color,l=J(a);return L(e,y,t,l,r,m)}).then(e=>{const t=e.width,l=e.height;return u=Math.max(u,t),h=Math.max(h,l),d&&(p=!0),[{shape:{type:"image",x:0,y:0,width:t,height:l,src:e.url},fill:null,stroke:null}]});o.push(t)}else{let e=y;"icon"===a.type&&l&&(e=y*(i/f));const s="tall"===t?.symbolConfig||t?.symbolConfig?.isTall||"object"===a.type&&$(a);u=Math.max(u,s?E:e),h=Math.max(h,e),d&&a.resource?.primitive&&["square","triangle","x"].includes(a.resource?.primitive)&&(p=!0),o.push(Promise.resolve(B(a,e,s)))}});const y=await Promise.allSettled(o),d=[];return y.forEach(e=>{"fulfilled"===e.status?d.push(e.value):e.reason&&a.getLogger("esri.symbols.support.previewSymbol3D").warn("error while building swatchInfo!",e.reason)}),M(d,[u,h],{node:t?.node,scale:!1,opacity:t?.opacity,ariaLabel:t?.ariaLabel,rotations:c,useRotationSize:p,emissive:m})}function V(e,t){const l=j(e),s=[],a=G(t),r=(t?.maxSize?n(t.maxSize):null)||U,o=l?Math.min(a||D,r):0;let c,p=0,u=0;e.symbolLayers.forEach(e=>{if("line"!==e?.type)return;const t=F(e,0);if(null==t)return;const l=t.width||0,n=Math.min(a||l,r);null==c?(c=l,t.width=n):t.width=a?n*(l/c):n,u=Math.max(u,t.width),p=Math.max(p,2*t.width,C),"template"===e.pattern?.type&&(t.dashArray=i(e.pattern.normalizedDashTemplate.dashTemplate,t).join(",")),s.push(t)});const h=[];if(s.length>0){const e=X(p,u);h.push(s.map(t=>({shape:e,stroke:t})))}let m=null;return e.symbolLayers.forEach(e=>{"path"===e?.type&&(h.push(Y(e)),K(e)&&(m=e.material.emissive))}),Promise.resolve(M(h,[Math.max(p,o),Math.max(u,o)],{node:t?.node,scale:l,preserveAspectRatio:l&&s.length>0,fittingStrokeWidths:s.length>0?[u]:void 0,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:m}))}function X(e,t){return{type:"path",path:[{command:"M",values:[0,.5*t]},{command:"L",values:[e,.5*t]}]}}function Y(e){const t=Z(e,0),l=Z(e,-.2),s=I(e,-.4),a=s?{color:s,width:1}:{};if("quad"===e.profile){const s=e.width,n=e.height,r=h(s&&n?s/n:1,0===n,0===s),i={...a,join:"bevel"};return[{shape:r[0],fill:l,stroke:i},{shape:r[1],fill:l,stroke:i},{shape:r[2],fill:t,stroke:i}]}return[{shape:u.pathSymbol3DLayer[0],fill:l,stroke:a},{shape:u.pathSymbol3DLayer[1],fill:t,stroke:a}]}async function _(e,t){const l="mesh-3d"===e.type,s=e.symbolLayers,a=G(t),r=t?.maxSize?n(t.maxSize):null,i=a||D,o=[];let c=0,p=0,h=!1,m=null;for(let n=0;n<s.length;n++){const e=s.at(n),t=[];if(!l||"fill"===e.type){switch(e.type){case"fill":{const s=Math.min(i,r||P);if(c=Math.max(c,s),p=Math.max(p,s),h=!0,l){const l=u.meshSymbol3DFill,a=I(e,-.4),n=N(e,.05*s)??(a?{join:"round",color:a,width:1}:null);t.push({shape:l[0],fill:Z(e,0),stroke:n},{shape:l[1],fill:Z(e,-.2),stroke:n},{shape:l[2],fill:Z(e,-.6),stroke:n}),K(e)&&(m=e.material.emissive)}else{let l=Z(e,0);const s="pattern"in e?e.pattern:null,a=O(e),n=q(e);null!=s&&"style"===s.type&&"solid"!==s.style&&n&&(l=await A(s,n)),t.push({shape:u.fill[0],fill:l,stroke:a})}break}case"extrude":{const l=Z(e,0),s=Z(e,-.2),a=Math.min(i,r||P),n=w(a),o=D,u=.7*D+.5*a,h=N(e,.1*Math.min(o,u))??{join:"round",...F(e,-.4),width:1};t.push({shape:n[0],fill:s,stroke:h},{shape:n[1],fill:s,stroke:h},{shape:n[2],fill:l,stroke:h}),c=Math.max(c,o),p=Math.max(p,u),K(e)&&(m=e.material.emissive);break}case"water":{const l=q(e),s=R(l),a=R(l,2),n=R(l,3),o=g();h=!0,t.push({shape:o[0],fill:s},{shape:o[1],fill:a},{shape:o[2],fill:n});const u=Math.min(i,r||P);c=Math.max(c,u),p=Math.max(p,u);break}}o.push(t)}}return M(o,[c,p],{node:t?.node,scale:h,opacity:t?.opacity,ariaLabel:t?.ariaLabel,emissive:m})}function ee(e,t){if(0===e.symbolLayers.length)return Promise.reject(new s("symbolPreview: renderPreviewHTML3D","No symbolLayers in the symbol."));switch(e.type){case"point-3d":return Q(e,t);case"line-3d":return V(e,t);case"polygon-3d":case"mesh-3d":return _(e,t)}return Promise.reject(new s("symbolPreview: swatchInfo3D","symbol not supported."))}export{A as getPatternDescriptor,G as getSizeFromOptions,Z as getSymbolLayerFill,ee as previewSymbol3D};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{getColorWithEmissiveStrength as t}from"../../core/colorUtils.js";import has from"../../core/has.js";import{assertIsSome as e}from"../../core/maybe.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/mat2df32.js";import{multiply as r,scale as o,identity as n,translate as a,rotate as s}from"../../core/libs/gl-matrix-2/math/mat2d.js";import{getDashArray as l}from"./gfxUtils.js";import{nextPatternId as h,nextLinearGradientId as c}from"./svgGlobalState.js";import{matchesBloomFilter as f,BloomFilter as d}from"./svgFilter/bloomFilter.js";import{matchesEmissiveFilter as y,EmissiveFilter as u}from"./svgFilter/emissiveFilter.js";import{tsx as g}from"../../widgets/support/widget.js";const p="http://www.w3.org/2000/svg",m=has("android"),x=has("chrome")||m&&m>=4?"auto":"optimizeLegibility",k={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},w=/([A-DF-Za-df-z])|([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)/g;let b={},j={};const v=Math.PI;function A(t,e){const i=t*(v/180);return Math.abs(e*Math.sin(i))+Math.abs(e*Math.cos(i))}function $(t){return t.map(t=>`${t.command} ${t.values.join(" ")}`).join(" ").trim()}function M(t,i,r,o,n){if(t){if("circle"===t.type)return g("circle",{cx:t.cx,cy:t.cy,fill:i,"fill-rule":"evenodd",r:t.r,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-dashoffset":r.dashOffset,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width});if("ellipse"===t.type)return g("ellipse",{cx:t.cx,cy:t.cy,fill:i,"fill-rule":"evenodd",rx:t.rx,ry:t.ry,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width});if("rect"===t.type)return g("rect",{fill:i,"fill-rule":"evenodd",height:t.height,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width,width:t.width,x:t.x,y:t.y});if("image"===t.type)return g("image",{alt:n||"image",height:t.height,href:t.src,preserveAspectRatio:"none",width:t.width,x:t.x,y:t.y});if("path"===t.type){const e="string"!=typeof t.path?$(t.path):t.path;return g("path",{d:e,fill:i,"fill-rule":"evenodd",stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width})}if("text"===t.type)return e(o),g("text",{"dominant-baseline":o.dominantBaseline,fill:i,"fill-rule":"evenodd","font-family":o.font.family,"font-size":o.font.size,"font-style":o.font.style,"font-variant":o.font.variant,"font-weight":o.font.weight,kerning:o.kerning,rotate:o.rotate,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width,"text-anchor":o.align,"text-decoration":o.decoration,"text-rendering":x,x:t.x,y:t.y},t.text)}return null}function S(e,i){if(!e)return{fill:"none",pattern:null,linearGradient:null};if(!("type"in e))return{fill:t(e,i).toString(),pattern:null,linearGradient:null};if("pattern"===e.type){const t=`patternId-${h()}`;return{fill:`url(#${t})`,pattern:{id:t,x:e.x,y:e.y,width:e.width,height:e.height,image:{x:0,y:0,width:e.width,height:e.height,href:e.src}},linearGradient:null}}const r=`linearGradientId-${c()}`;return{fill:`url(#${r})`,pattern:null,linearGradient:{id:r,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stops:e.colors.map(e=>({offset:e.offset,color:t(e.color,i).toString()}))}}}function z(e,i){const r={color:"none",width:1,cap:"butt",join:"4",dashArray:"none",dashOffset:"0"};return e&&(null!=e.width&&(r.width=e.width),e.cap&&(r.cap=e.cap),e.join&&(r.join=e.join.toString()),e.color&&(r.color=t(e.color,i).toString()),e.dashArray&&(r.dashArray=e.dashArray),e.dashoffset&&(r.dashOffset=e.dashoffset),e.style&&!e.dashArray&&(r.dashArray=l(e).join(",")||"none")),r}function I(t,i){const r={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};if(t){const o=t.alignBaseline,n="baseline"===o?"auto":"top"===o?"text-top":"bottom"===o?"hanging":o;r.align=t.align,r.dominantBaseline=n,r.decoration=t.decoration,r.kerning=t.kerning?"auto":"0",r.rotate=t.rotated?"90":"0",e(i),r.font.style=i.style||"normal",r.font.variant=i.variant||"normal",r.font.weight=i.weight||"normal",r.font.size=i.size&&i.size.toString()||"10pt",r.font.family=i.family||"serif"}return r}function F(t){const{pattern:e,linearGradient:i}=t;if(e)return g("pattern",{height:e.height,id:e.id,patternUnits:"userSpaceOnUse",width:e.width,x:e.x,y:e.y},g("image",{height:e.image.height,href:e.image.href,width:e.image.width,x:e.image.x,y:e.image.y}));if(i){const t=i.stops.map((t,e)=>g("stop",{key:`${e}-stop`,offset:t.offset,"stop-color":t.color}));return g("linearGradient",{gradientUnits:"userSpaceOnUse",id:i.id,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2},t)}return null}function N(t,e){if(!t||0===t.length)return null;const i=[];for(const r of t){const{shape:t,fill:e,stroke:o,font:n}=r,a=S(e),s=z(o),l="text"===t.type?I(t,n):null,h=M(t,a.fill,s,l);h&&i.push(h)}return g("mask",{id:e,maskUnits:"userSpaceOnUse"},g("g",null,i))}function G(t,e,i){return a(t,n(t),[e,i])}function E(t,e,i,r,a){return o(t,n(t),[e,i]),t[4]=t[4]*e-r*e+r,t[5]=t[5]*i-a*i+a,t}function U(t,e,i,r){const o=e%360*Math.PI/180;s(t,n(t),o);const a=Math.cos(o),l=Math.sin(o),h=t[4],c=t[5];return t[4]=h*a-c*l+r*l-i*a+i,t[5]=c*a+h*l-i*l-r*a+r,t}function O(t,e){b&&"left"in b?(null!=b.left&&b.left>t&&(b.left=t),(null==b.right||b.right<t)&&(b.right=t),(null==b.top||b.top>e)&&(b.top=e),(null==b.bottom||b.bottom<e)&&(b.bottom=e)):b={left:t,bottom:e,right:t,top:e}}function L(t){const e=t.args,i=e.length;let r;switch(t.action){case"M":case"L":case"C":case"S":case"Q":case"T":for(r=0;r<i;r+=2)O(e[r],e[r+1]);j.x=e[i-2],j.y=e[i-1];break;case"H":for(r=0;r<i;++r)O(e[r],j.y);j.x=e[i-1];break;case"V":for(r=0;r<i;++r)O(j.x,e[r]);j.y=e[i-1];break;case"m":{let t=0;"x"in j||(O(j.x=e[0],j.y=e[1]),t=2);for(r=t;r<i;r+=2)O(j.x+=e[r],j.y+=e[r+1]);break}case"l":case"t":for(r=0;r<i;r+=2)O(j.x+=e[r],j.y+=e[r+1]);break;case"h":for(r=0;r<i;++r)O(j.x+=e[r],j.y);break;case"v":for(r=0;r<i;++r)O(j.x,j.y+=e[r]);break;case"c":for(r=0;r<i;r+=6)O(j.x+e[r],j.y+e[r+1]),O(j.x+e[r+2],j.y+e[r+3]),O(j.x+=e[r+4],j.y+=e[r+5]);break;case"s":case"q":for(r=0;r<i;r+=4)O(j.x+e[r],j.y+e[r+1]),O(j.x+=e[r+2],j.y+=e[r+3]);break;case"A":for(r=0;r<i;r+=7)O(e[r+5],e[r+6]);j.x=e[i-2],j.y=e[i-1];break;case"a":for(r=0;r<i;r+=7)O(j.x+=e[r+5],j.y+=e[r+6])}}function T(t,e,i){const r=k[t.toLowerCase()];let o;"number"==typeof r&&(r?e.length>=r&&(o={action:t,args:e.slice(0,e.length-e.length%r)},i.push(o),L(o)):(o={action:t,args:[]},i.push(o),L(o)))}function B(t){const e=("string"!=typeof t.path?$(t.path):t.path).match(w),i=[];if(b={},j={},!e)return null;let r="",o=[];const n=e.length;for(let s=0;s<n;++s){const t=e[s],n=parseFloat(t);isNaN(n)?(r&&T(r,o,i),o=[],r=t):o.push(n)}T(r,o,i);const a={x:0,y:0,width:0,height:0};return b&&"left"in b&&(a.x=b.left,a.y=b.top,a.width=b.right-b.left,a.height=b.bottom-b.top),a}function R(t){const e={x:0,y:0,width:0,height:0};if("circle"===t.type)e.x=t.cx-t.r,e.y=t.cy-t.r,e.width=2*t.r,e.height=2*t.r;else if("ellipse"===t.type)e.x=t.cx-t.rx,e.y=t.cy-t.ry,e.width=2*t.rx,e.height=2*t.ry;else if("image"===t.type||"rect"===t.type)e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height;else if("path"===t.type){const i=B(t);e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height}return e}function V(t){const e={x:0,y:0,width:0,height:0};let i=null,r=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY;for(const n of t)i?(i.x=Math.min(i.x,n.x),i.y=Math.min(i.y,n.y),r=Math.max(r,n.x+n.width),o=Math.max(o,n.y+n.height)):(i=e,i.x=n.x,i.y=n.y,r=n.x+n.width,o=n.y+n.height);return i&&(i.width=r-i.x,i.height=o-i.y),i}function q(t,e,o,n,a,s,l,h,c){let f=(l&&s?A(s,e):e)/2,d=(l&&s?A(s,o):o)/2;if(c){const t=c[0],e=c[1];f=(l&&s?A(s,t):t)/2,d=(l&&s?A(s,e):e)/2}const y=t.width+n,u=t.height+n,g=i(),p=i();let m=!1;if(a&&0!==y&&0!==u){const t=e!==o?e/o:y/u,i=e>o?e:o;let n=1,a=1;isNaN(i)||(t>1?(n=i/y,a=i/t/u):(a=i/u,n=i*t/y)),r(p,p,E(g,n,a,f,d)),m=!0}const x=t.x+(y-n)/2,k=t.y+(u-n)/2;if(r(p,p,G(g,f-x,d-k)),!m&&(y>e||u>o)){const t=y/e>u/o,i=(t?e:o)/(t?y:u);r(p,p,E(g,i,i,x,k))}return h&&r(p,p,G(g,h[0],h[1])),s&&r(p,p,U(g,s,x,k)),`matrix(${p[0]},${p[1]},${p[2]},${p[3]},${p[4]},${p[5]})`}function C(t,i,r,o={}){const n=[],a=[],s=f(o.cssEffectFilter)?new d(o.cssEffectFilter,i):y(o.emissive?.strength)?new u(t,o.emissive?.strength):null,l=s?.getSize(i,r,o.clipBloomEffect);let h=i,c=r;if(o.useRotationSize)for(let e=0;e<t.length;e++){const t=o.rotations?.[e]??0;h=Math.max(A(t,i),h),c=Math.max(A(t,r),c)}for(let e=0;e<t.length;e++){const s=t[e],f=[],d=[];let y=0,u=0,p=0;for(const t of s){const{shape:e,fill:i,stroke:r,font:a,offset:s}=t;o.ignoreStrokeWidth||"text"===e.type||(y+=r?.width||0);const l=S(i,o.emissive),h=z(r,o.emissive),c="text"===e.type?I(e,a):null;n.push(F(l)),f.push(M(e,l.fill,h,c,o.ariaLabel)),d.push(R(e)),s&&(u+=s[0],p+=s[1])}const m=o.rotations?.[e]??0;o.useRotationSize&&(u+=(h-A(m,i))/2,p+=(c-A(m,r))/2);const x=q(V(d),i,r,y,o.scale??!1,m,o.useRotationSize??!1,[u,p],l);let k=null;if(o.masking){const t=`mask-${e}`,i=o.masking[e];n.push(N(i,t)),k=`url(#${t})`}a.push(k?g("g",{mask:k},g("g",{transform:x},f)):g("g",{transform:x},f))}s&&(e(l),h=l[0],c=l[1]);const m="display: block;";return g("svg",{"aria-label":o.ariaLabel,focusable:!1,height:c,role:"img",style:m,width:h,xmlns:p},s?.getFilter(),g("defs",null,n),s?g("g",{filter:`url(#${s.getFilterId()})`},a):a)}export{V as computeBBox,S as generateFillAttributes,z as generateStrokeAttributes,I as generateTextAttributes,R as getBoundingBox,q as getTransformMatrix,F as renderDef,C as renderSVG,M as renderShape};
2
+ import{getColorWithEmissiveStrength as t}from"../../core/colorUtils.js";import has from"../../core/has.js";import{assertIsSome as e}from"../../core/maybe.js";import{create as i}from"../../core/libs/gl-matrix-2/factories/mat2df32.js";import{multiply as r,scale as o,identity as n,translate as s,rotate as a}from"../../core/libs/gl-matrix-2/math/mat2d.js";import{getDashArray as l}from"./gfxUtils.js";import{nextPatternId as h,nextLinearGradientId as c}from"./svgGlobalState.js";import{matchesBloomFilter as f,BloomFilter as d}from"./svgFilter/bloomFilter.js";import{matchesEmissiveFilter as y,EmissiveFilter as u}from"./svgFilter/emissiveFilter.js";import{tsx as g}from"../../widgets/support/widget.js";const p="http://www.w3.org/2000/svg",m=has("android"),x=has("chrome")||m&&m>=4?"auto":"optimizeLegibility",k={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7,z:0},w=/([A-DF-Za-df-z])|([-+]?\d*\.?\d+(?:[eE][-+]?\d+)?)/g;let b={},j={};const v=Math.PI;function A(t,e){const i=t*(v/180);return Math.abs(e*Math.sin(i))+Math.abs(e*Math.cos(i))}function S(t){return t.map(t=>`${t.command} ${t.values.join(" ")}`).join(" ").trim()}function M(t,i,r,o,n){if(t){if("circle"===t.type)return g("circle",{cx:t.cx,cy:t.cy,fill:i,"fill-rule":"evenodd",r:t.r,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-dashoffset":r.dashOffset,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width});if("ellipse"===t.type)return g("ellipse",{cx:t.cx,cy:t.cy,fill:i,"fill-rule":"evenodd",rx:t.rx,ry:t.ry,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width});if("rect"===t.type)return g("rect",{fill:i,"fill-rule":"evenodd",height:t.height,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width,width:t.width,x:t.x,y:t.y});if("image"===t.type)return g("image",{alt:n||"image",height:t.height,href:t.src,preserveAspectRatio:"none",width:t.width,x:t.x,y:t.y});if("path"===t.type){const e="string"!=typeof t.path?S(t.path):t.path;return g("path",{d:e,fill:i,"fill-rule":"evenodd",stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width})}if("text"===t.type)return e(o),g("text",{"dominant-baseline":o.dominantBaseline,fill:i,"fill-rule":"evenodd","font-family":o.font.family,"font-size":o.font.size,"font-style":o.font.style,"font-variant":o.font.variant,"font-weight":o.font.weight,kerning:o.kerning,rotate:o.rotate,stroke:r.color,"stroke-dasharray":r.dashArray,"stroke-linecap":r.cap,"stroke-linejoin":r.join,"stroke-miterlimit":"4","stroke-width":r.width,"text-anchor":o.align,"text-decoration":o.decoration,"text-rendering":x,x:t.x,y:t.y},t.text)}return null}function $(e,i){if(!e)return{fill:"none",pattern:null,linearGradient:null};if(!("type"in e))return{fill:t(e,i).toString(),pattern:null,linearGradient:null};if("pattern"===e.type){const t=`patternId-${h()}`;return{fill:`url(#${t})`,pattern:{id:t,x:e.x,y:e.y,width:e.width,height:e.height,image:{x:0,y:0,width:e.width,height:e.height,href:e.src}},linearGradient:null}}const r=`linearGradientId-${c()}`;return{fill:`url(#${r})`,pattern:null,linearGradient:{id:r,x1:e.x1,y1:e.y1,x2:e.x2,y2:e.y2,stops:e.colors.map(e=>({offset:e.offset,color:t(e.color,i).toString()}))}}}function z(e,i){const r={color:"none",width:1,cap:"butt",join:"4",dashArray:"none",dashOffset:"0"};return e&&(null!=e.width&&(r.width=e.width),e.cap&&(r.cap=e.cap),e.join&&(r.join=e.join.toString()),e.color&&(r.color=t(e.color,i).toString()),e.dashArray&&(r.dashArray=e.dashArray),e.dashoffset&&(r.dashOffset=e.dashoffset),e.style&&!e.dashArray&&(r.dashArray=l(e).join(",")||"none")),r}function I(t,i){const r={align:null,decoration:null,kerning:null,rotate:null,font:{style:null,variant:null,weight:null,size:null,family:null}};if(t){const o=t.alignBaseline,n="baseline"===o?"auto":"top"===o?"text-top":"bottom"===o?"hanging":o;r.align=t.align,r.dominantBaseline=n,r.decoration=t.decoration,r.kerning=t.kerning?"auto":"0",r.rotate=t.rotated?"90":"0",e(i),r.font.style=i.style||"normal",r.font.variant=i.variant||"normal",r.font.weight=i.weight||"normal",r.font.size=i.size&&i.size.toString()||"10pt",r.font.family=i.family||"serif"}return r}function F(t){const{pattern:e,linearGradient:i}=t;if(e)return g("pattern",{height:e.height,id:e.id,patternUnits:"userSpaceOnUse",width:e.width,x:e.x,y:e.y},g("image",{height:e.image.height,href:e.image.href,width:e.image.width,x:e.image.x,y:e.image.y}));if(i){const t=i.stops.map((t,e)=>g("stop",{key:`${e}-stop`,offset:t.offset,"stop-color":t.color}));return g("linearGradient",{gradientUnits:"userSpaceOnUse",id:i.id,x1:i.x1,x2:i.x2,y1:i.y1,y2:i.y2},t)}return null}function N(t,e){if(!t||0===t.length)return null;const i=[];for(const r of t){const{shape:t,fill:e,stroke:o,font:n}=r,s=$(e),a=z(o),l="text"===t.type?I(t,n):null,h=M(t,s.fill,a,l);h&&i.push(h)}return g("mask",{id:e,maskUnits:"userSpaceOnUse"},g("g",null,i))}function G(t,e,i){return s(t,n(t),[e,i])}function E(t,e,i,r,s){return o(t,n(t),[e,i]),t[4]=t[4]*e-r*e+r,t[5]=t[5]*i-s*i+s,t}function U(t,e,i,r){const o=e%360*Math.PI/180;a(t,n(t),o);const s=Math.cos(o),l=Math.sin(o),h=t[4],c=t[5];return t[4]=h*s-c*l+r*l-i*s+i,t[5]=c*s+h*l-i*l-r*s+r,t}function O(t,e){b&&"left"in b?(null!=b.left&&b.left>t&&(b.left=t),(null==b.right||b.right<t)&&(b.right=t),(null==b.top||b.top>e)&&(b.top=e),(null==b.bottom||b.bottom<e)&&(b.bottom=e)):b={left:t,bottom:e,right:t,top:e}}function L(t){const e=t.args,i=e.length;let r;switch(t.action){case"M":case"L":case"C":case"S":case"Q":case"T":for(r=0;r<i;r+=2)O(e[r],e[r+1]);j.x=e[i-2],j.y=e[i-1];break;case"H":for(r=0;r<i;++r)O(e[r],j.y);j.x=e[i-1];break;case"V":for(r=0;r<i;++r)O(j.x,e[r]);j.y=e[i-1];break;case"m":{let t=0;"x"in j||(O(j.x=e[0],j.y=e[1]),t=2);for(r=t;r<i;r+=2)O(j.x+=e[r],j.y+=e[r+1]);break}case"l":case"t":for(r=0;r<i;r+=2)O(j.x+=e[r],j.y+=e[r+1]);break;case"h":for(r=0;r<i;++r)O(j.x+=e[r],j.y);break;case"v":for(r=0;r<i;++r)O(j.x,j.y+=e[r]);break;case"c":for(r=0;r<i;r+=6)O(j.x+e[r],j.y+e[r+1]),O(j.x+e[r+2],j.y+e[r+3]),O(j.x+=e[r+4],j.y+=e[r+5]);break;case"s":case"q":for(r=0;r<i;r+=4)O(j.x+e[r],j.y+e[r+1]),O(j.x+=e[r+2],j.y+=e[r+3]);break;case"A":for(r=0;r<i;r+=7)O(e[r+5],e[r+6]);j.x=e[i-2],j.y=e[i-1];break;case"a":for(r=0;r<i;r+=7)O(j.x+=e[r+5],j.y+=e[r+6])}}function R(t,e,i){const r=k[t.toLowerCase()];let o;"number"==typeof r&&(r?e.length>=r&&(o={action:t,args:e.slice(0,e.length-e.length%r)},i.push(o),L(o)):(o={action:t,args:[]},i.push(o),L(o)))}function T(t){const e=("string"!=typeof t.path?S(t.path):t.path).match(w),i=[];if(b={},j={},!e)return null;let r="",o=[];const n=e.length;for(let a=0;a<n;++a){const t=e[a],n=parseFloat(t);isNaN(n)?(r&&R(r,o,i),o=[],r=t):o.push(n)}R(r,o,i);const s={x:0,y:0,width:0,height:0};return b&&"left"in b&&(s.x=b.left,s.y=b.top,s.width=b.right-b.left,s.height=b.bottom-b.top),s}function B(t){const e={x:0,y:0,width:0,height:0};if("circle"===t.type)e.x=t.cx-t.r,e.y=t.cy-t.r,e.width=2*t.r,e.height=2*t.r;else if("ellipse"===t.type)e.x=t.cx-t.rx,e.y=t.cy-t.ry,e.width=2*t.rx,e.height=2*t.ry;else if("image"===t.type||"rect"===t.type)e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height;else if("path"===t.type){const i=T(t);e.x=i.x,e.y=i.y,e.width=i.width,e.height=i.height}return e}function V(t){const e={x:0,y:0,width:0,height:0};let i=null,r=Number.NEGATIVE_INFINITY,o=Number.NEGATIVE_INFINITY;for(const n of t)i?(i.x=Math.min(i.x,n.x),i.y=Math.min(i.y,n.y),r=Math.max(r,n.x+n.width),o=Math.max(o,n.y+n.height)):(i=e,i.x=n.x,i.y=n.y,r=n.x+n.width,o=n.y+n.height);return i&&(i.width=r-i.x,i.height=o-i.y),i}function W(t,e,o,n,s,a,l,h,c,f=!1){let d=(l&&a?A(a,e):e)/2,y=(l&&a?A(a,o):o)/2;if(c){const t=c[0],e=c[1];d=(l&&a?A(a,t):t)/2,y=(l&&a?A(a,e):e)/2}const u=t.width+n,g=t.height+n,p=i(),m=i();let x=!1;if(s&&0!==u&&0!==g){const t=e!==o?e/o:u/g,i=e>o?e:o;let n=1,s=1;f?n=s=Math.min(e/u,o/g):isNaN(i)||(t>1?(n=i/u,s=i/t/g):(s=i/g,n=i*t/u)),r(m,m,E(p,n,s,d,y)),x=!0}const k=t.x+(u-n)/2,w=t.y+(g-n)/2;if(r(m,m,G(p,d-k,y-w)),!x&&(u>e||g>o)){const t=u/e>g/o,i=(t?e:o)/(t?u:g);r(m,m,E(p,i,i,k,w))}return h&&r(m,m,G(p,h[0],h[1])),a&&r(m,m,U(p,a,k,w)),`matrix(${m[0]},${m[1]},${m[2]},${m[3]},${m[4]},${m[5]})`}function q(t,i,r,o={}){const n=[],s=[],a=f(o.cssEffectFilter)?new d(o.cssEffectFilter,i):y(o.emissive?.strength)?new u(t,o.emissive?.strength):null,l=a?.getSize(i,r,o.clipBloomEffect);let h=i,c=r;if(o.useRotationSize)for(let e=0;e<t.length;e++){const t=o.rotations?.[e]??0;h=Math.max(A(t,i),h),c=Math.max(A(t,r),c)}for(let e=0;e<t.length;e++){const a=t[e],f=[],d=[];let y=0,u=0,p=0;for(const t of a){const{shape:e,fill:i,stroke:r,font:s,offset:a}=t;o.ignoreStrokeWidth||"text"===e.type||(y+=r?.width||0);const l=$(i,o.emissive),h=z(r,o.emissive),c="text"===e.type?I(e,s):null;n.push(F(l)),f.push(M(e,l.fill,h,c,o.ariaLabel)),d.push(B(e)),a&&(u+=a[0],p+=a[1])}const m=o.rotations?.[e]??0;o.useRotationSize&&(u+=(h-A(m,i))/2,p+=(c-A(m,r))/2);const x=W(V(d),i,r,o.ignoreStrokeWidth?0:o.fittingStrokeWidths?.[e]??y,o.scale??!1,m,o.useRotationSize??!1,[u,p],l,o.preserveAspectRatio);let k=null;if(o.masking){const t=`mask-${e}`,i=o.masking[e];n.push(N(i,t)),k=`url(#${t})`}s.push(k?g("g",{mask:k},g("g",{transform:x},f)):g("g",{transform:x},f))}a&&(e(l),h=l[0],c=l[1]);const m="display: block;";return g("svg",{"aria-label":o.ariaLabel,focusable:!1,height:c,role:"img",style:m,width:h,xmlns:p},a?.getFilter(),g("defs",null,n),a?g("g",{filter:`url(#${a.getFilterId()})`},s):s)}export{V as computeBBox,$ as generateFillAttributes,z as generateStrokeAttributes,I as generateTextAttributes,B as getBoundingBox,W as getTransformMatrix,F as renderDef,q as renderSVG,M as renderShape};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{UnknownTimeZone as t}from"../core/sql/UnknownTimeZone.js";import{system as e,unknown as n,utc as o}from"./constants.js";import{createLuxonIanaTimeZone as r}from"./ianaZone.js";import{legacyTimeZoneMap as i}from"./legacyTimeZoneMap.js";import{FixedOffsetZone as s,DateTime as m}from"luxon";const u="shortOffset";function a(t){return"timeZoneIANA"in t}function c(t){return t.startsWith("UTC")}function f(t,e=!1,n=!0){return{json:{read:{source:t,reader:(e,n)=>n[t]?l(n[t]):null},write:!!e&&{allowNull:n,writer(e,n){n[t]=e?Z(e):null}}}}}function l(t,n=e){return t?a(t)?t.timeZoneIANA:p(t,n):n}function Z(t){return{timeZoneIANA:t}}function p(t,n=e){if(!t||!i.has(t.timeZone))return n;const o=i.get(t.timeZone);return c(t.timeZone)||t.respectsDaylightSaving?o:h(o)}function h(t){const e=m.local().setZone(t),n=Math.min(e.set({month:1,day:1}).offset,e.set({month:5}).offset);if(0===n)return"Etc/UTC";return`Etc/GMT${s.instance(-n).formatOffset(0,"narrow")}`}function w(t,e,r,i,s){if(e&&"date"===s)return{timeZone:o,timeZoneName:void 0};const m=i.hour,a=r===n;return{timeZone:a?"timestamp-offset"===s?void 0:t??o:r,timeZoneName:a&&m?u:void 0}}function d(t){const o=new Set(["etc/utc","etc/gmt","gmt"]),r=new Set(Intl.supportedValuesOf("timeZone").map(t=>t.toLowerCase()));return t===e||t===n||o.has(t.toLowerCase())||r.has(t.toLowerCase())}function g(e){return e===n?t.instance:e===o||"Etc/UTC"===e?s.utcInstance:r(e)}export{p as convertLegacyTimeZone,l as fromTimeReference,g as getLuxonTimeZone,w as getTimeZoneFormattingOptions,d as isTimeZoneValid,u as shortTimeZoneName,f as timeZoneProperty,Z as toTimeReference};
2
+ import{UnknownTimeZone as t}from"../core/sql/UnknownTimeZone.js";import{system as e,unknown as n,utc as o}from"./constants.js";import{createLuxonIanaTimeZone as r}from"./ianaZone.js";import{legacyTimeZoneMap as i}from"./legacyTimeZoneMap.js";import{FixedOffsetZone as s,DateTime as m}from"luxon";const u="shortOffset";function a(t){return"timeZoneIANA"in t}function c(t){return t.startsWith("UTC")}function f(t,e=!1,n=!0){return{json:{read:{source:t,reader:(e,n)=>n[t]?l(n[t]):null},write:!!e&&{allowNull:n,writer(e,n){n[t]=e?Z(e):null},target:{[`${t}.timeZoneIANA`]:{type:String}}}}}}function l(t,n=e){return t?a(t)?t.timeZoneIANA:p(t,n):n}function Z(t){return{timeZoneIANA:t}}function p(t,n=e){if(!t||!i.has(t.timeZone))return n;const o=i.get(t.timeZone);return c(t.timeZone)||t.respectsDaylightSaving?o:h(o)}function h(t){const e=m.local().setZone(t),n=Math.min(e.set({month:1,day:1}).offset,e.set({month:5}).offset);if(0===n)return"Etc/UTC";return`Etc/GMT${s.instance(-n).formatOffset(0,"narrow")}`}function w(t,e,r,i,s){if(e&&"date"===s)return{timeZone:o,timeZoneName:void 0};const m=i.hour,a=r===n;return{timeZone:a?"timestamp-offset"===s?void 0:t??o:r,timeZoneName:a&&m?u:void 0}}function d(t){const o=new Set(["etc/utc","etc/gmt","gmt"]),r=new Set(Intl.supportedValuesOf("timeZone").map(t=>t.toLowerCase()));return t===e||t===n||o.has(t.toLowerCase())||r.has(t.toLowerCase())}function g(e){return e===n?t.instance:e===o||"Etc/UTC"===e?s.utcInstance:r(e)}export{p as convertLegacyTimeZone,l as fromTimeReference,g as getLuxonTimeZone,w as getTimeZoneFormattingOptions,d as isTimeZoneValid,u as shortTimeZoneName,f as timeZoneProperty,Z as toTimeReference};