@arcgis/core 5.0.0-next.126 → 5.0.0-next.128

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 (294) hide show
  1. package/Camera.d.ts +1 -1
  2. package/Ground.d.ts +7 -7
  3. package/PopupTemplate.d.ts +6 -6
  4. package/WebScene.d.ts +1 -1
  5. package/analysis/AreaMeasurementAnalysis.d.ts +1 -1
  6. package/analysis/DirectLineMeasurementAnalysis.d.ts +1 -1
  7. package/analysis/LengthDimension.d.ts +4 -4
  8. package/analysis/ShadowCastAnalysis.d.ts +3 -3
  9. package/analysis/SliceAnalysis.d.ts +1 -1
  10. package/analysis/SlicePlane.d.ts +1 -1
  11. package/assets/esri/core/workers/RemoteClient.js +1 -1
  12. package/assets/esri/core/workers/chunks/{0a4ebb5dca630a4ab0dd.js → 236f8137ae505c8f0764.js} +1 -1
  13. package/assets/esri/core/workers/chunks/84905581a3782e95ec34.js +1 -0
  14. package/assets/esri/core/workers/chunks/{f5f513997cde0ce0f2a2.js → 8eb535b43e1220cf0d75.js} +1 -1
  15. package/config.js +1 -1
  16. package/effects/FocusAreas.d.ts +1 -1
  17. package/form/elements/FieldElement.d.ts +1 -1
  18. package/form/elements/GroupElement.d.ts +1 -1
  19. package/form/elements/TextElement.d.ts +1 -1
  20. package/form/elements/inputs/ComboBoxInput.d.ts +1 -1
  21. package/form/elements/inputs/RadioButtonsInput.d.ts +1 -1
  22. package/form/elements/inputs/SwitchInput.d.ts +1 -1
  23. package/geometry/Mesh.d.ts +7 -7
  24. package/geometry/operators/alphaShapeOperator.d.ts +1 -1
  25. package/geometry/operators/areaOperator.d.ts +1 -1
  26. package/geometry/operators/bufferOperator.d.ts +1 -1
  27. package/geometry/operators/centroidOperator.d.ts +1 -1
  28. package/geometry/operators/clipOperator.d.ts +1 -1
  29. package/geometry/operators/containsOperator.d.ts +1 -1
  30. package/geometry/operators/convexHullOperator.d.ts +1 -1
  31. package/geometry/operators/crossesOperator.d.ts +1 -1
  32. package/geometry/operators/cutOperator.d.ts +1 -1
  33. package/geometry/operators/densifyOperator.d.ts +1 -1
  34. package/geometry/operators/differenceOperator.d.ts +1 -1
  35. package/geometry/operators/disjointOperator.d.ts +1 -1
  36. package/geometry/operators/distanceOperator.d.ts +1 -1
  37. package/geometry/operators/generalizeOperator.d.ts +1 -1
  38. package/geometry/operators/geodesicProximityOperator.d.ts +1 -1
  39. package/geometry/operators/geodeticDistanceOperator.d.ts +1 -1
  40. package/geometry/operators/geodeticUtilsOperator.d.ts +2 -2
  41. package/geometry/operators/graphicBufferOperator.d.ts +1 -1
  42. package/geometry/operators/intersectionOperator.d.ts +1 -1
  43. package/geometry/operators/intersectsOperator.d.ts +1 -1
  44. package/geometry/operators/isNearOperator.d.ts +1 -1
  45. package/geometry/operators/lengthOperator.d.ts +1 -1
  46. package/geometry/operators/locateBetweenOperator.d.ts +1 -1
  47. package/geometry/operators/multiPartToSinglePartOperator.d.ts +1 -1
  48. package/geometry/operators/offsetOperator.d.ts +5 -5
  49. package/geometry/operators/overlapsOperator.d.ts +1 -1
  50. package/geometry/operators/proximityOperator.d.ts +1 -1
  51. package/geometry/operators/simplifyOGCOperator.d.ts +1 -1
  52. package/geometry/operators/simplifyOperator.d.ts +1 -1
  53. package/geometry/operators/support/Transformation.d.ts +6 -6
  54. package/geometry/operators/symmetricDifferenceOperator.d.ts +1 -1
  55. package/geometry/operators/touchesOperator.d.ts +1 -1
  56. package/geometry/operators/unionOperator.d.ts +1 -1
  57. package/geometry/operators/withinOperator.d.ts +1 -1
  58. package/geometry/support/MeshMaterialMetallicRoughness.d.ts +1 -1
  59. package/kernel.js +1 -1
  60. package/layers/BuildingSceneLayer.d.ts +4 -4
  61. package/layers/CSVLayer.d.ts +2 -2
  62. package/layers/CatalogLayer.d.ts +2 -2
  63. package/layers/ElevationLayer.d.ts +1 -1
  64. package/layers/FeatureLayer.d.ts +2 -2
  65. package/layers/GeoJSONLayer.d.ts +2 -2
  66. package/layers/GeoRSSLayer.d.ts +1 -1
  67. package/layers/GraphicsLayer.d.ts +2 -2
  68. package/layers/ImageryLayer.d.ts +3 -3
  69. package/layers/ImageryTileLayer.d.ts +2 -2
  70. package/layers/IntegratedMesh3DTilesLayer.d.ts +6 -6
  71. package/layers/IntegratedMeshLayer.d.ts +7 -7
  72. package/layers/Layer.d.ts +1 -0
  73. package/layers/MapImageLayer.d.ts +1 -1
  74. package/layers/MediaLayer.d.ts +1 -1
  75. package/layers/OGCFeatureLayer.d.ts +2 -2
  76. package/layers/PointCloudLayer.d.ts +1 -1
  77. package/layers/SceneLayer.d.ts +5 -5
  78. package/layers/StreamLayer.d.ts +2 -2
  79. package/layers/VectorTileLayer.d.ts +2 -2
  80. package/layers/VideoLayer.d.ts +1 -1
  81. package/layers/VoxelLayer.d.ts +8 -8
  82. package/layers/WFSLayer.d.ts +6 -6
  83. package/layers/catalog/CatalogFootprintLayer.d.ts +1 -1
  84. package/layers/mixins/BlendLayer.d.ts +6 -6
  85. package/layers/pointCloudFilters/PointCloudReturnFilter.d.ts +1 -1
  86. package/layers/pointCloudFilters/PointCloudValueFilter.d.ts +1 -1
  87. package/layers/support/DimensionalDefinition.d.ts +2 -2
  88. package/layers/support/FeatureEffect.d.ts +4 -4
  89. package/layers/support/FeatureFilter.d.ts +17 -17
  90. package/layers/support/FeatureReductionBinning.d.ts +1 -1
  91. package/layers/support/FeatureReductionCluster.d.ts +9 -9
  92. package/layers/support/LabelClass.d.ts +2 -2
  93. package/layers/support/RasterFunction.d.ts +1 -1
  94. package/layers/support/SceneFilter.d.ts +2 -2
  95. package/layers/support/SceneModification.d.ts +3 -3
  96. package/package.json +1 -1
  97. package/popup/content/AttachmentsContent.d.ts +1 -1
  98. package/popup/content/BarChartMediaInfo.d.ts +1 -1
  99. package/popup/content/ColumnChartMediaInfo.d.ts +1 -1
  100. package/popup/content/FieldsContent.d.ts +1 -1
  101. package/popup/content/ImageMediaInfo.d.ts +1 -1
  102. package/popup/content/LineChartMediaInfo.d.ts +1 -1
  103. package/popup/content/MediaContent.d.ts +1 -1
  104. package/popup/content/PieChartMediaInfo.d.ts +1 -1
  105. package/popup/content/RelationshipContent.d.ts +1 -1
  106. package/popup/content/TextContent.d.ts +1 -1
  107. package/renderers/DotDensityRenderer.d.ts +3 -3
  108. package/renderers/FlowRenderer.d.ts +6 -6
  109. package/renderers/HeatmapRenderer.d.ts +3 -3
  110. package/renderers/PieChartRenderer.d.ts +1 -1
  111. package/renderers/RasterShadedReliefRenderer.d.ts +1 -1
  112. package/renderers/Renderer.d.ts +2 -2
  113. package/renderers/SimpleRenderer.d.ts +1 -1
  114. package/renderers/VectorFieldRenderer.d.ts +1 -1
  115. package/renderers/mixins/VisualVariablesMixin.d.ts +8 -8
  116. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  117. package/rest/query/support/AttachmentInfo.d.ts +1 -1
  118. package/rest/support/AutoIntervalBinParameters.d.ts +1 -1
  119. package/rest/support/DateBinParameters.d.ts +1 -1
  120. package/rest/support/FixedBoundariesBinParameters.d.ts +1 -1
  121. package/rest/support/FixedIntervalBinParameters.d.ts +1 -1
  122. package/smartMapping/labels/clusters.d.ts +1 -1
  123. package/smartMapping/popup/clusters.d.ts +2 -2
  124. package/smartMapping/popup/templates.d.ts +1 -1
  125. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  126. package/smartMapping/renderers/color.d.ts +12 -12
  127. package/smartMapping/renderers/predominance.d.ts +3 -3
  128. package/smartMapping/renderers/relationship.d.ts +15 -15
  129. package/smartMapping/renderers/univariateColorSize.d.ts +4 -4
  130. package/smartMapping/symbology/color.d.ts +4 -4
  131. package/smartMapping/symbology/flow.d.ts +2 -2
  132. package/smartMapping/symbology/types.d.ts +18 -18
  133. package/support/revision.js +1 -1
  134. package/symbols/CIMSymbol.d.ts +1 -1
  135. package/symbols/FillSymbol3DLayer.d.ts +3 -3
  136. package/symbols/IconSymbol3DLayer.d.ts +1 -1
  137. package/symbols/LabelSymbol3D.d.ts +2 -2
  138. package/symbols/LineStyleMarker3D.d.ts +7 -7
  139. package/symbols/LineSymbol3D.d.ts +2 -2
  140. package/symbols/LineSymbol3DLayer.d.ts +7 -7
  141. package/symbols/LineSymbolMarker.d.ts +6 -6
  142. package/symbols/MarkerSymbol.d.ts +1 -1
  143. package/symbols/MeshSymbol3D.d.ts +2 -2
  144. package/symbols/ObjectSymbol3DLayer.d.ts +1 -1
  145. package/symbols/PathSymbol3DLayer.d.ts +14 -14
  146. package/symbols/PictureFillSymbol.d.ts +1 -1
  147. package/symbols/PictureMarkerSymbol.d.ts +1 -1
  148. package/symbols/PointSymbol3D.d.ts +3 -3
  149. package/symbols/PolygonSymbol3D.d.ts +7 -7
  150. package/symbols/SimpleFillSymbol.d.ts +8 -8
  151. package/symbols/SimpleLineSymbol.d.ts +20 -20
  152. package/symbols/SimpleMarkerSymbol.d.ts +7 -7
  153. package/symbols/Symbol3DLayer.d.ts +16 -16
  154. package/symbols/TextSymbol.d.ts +1 -1
  155. package/symbols/TextSymbol3DLayer.d.ts +1 -1
  156. package/symbols/WaterSymbol3DLayer.d.ts +3 -3
  157. package/symbols/WebStyleSymbol.d.ts +1 -1
  158. package/symbols/callouts/Callout3D.d.ts +1 -1
  159. package/symbols/callouts/LineCallout3D.d.ts +3 -3
  160. package/symbols/cim/cimAnalyzer.js +1 -1
  161. package/symbols/cim/types.d.ts +23 -23
  162. package/symbols/edges/Edges3D.d.ts +1 -1
  163. package/symbols/edges/SolidEdges3D.d.ts +1 -1
  164. package/symbols/patterns/LineStylePattern3D.d.ts +11 -11
  165. package/symbols/patterns/StylePattern3D.d.ts +8 -8
  166. package/symbols/support/ElevationInfo.d.ts +2 -2
  167. package/symbols/support/IconSymbol3DLayerResource.d.ts +6 -6
  168. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +7 -7
  169. package/symbols/support/Symbol3DEmissive.d.ts +23 -13
  170. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  171. package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
  172. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  173. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  174. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  175. package/views/2d/engine/webgl/shaderGraph/techniques/animated/attributes.js +1 -1
  176. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  177. package/views/2d/layers/BaseLayerViewGL2D.d.ts +1 -1
  178. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  179. package/views/2d/types.d.ts +3 -3
  180. package/views/3d/environment/CloudyWeather.d.ts +1 -1
  181. package/views/3d/environment/Environment.d.ts +4 -4
  182. package/views/3d/environment/FoggyWeather.d.ts +1 -1
  183. package/views/3d/environment/RainyWeather.d.ts +1 -1
  184. package/views/3d/environment/SnowyWeather.d.ts +1 -1
  185. package/views/3d/environment/SunLighting.d.ts +1 -1
  186. package/views/3d/environment/SunnyWeather.d.ts +1 -1
  187. package/views/3d/environment/VirtualLighting.d.ts +1 -1
  188. package/views/3d/webgl/RenderNode.d.ts +2 -2
  189. package/views/3d/webgl.d.ts +1 -1
  190. package/views/Magnifier.d.ts +3 -3
  191. package/views/MapView.d.ts +7 -7
  192. package/views/SceneView.d.ts +34 -37
  193. package/views/View.d.ts +2 -2
  194. package/views/interactive/sketch/SketchLabelOptions.d.ts +1 -1
  195. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  196. package/views/interactive/snapping/SnappingOptions.d.ts +7 -7
  197. package/views/support/HighlightOptions.d.ts +1 -1
  198. package/views/support/flow/dataUtils.js +1 -1
  199. package/views/ui/DefaultUI.d.ts +2 -2
  200. package/webscene/Environment.d.ts +10 -10
  201. package/webscene/Glow.d.ts +7 -5
  202. package/webscene/background/ColorBackground.d.ts +1 -1
  203. package/widgets/AreaMeasurement2D.d.ts +1 -1
  204. package/widgets/AreaMeasurement3D.d.ts +2 -2
  205. package/widgets/Attachments.d.ts +1 -1
  206. package/widgets/Attribution.d.ts +1 -1
  207. package/widgets/BasemapGallery.d.ts +1 -1
  208. package/widgets/BasemapLayerList.d.ts +3 -3
  209. package/widgets/BasemapToggle.d.ts +1 -1
  210. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +1 -1
  211. package/widgets/Bookmarks.d.ts +2 -2
  212. package/widgets/BuildingExplorer.d.ts +1 -1
  213. package/widgets/CatalogLayerList.d.ts +3 -3
  214. package/widgets/Compass.d.ts +2 -2
  215. package/widgets/CoordinateConversion.d.ts +1 -1
  216. package/widgets/Daylight.d.ts +5 -5
  217. package/widgets/DirectLineMeasurement3D.d.ts +2 -2
  218. package/widgets/Directions.d.ts +4 -4
  219. package/widgets/DistanceMeasurement2D.d.ts +1 -1
  220. package/widgets/Editor/CreateFeaturesWorkflow.d.ts +1 -1
  221. package/widgets/Editor.d.ts +2 -2
  222. package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +1 -1
  223. package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +1 -1
  224. package/widgets/ElevationProfile/ElevationProfileLineView.d.ts +1 -1
  225. package/widgets/ElevationProfile.d.ts +3 -3
  226. package/widgets/Expand.d.ts +1 -1
  227. package/widgets/FeatureForm.d.ts +1 -1
  228. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  229. package/widgets/FeatureTable/AttachmentsColumn.d.ts +1 -1
  230. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +3 -3
  231. package/widgets/FeatureTable/Grid/GroupColumn.d.ts +1 -1
  232. package/widgets/FeatureTable/RelationshipColumn.d.ts +1 -1
  233. package/widgets/FeatureTable/VisibleElements.d.ts +1 -1
  234. package/widgets/FeatureTable.d.ts +9 -9
  235. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.d.ts +5 -5
  236. package/widgets/FeatureTemplates.d.ts +8 -8
  237. package/widgets/Features/FeaturesViewModel.d.ts +2 -2
  238. package/widgets/Features/FeaturesVisibleElements.d.ts +2 -2
  239. package/widgets/Features.d.ts +1 -1
  240. package/widgets/Histogram.d.ts +2 -2
  241. package/widgets/HistogramRangeSlider.d.ts +1 -1
  242. package/widgets/Home.d.ts +1 -1
  243. package/widgets/LayerList.d.ts +4 -4
  244. package/widgets/Legend.d.ts +8 -8
  245. package/widgets/LineOfSight.d.ts +1 -1
  246. package/widgets/Locate.d.ts +2 -2
  247. package/widgets/Measurement.d.ts +1 -1
  248. package/widgets/NavigationToggle/NavigationToggleViewModel.d.ts +1 -1
  249. package/widgets/NavigationToggle.d.ts +3 -3
  250. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  251. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  252. package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
  253. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  254. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  255. package/widgets/OrientedImageryViewer/navigation/queries.js +1 -1
  256. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  257. package/widgets/Popup/PopupVisibleElements.d.ts +2 -2
  258. package/widgets/Popup.d.ts +5 -5
  259. package/widgets/Print/CustomTemplate.d.ts +1 -1
  260. package/widgets/Print/TemplateOptions.d.ts +4 -4
  261. package/widgets/ScaleRangeSlider.d.ts +1 -1
  262. package/widgets/Search/SearchViewModel.d.ts +4 -4
  263. package/widgets/Search.d.ts +5 -5
  264. package/widgets/ShadowCast.d.ts +3 -3
  265. package/widgets/Sketch/SketchViewModel.d.ts +39 -39
  266. package/widgets/Sketch.d.ts +43 -43
  267. package/widgets/Slice.d.ts +2 -2
  268. package/widgets/Slider/SliderViewModel.d.ts +2 -2
  269. package/widgets/Slider.d.ts +9 -9
  270. package/widgets/Swipe/SwipeViewModel.d.ts +1 -1
  271. package/widgets/Swipe.d.ts +2 -2
  272. package/widgets/TableList.d.ts +1 -1
  273. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +8 -8
  274. package/widgets/TimeSlider/types.d.ts +1 -1
  275. package/widgets/TimeSlider.d.ts +11 -11
  276. package/widgets/Track.d.ts +2 -2
  277. package/widgets/UtilityNetworkAssociations.d.ts +3 -3
  278. package/widgets/UtilityNetworkTrace.d.ts +4 -4
  279. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  280. package/widgets/ValuePicker.d.ts +5 -5
  281. package/widgets/VideoPlayer.d.ts +1 -1
  282. package/widgets/smartMapping/ClassedColorSlider.d.ts +1 -1
  283. package/widgets/smartMapping/ClassedSizeSlider.d.ts +1 -1
  284. package/widgets/smartMapping/ColorSizeSlider.d.ts +2 -2
  285. package/widgets/smartMapping/ColorSlider.d.ts +1 -1
  286. package/widgets/smartMapping/HeatmapSlider.d.ts +1 -1
  287. package/widgets/smartMapping/OpacitySlider.d.ts +1 -1
  288. package/widgets/smartMapping/SizeSlider.d.ts +1 -1
  289. package/widgets/smartMapping/SmartMappingSliderBase.d.ts +4 -4
  290. package/widgets/smartMapping/SmartMappingSliderViewModel.d.ts +6 -6
  291. package/widgets/support/GridControls.d.ts +1 -1
  292. package/widgets/support/SnappingControls/VisibleElements.d.ts +1 -1
  293. package/widgets/support/SnappingControls.d.ts +6 -6
  294. package/assets/esri/core/workers/chunks/e0519f24430fecead87b.js +0 -1
@@ -107,7 +107,7 @@ export interface SimpleMarkerSymbolProperties extends MarkerSymbolProperties, Pa
107
107
  * recommended you use [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/) instead. The image below depicts a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) whose point features
108
108
  * are styled with [SimpleMarkerSymbols](https://developers.arcgis.com/javascript/latest/references/core/symbols/SimpleMarkerSymbol/).
109
109
  *
110
- * [![sms-sample](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-sample.png)](https://developers.arcgis.com/javascript/latest/sample-code/visualization-vv-size/)
110
+ * [![sms-sample](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-sample.png)](https://developers.arcgis.com/javascript/latest/sample-code/visualization-vv-size/)
111
111
  *
112
112
  * @since 4.0
113
113
  * @see [Symbol Builder](https://developers.arcgis.com/javascript/latest/visualization/symbols-color-ramps/symbol-builder/)
@@ -235,12 +235,12 @@ export default class SimpleMarkerSymbol extends MarkerSymbol {
235
235
  *
236
236
  * Value | Description
237
237
  * ------|------------
238
- * circle | ![sms_circle](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-circle.png)
239
- * cross | ![sms_cross](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-cross.png)
240
- * diamond | ![sms_diamond](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-diamond.png)
241
- * square | ![sms_square](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-square.png)
242
- * triangle | ![sms_triangle](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-triangle.png)
243
- * x | ![sms_x](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-sms-x.png)
238
+ * circle | ![sms_circle](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-circle.png)
239
+ * cross | ![sms_cross](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-cross.png)
240
+ * diamond | ![sms_diamond](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-diamond.png)
241
+ * square | ![sms_square](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-square.png)
242
+ * triangle | ![sms_triangle](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-triangle.png)
243
+ * x | ![sms_x](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-sms-x.png)
244
244
  *
245
245
  * @default "circle"
246
246
  */
@@ -27,14 +27,14 @@ export interface Symbol3DLayerProperties {}
27
27
  *
28
28
  * [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3DLayer/) Type | [Symbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/Symbol3D/) Type | Flat/Volumetric | Size Units | Example
29
29
  * ------------|-----------|------------|-------------|-----------
30
- * [IconSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/IconSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | ![s3d-icon-circle](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-icon-circle.png)
31
- * [ObjectSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ObjectSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | ![s3d-object](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-object-sphere.png)
32
- * [LineSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | ![s3d-line](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-line-line.png)
33
- * [PathSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/PathSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/) | volumetric | meters | ![s3d-path](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-path-tube.png)
34
- * [FillSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [MeshSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/) | flat | - | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-fill-solid.png)
35
- * [WaterSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/WaterSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | - | ![s3d-water](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-water-solid.png)
36
- * [ExtrudeSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ExtrudeSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | ![s3d-extrusion](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-extrude-solid.png)
37
- * [TextSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [LabelSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LabelSymbol3D/) | flat | points | ![s3d-text](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-label-text.png)
30
+ * [IconSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/IconSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | ![s3d-icon-circle](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-icon-circle.png)
31
+ * [ObjectSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ObjectSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | ![s3d-object](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-object-sphere.png)
32
+ * [LineSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | points | ![s3d-line](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-line-line.png)
33
+ * [PathSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/PathSymbol3DLayer/) | [LineSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LineSymbol3D/) | volumetric | meters | ![s3d-path](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-path-tube.png)
34
+ * [FillSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [MeshSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/) | flat | - | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-fill-solid.png)
35
+ * [WaterSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/WaterSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | flat | - | ![s3d-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-water-solid.png)
36
+ * [ExtrudeSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/ExtrudeSymbol3DLayer/) | [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/) | volumetric | meters | ![s3d-extrusion](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-extrude-solid.png)
37
+ * [TextSymbol3DLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/TextSymbol3DLayer/) | [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/), [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/), [LabelSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LabelSymbol3D/) | flat | points | ![s3d-text](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-label-text.png)
38
38
  *
39
39
  * The size of flat symbol layers is usually defined in either points or pixels (screen space) whereas the
40
40
  * size of volumetric symbol layers is defined in meters (real-world space).
@@ -55,14 +55,14 @@ export default class Symbol3DLayer extends JSONSupport {
55
55
  *
56
56
  * Value | Description
57
57
  * ------|------------
58
- * icon | ![s3d-icon](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-icon-circle.png)
59
- * object | ![s3d-object](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-object-sphere.png)
60
- * line | ![s3d-line](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-line-line.png)
61
- * path | ![s3d-path](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-path-tube.png)
62
- * fill | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-fill-solid.png)
63
- * water | ![s3d-water](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-water-solid.png)
64
- * extrude | ![s3d-extrusion](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-extrude-solid.png)
65
- * text | ![s3d-text](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3d-label-text.png)
58
+ * icon | ![s3d-icon](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-icon-circle.png)
59
+ * object | ![s3d-object](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-object-sphere.png)
60
+ * line | ![s3d-line](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-line-line.png)
61
+ * path | ![s3d-path](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-path-tube.png)
62
+ * fill | ![s3d-fill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-fill-solid.png)
63
+ * water | ![s3d-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-water-solid.png)
64
+ * extrude | ![s3d-extrusion](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-extrude-solid.png)
65
+ * text | ![s3d-text](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3d-label-text.png)
66
66
  */
67
67
  get type(): Symbol3DLayerType | null | undefined;
68
68
  }
@@ -203,7 +203,7 @@ export interface TextSymbolProperties extends SymbolProperties, Partial<Pick<Tex
203
203
  * features. The image below depicts a polygon [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) that
204
204
  * uses a TextSymbol to label its features.
205
205
  *
206
- * ![text-sample](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-text-sample.png)
206
+ * ![text-sample](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-text-sample.png)
207
207
  *
208
208
  * @since 4.0
209
209
  * @see [Symbol Builder](https://developers.arcgis.com/javascript/latest/visualization/symbols-color-ramps/symbol-builder/)
@@ -101,7 +101,7 @@ export interface TextSymbol3DLayerProperties extends Symbol3DLayerProperties, Pa
101
101
  * The image below depicts a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/) with labels defined
102
102
  * by a [LabelSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LabelSymbol3D/) that contains a TextSymbol3DLayer.
103
103
  *
104
- * ![3d-labels](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-3d-labels.png)
104
+ * ![3d-labels](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-3d-labels.png)
105
105
  *
106
106
  * @since 4.0
107
107
  * @see [Symbol Builder](https://developers.arcgis.com/javascript/latest/visualization/symbols-color-ramps/symbol-builder/)
@@ -10,7 +10,7 @@ export interface WaterSymbol3DLayerProperties extends Symbol3DLayerProperties, P
10
10
  * on the reflection of the light. The image below shows how different types of water can be represented with
11
11
  * different colors. For example for deep water the dominant color could be navy blue.
12
12
  *
13
- * ![symbol3D-water](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol3d-water-colors.png)
13
+ * ![symbol3D-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3d-water-colors.png)
14
14
  *
15
15
  * The color can be autocast with an array of rgb(a) values, named string, hex string or an hsl(a) string,
16
16
  * an object with `r`, `g`, `b`, and `a` properties, or a [Color](https://developers.arcgis.com/javascript/latest/references/core/Color/) object.
@@ -27,7 +27,7 @@ export interface WaterSymbol3DLayerProperties extends Symbol3DLayerProperties, P
27
27
  * WaterSymbol3DLayer is used to render [Polygon](https://developers.arcgis.com/javascript/latest/references/core/geometry/Polygon/) geometries as realistic, animated water surfaces,
28
28
  * therefore it can only be used inside a [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/).
29
29
  *
30
- * ![symbol3D-water](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol3d-water.png)
30
+ * ![symbol3D-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3d-water.png)
31
31
  *
32
32
  * Various properties can be set to enhance the realistic effect of this symbol layer. The [waveStrength](https://developers.arcgis.com/javascript/latest/references/core/symbols/WaterSymbol3DLayer/#waveStrength)
33
33
  * can be set to show the magnitude of the waves and [waveDirection](https://developers.arcgis.com/javascript/latest/references/core/symbols/WaterSymbol3DLayer/#waveDirection) indicates
@@ -63,7 +63,7 @@ export default class WaterSymbol3DLayer extends Symbol3DLayer {
63
63
  * on the reflection of the light. The image below shows how different types of water can be represented with
64
64
  * different colors. For example for deep water the dominant color could be navy blue.
65
65
  *
66
- * ![symbol3D-water](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol3d-water-colors.png)
66
+ * ![symbol3D-water](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3d-water-colors.png)
67
67
  *
68
68
  * The color can be autocast with an array of rgb(a) values, named string, hex string or an hsl(a) string,
69
69
  * an object with `r`, `g`, `b`, and `a` properties, or a [Color](https://developers.arcgis.com/javascript/latest/references/core/Color/) object.
@@ -21,7 +21,7 @@ export interface WebStyleSymbolProperties extends SymbolProperties, Partial<Pick
21
21
  * 3D symbols. It is a wrapper for creating [CIMSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/CIMSymbol/) and [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/)
22
22
  * objects that point to a web style resource available in the API.
23
23
  *
24
- * [![web-style](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols-web-style.png)](https://developers.arcgis.com/javascript/latest/sample-code/visualization-webstylesymbol/)
24
+ * [![web-style](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols-web-style.png)](https://developers.arcgis.com/javascript/latest/sample-code/visualization-webstylesymbol/)
25
25
  *
26
26
  * Web styles are collections of symbols stored in an [ArcGIS Enterprise portal](https://enterprise.arcgis.com/en/portal/) or
27
27
  * [ArcGIS Online](https://www.arcgis.com/home/) item. As of the current release, only
@@ -6,7 +6,7 @@ export interface Callout3DProperties {}
6
6
  * When symbols have an offset from their position, it's important to still see what the real location is.
7
7
  * This can be achieved with callouts:
8
8
  *
9
- * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3D-line-callout-2.png)
9
+ * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3D-line-callout-2.png)
10
10
  *
11
11
  * Callouts are graphics that help users understand where a label or a symbol (usually a point) is located
12
12
  * on the map, when the symbols have an offset from their initial position.
@@ -34,18 +34,18 @@ export interface LineCallout3DProperties extends Callout3DProperties {
34
34
  * For example when displaying points of interest in a city, visualizing them with a callout line helps to understand where the points
35
35
  * are actually located:
36
36
  *
37
- * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3D-line-callout-1.png)
37
+ * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3D-line-callout-1.png)
38
38
  *
39
39
  * This visualization can be created on a [PointSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/) or a
40
40
  * [LabelSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/LabelSymbol3D/). After defining the [PointSymbol3D.symbolLayers](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/#symbolLayers),
41
41
  * an offset should be defined by setting the [PointSymbol3D.verticalOffset](https://developers.arcgis.com/javascript/latest/references/core/symbols/PointSymbol3D/#verticalOffset) property. The symbols are now shifted vertically,
42
42
  * but we still need to add the callout, otherwise it can be very confusing to understand where the points are located:
43
43
  *
44
- * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3D-lift.png)
44
+ * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3D-lift.png)
45
45
  *
46
46
  * Setting the `callout` property of type `line` on the symbol will create the line that connects the symbol with its actual position:
47
47
  *
48
- * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbols3D-line-callout.png)
48
+ * ![symbol3D-line-callout](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbols3D-line-callout.png)
49
49
  *
50
50
  * @since 4.4
51
51
  * @see [Sample: Point styles for cities](https://developers.arcgis.com/javascript/latest/sample-code/visualization-point-styles/)
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
2
- import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{checkForAnimations as l,getAnimationParams as n,handleAbsoluteAnchor as p,handleMarker as c,handleRelativeAnchor as m,getFrameTranslation as d,translate as y,getStaticParam as f,shouldUseAnimatedPath as h}from"./animationUtils.js";import{forEachSymbolLayer as u,CIMSymbolHelper as v}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as O}from"./constants.js";import{defaultCIMValues as g}from"./defaultCIMValues.js";import{fitVectorMarker as S}from"./fitVectorMarker.js";import{OverrideHelper as _}from"./OverrideHelper.js";import{getExtent as M,getSDFMetrics as k,getSDFDimensions as C}from"./SDFHelper.js";import{CIMSymbolUnits as b}from"./types.js";import{colorToArray as x,normalizeAlpha as P,getSize as z,isCIMMarkerStrokePlacement as I,hasStrokeLayer as E,getTintColor as L,getNumericValue as V,normalizePrimitiveOverrideProps as N,getDefaultCIMValue as R,getEnum as A,getFillColor as T,getStrokeColor as w,fromCIMFontDecoration as G,fromCIMFontStyle as F,getStrokeWidth as X,fromCIMVerticalAlignment as j,fromCIMHorizontalAlignment as W,getTextCasing as Y,isValidCIMValue as D,uncapitalize as U}from"./utils.js";import{EffectHelper as H}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as J,randomInsidePolygonTextureSize as B}from"../../views/2d/engine/webgl/definitions.js";const q=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function K(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class Q{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=x(r)),r=P(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const r=e?.symbolLayers;if(!r)return;for(let l=0;l<r.length;l++){const e=r[l];"CIMVectorMarker"===e.type&&(r[l]=S(e))}const i=e.effects;let o=0;const a=z(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1),oe(r,i))return this._analyzeCompositeOutlineFill(r,i,a);let s={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:l(e),hasShiftAnimation:!1,hasMotionAnimations:!1};s=n(this._poMap,e,s);const p="CIMPolygonSymbol"===e.type;let c=r.length;for(;c--;){const l=r[c];if(!l||!1===l.enable)continue;let n;i?.length&&(n=[...i]);const m=l.effects;m?.length&&(i?n.push(...m):n=[...m]);let d=null;if(n){d=[];for(const e of n){const t=_.findEffectOverrides(e,this._primitiveOverrides);t&&d.push(t)}}const y=[];switch(_.findApplicableOverrides(l,this._primitiveOverrides,y),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,d,s,E(r));break;case"CIMPictureFill":this._analyzePictureFill(l,d,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,d);break;case"CIMGradientFill":this._analyzeGradientFill(l,d);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,d,p,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,d,p,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,d,p,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(o=K(l));const r=[],i=l.primitiveName;i&&r.push(i);const n=p&&I(l.markerPlacement);this._analyzeMarker(l,d,null,r,o,a,t,[],s,!1,n);break}default:q().error("Cannot analyze CIM layer",l.type)}}}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=P(e.color),l=n(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...O,outlineEffects:t})}this._cimLayers.push({type:"fill",spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:se(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=L(e),s=V(e.height,g.CIMPictureFill.height);let l=V(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const p={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},c=n(this._poMap,e,r);this._cimLayers.push({type:"fill",spriteRasterizationParam:p,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",V(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",V(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",V(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:se(c)})}_analyzeHatchFill(e,t){const{primitiveName:r,type:i}=e,o=this._analyzeMaterialOverrides(r,["Rotation","OffsetX","OffsetY"]),a=N(o);let s=[255,255,255,1],l=!1;if(e.lineSymbol?.symbolLayers)for(const p of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==p.type)continue;const e=p.primitiveName??r;l||!e||p.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(s=P(p.color),s=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(i,e,"Color",s),l=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,o=null;"number"==typeof t?r=t:o=t.valueExpressionInfo;let s=a.find(e=>"strokeWidth"===e.propertyName);s?s.propertyName="width":(s={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:o,value:r,defaultValue:R(i,"width")},a.push(s))}}const n={type:"sprite-rasterization-param",resource:e,overrides:a};this._cimLayers.push({type:"fill",spriteRasterizationParam:n,colorLocked:!!e.colorLocked,effects:t,color:s,height:this._getValueOrOverrideExpression(i,r,"Separation",V(e.separation,g.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(i,r,"Rotation",V(e.rotation)),offsetX:this._getValueOrOverrideExpression(i,r,"OffsetX",V(e.offsetX)),offsetY:this._getValueOrOverrideExpression(i,r,"OffsetY",V(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!l})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:p}=e,c=g.CIMGradientFill,m=e.colorRamp;this._cimLayers.push({type:"gradientFill",spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,p)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(p,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(p,n,"Angle",V(r,c.angle)),gradientType:this._getValueOrOverrideExpression(p,n,"GradientType",s??c.gradientType),interval:this._getValueOrOverrideExpression(p,n,"Interval",V(l,"CIMFixedColorRamp"===m.type?m.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(p,n,"GradientSize",V(o,c.gradientSize)),gradientSizeUnits:"Absolute"===a?b.Absolute:"Relative"===a?b.Relative:c.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r){const i=e.find(e=>"CIMSolidFill"===e.type),o=e.find(e=>"CIMSolidStroke"===e.type);if(null==i||null==o)return;const a=[...t??[],...i.effects??[]].map(e=>_.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>_.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=V(o.width,g.CIMSolidStroke.width),n=A(o.capStyle,g.CIMSolidStroke.capstyle),p=A(o.joinStyle,g.CIMSolidStroke.joinstyle),c=o.miterLimit;this._cimLayers.push({type:"outlineFill",colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,"Color",P(i.color)),effects:a,outlineColorLocked:!!o.colorLocked,outlineColor:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",P(o.color)),outlineWidth:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Width",l),cap:this._getValueOrOverrideExpression(o.type,o.primitiveName,"CapStyle",n),join:this._getValueOrOverrideExpression(o.type,o.primitiveName,"JoinStyle",p),miterLimit:c&&this._getValueOrOverrideExpression(o.type,o.primitiveName,"MiterLimit",c),referenceWidth:r,outlineEffects:s})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=P(e.color),p=V(e.width,g.CIMSolidStroke.width),c=A(e.capStyle,g.CIMSolidStroke.capstyle),m=A(e.joinStyle,g.CIMSolidStroke.joinstyle),d=e.miterLimit;let y,f,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,f=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const O=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,S=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:O,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",p),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",c),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",m),miterLimit:d&&this._getValueOrOverrideExpression(s,a,"MiterLimit",d),referenceWidth:i,zOrder:$(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:f,sampleAlphaOnly:!0,animationParams:se(S)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=L(e),p=V(e.width,g.CIMPictureStroke.width),c=A(e.capStyle,g.CIMPictureStroke.capstyle),m=A(e.joinStyle,g.CIMPictureStroke.joinstyle),d=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},f=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",p),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",c),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",m),miterLimit:d&&this._getValueOrOverrideExpression(s,a,"MiterLimit",d),referenceWidth:i,zOrder:$(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:se(f)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:c}=e,m=g.CIMGradientStroke,d=V(e.width,m.width),y=A(e.capStyle,m.capstyle),f=A(e.joinStyle,m.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(p,c)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(c,p,"Width",d),cap:this._getValueOrOverrideExpression(c,p,"CapStyle",y),join:this._getValueOrOverrideExpression(c,p,"JoinStyle",f),miterLimit:h&&this._getValueOrOverrideExpression(c,p,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(c,p,"GradientMethod",o??m.gradientMethod),gradientType:this._getValueOrOverrideExpression(c,p,"GradientType",l??m.gradientType),interval:this._getValueOrOverrideExpression(c,p,"Interval",V(n,"CIMFixedColorRamp"===u.type?u.colors.length:m.interval)),gradientSize:this._getValueOrOverrideExpression(c,p,"GradientSize",V(a,m.gradientSize)),gradientSizeUnits:"Absolute"===s?b.Absolute:"Relative"===s?b.Relative:m.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,d,y=!1,f=!1){y||=!!e.colorLocked;let h=d;if(h=p(e,h),h=c(this._poMap,e,h),h=m(e,h),h=n(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,y,h))return;const u=V(e.size,g.CIMVectorMarker.size),v=V(e.rotation),O=V(e.offsetX),S=V(e.offsetY),{primitiveName:_,type:M}=e,k=this._getValueOrOverrideExpression(M,_,"Size",u),C=this._getValueOrOverrideExpression(M,_,"Rotation",v),b=this._getValueOrOverrideExpression(M,_,"OffsetX",O),x=this._getValueOrOverrideExpression(M,_,"OffsetY",S);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,k,C,b,x,l,h,y,f);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,k,C,b,x,l,h,s,y,f)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let p,c;if("Random"===o.gridType){const e=a(B),t=Math.max(Math.floor(e/l),1);p=n*Math.max(Math.floor(e/n),1);c=t*l/p}else o.shiftOddRows?(p=2*n,c=l/n*.5):(p=n,c=l/n);const m=L(e),d="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:e,overrides:[]};return this._cimLayers.push({type:"fill",spriteRasterizationParam:d,colorLocked:r,effects:t,color:m,height:p,scaleX:c,angle:o.gridAngle,offsetX:V(o.offsetX),offsetY:V(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:se(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,c,m,d,y,f,h){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=V(e.scaleX,1);const S=L(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);g/=r*(V(e.size)/t)}const k=[...o];let C;e.primitiveName&&k.push(e.primitiveName),u||_?C={type:"animated",url:e.url,urlHash:"H"+s(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(C=r(e),C.markerPlacement=null);const b={type:"sprite-rasterization-param",resource:C,overrides:this._getMaterialOverrides(k,O)};_&&b.overrides.push(..._.overrides);const x=n;this._cimLayers.push({type:"marker",spriteRasterizationParam:b,colorLocked:f,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(O,v,"ScaleX",g),rotation:p,offsetX:c,offsetY:m,transform:{type:"cim-marker-transform-param",params:d},color:this._getValueOrOverrideExpression(O,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:se(y),baseSize:x})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,p,c,m,h,u,v,O){const g=e.markerGraphics;if(!g)return;const S=e.frame;let _=0;_=S?S.ymax-S.ymin:a;const M=!!e.scaleSymbolsProportionally;if(_){const t={offsetX:p,offsetY:c,rotation:l,size:s,frameHeight:_,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:M};m=[...m,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const k of g)if(k){const s=k.symbol;if(!s)continue;const l=k.primitiveName;l&&i.push(l);let p,c=h;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&S){let t=0,r=0;const i=k.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(S.xmin+S.xmax),r+=i.y-.5*(S.ymin+S.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):S&&(t-=(S.xmax-S.xmin)*o.x,r-=(S.ymax-S.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:M};p=[...m,s]}const g=k.geometry,[C,b]=d(g,S);switch(0===C&&0===b||(c=y(c,C,b)),"CIMPointSymbol"===s.type&&(c=n(this._poMap,s,c)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":u||re(s)?(c={...c,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,translation:f([0,0]),rotation:f(0),scale:f(_),parent:h.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,k,i,o,a,p??m,c,_,v,O)):this._analyzeMultiLayerGraphic(e,t,r,k,i,o,a,p??m,c,_,v,O);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,k,i,o,a,p??m,v)}l&&i.pop()}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,p,c,m){const d=i.symbol,y=d.symbolLayers;if(y){if(!te(y)||h(n))return ie(y)?(u(d,e=>{e.colorLocked&&(c=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,c,m)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,p,c,m);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,p,c,m)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,p,c,m,d){const y=i.symbol,f=y.symbolLayers;if(!f)return;const h=H.applyEffects(y.effects,i.geometry);if(!h)return;let u=f.length;for(;u--;){const y=f[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=H.applyEffects(y.effects,h),f=M(o);if(!f)continue;const u="Relative"!==e.anchorPointUnits,O="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:S,anchorX:_,anchorY:b,widthRatio:x,sdfPaddingRatio:z,sdfTextureSize:I}=k(f,e.frame,e.size,e.anchorPoint,u,O,e.scaleSymbolsProportionally),E="CIMSolidFill"===y.type,L={type:"sdf",geometry:o,sdfPaddingRatio:z,asFill:E,sdfTextureSize:I},{path:N}=y,R=E?P(T(y)):null==N?P(w(y)):[0,0,0,0],A=E?[0,0,0,0]:P(w(y));if(!E&&!O)break;const G=i.primitiveName;let F=null;E&&!y.colorLocked&&(F=this._maybeGetValueOrOverrideExpression(G,"FillColor"));let X=null;E||y.colorLocked||(X=this._maybeGetValueOrOverrideExpression(G,"StrokeColor"));const j=F??this._getValueOrOverrideExpression(y.type,v,"Color",R),W=X??this._getValueOrOverrideExpression(y.type,v,"Color",A),Y=this._maybeGetValueOrOverrideExpression(G,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",O),D=N?{type:"sprite-rasterization-param",resource:{type:"path",path:N,asFill:E},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},U=n(this._poMap,y,p),J=V(e.size,g.CIMVectorMarker.size),B=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",J);this._cimLayers.push({type:"marker",spriteRasterizationParam:D,colorLocked:!!y.colorLocked||!!m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:_,y:b},isAbsoluteAnchorPoint:u,size:c,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:c,widthRatio:x,rotateClockwise:!1,referenceSize:s,sizeRatio:S,color:j,outlineColor:W,outlineWidth:Y,isOutline:d,markerPlacement:r,animationParams:se(U),isStroke:"CIMSolidFill"!==y.type,baseSize:B,...C(o,I,z)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,p,m,d)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];_.findApplicableOverrides(i,this._primitiveOverrides,p);const c=i.geometry;if(!("x"in c)||!("y"in c))return;const m=i.symbol,d=G(m),y=F(m.fontStyleName),f=t(m.fontFamilyName);m.font={family:f,decoration:d,...y};const h=V(m.height,g.CIMTextSymbol.height),u=V(m.angle),v=V(m.offsetX),O=V(m.offsetY),{haloSymbol:S}=m,M=V(m.haloSize,0);let k=[0,0,0,0];if(S?.symbolLayers?.length){const e=S.symbolLayers;for(const t of e)if(t.color){k=this._getValueOrOverrideExpression(m?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",P(t.color));break}}const C=i.primitiveName;let b=[0,0,0,1],x=[0,0,0,0],z=0,I=!1;if(m.symbol?.symbolLayers)for(const t of m.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)x=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",P(t.color)),z=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",X(t)??0);else if("CIMSolidFill"===t.type){const r=P(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??C,"Color",r)}}let E=null,L=null,N=null,R=null,A=null;C&&(E=this._maybeGetValueOrOverrideExpression(C,"TextSize"),L=this._maybeGetValueOrOverrideExpression(C,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(C,"TextOffsetX"),R=this._maybeGetValueOrOverrideExpression(C,"TextOffsetY"),I||(A=this._maybeGetValueOrOverrideExpression(C,"FillColor")));const T=A??b;let w=null,Y=null,D=0;if("CIMBackgroundCallout"===m.callout?.type){const e=m.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?w=P(e.color):"CIMSolidStroke"===e.type&&(Y=P(e.color),D=V(e.width,g.CIMSolidStroke.width))}}const U=this._getValueOrOverrideExpression(m.type,i.primitiveName,"TextString",i.textString??"");if(null==U)return;const{fontStyleName:H}=m,J=f+(H?"-"+H.toLowerCase():"-regular"),B=this._getMaterialOverrides(o,m.type);B.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,m.type)),this._collectDictionaryTemplateOverrides(B,i);const q={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:m.font,symbol:m,primitiveName:i.primitiveName},overrides:B};this._cimLayers.push({type:"text",lineWidth:m.lineWidth,textRasterizationParam:q,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:J,decoration:d,haloSize:M,haloColor:k,weight:y.weight,style:y.style,size:E??h,angle:L??u,offsetX:N??v,offsetY:R??O,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:W(m.horizontalAlignment),verticalAlignment:j(m.verticalAlignment),text:U,color:T,outlineColor:x,outlineSize:z,backgroundColor:w,borderLineColor:Y,borderLineWidth:D,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=Y(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,p,c,m,d){const y=Z(e,i),f=e.primitiveName,h=this._analyzeMaterialOverrides(f,["Rotation","OffsetX","OffsetY"]),u=N(h),[O,S,_]=v.getTextureAnchor(y,this._resourceManager,J),M=this._getMaterialOverrides(a,e.type);M.push(...u);const k={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:M},C=V(e.size,g.CIMVectorMarker.size),b=this._getValueOrOverrideExpression(e.type,f,"Size",C);this._cimLayers.push({type:"marker",spriteRasterizationParam:k,colorLocked:m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:O,y:S},isAbsoluteAnchorPoint:!1,size:c,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:c,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:_/o(e.size),isOutline:d,markerPlacement:r,animationParams:se(p),baseSize:b})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return _.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:ae(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return _.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:ae(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,p,c){const m=i.geometry,d=o[0],y=o[1],f=M(m);if(!f)return;const h="Relative"!==e.anchorPointUnits,u=V(d.width,g.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:O,anchorY:S,widthRatio:_,sdfPaddingRatio:C,sdfTextureSize:b}=k(f,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:x}=y,z=y.primitiveName,I=d.primitiveName,E=i.primitiveName;let L=null;y.colorLocked||p||(L=this._maybeGetValueOrOverrideExpression(E,"FillColor"));const N=L??this._getValueOrOverrideExpression(y.type,z,"Color",P(y.color));let R=null;d.colorLocked||p||(R=this._maybeGetValueOrOverrideExpression(E,"StrokeColor"));const A=R??this._getValueOrOverrideExpression(d.type,I,"Color",P(d.color)),T=this._maybeGetValueOrOverrideExpression(E,"StrokeWidth")??this._getValueOrOverrideExpression(d.type,I,"Width",u),w={type:"sprite-rasterization-param",resource:x?{type:"path",path:x,asFill:!0}:{type:"sdf",geometry:m,sdfTextureSize:b,sdfPaddingRatio:C,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",spriteRasterizationParam:w,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:O,y:S},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:_,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:N,outlineColor:A,outlineWidth:T,isOutline:c,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!D(i)&&(i=R(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=N(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=R(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function Z(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function $(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function ee(e,t){if(!t||0===t.length)return e;const i=r(e);return _.applyOverrides(i,t),i}const te=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function re(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ie(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function oe(e,t){if(t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)&&2===e.length){const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);if(null!=t&&null!=r&&!i)return!0}return!1}function ae(e){return r(e).map(e=>({...e,propertyName:U(e.propertyName)}))}function se(e){return h(e)?{type:"animation-params",params:e}:null}export{Q as CIMAnalyzer,ee as analyzeCIMResource};
2
+ import{isRGB as e}from"../../core/colorUtils.js";import{getFontFamily as t}from"../../core/fontUtils.js";import"../../core/has.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{pt2px as o,px2pt as a}from"../../core/screenUtils.js";import{numericHash as s}from"../../core/string.js";import{checkForAnimations as l,getAnimationParams as n,handleAbsoluteAnchor as p,handleMarker as m,handleRelativeAnchor as c,getFrameTranslation as d,translate as y,getStaticParam as f,shouldUseAnimatedPath as h}from"./animationUtils.js";import{forEachSymbolLayer as u,CIMSymbolHelper as v}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as O}from"./constants.js";import{defaultCIMValues as g}from"./defaultCIMValues.js";import{fitVectorMarker as S}from"./fitVectorMarker.js";import{OverrideHelper as _}from"./OverrideHelper.js";import{getExtent as M,getSDFMetrics as k,getSDFDimensions as C}from"./SDFHelper.js";import{CIMSymbolUnits as b}from"./types.js";import{colorToArray as x,normalizeAlpha as P,getSize as z,isCIMMarkerStrokePlacement as I,hasStrokeLayer as E,getTintColor as L,getNumericValue as V,normalizePrimitiveOverrideProps as N,getDefaultCIMValue as R,getEnum as A,getFillColor as T,getStrokeColor as w,fromCIMFontDecoration as G,fromCIMFontStyle as F,getStrokeWidth as X,fromCIMVerticalAlignment as j,fromCIMHorizontalAlignment as W,getTextCasing as Y,isValidCIMValue as D,uncapitalize as U}from"./utils.js";import{EffectHelper as H}from"./effects/EffectHelper.js";import{rasterizedVectorMarkerMinSize as J,randomInsidePolygonTextureSize as B}from"../../views/2d/engine/webgl/definitions.js";const q=()=>i.getLogger("esri.symbols.cim.cimAnalyzer");function K(e){const t=e.markerPlacement;return t&&t.angleToLine?1:0}class Q{constructor(e){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[],this._hasTextStringTemplates=!1,e&&(this._resourceManager=e)}analyzeSymbolReference(t,r,i){if(this._cimLayers=i??[],!t)return this._cimLayers;if(this._reset(),this._hasTextStringTemplates=t.hasTextStringTemplates??!1,t.primitiveOverrides){this._primitiveOverrides=t.primitiveOverrides;for(const t of this._primitiveOverrides){const r=t.valueExpressionInfo;if(r)this._setPoMap(t.primitiveName,t.propertyName,r);else if(null!=t.value){let r=t.value;t.propertyName.includes("Color")&&(e(r)&&(r=x(r)),r=P(r)),this._setPoMap(t.primitiveName,t.propertyName,r)}}}return this._analyzeSymbol(t.symbol,r),this._cimLayers}_reset(){this._cimLayers=[],this._poMap={},this._primitiveOverrides=[]}_analyzeSymbol(e,t){switch(e?.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":this._analyzeMultiLayerSymbol(e,t)}}_analyzeMultiLayerSymbol(e,t){const r=e?.symbolLayers;if(!r)return;for(let l=0;l<r.length;l++){const e=r[l];"CIMVectorMarker"===e.type&&(r[l]=S(e))}const i=e.effects;let o=0;const a=z(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=1),oe(r,i))return this._analyzeCompositeOutlineFill(r,i,a);let s={transform:[0,0,0,1],fromColor:[1,1,1,1],toColor:[1,1,1,1],colorMix:[0,0,0,0],toOpacity:[1,1,1,1],opacityMix:[0,0,0,0],shift:[1,1,1,1],hasAnimations:l(e),hasShiftAnimation:!1,hasMotionAnimations:!1};s=n(this._poMap,e,s);const p="CIMPolygonSymbol"===e.type;let m=r.length;for(;m--;){const l=r[m];if(!l||!1===l.enable)continue;let n;i?.length&&(n=[...i]);const c=l.effects;c?.length&&(i?n.push(...c):n=[...c]);let d=null;if(n){d=[];for(const e of n){const t=_.findEffectOverrides(e,this._primitiveOverrides);t&&d.push(t)}}const y=[];switch(_.findApplicableOverrides(l,this._primitiveOverrides,y),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,d,s,E(r));break;case"CIMPictureFill":this._analyzePictureFill(l,d,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,d,s);break;case"CIMGradientFill":this._analyzeGradientFill(l,d);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,d,p,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,d,p,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,d,p,a);break;case"CIMCharacterMarker":case"CIMPictureMarker":case"CIMVectorMarker":{"CIMLineSymbol"!==e.type&&"CIMPolygonSymbol"!==e.type||(o=K(l));const r=[],i=l.primitiveName;i&&r.push(i);const n=p&&I(l.markerPlacement);this._analyzeMarker(l,d,null,r,o,a,t,[],s,!1,n);break}default:q().error("Cannot analyze CIM layer",l.type)}}}_analyzeSolidFill(e,t,r,i){const{primitiveName:o,type:a}=e,s=P(e.color),l=n(this._poMap,e,r);if(!i&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.effect.type)){const r=this._getValueOrOverrideExpression(a,o,"Color",s);return void this._cimLayers.push({type:"outlineFill",colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...O,outlineEffects:t})}this._cimLayers.push({type:"fill",spriteRasterizationParam:null,colorLocked:!!e.colorLocked,color:this._getValueOrOverrideExpression(a,o,"Color",s),height:0,angle:0,offsetX:0,offsetY:0,scaleX:1,effects:t,applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!1,animationParams:se(l)})}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=L(e),s=V(e.height,g.CIMPictureFill.height);let l=V(e.scaleX,1);if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height),l/=r*(s/t)}const p={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(i,o)},m=n(this._poMap,e,r);this._cimLayers.push({type:"fill",spriteRasterizationParam:p,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(o,i,"TintColor",a),height:this._getValueOrOverrideExpression(o,i,"Height",s),scaleX:this._getValueOrOverrideExpression(o,i,"ScaleX",l),angle:this._getValueOrOverrideExpression(o,i,"Rotation",V(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",V(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",V(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!1,hasUnresolvedReplacementColor:!1,animationParams:se(m)})}_analyzeHatchFill(e,t,r){const{primitiveName:i,type:o}=e,a=n(this._poMap,e,r),s=this._analyzeMaterialOverrides(i,["Rotation","OffsetX","OffsetY"]),l=N(s);let p=[255,255,255,1],m=!1;if(e.lineSymbol?.symbolLayers)for(const n of e.lineSymbol.symbolLayers){if("CIMSolidStroke"!==n.type)continue;const e=n.primitiveName??i;m||!e||n.colorLocked||null==this._poMap[e]?.Color&&null==this._poMap[e]?.StrokeColor||(p=P(n.color),p=this._maybeGetValueOrOverrideExpression(e,"StrokeColor")??this._getValueOrOverrideExpression(o,e,"Color",p),m=!0);const t=this._maybeGetValueOrOverrideExpression(e,"StrokeWidth");if(t){let r=null,i=null;"number"==typeof t?r=t:i=t.valueExpressionInfo;let a=l.find(e=>"strokeWidth"===e.propertyName);a?a.propertyName="width":(a={type:"CIMPrimitiveOverride",primitiveName:e,propertyName:"width",valueExpressionInfo:i,value:r,defaultValue:R(o,"width")},l.push(a))}}const c={type:"sprite-rasterization-param",resource:e,overrides:l};this._cimLayers.push({type:"fill",spriteRasterizationParam:c,colorLocked:!!e.colorLocked,effects:t,color:p,height:this._getValueOrOverrideExpression(o,i,"Separation",V(e.separation,g.CIMHatchFill.separation)),scaleX:1,angle:this._getValueOrOverrideExpression(o,i,"Rotation",V(e.rotation)),offsetX:this._getValueOrOverrideExpression(o,i,"OffsetX",V(e.offsetX)),offsetY:this._getValueOrOverrideExpression(o,i,"OffsetY",V(e.offsetY)),applyRandomOffset:!1,sampleAlphaOnly:!0,hasUnresolvedReplacementColor:!m,animationParams:se(a)})}_analyzeGradientFill(e,t){const{angle:r,gradientMethod:i,gradientSize:o,gradientSizeUnits:a,gradientType:s,interval:l,primitiveName:n,type:p}=e,m=g.CIMGradientFill,c=e.colorRamp;this._cimLayers.push({type:"gradientFill",spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(n,p)},colorLocked:!1,effects:t,color:[255,255,255,1],gradientMethod:this._getValueOrOverrideExpression(p,n,"GradientMethod",i??"Linear"),angle:this._getValueOrOverrideExpression(p,n,"Angle",V(r,m.angle)),gradientType:this._getValueOrOverrideExpression(p,n,"GradientType",s??m.gradientType),interval:this._getValueOrOverrideExpression(p,n,"Interval",V(l,"CIMFixedColorRamp"===c.type?c.colors.length:m.interval)),gradientSize:this._getValueOrOverrideExpression(p,n,"GradientSize",V(o,m.gradientSize)),gradientSizeUnits:"Absolute"===a?b.Absolute:"Relative"===a?b.Relative:m.gradientSizeUnits})}_analyzeCompositeOutlineFill(e,t,r){const i=e.find(e=>"CIMSolidFill"===e.type),o=e.find(e=>"CIMSolidStroke"===e.type);if(null==i||null==o)return;const a=[...t??[],...i.effects??[]].map(e=>_.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>_.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=V(o.width,g.CIMSolidStroke.width),n=A(o.capStyle,g.CIMSolidStroke.capstyle),p=A(o.joinStyle,g.CIMSolidStroke.joinstyle),m=o.miterLimit;this._cimLayers.push({type:"outlineFill",colorLocked:!!i.colorLocked,color:this._getValueOrOverrideExpression(i.type,i.primitiveName,"Color",P(i.color)),effects:a,outlineColorLocked:!!o.colorLocked,outlineColor:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Color",P(o.color)),outlineWidth:this._getValueOrOverrideExpression(o.type,o.primitiveName,"Width",l),cap:this._getValueOrOverrideExpression(o.type,o.primitiveName,"CapStyle",n),join:this._getValueOrOverrideExpression(o.type,o.primitiveName,"JoinStyle",p),miterLimit:m&&this._getValueOrOverrideExpression(o.type,o.primitiveName,"MiterLimit",m),referenceWidth:r,outlineEffects:s})}_analyzeSolidStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=P(e.color),p=V(e.width,g.CIMSolidStroke.width),m=A(e.capStyle,g.CIMSolidStroke.capstyle),c=A(e.joinStyle,g.CIMSolidStroke.joinstyle),d=e.miterLimit;let y,f,h,u,v=[];if(this._analyzePrimitiveOverrides(a,t,null,null)&&(v=this._getPrimitiveMaterialOverrides(a,s)),t&&Array.isArray(t)&&t.length>0){const e=t[t.length-1].effect;e&&"CIMGeometricEffectDashes"===e.type&&"NoConstraint"===e.lineDashEnding&&(y=e.dashTemplate,f=e.scaleDash,h=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const O=void 0!==y?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:y,primitiveName:u},overrides:v}:null,S=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:O,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"Color",l),width:this._getValueOrOverrideExpression(s,a,"Width",p),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:d&&this._getValueOrOverrideExpression(s,a,"MiterLimit",d),referenceWidth:i,zOrder:$(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??y,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",h??0),scaleDash:f,sampleAlphaOnly:!0,animationParams:se(S)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=L(e),p=V(e.width,g.CIMPictureStroke.width),m=A(e.capStyle,g.CIMPictureStroke.capstyle),c=A(e.joinStyle,g.CIMPictureStroke.joinstyle),d=e.miterLimit,y={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},f=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:y,isOutline:r,colorLocked:!!e.colorLocked,effects:t,color:this._getValueOrOverrideExpression(s,a,"TintColor",l),width:this._getValueOrOverrideExpression(s,a,"Width",p),cap:this._getValueOrOverrideExpression(s,a,"CapStyle",m),join:this._getValueOrOverrideExpression(s,a,"JoinStyle",c),miterLimit:d&&this._getValueOrOverrideExpression(s,a,"MiterLimit",d),referenceWidth:i,zOrder:$(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:se(f)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:m}=e,c=g.CIMGradientStroke,d=V(e.width,c.width),y=A(e.capStyle,c.capstyle),f=A(e.joinStyle,c.joinstyle),h=e.miterLimit,u=e.colorRamp;this._cimLayers.push({type:"gradientStroke",spriteRasterizationParam:{type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(p,m)},colorLocked:!!e.colorLocked,effects:t,color:[255,255,255,1],width:this._getValueOrOverrideExpression(m,p,"Width",d),cap:this._getValueOrOverrideExpression(m,p,"CapStyle",y),join:this._getValueOrOverrideExpression(m,p,"JoinStyle",f),miterLimit:h&&this._getValueOrOverrideExpression(m,p,"MiterLimit",h),referenceWidth:i,isOutline:r,gradientMethod:this._getValueOrOverrideExpression(m,p,"GradientMethod",o??c.gradientMethod),gradientType:this._getValueOrOverrideExpression(m,p,"GradientType",l??c.gradientType),interval:this._getValueOrOverrideExpression(m,p,"Interval",V(n,"CIMFixedColorRamp"===u.type?u.colors.length:c.interval)),gradientSize:this._getValueOrOverrideExpression(m,p,"GradientSize",V(a,c.gradientSize)),gradientSizeUnits:"Absolute"===s?b.Absolute:"Relative"===s?b.Relative:c.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,d,y=!1,f=!1){y||=!!e.colorLocked;let h=d;if(h=p(e,h),h=m(this._poMap,e,h),h=c(e,h),h=n(this._poMap,e,h),this._analyzeMarkerInsidePolygon(e,t,y,h))return;const u=V(e.size,g.CIMVectorMarker.size),v=V(e.rotation),O=V(e.offsetX),S=V(e.offsetY),{primitiveName:_,type:M}=e,k=this._getValueOrOverrideExpression(M,_,"Size",u),C=this._getValueOrOverrideExpression(M,_,"Rotation",v),b=this._getValueOrOverrideExpression(M,_,"OffsetX",O),x=this._getValueOrOverrideExpression(M,_,"OffsetY",S);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,k,C,b,x,l,h,y,f);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,k,C,b,x,l,h,s,y,f)}}_analyzeMarkerInsidePolygon(e,t,r,i){const{markerPlacement:o,type:s}=e;if(!o||"CIMMarkerPlacementInsidePolygon"!==o.type||i.hasMotionAnimations)return!1;if("CIMVectorMarker"===s||"CIMPictureMarker"===s){const r=e.primitiveName;if(r&&this._analyzePrimitiveOverrides([r],t,null,null))return!1;const i=o.primitiveName;if(i&&this._analyzePrimitiveOverrides([i],t,null,null))return!1;if("CIMVectorMarker"===s){const{markerGraphics:t}=e;if(t)for(const e of t){const{symbol:t}=e;if("CIMPolygonSymbol"===t?.type&&t.symbolLayers){const{symbolLayers:e}=t;for(const t of e)if("CIMSolidStroke"===t.type)return!1}}}else{const{animatedSymbolProperties:t}=e;if(t)return!1}}const l=Math.abs(o.stepX),n=Math.abs(o.stepY);if(0===l||0===n)return!0;let p,m;if("Random"===o.gridType){const e=a(B),t=Math.max(Math.floor(e/l),1);p=n*Math.max(Math.floor(e/n),1);m=t*l/p}else o.shiftOddRows?(p=2*n,m=l/n*.5):(p=n,m=l/n);const c=L(e),d="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:e,overrides:[]};return this._cimLayers.push({type:"fill",spriteRasterizationParam:d,colorLocked:r,effects:t,color:c,height:p,scaleX:m,angle:o.gridAngle,offsetX:V(o.offsetX),offsetY:V(o.offsetY),applyRandomOffset:"Random"===o.gridType,sampleAlphaOnly:"CIMPictureMarker"!==e.type,hasUnresolvedReplacementColor:!0,animationParams:se(i)}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,m,c,d,y,f,h){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=V(e.scaleX,1);const S=L(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const _=this._createGIFAnimatedSymbolPropertiesOverrideExpression(u),M=e.anchorPoint??{x:0,y:0};if("width"in e&&"number"==typeof e.width){const t=e.width;let r=1;const i=this._resourceManager.getResource(e.url);null!=i&&(r=i.width/i.height);g/=r*(V(e.size)/t)}const k=[...o];let C;e.primitiveName&&k.push(e.primitiveName),u||_?C={type:"animated",url:e.url,urlHash:"H"+s(e.url),playAnimation:e.animatedSymbolProperties?.playAnimation,reverseAnimation:e.animatedSymbolProperties?.reverseAnimation,randomizeStartTime:e.animatedSymbolProperties?.randomizeStartTime,randomizeStartSeed:e.animatedSymbolProperties?.randomizeStartSeed,startTimeOffset:e.animatedSymbolProperties?.startTimeOffset,duration:e.animatedSymbolProperties?.duration,repeatType:e.animatedSymbolProperties?.repeatType,repeatDelay:e.animatedSymbolProperties?.repeatDelay}:(C=r(e),C.markerPlacement=null);const b={type:"sprite-rasterization-param",resource:C,overrides:this._getMaterialOverrides(k,O)};_&&b.overrides.push(..._.overrides);const x=n;this._cimLayers.push({type:"marker",spriteRasterizationParam:b,colorLocked:f,effects:t,scaleSymbolsProportionally:!1,alignment:a,size:n,scaleX:this._getValueOrOverrideExpression(O,v,"ScaleX",g),rotation:p,offsetX:m,offsetY:c,transform:{type:"cim-marker-transform-param",params:d},color:this._getValueOrOverrideExpression(O,v,"TintColor",S),anchorPoint:{x:M.x,y:M.y},isAbsoluteAnchorPoint:"Relative"!==e.anchorPointUnits,outlineColor:[0,0,0,0],outlineWidth:0,frameHeight:0,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:1,isOutline:h,markerPlacement:i,animationParams:se(y),baseSize:x})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,p,m,c,h,u,v,O){const g=e.markerGraphics;if(!g)return;const S=e.frame;let _=0;_=S?S.ymax-S.ymin:a;const M=!!e.scaleSymbolsProportionally;if(_){const t={offsetX:p,offsetY:m,rotation:l,size:s,frameHeight:_,rotateClockWise:!!e.rotateClockwise,absoluteAnchorPoint:!1,scaleSymbolsProportionally:M};c=[...c,t]}r||(r=this._createMarkerPlacementOverrideExpression(e.markerPlacement));for(const k of g)if(k){const s=k.symbol;if(!s)continue;const l=k.primitiveName;l&&i.push(l);let p,m=h;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&S){let t=0,r=0;const i=k.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(S.xmin+S.xmax),r+=i.y-.5*(S.ymin+S.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):S&&(t-=(S.xmax-S.xmin)*o.x,r-=(S.ymax-S.ymin)*o.y));const s={offsetX:t,offsetY:r,rotation:0,size:0,frameHeight:0,rotateClockWise:!1,absoluteAnchorPoint:a,scaleSymbolsProportionally:M};p=[...c,s]}const g=k.geometry,[C,b]=d(g,S);switch(0===C&&0===b||(m=y(m,C,b)),"CIMPointSymbol"===s.type&&(m=n(this._poMap,s,m)),s.type){case"CIMPointSymbol":case"CIMLineSymbol":case"CIMPolygonSymbol":u||re(s)?(m={...m,transform:{type:"AnimatedTransform",relativeTranslation:!1,absoluteScale:!0,translation:f([0,0]),rotation:f(0),scale:f(_),parent:h.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,k,i,o,a,p??c,m,_,v,O)):this._analyzeMultiLayerGraphic(e,t,r,k,i,o,a,p??c,m,_,v,O);break;case"CIMTextSymbol":this._analyzeTextGraphic(t,r,k,i,o,a,p??c,v)}l&&i.pop()}}_analyzeMultiLayerGraphic(e,t,r,i,o,a,s,l,n,p,m,c){const d=i.symbol,y=d.symbolLayers;if(y){if(!te(y)||h(n))return ie(y)?(u(d,e=>{e.colorLocked&&(m=!0)}),void this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,m,c)):void this._analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,n,p,m,c);this._analyzeCompositeMarkerGraphic(e,t,r,i,y,a,s,l,p,m,c)}}_analyzeMarkerGraphicSymbolLayers(e,t,r,i,o,a,s,l,p,m,c,d){const y=i.symbol,f=y.symbolLayers;if(!f)return;const h=H.applyEffects(y.effects,i.geometry);if(!h)return;let u=f.length;for(;u--;){const y=f[u];if(!y||!1===y.enable)continue;const v=y.primitiveName;switch(v&&o.push(v),y.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=H.applyEffects(y.effects,h),f=M(o);if(!f)continue;const u="Relative"!==e.anchorPointUnits,O="CIMSolidStroke"===y.type?y.width:0,{frameSizeRatio:S,anchorX:_,anchorY:b,widthRatio:x,sdfPaddingRatio:z,sdfTextureSize:I}=k(f,e.frame,e.size,e.anchorPoint,u,O,e.scaleSymbolsProportionally),E="CIMSolidFill"===y.type,L={type:"sdf",geometry:o,sdfPaddingRatio:z,asFill:E,sdfTextureSize:I},{path:N}=y,R=E?P(T(y)):null==N?P(w(y)):[0,0,0,0],A=E?[0,0,0,0]:P(w(y));if(!E&&!O)break;const G=i.primitiveName;let F=null;E&&!y.colorLocked&&(F=this._maybeGetValueOrOverrideExpression(G,"FillColor"));let X=null;E||y.colorLocked||(X=this._maybeGetValueOrOverrideExpression(G,"StrokeColor"));const j=F??this._getValueOrOverrideExpression(y.type,v,"Color",R),W=X??this._getValueOrOverrideExpression(y.type,v,"Color",A),Y=this._maybeGetValueOrOverrideExpression(G,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,v,"Width",O),D=N?{type:"sprite-rasterization-param",resource:{type:"path",path:N,asFill:E},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},U=n(this._poMap,y,p),J=V(e.size,g.CIMVectorMarker.size),B=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",J);this._cimLayers.push({type:"marker",spriteRasterizationParam:D,colorLocked:!!y.colorLocked||!!c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:_,y:b},isAbsoluteAnchorPoint:u,size:m,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:m,widthRatio:x,rotateClockwise:!1,referenceSize:s,sizeRatio:S,color:j,outlineColor:W,outlineWidth:Y,isOutline:d,markerPlacement:r,animationParams:se(U),isStroke:"CIMSolidFill"!==y.type,baseSize:B,...C(o,I,z)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(y.markerPlacement){q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(y,t,r,o,a,s,!1,l,p,c,d)}v&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];_.findApplicableOverrides(i,this._primitiveOverrides,p);const m=i.geometry;if(!("x"in m)||!("y"in m))return;const c=i.symbol,d=G(c),y=F(c.fontStyleName),f=t(c.fontFamilyName);c.font={family:f,decoration:d,...y};const h=V(c.height,g.CIMTextSymbol.height),u=V(c.angle),v=V(c.offsetX),O=V(c.offsetY),{haloSymbol:S}=c,M=V(c.haloSize,0);let k=[0,0,0,0];if(S?.symbolLayers?.length){const e=S.symbolLayers;for(const t of e)if(t.color){k=this._getValueOrOverrideExpression(c?.haloSymbol?.type??"CIMPolygonSymbol",t.primitiveName,"Color",P(t.color));break}}const C=i.primitiveName;let b=[0,0,0,1],x=[0,0,0,0],z=0,I=!1;if(c.symbol?.symbolLayers)for(const t of c.symbol.symbolLayers){const e=t.primitiveName;if("CIMSolidStroke"===t.type)x=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Color",P(t.color)),z=this._getValueOrOverrideExpression("CIMSolidStroke",e,"Width",X(t)??0);else if("CIMSolidFill"===t.type){const r=P(t.color);I=I??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??C,"Color",r)}}let E=null,L=null,N=null,R=null,A=null;C&&(E=this._maybeGetValueOrOverrideExpression(C,"TextSize"),L=this._maybeGetValueOrOverrideExpression(C,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(C,"TextOffsetX"),R=this._maybeGetValueOrOverrideExpression(C,"TextOffsetY"),I||(A=this._maybeGetValueOrOverrideExpression(C,"FillColor")));const T=A??b;let w=null,Y=null,D=0;if("CIMBackgroundCallout"===c.callout?.type){const e=c.callout;if(e.backgroundSymbol){const t=e.backgroundSymbol.symbolLayers;if(t)for(const e of t)"CIMSolidFill"===e.type?w=P(e.color):"CIMSolidStroke"===e.type&&(Y=P(e.color),D=V(e.width,g.CIMSolidStroke.width))}}const U=this._getValueOrOverrideExpression(c.type,i.primitiveName,"TextString",i.textString??"");if(null==U)return;const{fontStyleName:H}=c,J=f+(H?"-"+H.toLowerCase():"-regular"),B=this._getMaterialOverrides(o,c.type);B.push(...this._getPrimitiveMaterialOverrides(i.primitiveName,c.type)),this._collectDictionaryTemplateOverrides(B,i);const q={type:"text-rasterization-param",resource:{type:"text",textString:i.textString??"",font:c.font,symbol:c,primitiveName:i.primitiveName},overrides:B};this._cimLayers.push({type:"text",lineWidth:c.lineWidth,textRasterizationParam:q,colorLocked:!!n||!!I,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:J,decoration:d,haloSize:M,haloColor:k,weight:y.weight,style:y.style,size:E??h,angle:L??u,offsetX:N??v,offsetY:R??O,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:W(c.horizontalAlignment),verticalAlignment:j(c.verticalAlignment),text:U,color:T,outlineColor:x,outlineSize:z,backgroundColor:w,borderLineColor:Y,borderLineWidth:D,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=Y(t.symbol);e.push({propertyName:"textString",defaultValue:"",valueExpressionInfo:{type:"dictionary-template",textCase:r,template:t.textString},primitiveName:t.primitiveName})}}_analyzeMultiLayerGraphicNonSDF(e,t,r,i,a,s,l,n,p,m,c,d){const y=Z(e,i),f=e.primitiveName,h=this._analyzeMaterialOverrides(f,["Rotation","OffsetX","OffsetY"]),u=N(h),[O,S,_]=v.getTextureAnchor(y,this._resourceManager,J),M=this._getMaterialOverrides(a,e.type);M.push(...u);const k={type:"sprite-rasterization-param",resource:{...y,avoidSDFRasterization:!0},overrides:M},C=V(e.size,g.CIMVectorMarker.size),b=this._getValueOrOverrideExpression(e.type,f,"Size",C);this._cimLayers.push({type:"marker",spriteRasterizationParam:k,colorLocked:c,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:O,y:S},isAbsoluteAnchorPoint:!1,size:m,rotation:0,offsetX:0,offsetY:0,transform:{type:"cim-marker-transform-param",params:n},color:[255,255,255,1],outlineColor:[0,0,0,0],outlineWidth:0,scaleX:1,frameHeight:m,widthRatio:1,rotateClockwise:!!e.rotateClockwise,referenceSize:l,sizeRatio:_/o(e.size),isOutline:d,markerPlacement:r,animationParams:se(p),baseSize:b})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return _.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:ae(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return _.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-gif-animation-params",animation:e,overrides:ae(t)}}_analyzeCompositeMarkerGraphic(e,t,r,i,o,a,s,l,n,p,m){const c=i.geometry,d=o[0],y=o[1],f=M(c);if(!f)return;const h="Relative"!==e.anchorPointUnits,u=V(d.width,g.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:O,anchorY:S,widthRatio:_,sdfPaddingRatio:C,sdfTextureSize:b}=k(f,e.frame,e.size,e.anchorPoint,h,u,e.scaleSymbolsProportionally),{path:x}=y,z=y.primitiveName,I=d.primitiveName,E=i.primitiveName;let L=null;y.colorLocked||p||(L=this._maybeGetValueOrOverrideExpression(E,"FillColor"));const N=L??this._getValueOrOverrideExpression(y.type,z,"Color",P(y.color));let R=null;d.colorLocked||p||(R=this._maybeGetValueOrOverrideExpression(E,"StrokeColor"));const A=R??this._getValueOrOverrideExpression(d.type,I,"Color",P(d.color)),T=this._maybeGetValueOrOverrideExpression(E,"StrokeWidth")??this._getValueOrOverrideExpression(d.type,I,"Width",u),w={type:"sprite-rasterization-param",resource:x?{type:"path",path:x,asFill:!0}:{type:"sdf",geometry:c,sdfTextureSize:b,sdfPaddingRatio:C,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",spriteRasterizationParam:w,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:O,y:S},isAbsoluteAnchorPoint:h,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:_,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:N,outlineColor:A,outlineWidth:T,isOutline:m,markerPlacement:r})}_setPoMap(e,t,r){let i;this._poMap[e]?i=this._poMap[e]:(i={},this._poMap[e]=i),i[t]=r}_maybeGetValueOrOverrideExpression(e,t,r){return this._getValueOrOverrideExpression("",e,t,r,!1)}_getValueOrOverrideExpression(e,t,r,i,o=!0){if(o&&!D(i)&&(i=R(e,r.toLowerCase())),null==t)return i;const a=this._poMap[t];if(null==a)return i;const s=a[r];return"string"==typeof s||"number"==typeof s||Array.isArray(s)?s:s?{valueExpressionInfo:s,defaultValue:i}:i}_analyzePrimitiveOverrides(e,t,r,i){if(null==e)return!1;"string"==typeof e&&(e=[e]);for(const o of this._primitiveOverrides)if(e.includes(o.primitiveName)&&o.valueExpressionInfo)return!0;if(null!=t)for(const o of t)if(o?.overrides.length>0)return!0;if(null!=r)for(const o of r)if(o?.overrides.length>0)return!0;if(null!=i)for(const o of i)if(o?.overrides.length>0)return!0;return!1}_getMaterialOverrides(e,t){if(!e)return[];const r=[];for(const i of e)r.push(...this._getPrimitiveMaterialOverrides(i,t));return r}_getPrimitiveMaterialOverrides(e,t){if(!e)return[];const r=N(this._primitiveOverrides.filter(t=>t.primitiveName===e));return r.forEach(e=>e.defaultValue=R(t,e.propertyName.toLowerCase())),r}_analyzeMaterialOverrides(e,t){return this._primitiveOverrides.filter(r=>r.primitiveName!==e||!t.includes(r.propertyName))}}function Z(e,t){return{type:e.type,enable:!0,name:e.name,colorLocked:e.colorLocked,primitiveName:e.primitiveName,anchorPoint:e.anchorPoint,anchorPointUnits:e.anchorPointUnits,offsetX:0,offsetY:0,rotateClockwise:e.rotateClockwise,rotation:0,size:e.size,billboardMode3D:e.billboardMode3D,depth3D:e.depth3D,frame:e.frame,markerGraphics:[t],scaleSymbolsProportionally:e.scaleSymbolsProportionally,respectFrame:e.respectFrame,clippingPath:e.clippingPath}}function $(e){if(e?.startsWith("Level_")){const t=parseInt(e.slice(6),10);if(!isNaN(t))return t}return 0}function ee(e,t){if(!t||0===t.length)return e;const i=r(e);return _.applyOverrides(i,t),i}const te=e=>e&&2===e.length&&e[0].enable&&e[1].enable&&"CIMSolidStroke"===e[0].type&&"CIMSolidFill"===e[1].type&&null==e[0].path&&null==e[1].path&&!e[0].effects&&!e[1].effects&&!e[0].animations&&!e[1].animations;function re(e){const t=e.symbolLayers;if(!t)return!1;const r=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectDashes"===e.type&&null!=e.dashTemplate)),i=t.find(e=>e.effects?.find(e=>"CIMGeometricEffectAddControlPoints"===e.type));return!!r||!!i}function ie(e){return e.some(e=>"CIMSolidFill"!==e.type&&"CIMSolidStroke"!==e.type&&("CIMVectorMarker"!==e.type&&"CIMPictureMarker"!==e.type||null!=e.markerPlacement))}function oe(e,t){if(t?.some(e=>"CIMGeometricEffectRadial"===e.type)&&t?.some(e=>"CIMGeometricEffectTaperedPolygon"===e.type)&&2===e.length){const t=e.find(e=>"CIMSolidFill"===e.type),r=e.find(e=>"CIMSolidStroke"===e.type),i=r?.effects?.some(e=>"CIMGeometricEffectDashes"===e.type);if(null!=t&&null!=r&&!i)return!0}return!1}function ae(e){return r(e).map(e=>({...e,propertyName:U(e.propertyName)}))}function se(e){return h(e)?{type:"animation-params",params:e}:null}export{Q as CIMAnalyzer,ee as analyzeCIMResource};
@@ -435,7 +435,7 @@ export interface CIMGeometricEffectAddControlPoints extends CIMGeometricEffectBa
435
435
  *
436
436
  * The following image shows what the effect defined in the code snippet above looks like on a [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer.
437
437
  *
438
- * ![CIMGeometricEffectArrow](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMGeometricEffectArrow.png)
438
+ * ![CIMGeometricEffectArrow](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMGeometricEffectArrow.png)
439
439
  *
440
440
  * @since 4.16
441
441
  * @see [CIMGeometricEffect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffect)
@@ -468,7 +468,7 @@ export interface CIMGeometricEffectArrow extends CIMGeometricEffectBase {
468
468
  * ```
469
469
  * The following image shows what the effect defined in the code snippet above looks like on a [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer.
470
470
  *
471
- * ![CIMGeometricEffectBuffer](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMGeometricEffectBuffer.png)
471
+ * ![CIMGeometricEffectBuffer](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMGeometricEffectBuffer.png)
472
472
  *
473
473
  * @since 4.16
474
474
  * @see [CIMGeometricEffect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffect)
@@ -515,7 +515,7 @@ export interface CIMGeometricEffectControlMeasureLine extends CIMGeometricEffect
515
515
  *
516
516
  * The following image shows what the effect defined in the code snippet above looks like on a [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer.
517
517
  *
518
- * ![CIMGeometricEffectCut](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMGeometricEffectCut.png)
518
+ * ![CIMGeometricEffectCut](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMGeometricEffectCut.png)
519
519
  *
520
520
  * @since 4.16
521
521
  * @see [CIMGeometricEffect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffect)
@@ -567,7 +567,7 @@ export interface CIMGeometricEffectCut extends CIMGeometricEffectBase {
567
567
  *
568
568
  * The following image shows what the effect defined in the code snippet above looks like on a [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer.
569
569
  *
570
- * ![CIMGeometricEffectDashes](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMGeometricEffectDashes.png)
570
+ * ![CIMGeometricEffectDashes](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMGeometricEffectDashes.png)
571
571
  *
572
572
  * @since 4.16
573
573
  * @see [CIMGeometricEffect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffect)
@@ -666,7 +666,7 @@ export interface CIMGeometricEffectEnclosingPolygon extends CIMGeometricEffectBa
666
666
  *
667
667
  * The image below shows a [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer with the `CIMGeometricEffectJog` effect applied as defined in the snippet above.
668
668
  *
669
- * ![CIMGeometricEffectJog](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMGeometricEffectJog.png)
669
+ * ![CIMGeometricEffectJog](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMGeometricEffectJog.png)
670
670
  *
671
671
  * @since 4.16
672
672
  * @see [CIMGeometricEffect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffect)
@@ -931,7 +931,7 @@ export interface CIMGeometricEffectTaperedPolygon extends CIMGeometricEffectBase
931
931
  *
932
932
  * The image below shows a [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer with the `CIMGeometricEffectWave` effect applied as defined in the snippet above.
933
933
  *
934
- * ![CIMGeometricEffectWave](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMGeometricEffectWave.png)
934
+ * ![CIMGeometricEffectWave](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMGeometricEffectWave.png)
935
935
  *
936
936
  * @since 4.16
937
937
  * @see [CIMGeometricEffect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffect)
@@ -1189,7 +1189,7 @@ export interface CIMGradientStroke extends CIMStroke {
1189
1189
  * ```
1190
1190
  *
1191
1191
  * The following image shows a [CIMPolygonSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMPolygonSymbol) with a `CIMHatchFill` symbol layer (as defined in the code snippet above).
1192
- * ![CIMHatchFill](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMHatchFill.png)
1192
+ * ![CIMHatchFill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMHatchFill.png)
1193
1193
  *
1194
1194
  * @since 5.0
1195
1195
  * @see [CIMSymbolLayer](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSymbolLayer)
@@ -1354,7 +1354,7 @@ export interface CIMMultiLayerSymbol extends CIMSymbol {
1354
1354
  * [CIMSolidStroke](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidStroke) symbol layer with a
1355
1355
  * [dash effect](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMGeometricEffectDashes) on top of another CIMSolidStroke layer as shown below.
1356
1356
  *
1357
- * ![CIMLineSymbol](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol-cim-line.png)
1357
+ * ![CIMLineSymbol](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol-cim-line.png)
1358
1358
  *
1359
1359
  * ```js
1360
1360
  * const lineSymbol = new CIMSymbol({
@@ -1536,7 +1536,7 @@ export interface CIMMarkerPlacementAlongLine extends CIMMarkerStrokePlacement {
1536
1536
  *
1537
1537
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1538
1538
  *
1539
- * ![CIMMarkerPlacementAlongLineSameSize](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementAlongLineSameSize.png)
1539
+ * ![CIMMarkerPlacementAlongLineSameSize](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementAlongLineSameSize.png)
1540
1540
  *
1541
1541
  * @since 5.0
1542
1542
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1562,7 +1562,7 @@ export interface CIMMarkerPlacementAlongLineSameSize extends CIMMarkerPlacementA
1562
1562
  *
1563
1563
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1564
1564
  *
1565
- * ![CIMMarkerPlacementAtExtremities](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementAtExtremities.png)
1565
+ * ![CIMMarkerPlacementAtExtremities](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementAtExtremities.png)
1566
1566
  *
1567
1567
  * @since 5.0
1568
1568
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1603,7 +1603,7 @@ export interface CIMMarkerPlacementAtExtremities extends CIMMarkerStrokePlacemen
1603
1603
  *
1604
1604
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1605
1605
  *
1606
- * ![CIMMarkerPlacementAtRatioPositions](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementAtRatioPositions.png)
1606
+ * ![CIMMarkerPlacementAtRatioPositions](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementAtRatioPositions.png)
1607
1607
  *
1608
1608
  * @since 5.0
1609
1609
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1660,7 +1660,7 @@ export interface CIMMarkerFillPlacement extends CIMMarkerPlacementBase {}
1660
1660
  *
1661
1661
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1662
1662
  *
1663
- * ![CIMMarkerPlacementInsidePolygon](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementInsidePolygon.png)
1663
+ * ![CIMMarkerPlacementInsidePolygon](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementInsidePolygon.png)
1664
1664
  *
1665
1665
  * @since 5.0
1666
1666
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1753,7 +1753,7 @@ export interface CIMMarkerPlacementInsidePolygon extends CIMMarkerFillPlacement
1753
1753
  *
1754
1754
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1755
1755
  *
1756
- * ![CIMMarkerPlacementOnLine](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementOnLine.png)
1756
+ * ![CIMMarkerPlacementOnLine](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementOnLine.png)
1757
1757
  *
1758
1758
  * @since 5.0
1759
1759
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1792,7 +1792,7 @@ export interface CIMMarkerPlacementOnLine extends CIMMarkerStrokePlacement {
1792
1792
  *
1793
1793
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1794
1794
  *
1795
- * ![CIMMarkerPlacementOnVertices](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementOnVertices.png)
1795
+ * ![CIMMarkerPlacementOnVertices](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementOnVertices.png)
1796
1796
  *
1797
1797
  * @since 5.0
1798
1798
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1838,7 +1838,7 @@ export interface CIMMarkerPlacementOnVertices extends CIMMarkerStrokePlacement {
1838
1838
  *
1839
1839
  * The following image shows what the marker placement defined in the code snippet above looks like on a circular [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
1840
1840
  *
1841
- * ![CIMMarkerPlacementPolygonCenter](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMMarkerPlacementPolygonCenter.png)
1841
+ * ![CIMMarkerPlacementPolygonCenter](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMMarkerPlacementPolygonCenter.png)
1842
1842
  *
1843
1843
  * @since 5.0
1844
1844
  * @see [CIMMarkerPlacement](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerPlacement)
@@ -1881,7 +1881,7 @@ export interface CIMMarkerPlacementPolygonCenter extends CIMMarkerFillPlacement
1881
1881
  *
1882
1882
  * The following image shows a [CIMPolygonSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMPolygonSymbol) with two `CIMPictureFill` symbol layers and a [CIMSolidFill](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMSolidFill) symbol layer (as defined in the code snippet below).
1883
1883
  *
1884
- * ![CIMPictureFill](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMPictureFill.png)
1884
+ * ![CIMPictureFill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMPictureFill.png)
1885
1885
  *
1886
1886
  * ```json
1887
1887
  * {
@@ -1983,7 +1983,7 @@ export interface CIMPictureFill extends CIMFill {
1983
1983
  *
1984
1984
  * The following image shows a `CIMPictureMarker` symbol layer (as defined in the code snippet below).
1985
1985
  *
1986
- * ![CIMPictureMarker](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMPictureMarker.png)
1986
+ * ![CIMPictureMarker](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMPictureMarker.png)
1987
1987
  *
1988
1988
  * ```json
1989
1989
  * {
@@ -2331,7 +2331,7 @@ export interface CIMPictureStroke extends CIMStroke {
2331
2331
  * with one [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol
2332
2332
  * layer which contains a triangle [marker graphic](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerGraphic) as shown below.
2333
2333
  *
2334
- * ![CIMSymbol](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol-cim.png)
2334
+ * ![CIMSymbol](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol-cim.png)
2335
2335
  *
2336
2336
  * ```js
2337
2337
  * const symbol = new CIMSymbol({
@@ -2414,7 +2414,7 @@ export interface CIMPointSymbol extends CIMMultiLayerSymbol {
2414
2414
  * The code snippet below shows an example of a `CIMPolygonSymbol`
2415
2415
  * with [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbols placed inside the polygon.
2416
2416
  *
2417
- * ![CIMPolygonWithMarkers](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol-cim-marker-polygon.png)
2417
+ * ![CIMPolygonWithMarkers](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol-cim-marker-polygon.png)
2418
2418
  *
2419
2419
  * ```js
2420
2420
  * const markerPolygonSymbol = new CIMSymbol({
@@ -2494,7 +2494,7 @@ export interface CIMPolygonSymbol extends CIMMultiLayerSymbol {
2494
2494
  *
2495
2495
  * The following image shows a [CIMPolygonSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMPolygonSymbol) with a CIMSolidFill symbol layer (as defined in the code snippet below).
2496
2496
  *
2497
- * ![CIMSolidFill](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMSolidFill.png)
2497
+ * ![CIMSolidFill](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMSolidFill.png)
2498
2498
  *
2499
2499
  * ```json
2500
2500
  * {
@@ -2529,7 +2529,7 @@ export interface CIMSolidFill extends CIMFill {
2529
2529
  *
2530
2530
  * The following image shows a [CIMLineSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMLineSymbol) with a CIMSolidStroke symbol layer (as defined in the code snippet below).
2531
2531
  *
2532
- * ![CIMSolidStroke](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMSolidStroke.png)
2532
+ * ![CIMSolidStroke](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMSolidStroke.png)
2533
2533
  *
2534
2534
  * ```json
2535
2535
  * {
@@ -2569,7 +2569,7 @@ export interface CIMSolidStroke extends CIMStroke {
2569
2569
  *
2570
2570
  * The code snippet below shows an example of a `CIMTextSymbol` as a [marker graphic](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMMarkerGraphic) inside a [CIMVectorMarker](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMVectorMarker) symbol layer.
2571
2571
  *
2572
- * ![CIMTextSymbol](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMTextSymbol.png)
2572
+ * ![CIMTextSymbol](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMTextSymbol.png)
2573
2573
  *
2574
2574
  * ```json
2575
2575
  * {
@@ -2722,7 +2722,7 @@ export interface CIMTextSymbol extends CIMSymbol {
2722
2722
  *
2723
2723
  * The following image shows a [CIMPointSymbol](https://developers.arcgis.com/javascript/latest/references/core/symbols/cim/types/#CIMPointSymbol) with a CIMVectorMarker symbol layer (as defined in the code snippet below).
2724
2724
  *
2725
- * ![CIMVectorMarker](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/cim/CIMVectorMarker.png)
2725
+ * ![CIMVectorMarker](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/cim/CIMVectorMarker.png)
2726
2726
  *
2727
2727
  * ```json
2728
2728
  * {
@@ -32,7 +32,7 @@ export interface Edges3DProperties {
32
32
  *
33
33
  * Currently only edges of type `solid` and `sketch` are supported. See [SolidEdges3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/edges/SolidEdges3D/) and [SketchEdges3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/edges/SketchEdges3D/).
34
34
  *
35
- * [![symbol3D-edges](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol3d-edges.png)](https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-edges/)
35
+ * [![symbol3D-edges](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3d-edges.png)](https://developers.arcgis.com/javascript/latest/sample-code/layers-scenelayer-edges/)
36
36
  *
37
37
  * @since 4.7
38
38
  */
@@ -8,7 +8,7 @@ export interface SolidEdges3DProperties extends Edges3DProperties {}
8
8
  * polygons or mesh geometries with a solid line. It can be used to emphasize the form of 3D objects and to improve the
9
9
  * three-dimensional spatial understanding.
10
10
  *
11
- * ![symbol3D-edges-solid](https://developers.arcgis.com/javascript/latest/assets/images/apiref/symbols/symbol3d-edges-solid.png)
11
+ * ![symbol3D-edges-solid](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3d-edges-solid.png)
12
12
  *
13
13
  * This symbol can only be set on the [FillSymbol3DLayer.edges](https://developers.arcgis.com/javascript/latest/references/core/symbols/FillSymbol3DLayer/#edges) within a [MeshSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/MeshSymbol3D/)
14
14
  * or on the [ExtrudeSymbol3DLayer.edges](https://developers.arcgis.com/javascript/latest/references/core/symbols/ExtrudeSymbol3DLayer/#edges) on [PolygonSymbol3D](https://developers.arcgis.com/javascript/latest/references/core/symbols/PolygonSymbol3D/).