@arcgis/core 4.34.0-next.22 → 4.34.0-next.24

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 (148) hide show
  1. package/applications/Components/arcadeFeatureUtils.d.ts +5 -0
  2. package/applications/Components/arcadeFeatureUtils.js +5 -0
  3. package/arcade/parser.js +1 -1
  4. package/arcade/validation/arcadeValidator.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/026fbeb0ff5b9e6c74df.js +1 -0
  7. package/assets/esri/core/workers/chunks/0f6203ae32663b2b52db.js +1 -0
  8. package/assets/esri/core/workers/chunks/20bcd2e6cf02e057ad7d.js +1 -0
  9. package/assets/esri/core/workers/chunks/234cbc290b074eeb5dd6.js +1 -0
  10. package/assets/esri/core/workers/chunks/{00eef04fd026adaf0df8.js → 36a2a8b6547604bad2ab.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{63cc4647b7775ff8aedf.js → 44d28849e59f62616e72.js} +1 -1
  12. package/assets/esri/core/workers/chunks/4c47d327815e281c457e.js +1 -0
  13. package/assets/esri/core/workers/chunks/{6bb1ecaa0afc2c7de79e.js → 4cc3eeb0b824c53793d0.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{19ae76283a0cb0fe4dee.js → 4ea96aff38bb301dc40d.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{cab1a1067f44ce374673.js → 7d7f8f2936ddee65e3da.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{b57c0ef7bc57e3c91257.js → 865fccacf44ae5b70eba.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{f43110391f124b8a179c.js → 909a6218db87cba2c9ba.js} +1 -1
  18. package/assets/esri/core/workers/chunks/a273f80298417edecc07.js +1 -0
  19. package/assets/esri/core/workers/chunks/{496e02cfe3d84010f675.js → a2ed7a3cd518dd136ec7.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{1d9e44bdd129cc682ae5.js → ac93b3f1ff15a95d926c.js} +1 -1
  21. package/assets/esri/core/workers/chunks/b32c1b60896a72e0ae90.js +1 -0
  22. package/assets/esri/core/workers/chunks/{6782114a752b9cc59168.js → b6b8272a74a5c24a6b86.js} +1 -1
  23. package/assets/esri/core/workers/chunks/b9f66d735a7e63417b3d.js +1 -0
  24. package/assets/esri/core/workers/chunks/d2ce360961ca4b58666c.js +1 -0
  25. package/assets/esri/core/workers/chunks/{8b19fe829a9dc26fb3fe.js → d915d0a30d9beb24bd3a.js} +1 -1
  26. package/assets/esri/core/workers/chunks/f90573c9dc36e51cd588.js +1 -0
  27. package/assets/esri/core/workers/chunks/fe1902d63f610cebd947.js +1 -0
  28. package/chunks/Bufferer-Dw9Qi4T1.js +1 -1
  29. package/chunks/Envelope.js +1 -1
  30. package/chunks/MultiPathImpl.js +1 -1
  31. package/chunks/OperatorClip.js +1 -1
  32. package/chunks/ProjectionTransformation.js +1 -1
  33. package/chunks/index.js +1 -1
  34. package/config.js +1 -1
  35. package/core/MemCachePool.js +1 -1
  36. package/core/accessorSupport/overrideDefaultsFrom.js +1 -1
  37. package/geometry/operators/gx/operatorOffset.js +1 -1
  38. package/geometry/operators/support/jsonConverter.js +1 -1
  39. package/interfaces.d.ts +157 -31
  40. package/kernel.js +1 -1
  41. package/layers/VideoLayer.js +1 -1
  42. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  43. package/layers/orientedImagery/core/bestImageUtils.js +1 -1
  44. package/layers/support/ControlPointsGeoreference.js +1 -1
  45. package/layers/support/PixelBlock.js +1 -1
  46. package/layers/support/RasterJobHandler.js +1 -1
  47. package/layers/support/RasterWorker.js +1 -1
  48. package/layers/support/SceneModification.js +1 -1
  49. package/layers/support/SceneModifications.js +1 -1
  50. package/layers/support/rasterDatasets/MRFRaster.js +1 -1
  51. package/layers/support/rasterFunctions/clipUtils.js +1 -1
  52. package/layers/support/rasterFunctions/rasterFunctionHelper.js +1 -1
  53. package/layers/video/VideoController.js +1 -1
  54. package/layers/video/videoUtils.js +1 -1
  55. package/libs/basisu/BasisUEncoder.js +1 -1
  56. package/libs/dxtEncoder/DXTEncoder.js +1 -1
  57. package/libs/i3s/I3SModule.js +1 -1
  58. package/networks/support/UtilityNetworkLookupHelper.js +1 -1
  59. package/networks/support/utils.js +1 -1
  60. package/package.json +1 -1
  61. package/renderers/support/DictionaryControlString.js +1 -1
  62. package/rest/knowledgeGraph/GraphAddFieldIndexResult.js +1 -1
  63. package/rest/knowledgeGraph/GraphAddNamedTypesResult.js +1 -1
  64. package/rest/knowledgeGraph/GraphAddPropertyResult.js +1 -1
  65. package/rest/knowledgeGraph/GraphDataModelOperationResult.d.ts +1 -1
  66. package/rest/knowledgeGraph/GraphDataModelOperationResult.js +1 -1
  67. package/rest/knowledgeGraph/GraphDeleteFieldIndexResult.js +1 -1
  68. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.js +1 -1
  69. package/rest/knowledgeGraph/GraphDeletePropertyResult.js +1 -1
  70. package/rest/knowledgeGraph/GraphUpdateNamedTypesResult.js +1 -1
  71. package/rest/knowledgeGraph/GraphUpdatePropertyResult.js +1 -1
  72. package/rest/knowledgeGraph/GraphUpdateSearchIndexResult.js +1 -1
  73. package/support/revision.js +1 -1
  74. package/symbols/cim/cimAnalyzer.js +1 -1
  75. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterInputEvaluator.js +1 -1
  76. package/views/2d/layers/VideoLayerView2D.js +1 -1
  77. package/views/2d/layers/features/FeatureContainer.js +1 -1
  78. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  79. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  80. package/views/2d/layers/features/sources/strategies/chunks/Overrides.js +1 -1
  81. package/views/2d/layers/features/support/FeatureFilterEvaluator.js +1 -1
  82. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  83. package/views/3d/analysis/images/heading-rotate-svg.js +1 -1
  84. package/views/3d/analysis/images/tilt-rotate-svg.js +1 -1
  85. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  86. package/views/3d/layers/SceneLayerWorker.js +1 -1
  87. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  88. package/views/3d/layers/graphics/pipeline/Tile3DManager.js +1 -1
  89. package/views/3d/state/ViewStateManager.js +1 -1
  90. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  91. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  92. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  93. package/views/VideoView.js +1 -1
  94. package/views/draw/DrawScreenTool.js +1 -1
  95. package/views/draw/MultipointDrawAction.js +1 -1
  96. package/views/draw/PointDrawAction.js +1 -1
  97. package/views/draw/PolygonDrawAction.js +1 -1
  98. package/views/draw/PolylineDrawAction.js +1 -1
  99. package/views/magnifier/mask-svg.js +1 -1
  100. package/views/magnifier/overlay-svg.js +1 -1
  101. package/views/support/TextureCompressionHelper.js +1 -1
  102. package/views/support/TextureCompressionWorker.js +1 -1
  103. package/views/support/TextureCompressionWorkerHandle.js +1 -1
  104. package/webmap/Bookmark.js +1 -1
  105. package/webscene/spec-certification/spec.js +1 -1
  106. package/widgets/BasemapLayerList.js +1 -1
  107. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  108. package/widgets/BatchAttributeForm/inputs/EditableInput.js +1 -1
  109. package/widgets/BatchAttributeForm/inputs/GroupInput.js +1 -1
  110. package/widgets/BatchAttributeForm/inputs/InputBase.d.ts +1 -1
  111. package/widgets/BatchAttributeForm/inputs/InputBase.js +1 -1
  112. package/widgets/Editor/support/SketchController.js +1 -1
  113. package/widgets/Editor/workflowUtils.js +1 -1
  114. package/widgets/Editor.js +1 -1
  115. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  116. package/widgets/Feature/FeatureViewModel.js +1 -1
  117. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  118. package/widgets/LayerList.js +1 -1
  119. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  120. package/widgets/OrientedImageryViewer/components/ImageViewer.js +1 -1
  121. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  122. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  123. package/widgets/OrientedImageryViewer/navigation/NavigationManager.js +1 -1
  124. package/widgets/OrientedImageryViewer/navigation/queries.js +1 -1
  125. package/widgets/OrientedImageryViewer/navigation/utils.js +1 -1
  126. package/widgets/OrientedImageryViewer.js +1 -1
  127. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  128. package/widgets/PanoramicViewer.js +1 -1
  129. package/widgets/Print.js +1 -1
  130. package/widgets/Sketch/SketchViewModel.js +1 -1
  131. package/widgets/Slider/SliderViewModel.js +1 -1
  132. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +1 -1
  133. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +1 -1
  134. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  135. package/widgets/support/SelectionList.js +1 -1
  136. package/widgets/support/Selector2D/SelectionOperation.js +1 -1
  137. package/widgets/support/UtilityNetworkAssociations/FeatureUtilityNetworkAssociationsViewModel.js +1 -1
  138. package/assets/esri/core/workers/chunks/0ba6177ba118a0f032e2.js +0 -1
  139. package/assets/esri/core/workers/chunks/573a8393bec916dcf16f.js +0 -1
  140. package/assets/esri/core/workers/chunks/58e74681ddef30ba9cb6.js +0 -1
  141. package/assets/esri/core/workers/chunks/81006d9eed65bbb82962.js +0 -1
  142. package/assets/esri/core/workers/chunks/8fa6c938e8dc7bbfaeb7.js +0 -1
  143. package/assets/esri/core/workers/chunks/9f91d519da67714f915f.js +0 -1
  144. package/assets/esri/core/workers/chunks/ad3871f497ecea1a08c9.js +0 -1
  145. package/assets/esri/core/workers/chunks/bbca1b85656d9ba71e4c.js +0 -1
  146. package/assets/esri/core/workers/chunks/cd64181298d82c8d0e9d.js +0 -1
  147. package/assets/esri/core/workers/chunks/e2cb295104ed2f8cd2ff.js +0 -1
  148. package/assets/esri/core/workers/chunks/f3d5d92e0aefc2593208.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../geometry/Point.js";import t from"../../geometry/Polygon.js";import r from"../../geometry/Polyline.js";import n from"../support/TelemetryData.js";import i from"../support/VideoTimeExtent.js";import{applyCIMSymbolColor as o}from"../../symbols/support/cimSymbolUtils.js";import{applyColorToSymbol as a}from"../../symbols/support/utils.js";const u="application/x-mpegURL",s="video/mp4",l="video/webm",d={UASDatalinkLocalSet:1e4,PrecisionTimeStamp:10002,MissionId:10003,PlatformTailNumber:10004,PlatformHeadingAngle:10005,PlatformPitchAngle:10006,PlatformRollAngle:10007,PlatformTrueAirspeed:10008,PlatformIndicatedAirspeed:10009,PlatformDesignation:10010,ImageSourceSensor:10011,ImageCoordinateSystem:10012,SensorLatitude:10013,SensorLongitude:10014,SensorTrueAltitude:10015,SensorHorizontalFOV:10016,SensorVerticalFOV:10017,SensorAzimuthAngle:10018,SensorElevationAngle:10019,SensorRollAngle:10020,PlatformSlantRange:10021,TargetWidth:10022,FrameCenterLatitude:10023,FrameCenterLongitude:10024,FrameCenterElevation:10025,OffsetCorner1Latitude:10026,OffsetCorner1Longitude:10027,OffsetCorner2Latitude:10028,OffsetCorner2Longitude:10029,OffsetCorner3Latitude:10030,OffsetCorner3Longitude:10031,OffsetCorner4Latitude:10032,OffsetCorner4Longitude:10033,TargetLocationLatitude:10040,TargetLocationLongitude:10041,TargetLocationElevation:10042,TargetTrackGateWidth:10043,TargetTrackGateHeight:10044,TargetErrorEstimateHorizontal:10045,TargetErrorEstimateLateral:10046,GenericFlagData:10047,PlatformGroundSpeed:10056,PlatformGroundRange:10057,PlatformRemainingFuel:10058,PlatformCallSign:10059,SensorFOVName:10063,PlatformMagneticHeading:10064,LDSVersionNumber:10065,AlternatePlatformName:10070,EventStartTimeUTC:10072,VMTIDataSet:10074,SensorEllipsoidHeight:10075,OperationalMode:10077,CornerLatitudePoint1:10082,CornerLongitudePoint1:10083,CornerLatitudePoint2:10084,CornerLongitudePoint2:10085,CornerLatitudePoint3:10086,CornerLongitudePoint3:10087,CornerLatitudePoint4:10088,CornerLongitudePoint4:10089,SARMotionImageryMetadata:10095,SecurityClassification:20001,SecurityClassifyingAuthority:20002,SecurityClassifyingCountry:20003,SecuritySCI:20004,SecurityCaveats:20005,SecurityReleaseInstructions:20006,SecurityLDSVersion:20022,EsriVideoWidth:90001,EsriVideoHeight:90002,EsriFrameCenterLatitude:90050,EsriFrameCenterLongitude:90051,EsriCornerLatitudePt1:90052,EsriCornerLongitudePt1:90053,EsriCornerLatitudePt2:90054,EsriCornerLongitudePt2:90055,EsriCornerLatitudePt3:90056,EsriCornerLongitudePt3:90057,EsriCornerLatitudePt4:90058,EsriCornerLongitudePt4:90059,EsriFrameOutline:90060,EsriSensorPosition:90061,EsriHorizonPixelPack:90063,EsriGroundControlPoints:90064};function g(e,t=1e4){if(!e||!e.length)return[];let r=[],n=[];for(let o=0;o<e.length;o++){const t=e[o],n=t?.text?JSON.parse(t.text):null;"EsriVideoServer"===n?.source&&(r=[...n.data])}const i=r.find(e=>e.tagId===t);return Array.isArray(i?.value)&&(n=[...i.value]),n}function f(e){const{duration:t,end:r,start:n,timezone:o="UTC"}=e||{};return"number"!=typeof t?null:new i({duration:t||null,end:"number"==typeof r?new Date(r):null,start:"number"==typeof n?new Date(n):null,timezone:o})}function m(e,t){const r=[...t],n=r.findIndex(t=>t.equals(e));return n>-1&&r.splice(n),r.push(e),r}function L(e){if(!e?.size)return new n;const t=A(e),r=P(e),i=y(e),o=T(t,r);return new n({frameCenter:r,frameOutline:i,lineOfSight:o,sensorLocation:t})}function C(e){if(!e?.size)return null;return e.get(d.EsriGroundControlPoints)?.value??null??null}function c(e){return e?.size?e.get(d.EsriHorizonPixelPack)?.value??null:null}function P(e){return h(e)??v(e)}function E(e){if(!e)return u;const t=e.match(/\.(\w{3,4})(?:$|\?)/i);if(!t)return u;switch(t[1].toLowerCase()){case"mp4":return s;case"webm":return l;default:return u}}function S(e){const t=e?.layers;return t?.length?t.map(e=>({layerId:e.id,posterUrl:e.poster,sourceType:e.serviceType,title:e.name,type:e.type||"Video Layer"})):[]}function p(e,t,r){if(!e)return null;const n=e.clone();switch(n.type){case"simple-fill":a(n,r),n.outline.color=t;break;case"simple-line":a(n,t);break;case"simple-marker":a(n,t),n?.outline?.color&&(n.outline.color=t);break;case"cim":o(n,t)}return n}function h(t){return t&&t.has(d.EsriFrameCenterLatitude)&&t.has(d.EsriFrameCenterLongitude)?new e({x:t.get(d.EsriFrameCenterLongitude).value,y:t.get(d.EsriFrameCenterLatitude).value,z:t.get(d.FrameCenterElevation).value}):null}function v(t){return t&&t.has(d.FrameCenterLatitude)&&t.has(d.FrameCenterLongitude)?new e({x:t.get(d.FrameCenterLongitude)?.value,y:t.get(d.FrameCenterLatitude)?.value,z:t.get(d.FrameCenterElevation)?.value}):null}function y(e){if(!e)return null;const r=e.get(d.EsriFrameOutline)?.value;return r?t.fromJSON(r.geometry):O(e)??F(e)}function O(e){if(!(e.has(d.EsriCornerLatitudePt1)&&e.has(d.EsriCornerLongitudePt1)&&e.has(d.EsriCornerLatitudePt2)&&e.has(d.EsriCornerLongitudePt2)&&e.has(d.EsriCornerLatitudePt3)&&e.has(d.EsriCornerLongitudePt3)&&e.has(d.EsriCornerLatitudePt4)&&e.has(d.EsriCornerLongitudePt4)))return null;const r=[e.get(d.EsriCornerLongitudePt1)?.value,e.get(d.EsriCornerLatitudePt1)?.value],n=[e.get(d.EsriCornerLongitudePt2)?.value,e.get(d.EsriCornerLatitudePt2)?.value],i=[e.get(d.EsriCornerLongitudePt3)?.value,e.get(d.EsriCornerLatitudePt3)?.value],o=[e.get(d.EsriCornerLongitudePt4)?.value,e.get(d.EsriCornerLatitudePt4)?.value];return new t({rings:[[r,n,i,o]]})}function F(e){if(!(e.has(d.OffsetCorner1Latitude)&&e.has(d.OffsetCorner1Longitude)&&e.has(d.OffsetCorner2Latitude)&&e.has(d.OffsetCorner2Longitude)&&e.has(d.OffsetCorner3Latitude)&&e.has(d.OffsetCorner3Longitude)&&e.has(d.OffsetCorner4Latitude)&&e.has(d.OffsetCorner4Longitude)&&e.has(d.FrameCenterLatitude)&&e.has(d.FrameCenterLongitude)))return null;const r=e.get(d.FrameCenterLatitude)?.value,n=e.get(d.FrameCenterLongitude)?.value,i=r+e.get(d.OffsetCorner1Latitude)?.value,o=n+e.get(d.OffsetCorner1Longitude)?.value,a=r+e.get(d.OffsetCorner2Latitude)?.value,u=n+e.get(d.OffsetCorner2Longitude)?.value,s=r+e.get(d.OffsetCorner3Latitude)?.value,l=n+e.get(d.OffsetCorner3Longitude)?.value,g=r+e.get(d.OffsetCorner4Latitude)?.value,f=n+e.get(d.OffsetCorner4Longitude)?.value;return new t({rings:[[[o,i],[u,a],[l,s],[f,g]]]})}function T(e,t){if(!e||!t)return null;const n=[e.x,e.y,e.z??0],i=[t.x,t.y,t.z??0];return new r({paths:[[n,i]]})}function A(t){if(!t?.size)return null;if(t.has(d.EsriSensorPosition)){const r=t.get(d.EsriSensorPosition)?.value;if(r)return e.fromJSON(r.geometry)}return t.has(d.SensorLongitude)&&t.has(d.SensorLatitude)&&t.has(d.SensorTrueAltitude)?new e({x:t.get(d.SensorLongitude)?.value,y:t.get(d.SensorLatitude)?.value,z:t.get(d.SensorTrueAltitude)?.value}):null}export{P as getFrameCenter,c as getFrameHorizonPoints,C as getGroundControlPoints,m as getSensorTrailPoints,S as getServiceLayersInfo,p as getStyledTelemetrySymbol,L as getTelemetryData,g as getVideoMetadataFromCueList,E as getVideoMimeType,f as readVideoTimeExtent,d as videoMetadataEntryId};
5
+ import e from"../../geometry/Point.js";import t from"../../geometry/Polygon.js";import r from"../../geometry/Polyline.js";import n from"../support/TelemetryData.js";import o from"../support/VideoTimeExtent.js";import{applyCIMSymbolColor as i}from"../../symbols/support/cimSymbolUtils.js";import{applyColorToSymbol as a}from"../../symbols/support/utils.js";const u="application/x-mpegURL",s="video/mp4",l="video/webm",d={UASDatalinkLocalSet:1e4,PrecisionTimeStamp:10002,MissionId:10003,PlatformTailNumber:10004,PlatformHeadingAngle:10005,PlatformPitchAngle:10006,PlatformRollAngle:10007,PlatformTrueAirspeed:10008,PlatformIndicatedAirspeed:10009,PlatformDesignation:10010,ImageSourceSensor:10011,ImageCoordinateSystem:10012,SensorLatitude:10013,SensorLongitude:10014,SensorTrueAltitude:10015,SensorHorizontalFOV:10016,SensorVerticalFOV:10017,SensorAzimuthAngle:10018,SensorElevationAngle:10019,SensorRollAngle:10020,PlatformSlantRange:10021,TargetWidth:10022,FrameCenterLatitude:10023,FrameCenterLongitude:10024,FrameCenterElevation:10025,OffsetCorner1Latitude:10026,OffsetCorner1Longitude:10027,OffsetCorner2Latitude:10028,OffsetCorner2Longitude:10029,OffsetCorner3Latitude:10030,OffsetCorner3Longitude:10031,OffsetCorner4Latitude:10032,OffsetCorner4Longitude:10033,TargetLocationLatitude:10040,TargetLocationLongitude:10041,TargetLocationElevation:10042,TargetTrackGateWidth:10043,TargetTrackGateHeight:10044,TargetErrorEstimateHorizontal:10045,TargetErrorEstimateLateral:10046,GenericFlagData:10047,PlatformGroundSpeed:10056,PlatformGroundRange:10057,PlatformRemainingFuel:10058,PlatformCallSign:10059,SensorFOVName:10063,PlatformMagneticHeading:10064,LDSVersionNumber:10065,AlternatePlatformName:10070,EventStartTimeUTC:10072,VMTIDataSet:10074,SensorEllipsoidHeight:10075,OperationalMode:10077,FrameCenterAboveEllipsoid:10078,CornerLatitudePoint1:10082,CornerLongitudePoint1:10083,CornerLatitudePoint2:10084,CornerLongitudePoint2:10085,CornerLatitudePoint3:10086,CornerLongitudePoint3:10087,CornerLatitudePoint4:10088,CornerLongitudePoint4:10089,SARMotionImageryMetadata:10095,SecurityClassification:20001,SecurityClassifyingAuthority:20002,SecurityClassifyingCountry:20003,SecuritySCI:20004,SecurityCaveats:20005,SecurityReleaseInstructions:20006,SecurityLDSVersion:20022,EsriVideoWidth:90001,EsriVideoHeight:90002,EsriFrameCenterLatitude:90050,EsriFrameCenterLongitude:90051,EsriCornerLatitudePt1:90052,EsriCornerLongitudePt1:90053,EsriCornerLatitudePt2:90054,EsriCornerLongitudePt2:90055,EsriCornerLatitudePt3:90056,EsriCornerLongitudePt3:90057,EsriCornerLatitudePt4:90058,EsriCornerLongitudePt4:90059,EsriFrameOutline:90060,EsriSensorPosition:90061,EsriHorizonPixelPack:90063,EsriGroundControlPoints:90064};function f(e,t=1e4){if(!e||!e.length)return[];let r=[],n=[];for(let i=0;i<e.length;i++){const t=e[i],n=t?.text?JSON.parse(t.text):null;"EsriVideoServer"===n?.source&&(r=[...n.data])}const o=r.find(e=>e.tagId===t);return Array.isArray(o?.value)&&(n=[...o.value]),n}function g(e){const{duration:t,end:r,start:n,timezone:i="UTC"}=e||{};return"number"!=typeof t?null:new o({duration:t||null,end:"number"==typeof r?new Date(r):null,start:"number"==typeof n?new Date(n):null,timezone:i})}function m(e,t){const r=[...t],n=r.findIndex(t=>t.equals(e));return n>-1&&r.splice(n),r.push(e),r}function C(e){if(!e?.size)return new n;const t=b(e),r=P(e),o=O(e),i=A(t,r);return new n({frameCenter:r,frameOutline:o,lineOfSight:i,sensorLocation:t})}function L(e){if(!e?.size)return null;return e.get(d.EsriGroundControlPoints)?.value??null??null}function c(e){return e?.size?e.get(d.EsriHorizonPixelPack)?.value??null:null}function P(e){return S(e)??y(e)}function E(e){if(!e)return u;const t=e.match(/\.(\w{3,4})(?:$|\?)/i);if(!t)return u;switch(t[1].toLowerCase()){case"mp4":return s;case"webm":return l;default:return u}}function p(e){const t=e?.layers;return t?.length?t.map(e=>({layerId:e.id,posterUrl:e.poster,sourceType:e.serviceType,title:e.name,type:e.type||"Video Layer"})):[]}function v(e,t,r){if(!e)return null;const n=e.clone();switch(n.type){case"simple-fill":a(n,r),n.outline.color=t;break;case"simple-line":a(n,t);break;case"simple-marker":a(n,t),n?.outline?.color&&(n.outline.color=t);break;case"cim":i(n,t)}return n}function h(e){const{cameraAzimuth:t,platformHeading:r,source:n=null,symbolOffset:o=0}=e||{};let i=0;if(!n)return i;i="platformHeading"===n?r+o:r+t+o;const a=i>360?i-360:i;return Math.round(Math.abs(a))}function S(t){return t&&t.has(d.EsriFrameCenterLatitude)&&t.has(d.EsriFrameCenterLongitude)?new e({x:t.get(d.EsriFrameCenterLongitude).value,y:t.get(d.EsriFrameCenterLatitude).value,z:t.get(d.FrameCenterAboveEllipsoid)?.value??t.get(d.FrameCenterElevation)?.value}):null}function y(t){return t&&t.has(d.FrameCenterLatitude)&&t.has(d.FrameCenterLongitude)?new e({x:t.get(d.FrameCenterLongitude)?.value,y:t.get(d.FrameCenterLatitude)?.value,z:t.get(d.FrameCenterElevation)?.value}):null}function O(e){if(!e)return null;const r=e.get(d.EsriFrameOutline)?.value;return r?t.fromJSON(r.geometry):F(e)??T(e)}function F(e){if(!(e.has(d.EsriCornerLatitudePt1)&&e.has(d.EsriCornerLongitudePt1)&&e.has(d.EsriCornerLatitudePt2)&&e.has(d.EsriCornerLongitudePt2)&&e.has(d.EsriCornerLatitudePt3)&&e.has(d.EsriCornerLongitudePt3)&&e.has(d.EsriCornerLatitudePt4)&&e.has(d.EsriCornerLongitudePt4)))return null;const r=[e.get(d.EsriCornerLongitudePt1)?.value,e.get(d.EsriCornerLatitudePt1)?.value],n=[e.get(d.EsriCornerLongitudePt2)?.value,e.get(d.EsriCornerLatitudePt2)?.value],o=[e.get(d.EsriCornerLongitudePt3)?.value,e.get(d.EsriCornerLatitudePt3)?.value],i=[e.get(d.EsriCornerLongitudePt4)?.value,e.get(d.EsriCornerLatitudePt4)?.value];return new t({rings:[[r,n,o,i]]})}function T(e){if(!(e.has(d.OffsetCorner1Latitude)&&e.has(d.OffsetCorner1Longitude)&&e.has(d.OffsetCorner2Latitude)&&e.has(d.OffsetCorner2Longitude)&&e.has(d.OffsetCorner3Latitude)&&e.has(d.OffsetCorner3Longitude)&&e.has(d.OffsetCorner4Latitude)&&e.has(d.OffsetCorner4Longitude)&&e.has(d.FrameCenterLatitude)&&e.has(d.FrameCenterLongitude)))return null;const r=e.get(d.FrameCenterLatitude)?.value,n=e.get(d.FrameCenterLongitude)?.value,o=r+e.get(d.OffsetCorner1Latitude)?.value,i=n+e.get(d.OffsetCorner1Longitude)?.value,a=r+e.get(d.OffsetCorner2Latitude)?.value,u=n+e.get(d.OffsetCorner2Longitude)?.value,s=r+e.get(d.OffsetCorner3Latitude)?.value,l=n+e.get(d.OffsetCorner3Longitude)?.value,f=r+e.get(d.OffsetCorner4Latitude)?.value,g=n+e.get(d.OffsetCorner4Longitude)?.value;return new t({rings:[[[i,o],[u,a],[l,s],[g,f]]]})}function A(e,t){if(!e||!t)return null;const n=[e.x,e.y,e.z??0],o=[t.x,t.y,t.z??0];return new r({paths:[[n,o]]})}function b(t){if(!t?.size)return null;if(t.has(d.EsriSensorPosition)){const r=t.get(d.EsriSensorPosition)?.value;if(r)return e.fromJSON(r.geometry)}return t.has(d.SensorLongitude)&&t.has(d.SensorLatitude)?new e({x:t.get(d.SensorLongitude)?.value,y:t.get(d.SensorLatitude)?.value,z:t.get(d.SensorTrueAltitude)?.value}):null}export{P as getFrameCenter,c as getFrameHorizonPoints,L as getGroundControlPoints,m as getSensorTrailPoints,p as getServiceLayersInfo,v as getStyledTelemetrySymbol,h as getSymbolDisplayAngle,C as getTelemetryData,f as getVideoMetadataFromCueList,E as getVideoMimeType,g as readVideoTimeExtent,d as videoMetadataEntryId};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{getAssetUrl as s}from"../../assets.js";function i(){return t??=(async()=>{const i=await import("../../chunks/basis_encoder.js"),t=await i.default({locateFile:i=>s(`esri/libs/basisu/${i}`)});return t.initializeBasis(),t})(),t}let t;export{i as getBasisEncoder};
5
+ import{getAssetUrl as i}from"../../assets.js";function s(){return t??=(async()=>{const s=await import("../../chunks/basis_encoder.js"),t=await s.default({locateFile:s=>i(`esri/libs/basisu/${s}`)});return t.initializeBasis(),t})(),t}let t;function a(){t=null}export{a as destroyBasisEncoder,s as getBasisEncoder};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{getAssetUrl as t}from"../../assets.js";function e(){return r??=(async()=>{const e=await import("../../chunks/dxt_encoder.js");return await e.default({locateFile:e=>t(`esri/libs/dxtEncoder/${e}`)})})(),r}let r;export{e as getDXTEncoder};
5
+ import{getAssetUrl as t}from"../../assets.js";function e(){return n??=(async()=>{const e=await import("../../chunks/dxt_encoder.js");return await e.default({locateFile:e=>t(`esri/libs/dxtEncoder/${e}`)})})(),n}let n;function r(){n=null}export{r as destroyDXTEncoder,e as getDXTEncoder};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{getAssetUrl as t}from"../../assets.js";function e(){return n||(n=new Promise(t=>import("../../chunks/i3s.js").then(t=>t.i).then(({default:e})=>{const n=e({locateFile:i,onRuntimeInitialized:()=>t(n)});delete n.then})).catch(t=>{throw t})),n}function i(e){return t(`esri/libs/i3s/${e}`)}let n;export{e as get};
5
+ import{getAssetUrl as t}from"../../assets.js";function e(){return o||(o=new Promise(t=>import("../../chunks/i3s.js").then(t=>t.i).then(({default:e})=>{const i=e({locateFile:n,onRuntimeInitialized:()=>t(i)});delete i.then})).catch(t=>{throw t})),o}function n(e){return t(`esri/libs/i3s/${e}`)}function i(){o=null}let o;export{i as cleanup,e as get};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../chunks/tslib.es6.js";import o from"../../core/Error.js";import t from"../../core/Loadable.js";import{getOrCreateMapValue as s}from"../../core/MapUtils.js";import r from"../../core/Promise.js";import{throwIfAborted as u}from"../../core/promiseUtils.js";import n from"../../core/ReactiveMap.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{isSubtypeSublayer as p}from"../../layers/support/layerUtils.js";import{RuleType as l}from"./typeUtils.js";function c(e){return`${e.networkSource?.sourceId??""}-${e.assetGroup?.assetGroupCode??""}-${e.assetType?.assetTypeCode??""}`}let d=class extends(t.LoadableMixin(r)){constructor(e){super(e),this.layerIdToSourceIdLookup=new n,this.sourceIdToLayerIdLookup=new n,this.sourceIdToNetworkInfo=new n,this._rulesBySourceId=new Map,this._terminalConfigurationsBySourceId=new Map}async load(e){return this.addResolvingPromise(this._load(e)),this}agatFromRule(e,o){let t;switch(o){case"to":t={networkSource:e.toNetworkSource??null,assetGroup:e.toAssetGroup??null,assetType:e.toAssetType??null};break;case"from":t={networkSource:e.fromNetworkSource??null,assetGroup:e.fromAssetGroup??null,assetType:e.fromAssetType??null};break;case"via":t={networkSource:e.viaNetworkSource??null,assetGroup:e.viaAssetGroup??null,assetType:e.viaAssetType??null}}return null===t.networkSource?null:t}agatToFullDefinition({assetGroup:e,assetType:o,networkSourceId:t}){if(null===t||null===e||null===o)return null;const s={networkSource:null,assetGroup:null,assetType:null},r=this.sourceIdToNetworkInfo.get(t);if(!r)return null;s.networkSource=r;const u=r.assetGroupLookup.get(e);return u?(s.assetGroup=u,s.assetType=u.assetTypeLookup.get(o)??null,null===s.assetType?null:s):null}findAgat(e,t){const s=p(t)?t.parent:t;if(!s)throw new o("utility-network:missing-layer","Unable to find asset group/asset type for layer. The given layer is a `SubtypeSublayer` with no parent.");if(this.utilityNetwork.featureServiceUrl!==s.url)return null;const r=this.getNetworkSourceIdForLayer(s);if(null===r)return null;const u=s.fieldsIndex.get("assettype")?.name??"";if(""===u)return null;const n=s.fieldsIndex.get("assetgroup")?.name??"";if(""===n)return null;const a=e.attributes[u],i=e.attributes[n];return null==a||null==i?null:{assetGroup:i,assetType:a,networkSourceId:r}}findAgatFullDefinition(e,o){const t=this.findAgat(e,o);return t?this.agatToFullDefinition(t):null}findRules({networkSourceId:e,assetGroup:o,assetType:t}){const s=[];if(null===e||null===o)return s;const r=this._rulesBySourceId.get(e)?.get(o);if(!r)return s;for(const u of r.generalRules)s.push(u);if(null!=t){const e=r.typeSpecificRules.get(t);if(e)for(const o of e)s.push(o)}return s}getNetworkSourceIdForLayer(e){const o=p(e)?e.parent:e;return o&&this.utilityNetwork.featureServiceUrl===o.url?this.layerIdToSourceIdLookup.get(o.layerId)??null:null}ruleMatchesAgat(e,o,t){switch(t){case"to":return!(e.toNetworkSource?.sourceId!==o.networkSourceId||e.toAssetGroup&&e.toAssetGroup.assetGroupCode!==o.assetGroup||e.toAssetType&&e.toAssetType.assetTypeCode!==o.assetType);case"from":return!(e.fromNetworkSource?.sourceId!==o.networkSourceId||e.fromAssetGroup&&e.fromAssetGroup.assetGroupCode!==o.assetGroup||e.fromAssetType&&e.fromAssetType.assetTypeCode!==o.assetType);case"via":return!(e.viaNetworkSource?.sourceId!==o.networkSourceId||e.viaAssetGroup&&e.viaAssetGroup.assetGroupCode!==o.assetGroup||e.viaAssetType&&e.viaAssetType.assetTypeCode!==o.assetType)}}ruleMatchesFullDefinitionAgat(e,o,t){switch(t){case"to":return!(e.toNetworkSource?.sourceId!==o.networkSource?.sourceId||e.toAssetGroup&&e.toAssetGroup.assetGroupCode!==o.assetGroup?.assetGroupCode||e.toAssetType&&e.toAssetType.assetTypeCode!==o.assetType?.assetTypeCode);case"from":return!(e.fromNetworkSource?.sourceId!==o.networkSource?.sourceId||e.fromAssetGroup&&e.fromAssetGroup.assetGroupCode!==o.assetGroup?.assetGroupCode||e.fromAssetType&&e.fromAssetType.assetTypeCode!==o.assetType?.assetTypeCode);case"via":return!(e.viaNetworkSource?.sourceId!==o.networkSource?.sourceId||e.viaAssetGroup&&e.viaAssetGroup.assetGroupCode!==o.assetGroup?.assetGroupCode||e.viaAssetType&&e.viaAssetType.assetTypeCode!==o.assetType?.assetTypeCode)}}terminalConfiguration(e,o,t){const s=this._terminalConfigurationsBySourceId.get(e);if(!s)return null;const r=s.get(o);if(!r)return null;const u=r.get(t);return u||null}async _load(e){await this.utilityNetwork.load(),u(e);const{dataElement:t}=this.utilityNetwork;if(!t)throw new o("utility-network:no-data-element","No data element found on utility network");for(const o of t.domainNetworks)for(const e of[...o.edgeSources??[],...o.junctionSources??[]]){this.layerIdToSourceIdLookup.set(e.layerId,e.sourceId),this.sourceIdToLayerIdLookup.set(e.sourceId,e.layerId);const o=(e.assetGroups??[]).map(e=>{const o=new n;for(const t of e.assetTypes??[])o.set(t.assetTypeCode,t);return{...e,assetTypeLookup:o}}),t=new n;for(const e of o)t.set(e.assetGroupCode,e);const s={...e,assetGroupLookup:t,assetGroups:o};this.sourceIdToNetworkInfo.set(s.sourceId,s)}const s=await this.utilityNetwork.getRulesTable();u(e);for(const o of s?.rules??[])switch(o.ruleType){case l.RTAttachment:case l.RTContainment:this._registerRule(o.fromNetworkSource.sourceId,o.fromAssetGroup.assetGroupCode,o.fromAssetType.assetTypeCode,o),this._registerRule(o.toNetworkSource.sourceId,o.toAssetGroup.assetGroupCode,o.toAssetType.assetTypeCode,o);break;case l.RTEdgeJunctionEdgeConnectivity:this._registerRule(o.fromNetworkSource.sourceId,o.fromAssetGroup.assetGroupCode,o.fromAssetType.assetTypeCode,o),this._registerRule(o.toNetworkSource.sourceId,o.toAssetGroup.assetGroupCode,o.toAssetType.assetTypeCode,o),this._registerRule(o.viaNetworkSource.sourceId,o.viaAssetGroup.assetGroupCode,o.viaAssetType.assetTypeCode,o);break;case l.RTJunctionEdgeConnectivity:case l.RTJunctionJunctionConnectivity:this._registerRule(o.fromNetworkSource.sourceId,o.fromAssetGroup.assetGroupCode,o.fromAssetType.assetTypeCode,o),this._registerRule(o.toNetworkSource.sourceId,o.toAssetGroup.assetGroupCode,o.toAssetType.assetTypeCode,o)}this._makeTerminalConfigurationLookups(t)}_makeTerminalConfigurationLookups(e){const o={};for(const t of e.terminalConfigurations??[])o[t.terminalConfigurationId]=t;for(const t of e.domainNetworks??[])for(const e of t.junctionSources)if("esriUNFCUTJunctionObject"===e.utilityNetworkFeatureClassUsageType||"esriUNFCUTDevice"===e.utilityNetworkFeatureClassUsageType)for(const t of e.assetGroups??[])for(const r of t.assetTypes??[])if(null!=r.terminalConfigurationId&&r.terminalConfigurationId>=0){const u=o[r.terminalConfigurationId];if(u){const o=s(this._terminalConfigurationsBySourceId,e.sourceId,()=>new Map);s(o,t.assetGroupCode,()=>new Map).set(r.assetTypeCode,u)}}}_registerRule(e,o,t,r){const u=s(this._rulesBySourceId,e,()=>new Map),n=s(u,o,()=>({generalRules:[],typeSpecificRules:new Map}));if(-1===t)n.generalRules.push(r);else{s(n.typeSpecificRules,t,()=>[]).push(r)}}};e([a()],d.prototype,"layerIdToSourceIdLookup",void 0),e([a()],d.prototype,"sourceIdToLayerIdLookup",void 0),e([a()],d.prototype,"sourceIdToNetworkInfo",void 0),e([a()],d.prototype,"utilityNetwork",void 0),d=e([i("esri.networks.support.UtilityNetworkLookupHelper")],d);export{d as UtilityNetworkLookupHelper,c as hashAgat};
5
+ import{_ as e}from"../../chunks/tslib.es6.js";import o from"../../core/Error.js";import t from"../../core/Loadable.js";import{getOrCreateMapValue as s}from"../../core/MapUtils.js";import r from"../../core/Promise.js";import{throwIfAborted as u}from"../../core/promiseUtils.js";import n from"../../core/ReactiveMap.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{isSubtypeSublayer as p}from"../../layers/support/layerUtils.js";import{RuleType as l}from"./typeUtils.js";function c(e){return`${e.networkSource?.sourceId??""}-${e.assetGroup?.assetGroupCode??""}-${e.assetType?.assetTypeCode??""}`}let d=class extends(t.LoadableMixin(r)){constructor(e){super(e),this.layerIdToSourceIdLookup=new n,this.sourceIdToLayerIdLookup=new n,this.sourceIdToNetworkInfo=new n,this._rulesBySourceId=new Map,this._terminalConfigurationsBySourceId=new Map}async load(e){return this.addResolvingPromise(this._load(e)),this}agatFromRule(e,o){let t;switch(o){case"to":t={networkSource:e.toNetworkSource??null,assetGroup:e.toAssetGroup??null,assetType:e.toAssetType??null};break;case"from":t={networkSource:e.fromNetworkSource??null,assetGroup:e.fromAssetGroup??null,assetType:e.fromAssetType??null};break;case"via":t={networkSource:e.viaNetworkSource??null,assetGroup:e.viaAssetGroup??null,assetType:e.viaAssetType??null}}return null===t.networkSource?null:t}agatToFullDefinition({assetGroup:e,assetType:o,networkSourceId:t}){if(null===t||null===e||null===o)return null;const s={networkSource:null,assetGroup:null,assetType:null},r=this.sourceIdToNetworkInfo.get(t);if(!r)return null;s.networkSource=r;const u=r.assetGroupLookup.get(e);return u?(s.assetGroup=u,s.assetType=u.assetTypeLookup.get(o)??null,null===s.assetType?null:s):null}findAgat(e,t){const s=p(t)?t.parent:t;if(!s)throw new o("utility-network:missing-layer","Unable to find asset group/asset type for layer. The given layer is a `SubtypeSublayer` with no parent.");if(this.utilityNetwork.featureServiceUrl!==s.url)return null;const r=this.getNetworkSourceIdForLayer(s);if(null===r)return null;const u=s.fieldsIndex.get("assettype")?.name??"";if(""===u)return null;const n=s.fieldsIndex.get("assetgroup")?.name??"";if(""===n)return null;const a=e.attributes[u],i=e.attributes[n];return null==a||null==i?null:{assetGroup:i,assetType:a,networkSourceId:r}}findAgatFullDefinition(e,o){const t=this.findAgat(e,o);return t?this.agatToFullDefinition(t):null}findRules({networkSourceId:e,assetGroup:o,assetType:t}){const s=[];if(null===e||null===o)return s;const r=this._rulesBySourceId.get(e)?.get(o);if(!r)return s;for(const u of r.generalRules)s.push(u);if(null!=t){const e=r.typeSpecificRules.get(t);if(e)for(const o of e)s.push(o)}return s}getNetworkSourceIdForLayer(e){const o=p(e)?e.parent:e;return o&&this.utilityNetwork.featureServiceUrl===o.url?this.layerIdToSourceIdLookup.get(o.layerId)??null:null}ruleMatchesAgat(e,o,t){switch(t){case"to":return!(e.toNetworkSource?.sourceId!==o.networkSourceId||e.toAssetGroup&&e.toAssetGroup.assetGroupCode!==o.assetGroup||e.toAssetType&&e.toAssetType.assetTypeCode!==o.assetType);case"from":return!(e.fromNetworkSource?.sourceId!==o.networkSourceId||e.fromAssetGroup&&e.fromAssetGroup.assetGroupCode!==o.assetGroup||e.fromAssetType&&e.fromAssetType.assetTypeCode!==o.assetType);case"via":return!(e.viaNetworkSource?.sourceId!==o.networkSourceId||e.viaAssetGroup&&e.viaAssetGroup.assetGroupCode!==o.assetGroup||e.viaAssetType&&e.viaAssetType.assetTypeCode!==o.assetType)}}ruleMatchesFullDefinitionAgat(e,o,t){switch(t){case"to":return!(e.toNetworkSource?.sourceId!==o.networkSource?.sourceId||e.toAssetGroup&&e.toAssetGroup.assetGroupCode!==o.assetGroup?.assetGroupCode||e.toAssetType&&e.toAssetType.assetTypeCode!==o.assetType?.assetTypeCode);case"from":return!(e.fromNetworkSource?.sourceId!==o.networkSource?.sourceId||e.fromAssetGroup&&e.fromAssetGroup.assetGroupCode!==o.assetGroup?.assetGroupCode||e.fromAssetType&&e.fromAssetType.assetTypeCode!==o.assetType?.assetTypeCode);case"via":return!(e.viaNetworkSource?.sourceId!==o.networkSource?.sourceId||e.viaAssetGroup&&e.viaAssetGroup.assetGroupCode!==o.assetGroup?.assetGroupCode||e.viaAssetType&&e.viaAssetType.assetTypeCode!==o.assetType?.assetTypeCode)}}terminalConfiguration(e,o,t){const s=this._terminalConfigurationsBySourceId.get(e);if(!s)return null;const r=s.get(o);if(!r)return null;const u=r.get(t);return u||null}async _load(e){await this.utilityNetwork.load(),u(e);const{dataElement:t}=this.utilityNetwork;if(!t)throw new o("utility-network:no-data-element","No data element found on utility network");for(const o of t.domainNetworks)for(const e of[...o.edgeSources??[],...o.junctionSources??[]]){this.layerIdToSourceIdLookup.set(e.layerId,e.sourceId),this.sourceIdToLayerIdLookup.set(e.sourceId,e.layerId);const o=(e.assetGroups??[]).map(e=>{const o=new n;for(const t of e.assetTypes??[])o.set(t.assetTypeCode,t);return{...e,assetTypeLookup:o}}),t=new n;for(const e of o)t.set(e.assetGroupCode,e);const s={...e,assetGroupLookup:t,assetGroups:o};this.sourceIdToNetworkInfo.set(s.sourceId,s)}const s=await this.utilityNetwork.getRulesTable();u(e);for(const o of s?.rules??[])switch(o.ruleType){case l.RTAttachment:case l.RTContainment:this._registerRule(o.fromNetworkSource.sourceId,o.fromAssetGroup.assetGroupCode,o.fromAssetType.assetTypeCode,o),this._registerRule(o.toNetworkSource.sourceId,o.toAssetGroup.assetGroupCode,o.toAssetType.assetTypeCode,o);break;case l.RTEdgeJunctionEdgeConnectivity:this._registerRule(o.fromNetworkSource.sourceId,o.fromAssetGroup.assetGroupCode,o.fromAssetType.assetTypeCode,o),this._registerRule(o.toNetworkSource.sourceId,o.toAssetGroup.assetGroupCode,o.toAssetType.assetTypeCode,o),this._registerRule(o.viaNetworkSource.sourceId,o.viaAssetGroup.assetGroupCode,o.viaAssetType.assetTypeCode,o);break;case l.RTJunctionEdgeConnectivity:case l.RTJunctionJunctionConnectivity:this._registerRule(o.fromNetworkSource.sourceId,o.fromAssetGroup.assetGroupCode,o.fromAssetType.assetTypeCode,o),this._registerRule(o.toNetworkSource.sourceId,o.toAssetGroup.assetGroupCode,o.toAssetType.assetTypeCode,o)}this._makeTerminalConfigurationLookups(t)}_makeTerminalConfigurationLookups(e){const o={};for(const t of e.terminalConfigurations??[])o[t.terminalConfigurationId]=t;for(const t of e.domainNetworks??[])for(const e of t.junctionSources)if("esriUNFCUTJunctionObject"===e.utilityNetworkFeatureClassUsageType||"esriUNFCUTDevice"===e.utilityNetworkFeatureClassUsageType)for(const t of e.assetGroups??[])for(const r of t.assetTypes??[])if(null!=r.terminalConfigurationId&&r.terminalConfigurationId>=0){const u=o[r.terminalConfigurationId];if(u){const o=s(this._terminalConfigurationsBySourceId,e.sourceId,()=>new Map);s(o,t.assetGroupCode,()=>new Map).set(r.assetTypeCode,u)}}}_registerRule(e,o,t,r){const u=s(this._rulesBySourceId,e,()=>new Map),n=s(u,o,()=>({generalRules:[],typeSpecificRules:new Map}));if(-1!==t){return void s(n.typeSpecificRules,t,()=>[]).push(r)}n.generalRules.push(r)}};e([a()],d.prototype,"layerIdToSourceIdLookup",void 0),e([a()],d.prototype,"sourceIdToLayerIdLookup",void 0),e([a()],d.prototype,"sourceIdToNetworkInfo",void 0),e([a()],d.prototype,"utilityNetwork",void 0),d=e([i("esri.networks.support.UtilityNetworkLookupHelper")],d);export{d as UtilityNetworkLookupHelper,c as hashAgat};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../request.js";import t from"../../core/Error.js";import{queryAllJSON as r}from"../../layers/support/featureQueryAll.js";import{isSubtypeSublayer as n,isFeatureLayer as o}from"../../layers/support/layerUtils.js";import{RuleType as a}from"./typeUtils.js";import s from"../../portal/PortalItem.js";import u from"../../rest/support/FeatureSet.js";import{isGraphic as l}from"../../support/guards.js";function i(e,t,r="from"){const{fromRuleElement:n,viaRuleElement:o,toRuleElement:s}=f(e),u=[];switch(e.ruleType){case a.RTContainment:case a.RTAttachment:"from"===r&&y(t,n,!1)?u.push(s):"to"===r&&y(t,s,!1)&&u.push(n);break;case a.RTJunctionEdgeConnectivity:case a.RTJunctionJunctionConnectivity:y(t,n,!0)?u.push(s):y(t,s,!0)&&u.push(n);break;case a.RTEdgeJunctionEdgeConnectivity:o&&(y(t,o,!0)?(u.push(n),u.push(s)):(y(t,n,!0)||y(t,s,!0))&&u.push(o));break;default:return[]}return u}function c(e,t,r){const{fromRuleElement:n,viaRuleElement:o,toRuleElement:s}=f(e);switch(e.ruleType){case a.RTContainment:case a.RTAttachment:return p(t,r,n,s,!1,!1);case a.RTJunctionEdgeConnectivity:case a.RTJunctionJunctionConnectivity:return p(t,r,n,s,!0,!0);case a.RTEdgeJunctionEdgeConnectivity:return p(t,r,n,o,!0,!0)||p(t,r,s,o,!0,!0);default:return!1}}function p(e,t,r,n,o,a){if(!r||!n)return!1;const s=y(e,r,a),u=y(t,n,a);if(o){const o=y(e,n,a),l=y(t,r,a);return s&&u||o&&l}return s&&u}function m(e,t){const r=e.terminal?.terminalId,n=t.terminalId;return null==r&&null==n||(1===r?null==n||1===n:r===n)}function y(e,t,r){const{assetGroupCode:n,assetTypeCode:o}=e;return("layerId"in e?e.layerId===t.networkSource?.layerId:e.networkSourceId===t.networkSource?.sourceId)&&(null==n||n===t.assetGroup?.assetGroupCode)&&(null==o||o===t.assetType?.assetTypeCode)&&(!r||!("terminalId"in e)||m(t,e))}function f(e){return{fromRuleElement:{networkSource:e.fromNetworkSource,assetGroup:e.fromAssetGroup,assetType:e.fromAssetType,terminal:e.fromTerminal},viaRuleElement:e.viaNetworkSource?{networkSource:e.viaNetworkSource,assetGroup:e.viaAssetGroup,assetType:e.viaAssetType,terminal:e.viaTerminal}:void 0,toRuleElement:{networkSource:e.toNetworkSource,assetGroup:e.toAssetGroup,assetType:e.toAssetType,terminal:e.toTerminal}}}function d(e){let t=null,r=null,o=null;if(l(e))t=w(e),[r,o]=I(e);else if(n(e)){t=e.parent?.layerId??null;const[n]=T(e);n===e.subtypeField&&(r=e.subtypeCode)}else t=e.layerId??null;return{layerId:t,assetGroupCode:r,assetTypeCode:o}}function w(e){const{sourceLayer:t}=e;let r;return o(t)?r=t.layerId:n(t)&&(r=t.parent?.layerId),r??null}function I(e){const[t,r]=T(e.sourceLayer);return[t?e.attributes[t]:null,r?e.attributes[r]:null]}function T(e){if(!e||!("fieldsIndex"in e))return[null,null];return[e.fieldsIndex.normalizeFieldName("assetGroup")??null,e.fieldsIndex.normalizeFieldName("assetType")??null]}async function R(e,t){const n=e.layers,o=e.layerInfos,a=e.returnGeometry||!1,s=e.outSpatialReference;await Promise.all(n.map(async e=>{await e.load()}));return(await Promise.all(n.map(async e=>{const n=o.find(t=>t.layerUrl===e.parsedUrl?.path);if(!n?.objectIds?.length)return{layer:e,featureSet:void 0};const l=e.createQuery();l.returnGeometry=a,l.outFields=n.outFields||["*"],l.outSpatialReference=s,l.gdbVersion=e.gdbVersion,l.objectIds=n.objectIds,t&&(l.where="1=1");const i=u.fromJSON(await r(e,l));return i.features.forEach(t=>{t.layer=e}),{layer:e,featureSet:i}}))).filter(e=>void 0!==e.featureSet)}async function k(e,t){if("Utility Network Layer"===e){const{default:e}=await import("../UtilityNetwork.js");return new e({layerUrl:t})}return null}async function v(r){let n="portalItem"in r?r:{portalItem:r};!n.portalItem||n.portalItem instanceof s||(n={...n,portalItem:new s(n.portalItem)});const o=n.portalItem;if(await o.load(),"Feature Service"!==o.type)throw new t("portal:unknown-item-type","Unknown item type '${type}'",{type:o.type});const a=o.url,u=await e(a,{responseType:"json",query:{f:"json"}}),l="Network Layer";if(u.data.type?.includes(l))return k(u.data.type,a);if(u.data.layers){const e=u.data.layers.find(e=>e.type.includes(l));if(e){const t=`${a}/${e.id}`;return k(e.type,t)}}return null}export{p as doElementsMatchRule,c as doesRuleAllowAssociation,T as getAssetFieldNames,i as getCompatibleRuleElements,f as getElementsFromRule,I as getFeatureAssetCodes,w as getFeatureSourceLayerId,R as getFeaturesFromLayers,d as getRuleValues,y as isRuleElementMatch,m as isTerminalMatch,v as networkFromPortalItem};
5
+ import e from"../../request.js";import t from"../../core/Error.js";import{queryAllJSON as r}from"../../layers/support/featureQueryAll.js";import{isSubtypeSublayer as n,isFeatureLayer as o}from"../../layers/support/layerUtils.js";import{RuleType as a}from"./typeUtils.js";import s from"../../portal/PortalItem.js";import u from"../../rest/support/FeatureSet.js";import{isGraphic as l}from"../../support/guards.js";function i(e,t,r="from"){const{fromRuleElement:n,viaRuleElement:o,toRuleElement:s}=f(e),u=[];switch(e.ruleType){case a.RTContainment:case a.RTAttachment:"from"===r&&y(t,n,!1)?u.push(s):"to"===r&&y(t,s,!1)&&u.push(n);break;case a.RTJunctionEdgeConnectivity:case a.RTJunctionJunctionConnectivity:y(t,n,!0)?u.push(s):y(t,s,!0)&&u.push(n);break;case a.RTEdgeJunctionEdgeConnectivity:o&&(y(t,o,!0)?(u.push(n),u.push(s)):(y(t,n,!0)||y(t,s,!0))&&u.push(o));break;default:return[]}return u}function c(e,t,r){const{fromRuleElement:n,viaRuleElement:o,toRuleElement:s}=f(e);switch(e.ruleType){case a.RTContainment:case a.RTAttachment:return p(t,r,n,s,!1,!1);case a.RTJunctionEdgeConnectivity:case a.RTJunctionJunctionConnectivity:return p(t,r,n,s,!0,!0);case a.RTEdgeJunctionEdgeConnectivity:return p(t,r,n,o,!0,!0)||p(t,r,s,o,!0,!0);default:return!1}}function p(e,t,r,n,o,a){if(!r||!n)return!1;const s=y(e,r,a),u=y(t,n,a);if(o){const o=y(e,n,a),l=y(t,r,a);return s&&u||o&&l}return s&&u}function m(e,t){const r=e.terminal?.terminalId,n=t.terminalId;return null==r&&null==n||(1===r?null==n||1===n:r===n)}function y(e,t,r){const{assetGroupCode:n,assetTypeCode:o}=e;return("layerId"in e?e.layerId===t.networkSource?.layerId:e.networkSourceId===t.networkSource?.sourceId)&&(null==n||n===t.assetGroup?.assetGroupCode)&&(null==o||o===t.assetType?.assetTypeCode)&&(!r||!("terminalId"in e)||m(t,e))}function f(e){return{fromRuleElement:{networkSource:e.fromNetworkSource,assetGroup:e.fromAssetGroup,assetType:e.fromAssetType,terminal:e.fromTerminal},viaRuleElement:e.viaNetworkSource?{networkSource:e.viaNetworkSource,assetGroup:e.viaAssetGroup,assetType:e.viaAssetType,terminal:e.viaTerminal}:void 0,toRuleElement:{networkSource:e.toNetworkSource,assetGroup:e.toAssetGroup,assetType:e.toAssetType,terminal:e.toTerminal}}}function d(e){let t=null,r=null,o=null;if(l(e))t=w(e),[r,o]=I(e);else if(n(e)){t=e.parent?.layerId??null;const[n]=T(e);n===e.subtypeField&&(r=e.subtypeCode)}else t=e.layerId??null;return{layerId:t,assetGroupCode:r,assetTypeCode:o}}function w(e){const{sourceLayer:t}=e;let r;return o(t)?r=t.layerId:n(t)&&(r=t.parent?.layerId),r??null}function I(e){const[t,r]=T(e.sourceLayer);return[t?e.attributes[t]:null,r?e.attributes[r]:null]}function T(e){if(!e||!("fieldsIndex"in e))return[null,null];return[e.fieldsIndex.normalizeFieldName("assetGroup")??null,e.fieldsIndex.normalizeFieldName("assetType")??null]}async function R(e,t){const n=e.layers,o=e.layerInfos,a=e.returnGeometry||!1,s=e.outSpatialReference;await Promise.all(n.map(async e=>{await e.load()}));return(await Promise.all(n.map(async e=>{const n=o.find(t=>t.layerUrl===e.parsedUrl?.path);if(!n?.objectIds?.length)return{layer:e,featureSet:void 0};const l=e.createQuery();l.returnGeometry=a,l.outFields=n.outFields||["*"],l.outSpatialReference=s,l.gdbVersion=e.gdbVersion,l.objectIds=n.objectIds,t&&(l.where="1=1");const i=u.fromJSON(await r(e,l));return i.features.forEach(t=>{t.layer=t.sourceLayer=e}),{layer:e,featureSet:i}}))).filter(e=>void 0!==e.featureSet)}async function k(e,t){if("Utility Network Layer"===e){const{default:e}=await import("../UtilityNetwork.js");return new e({layerUrl:t})}return null}async function v(r){let n="portalItem"in r?r:{portalItem:r};!n.portalItem||n.portalItem instanceof s||(n={...n,portalItem:new s(n.portalItem)});const o=n.portalItem;if(await o.load(),"Feature Service"!==o.type)throw new t("portal:unknown-item-type","Unknown item type '${type}'",{type:o.type});const a=o.url,u=await e(a,{responseType:"json",query:{f:"json"}}),l="Network Layer";if(u.data.type?.includes(l))return k(u.data.type,a);if(u.data.layers){const e=u.data.layers.find(e=>e.type.includes(l));if(e){const t=`${a}/${e.id}`;return k(e.type,t)}}return null}export{p as doElementsMatchRule,c as doesRuleAllowAssociation,T as getAssetFieldNames,i as getCompatibleRuleElements,f as getElementsFromRule,I as getFeatureAssetCodes,w as getFeatureSourceLayerId,R as getFeaturesFromLayers,d as getRuleValues,y as isRuleElementMatch,m as isTerminalMatch,v as networkFromPortalItem};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "4.34.0-next.22",
3
+ "version": "4.34.0-next.24",
4
4
  "homepage": "https://js.arcgis.com",
5
5
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
6
6
  "keywords": [
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Color.js";class t{static parse(e,r,n){const l=[],o=[],u=e.split(";");for(let t=0;t<u.length;t++){const e=u[t];if(e)if(e.includes("po:")){const t=e.slice(3).split("|");if(3===t.length){const[e,r,i]=t,n=s(e,r,i);n&&o.push(n)}}else if(e.includes("|")){for(const t of e.split("|"))if(r.has(t)){l.push(t);break}}else if(r.has(e))l.push(e);else if(0===t){l.length=0,l.push(i(n));break}}return new t(l,o)}constructor(e,t){this.partNames=e,this.overrides=t}}function r(t,r){if("DashTemplate"===t)return r.split(" ").map(e=>Number(e));if("Color"===t){const t=new e(r).toRgba();return[t[0],t[1],t[2],255*t[3]]}return Number(r)}function s(e,t,s){return{primitiveName:e,propertyName:t,value:r(t,s),defaultValue:null}}function i(e){switch(e){case"esriGeometryPolyline":return"Invalid_L";case"esriGeometryPolygon":return"Invalid_A";default:return"Invalid_P"}}export{t as DictionaryControlString};
5
+ import e from"../../Color.js";class t{static parse(e,r,i){const o=[],l=[],u=e.split(";");for(let t=0;t<u.length;t++){const e=u[t];if(e){if(e.includes("po:")){const t=e.slice(3).split("|");if(3===t.length){const[e,r,n]=t,i=s(e,r,n);i&&l.push(i)}continue}if(e.includes("|")){for(const t of e.split("|"))if(r.has(t)){o.push(t);break}}else if(r.has(e))o.push(e);else if(0===t){o.length=0,o.push(n(i));break}}}return new t(o,l)}constructor(e,t){this.partNames=e,this.overrides=t}}function r(t,r){if("DashTemplate"===t)return r.split(" ").map(e=>Number(e));if("Color"===t){const t=new e(r).toRgba();return[t[0],t[1],t[2],255*t[3]]}return Number(r)}function s(e,t,s){return{primitiveName:e,propertyName:t,value:r(t,s),defaultValue:null}}function n(e){switch(e){case"esriGeometryPolyline":return"Invalid_L";case"esriGeometryPolygon":return"Invalid_A";default:return"Invalid_P"}}export{t as DictionaryControlString};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphAddFieldIndexResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphAddFieldIndexResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../chunks/tslib.es6.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as e}from"./GraphDataModelOperationResult.js";let r=class extends e{constructor(t){super(t),this.entityAddResultsCount=0,this.relationshipAddResultsCount=0,this.entityAddResults=[],this.relationshipAddResults=[]}};t([s()],r.prototype,"entityAddResultsCount",void 0),t([s()],r.prototype,"relationshipAddResultsCount",void 0),t([s()],r.prototype,"entityAddResults",void 0),t([s()],r.prototype,"relationshipAddResults",void 0),r=t([o("esri.rest.knowledgeGraph.GraphAddNamedTypesResult")],r);const p=r;export{p as default};
5
+ import{_ as t}from"../../chunks/tslib.es6.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import e from"./GraphDataModelOperationResult.js";let r=class extends e{constructor(t){super(t),this.entityAddResultsCount=0,this.relationshipAddResultsCount=0,this.entityAddResults=[],this.relationshipAddResults=[]}};t([s()],r.prototype,"entityAddResultsCount",void 0),t([s()],r.prototype,"relationshipAddResultsCount",void 0),t([s()],r.prototype,"entityAddResults",void 0),t([s()],r.prototype,"relationshipAddResults",void 0),r=t([o("esri.rest.knowledgeGraph.GraphAddNamedTypesResult")],r);const p=r;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphAddPropertyResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphAddPropertyResult")],e);const t=e;export{t as default};
@@ -1,4 +1,4 @@
1
1
  import "../../interfaces";
2
2
 
3
3
  import GraphDataModelOperationResult = __esri.GraphDataModelOperationResult;
4
- export { GraphDataModelOperationResult };
4
+ export default GraphDataModelOperationResult;
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import o from"../../core/Accessor.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";let t=class extends o{constructor(r){super(r),this.decoderError=null,this.resultsCount=0,this.results=[],this.updatedKnowledgeGraph=null}};r([e()],t.prototype,"decoderError",void 0),r([e()],t.prototype,"resultsCount",void 0),r([e()],t.prototype,"results",void 0),r([e()],t.prototype,"updatedKnowledgeGraph",void 0),t=r([s("esri.rest.knowledgeGraph.GraphDataModelOperationResult")],t);export{t as GraphDataModelOperationResult};
5
+ import{_ as o}from"../../chunks/tslib.es6.js";import r from"../../core/Accessor.js";import{property as e}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";let t=class extends r{constructor(o){super(o),this.decoderError=null,this.resultsCount=0,this.results=[],this.updatedKnowledgeGraph=null}};o([e()],t.prototype,"decoderError",void 0),o([e()],t.prototype,"resultsCount",void 0),o([e()],t.prototype,"results",void 0),o([e()],t.prototype,"updatedKnowledgeGraph",void 0),t=o([s("esri.rest.knowledgeGraph.GraphDataModelOperationResult")],t);const p=t;export{p as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphDeleteFieldIndexResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphDeleteFieldIndexResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphDeleteNamedTypeResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphDeleteNamedTypeResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphDeletePropertyResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphDeletePropertyResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as o}from"./GraphDataModelOperationResult.js";let e=class extends o{constructor(r){super(r)}};e=r([s("esri.rest.knowledgeGraph.GraphUpdateNamedTypesResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as s}from"../../core/accessorSupport/decorators/subclass.js";import o from"./GraphDataModelOperationResult.js";let e=class extends o{constructor(r){super(r)}};e=r([s("esri.rest.knowledgeGraph.GraphUpdateNamedTypesResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphUpdatePropertyResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphUpdatePropertyResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{GraphDataModelOperationResult as s}from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphUpdateSearchIndexResult")],e);const t=e;export{t as default};
5
+ import{_ as r}from"../../chunks/tslib.es6.js";import"../../core/Logger.js";import"../../core/has.js";import"../../core/RandomLCG.js";import"../../core/Error.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import s from"./GraphDataModelOperationResult.js";let e=class extends s{constructor(r){super(r)}};e=r([o("esri.rest.knowledgeGraph.GraphUpdateSearchIndexResult")],e);const t=e;export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- const c="20250620",a="11765b8f1aca9f2c702b001bd2ad36138edc44f0";export{c as buildDate,a as commitHash};
5
+ const d="20250624",b="bbc458d452dd1d67fe9b453d6566eb5a4d9bd351";export{d as buildDate,b as commitHash};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- 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 y,translate as d,getStaticParam as h,shouldUseAnimatedPath as f}from"./animationUtils.js";import{CIMSymbolHelper as u}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as v}from"./constants.js";import{defaultCIMValues as O}from"./defaultCIMValues.js";import{Alignment as g,SymbolUnits as _}from"./enums.js";import{fitVectorMarker as S}from"./fitVectorMarker.js";import{OverrideHelper as M}from"./OverrideHelper.js";import{getExtent as k,getSDFMetrics as C,getSDFDimensions as b}from"./SDFHelper.js";import{colorToArray as x,normalizeAlpha as P,getSize as z,isCIMMarkerStrokePlacement as E,hasStrokeLayer as I,getTintColor as L,getNumericValue as V,normalizePrimitiveOverrideProps as N,getDefaultCIMValue as R,getEnum as A,getStrokeWidth as w,getFillColor as G,getStrokeColor as T,fromCIMFontDecoration as F,fromCIMFontStyle as X,fromCIMVerticalAlignment as j,fromCIMHorizontalAlignment as Y,getTextCasing as W,isValidCIMValue as D,uncapitalize as U}from"./utils.js";import{CIMEffectHelper as H}from"./effects/CIMEffectHelper.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?g.MAP:g.SCREEN}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,this._resourceManager.geometryEngine))}const i=e.effects;let o=g.SCREEN;const a=z(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=g.MAP),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 y=null;if(n){y=[];for(const e of n){const t=M.findEffectOverrides(e,this._primitiveOverrides);t&&y.push(t)}}const d=[];switch(M.findApplicableOverrides(l,this._primitiveOverrides,d),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,y,s,I(r));break;case"CIMPictureFill":this._analyzePictureFill(l,y,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,y);break;case"CIMGradientFill":this._analyzeGradientFill(l,y);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,y,p,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,y,p,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,y,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&&E(l.markerPlacement);this._analyzeMarker(l,y,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))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)});else{const r=this._getValueOrOverrideExpression(a,o,"Color",s);this._cimLayers.push({type:"outlineFill",colorLocked:!!e.colorLocked,color:r,effects:t,outlineColor:r,outlineColorLocked:!!e.colorLocked,...v,outlineEffects:t})}}_analyzePictureFill(e,t,r){const{primitiveName:i,type:o}=e,a=L(e),s=V(e.height,O.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,O.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=O.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?_.Absolute:"Relative"===a?_.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=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=V(o.width,O.CIMSolidStroke.width),n=A(o.capStyle,O.CIMSolidStroke.capstyle),p=A(o.joinStyle,O.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,O.CIMSolidStroke.width),c=A(e.capStyle,O.CIMSolidStroke.capstyle),m=A(e.joinStyle,O.CIMSolidStroke.joinstyle),y=e.miterLimit;let d,h,f,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&&(d=e.dashTemplate,h=e.scaleDash,f=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const g=void 0!==d?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:d,primitiveName:u},overrides:v}:null,_=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:g,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:y&&this._getValueOrOverrideExpression(s,a,"MiterLimit",y),referenceWidth:i,zOrder:$(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??d,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",f??0),scaleDash:h,sampleAlphaOnly:!0,animationParams:se(_)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=L(e),p=V(e.width,O.CIMPictureStroke.width),c=A(e.capStyle,O.CIMPictureStroke.capstyle),m=A(e.joinStyle,O.CIMPictureStroke.joinstyle),y=e.miterLimit,d={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},h=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:d,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:y&&this._getValueOrOverrideExpression(s,a,"MiterLimit",y),referenceWidth:i,zOrder:$(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:se(h)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:c}=e,m=O.CIMGradientStroke,y=V(e.width,m.width),d=A(e.capStyle,m.capstyle),h=A(e.joinStyle,m.joinstyle),f=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",y),cap:this._getValueOrOverrideExpression(c,p,"CapStyle",d),join:this._getValueOrOverrideExpression(c,p,"JoinStyle",h),miterLimit:f&&this._getValueOrOverrideExpression(c,p,"MiterLimit",f),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?_.Absolute:"Relative"===s?_.Relative:m.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,y,d=!1,h=!1){d||=!!e.colorLocked;let f=y;if(f=p(e,f),f=c(this._poMap,e,f),f=m(e,f),f=n(this._poMap,e,f),this._analyzeMarkerInsidePolygon(e,t,d,f))return;const u=V(e.size,O.CIMVectorMarker.size),v=V(e.rotation),g=V(e.offsetX),_=V(e.offsetY),{primitiveName:S,type:M}=e,k=this._getValueOrOverrideExpression(M,S,"Size",u),C=this._getValueOrOverrideExpression(M,S,"Rotation",v),b=this._getValueOrOverrideExpression(M,S,"OffsetX",g),x=this._getValueOrOverrideExpression(M,S,"OffsetY",_);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,k,C,b,x,l,f,d,h);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,k,C,b,x,l,f,s,d,h)}}_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),y="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:e,overrides:[]};return this._cimLayers.push({type:"fill",spriteRasterizationParam:y,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}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,c,m,y,d,h,f){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=V(e.scaleX,1);const _=L(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const S=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||S?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)};S&&b.overrides.push(...S.overrides);const x=n;this._cimLayers.push({type:"marker",spriteRasterizationParam:b,colorLocked:h,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:y},color:this._getValueOrOverrideExpression(O,v,"TintColor",_),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:f,markerPlacement:i,animationParams:se(d),baseSize:x})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,p,c,m,f,u,v,O){const g=e.markerGraphics;if(!g)return;const _=e.frame;let S=0;S=_?_.ymax-_.ymin:a;const M=!!e.scaleSymbolsProportionally;if(S){const t={offsetX:p,offsetY:c,rotation:l,size:s,frameHeight:S,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=f;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&_){let t=0,r=0;const i=k.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(_.xmin+_.xmax),r+=i.y-.5*(_.ymin+_.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):_&&(t-=(_.xmax-_.xmin)*o.x,r-=(_.ymax-_.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]=y(g,_);switch(0===C&&0===b||(c=d(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:h([0,0]),rotation:h(0),scale:h(S),parent:f.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,k,i,o,a,p??m,c,S,v,O)):this._analyzeMultiLayerGraphic(e,t,r,k,i,o,a,p??m,c,S,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 y=i.symbol.symbolLayers;y&&(!te(y)||f(n)?ie(y)?this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,!!c,m):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,y){const d=i.symbol,h=d.symbolLayers;if(!h)return;const f=this._resourceManager.geometryEngine,u=H.applyEffects(d.effects,i.geometry,f);if(!u)return;let v=h.length;for(;v--;){const d=h[v];if(!d||!1===d.enable)continue;const g=d.primitiveName;switch(g&&o.push(g),d.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=H.applyEffects(d.effects,u,f),h=k(o);if(!h)continue;const v="Relative"!==e.anchorPointUnits,_=w(d)??0,{frameSizeRatio:S,anchorX:M,anchorY:x,widthRatio:z,sdfPaddingRatio:E}=C(h,e.frame,e.size,e.anchorPoint,v,_,e.scaleSymbolsProportionally),I="CIMSolidFill"===d.type,L={type:"sdf",geom:o,sdfPaddingRatio:E,asFill:I},{path:N}=d,R=I?P(G(d)):null==N?P(T(d)):[0,0,0,0],A=I?[0,0,0,0]:P(T(d));if(!I&&!_)break;const F=i.primitiveName;let X=null;I&&!d.colorLocked&&(X=this._maybeGetValueOrOverrideExpression(F,"FillColor"));let j=null;I||d.colorLocked||(j=this._maybeGetValueOrOverrideExpression(F,"StrokeColor"));const Y=X??this._getValueOrOverrideExpression(d.type,g,"Color",R),W=j??this._getValueOrOverrideExpression(d.type,g,"Color",A),D=this._maybeGetValueOrOverrideExpression(F,"StrokeWidth")??this._getValueOrOverrideExpression(d.type,g,"Width",_),U=N?{type:"sprite-rasterization-param",resource:{type:"path",path:N,asFill:I},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},J=n(this._poMap,d,p),B=V(e.size,O.CIMVectorMarker.size),q=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",B);this._cimLayers.push({type:"marker",spriteRasterizationParam:U,colorLocked:!!d.colorLocked||!!m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:M,y:x},isAbsoluteAnchorPoint:v,size:c,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:c,widthRatio:z,rotateClockwise:!1,referenceSize:s,sizeRatio:S,color:Y,outlineColor:W,outlineWidth:D,isOutline:y,markerPlacement:r,animationParams:se(J),isStroke:"CIMSolidFill"!==d.type,baseSize:q,...b(o,E)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(d.markerPlacement){q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(d,t,r,o,a,s,!1,l,p,m,y)}g&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];M.findApplicableOverrides(i,this._primitiveOverrides,p);const c=i.geometry;if(!("x"in c)||!("y"in c))return;const m=i.symbol,y=F(m),d=X(m.fontStyleName),h=t(m.fontFamilyName);m.font={family:h,decoration:y,...d};const f=V(m.height,O.CIMTextSymbol.height),u=V(m.angle),v=V(m.offsetX),g=V(m.offsetY),{haloSymbol:_}=m,S=V(m.haloSize,0);let k=[0,0,0,0];if(_?.symbolLayers?.length){const e=_.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,E=!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",w(t)??0);else if("CIMSolidFill"===t.type){const r=P(t.color);E=E??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??C,"Color",r)}}let I=null,L=null,N=null,R=null,A=null;C&&(I=this._maybeGetValueOrOverrideExpression(C,"TextSize"),L=this._maybeGetValueOrOverrideExpression(C,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(C,"TextOffsetX"),R=this._maybeGetValueOrOverrideExpression(C,"TextOffsetY"),E||(A=this._maybeGetValueOrOverrideExpression(C,"FillColor")));const G=A??b;let T=null,W=null,D=0;if(m.callout&&"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?T=P(e.color):"CIMSolidStroke"===e.type&&(W=P(e.color),D=V(e.width,O.CIMSolidStroke.width))}}const U=this._getValueOrOverrideExpression(m.type,i.primitiveName,"TextString",i.textString??"");if(null==U)return;const{fontStyleName:H}=m,J=h+(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||!!E,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:J,decoration:y,haloSize:S,haloColor:k,weight:d.weight,style:d.style,size:I??f,angle:L??u,offsetX:N??v,offsetY:R??g,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:Y(m.horizontalAlignment),verticalAlignment:j(m.verticalAlignment),text:U,color:G,outlineColor:x,outlineSize:z,backgroundColor:T,borderLineColor:W,borderLineWidth:D,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=W(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,y){const d=Z(e,i),h=e.primitiveName,f=this._analyzeMaterialOverrides(h,["Rotation","OffsetX","OffsetY"]),v=N(f),[g,_,S]=u.getTextureAnchor(d,this._resourceManager,J),M=this._getMaterialOverrides(a,e.type);M.push(...v);const k={type:"sprite-rasterization-param",resource:{...d,avoidSDFRasterization:!0},overrides:M},C=V(e.size,O.CIMVectorMarker.size),b=this._getValueOrOverrideExpression(e.type,h,"Size",C);this._cimLayers.push({type:"marker",spriteRasterizationParam:k,colorLocked:m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:g,y:_},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:S/o(e.size),isOutline:y,markerPlacement:r,animationParams:se(p),baseSize:b})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:ae(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return M.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,y=o[0],d=o[1],h=k(m);if(!h)return;const f="Relative"!==e.anchorPointUnits,u=V(y.width,O.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:g,anchorY:_,widthRatio:S,sdfPaddingRatio:M}=C(h,e.frame,e.size,e.anchorPoint,f,u,e.scaleSymbolsProportionally),{path:b}=d,x=d.primitiveName,z=y.primitiveName,E=i.primitiveName;let I=null;d.colorLocked||p||(I=this._maybeGetValueOrOverrideExpression(E,"FillColor"));const L=I??this._getValueOrOverrideExpression(d.type,x,"Color",P(d.color));let N=null;y.colorLocked||p||(N=this._maybeGetValueOrOverrideExpression(E,"StrokeColor"));const R=N??this._getValueOrOverrideExpression(y.type,z,"Color",P(y.color)),A=this._maybeGetValueOrOverrideExpression(E,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,z,"Width",u),w={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geom:m,sdfPaddingRatio:M,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",spriteRasterizationParam:w,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:g,y:_},isAbsoluteAnchorPoint:f,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:S,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:L,outlineColor:R,outlineWidth:A,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&&0===e.indexOf("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 M.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 f(e)?{type:"animation-params",params:e}:null}export{Q as CIMAnalyzer,ee as analyzeCIMResource};
5
+ 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 y,translate as d,getStaticParam as h,shouldUseAnimatedPath as f}from"./animationUtils.js";import{CIMSymbolHelper as u}from"./CIMSymbolHelper.js";import{antialiasingOutlineFillSettings as v}from"./constants.js";import{defaultCIMValues as O}from"./defaultCIMValues.js";import{Alignment as g,SymbolUnits as _}from"./enums.js";import{fitVectorMarker as S}from"./fitVectorMarker.js";import{OverrideHelper as M}from"./OverrideHelper.js";import{getExtent as k,getSDFMetrics as C,getSDFDimensions as b}from"./SDFHelper.js";import{colorToArray as x,normalizeAlpha as P,getSize as z,isCIMMarkerStrokePlacement as E,hasStrokeLayer as I,getTintColor as L,getNumericValue as V,normalizePrimitiveOverrideProps as N,getDefaultCIMValue as R,getEnum as A,getStrokeWidth as w,getFillColor as G,getStrokeColor as T,fromCIMFontDecoration as F,fromCIMFontStyle as X,fromCIMVerticalAlignment as j,fromCIMHorizontalAlignment as Y,getTextCasing as W,isValidCIMValue as D,uncapitalize as U}from"./utils.js";import{CIMEffectHelper as H}from"./effects/CIMEffectHelper.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?g.MAP:g.SCREEN}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,this._resourceManager.geometryEngine))}const i=e.effects;let o=g.SCREEN;const a=z(e)??0;if("CIMPointSymbol"===e.type&&"Map"===e.angleAlignment&&(o=g.MAP),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 y=null;if(n){y=[];for(const e of n){const t=M.findEffectOverrides(e,this._primitiveOverrides);t&&y.push(t)}}const d=[];switch(M.findApplicableOverrides(l,this._primitiveOverrides,d),l.type){case"CIMSolidFill":this._analyzeSolidFill(l,y,s,I(r));break;case"CIMPictureFill":this._analyzePictureFill(l,y,s);break;case"CIMHatchFill":this._analyzeHatchFill(l,y);break;case"CIMGradientFill":this._analyzeGradientFill(l,y);break;case"CIMSolidStroke":this._analyzeSolidStroke(l,y,p,a,s);break;case"CIMPictureStroke":this._analyzePictureStroke(l,y,p,a,s);break;case"CIMGradientStroke":this._analyzeGradientStroke(l,y,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&&E(l.markerPlacement);this._analyzeMarker(l,y,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,...v,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,O.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,O.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=O.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?_.Absolute:"Relative"===a?_.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=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),s=[...t??[],...o.effects??[]].map(e=>M.findEffectOverrides(e,this._primitiveOverrides)).filter(e=>null!=e),l=V(o.width,O.CIMSolidStroke.width),n=A(o.capStyle,O.CIMSolidStroke.capstyle),p=A(o.joinStyle,O.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,O.CIMSolidStroke.width),c=A(e.capStyle,O.CIMSolidStroke.capstyle),m=A(e.joinStyle,O.CIMSolidStroke.joinstyle),y=e.miterLimit;let d,h,f,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&&(d=e.dashTemplate,h=e.scaleDash,f=e.offsetAlongLine,u=e.primitiveName,(t=[...t]).pop())}null!=u&&v.push(...this._getPrimitiveMaterialOverrides(u,s).filter(e=>"dashTemplate"===e.propertyName));const g=void 0!==d?{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:d,primitiveName:u},overrides:v}:null,_=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:g,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:y&&this._getValueOrOverrideExpression(s,a,"MiterLimit",y),referenceWidth:i,zOrder:$(e.name),dashTemplate:this._maybeGetValueOrOverrideExpression(u,"DashTemplate")??d,offsetAlongLine:this._getValueOrOverrideExpression(s,u,"OffsetAlongLine",f??0),scaleDash:h,sampleAlphaOnly:!0,animationParams:se(_)})}_analyzePictureStroke(e,t,r,i,o){const{primitiveName:a,type:s}=e,l=L(e),p=V(e.width,O.CIMPictureStroke.width),c=A(e.capStyle,O.CIMPictureStroke.capstyle),m=A(e.joinStyle,O.CIMPictureStroke.joinstyle),y=e.miterLimit,d={type:"sprite-rasterization-param",resource:e,overrides:this._getPrimitiveMaterialOverrides(a,s)},h=n(this._poMap,e,o);this._cimLayers.push({type:"line",spriteRasterizationParam:d,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:y&&this._getValueOrOverrideExpression(s,a,"MiterLimit",y),referenceWidth:i,zOrder:$(e.name),dashTemplate:null,scaleDash:!1,sampleAlphaOnly:!1,animationParams:se(h)})}_analyzeGradientStroke(e,t,r,i){const{gradientMethod:o,gradientSize:a,gradientSizeUnits:s,gradientType:l,interval:n,primitiveName:p,type:c}=e,m=O.CIMGradientStroke,y=V(e.width,m.width),d=A(e.capStyle,m.capstyle),h=A(e.joinStyle,m.joinstyle),f=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",y),cap:this._getValueOrOverrideExpression(c,p,"CapStyle",d),join:this._getValueOrOverrideExpression(c,p,"JoinStyle",h),miterLimit:f&&this._getValueOrOverrideExpression(c,p,"MiterLimit",f),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?_.Absolute:"Relative"===s?_.Relative:m.gradientSizeUnits})}_analyzeMarker(e,t,r,i,o,a,s,l,y,d=!1,h=!1){d||=!!e.colorLocked;let f=y;if(f=p(e,f),f=c(this._poMap,e,f),f=m(e,f),f=n(this._poMap,e,f),this._analyzeMarkerInsidePolygon(e,t,d,f))return;const u=V(e.size,O.CIMVectorMarker.size),v=V(e.rotation),g=V(e.offsetX),_=V(e.offsetY),{primitiveName:S,type:M}=e,k=this._getValueOrOverrideExpression(M,S,"Size",u),C=this._getValueOrOverrideExpression(M,S,"Rotation",v),b=this._getValueOrOverrideExpression(M,S,"OffsetX",g),x=this._getValueOrOverrideExpression(M,S,"OffsetY",_);switch(e.type){case"CIMPictureMarker":this._analyzePictureMarker(e,t,r,i,o,a,k,C,b,x,l,f,d,h);break;case"CIMVectorMarker":this._analyzeVectorMarker(e,t,r,i,o,a,k,C,b,x,l,f,s,d,h)}}_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),y="CIMCharacterMarker"===e.type?null:{type:"sprite-rasterization-param",resource:e,overrides:[]};return this._cimLayers.push({type:"fill",spriteRasterizationParam:y,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}),!0}_analyzePictureMarker(e,t,i,o,a,l,n,p,c,m,y,d,h,f){const{animatedSymbolProperties:u,primitiveName:v,type:O}=e;let g=V(e.scaleX,1);const _=L(e);i||(i=this._createMarkerPlacementOverrideExpression(e.markerPlacement));const S=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||S?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)};S&&b.overrides.push(...S.overrides);const x=n;this._cimLayers.push({type:"marker",spriteRasterizationParam:b,colorLocked:h,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:y},color:this._getValueOrOverrideExpression(O,v,"TintColor",_),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:f,markerPlacement:i,animationParams:se(d),baseSize:x})}_analyzeVectorMarker(e,t,r,i,o,a,s,l,p,c,m,f,u,v,O){const g=e.markerGraphics;if(!g)return;const _=e.frame;let S=0;S=_?_.ymax-_.ymin:a;const M=!!e.scaleSymbolsProportionally;if(S){const t={offsetX:p,offsetY:c,rotation:l,size:s,frameHeight:S,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=f;if(("CIMPointSymbol"===s.type||"CIMTextSymbol"===s.type)&&_){let t=0,r=0;const i=k.geometry;"x"in i&&"y"in i&&(t+=i.x-.5*(_.xmin+_.xmax),r+=i.y-.5*(_.ymin+_.ymax));const o=e.anchorPoint;let a=!1;o&&("Absolute"===e.anchorPointUnits?(t-=o.x,r-=o.y,a=!0):_&&(t-=(_.xmax-_.xmin)*o.x,r-=(_.ymax-_.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]=y(g,_);switch(0===C&&0===b||(c=d(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:h([0,0]),rotation:h(0),scale:h(S),parent:f.transform}},this._analyzeMultiLayerGraphicNonSDF(e,t,r,k,i,o,a,p??m,c,S,v,O)):this._analyzeMultiLayerGraphic(e,t,r,k,i,o,a,p??m,c,S,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 y=i.symbol.symbolLayers;y&&(!te(y)||f(n)?ie(y)?this._analyzeMultiLayerGraphicNonSDF(e,t,r,i,o,a,s,l,n,p,!!c,m):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,y){const d=i.symbol,h=d.symbolLayers;if(!h)return;const f=this._resourceManager.geometryEngine,u=H.applyEffects(d.effects,i.geometry,f);if(!u)return;let v=h.length;for(;v--;){const d=h[v];if(!d||!1===d.enable)continue;const g=d.primitiveName;switch(g&&o.push(g),d.type){case"CIMSolidFill":case"CIMSolidStroke":{const o=H.applyEffects(d.effects,u,f),h=k(o);if(!h)continue;const v="Relative"!==e.anchorPointUnits,_=w(d)??0,{frameSizeRatio:S,anchorX:M,anchorY:x,widthRatio:z,sdfPaddingRatio:E}=C(h,e.frame,e.size,e.anchorPoint,v,_,e.scaleSymbolsProportionally),I="CIMSolidFill"===d.type,L={type:"sdf",geom:o,sdfPaddingRatio:E,asFill:I},{path:N}=d,R=I?P(G(d)):null==N?P(T(d)):[0,0,0,0],A=I?[0,0,0,0]:P(T(d));if(!I&&!_)break;const F=i.primitiveName;let X=null;I&&!d.colorLocked&&(X=this._maybeGetValueOrOverrideExpression(F,"FillColor"));let j=null;I||d.colorLocked||(j=this._maybeGetValueOrOverrideExpression(F,"StrokeColor"));const Y=X??this._getValueOrOverrideExpression(d.type,g,"Color",R),W=j??this._getValueOrOverrideExpression(d.type,g,"Color",A),D=this._maybeGetValueOrOverrideExpression(F,"StrokeWidth")??this._getValueOrOverrideExpression(d.type,g,"Width",_),U=N?{type:"sprite-rasterization-param",resource:{type:"path",path:N,asFill:I},overrides:[]}:{type:"sprite-rasterization-param",resource:L,overrides:[]},J=n(this._poMap,d,p),B=V(e.size,O.CIMVectorMarker.size),q=this._getValueOrOverrideExpression(e.type,e.primitiveName,"Size",B);this._cimLayers.push({type:"marker",spriteRasterizationParam:U,colorLocked:!!d.colorLocked||!!m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:M,y:x},isAbsoluteAnchorPoint:v,size:c,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:c,widthRatio:z,rotateClockwise:!1,referenceSize:s,sizeRatio:S,color:Y,outlineColor:W,outlineWidth:D,isOutline:y,markerPlacement:r,animationParams:se(J),isStroke:"CIMSolidFill"!==d.type,baseSize:q,...b(o,E)});break}case"CIMPictureMarker":case"CIMVectorMarker":if(d.markerPlacement){q().error("Error analyzing CIM, got unexpected marker placement");break}this._analyzeMarker(d,t,r,o,a,s,!1,l,p,m,y)}g&&o.pop()}}_analyzeTextGraphic(e,r,i,o,a,s,l,n){const p=[];M.findApplicableOverrides(i,this._primitiveOverrides,p);const c=i.geometry;if(!("x"in c)||!("y"in c))return;const m=i.symbol,y=F(m),d=X(m.fontStyleName),h=t(m.fontFamilyName);m.font={family:h,decoration:y,...d};const f=V(m.height,O.CIMTextSymbol.height),u=V(m.angle),v=V(m.offsetX),g=V(m.offsetY),{haloSymbol:_}=m,S=V(m.haloSize,0);let k=[0,0,0,0];if(_?.symbolLayers?.length){const e=_.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,E=!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",w(t)??0);else if("CIMSolidFill"===t.type){const r=P(t.color);E=E??!!t.colorLocked,b=this._getValueOrOverrideExpression("CIMSolidFill",e??C,"Color",r)}}let I=null,L=null,N=null,R=null,A=null;C&&(I=this._maybeGetValueOrOverrideExpression(C,"TextSize"),L=this._maybeGetValueOrOverrideExpression(C,"TextAngle"),N=this._maybeGetValueOrOverrideExpression(C,"TextOffsetX"),R=this._maybeGetValueOrOverrideExpression(C,"TextOffsetY"),E||(A=this._maybeGetValueOrOverrideExpression(C,"FillColor")));const G=A??b;let T=null,W=null,D=0;if(m.callout&&"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?T=P(e.color):"CIMSolidStroke"===e.type&&(W=P(e.color),D=V(e.width,O.CIMSolidStroke.width))}}const U=this._getValueOrOverrideExpression(m.type,i.primitiveName,"TextString",i.textString??"");if(null==U)return;const{fontStyleName:H}=m,J=h+(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||!!E,effects:e,alignment:a,anchorPoint:{x:0,y:0},isAbsoluteAnchorPoint:!1,fontName:J,decoration:y,haloSize:S,haloColor:k,weight:d.weight,style:d.style,size:I??f,angle:L??u,offsetX:N??v,offsetY:R??g,transform:{type:"cim-marker-transform-param",params:l},horizontalAlignment:Y(m.horizontalAlignment),verticalAlignment:j(m.verticalAlignment),text:U,color:G,outlineColor:x,outlineSize:z,backgroundColor:T,borderLineColor:W,borderLineWidth:D,referenceSize:s,sizeRatio:1,markerPlacement:r})}_collectDictionaryTemplateOverrides(e,t){if(t.textString&&this._hasTextStringTemplates){const r=W(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,y){const d=Z(e,i),h=e.primitiveName,f=this._analyzeMaterialOverrides(h,["Rotation","OffsetX","OffsetY"]),v=N(f),[g,_,S]=u.getTextureAnchor(d,this._resourceManager,J),M=this._getMaterialOverrides(a,e.type);M.push(...v);const k={type:"sprite-rasterization-param",resource:{...d,avoidSDFRasterization:!0},overrides:M},C=V(e.size,O.CIMVectorMarker.size),b=this._getValueOrOverrideExpression(e.type,h,"Size",C);this._cimLayers.push({type:"marker",spriteRasterizationParam:k,colorLocked:m,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:s,anchorPoint:{x:g,y:_},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:S/o(e.size),isOutline:y,markerPlacement:r,animationParams:se(p),baseSize:b})}_createMarkerPlacementOverrideExpression(e){if(!e)return null;const t=[];return M.findApplicableOverrides(e,this._primitiveOverrides,t),{type:"cim-marker-placement-param",placement:e,overrides:ae(t)}}_createGIFAnimatedSymbolPropertiesOverrideExpression(e){if(!e)return null;const t=[];return M.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,y=o[0],d=o[1],h=k(m);if(!h)return;const f="Relative"!==e.anchorPointUnits,u=V(y.width,O.CIMSolidStroke.width),{frameSizeRatio:v,anchorX:g,anchorY:_,widthRatio:S,sdfPaddingRatio:M}=C(h,e.frame,e.size,e.anchorPoint,f,u,e.scaleSymbolsProportionally),{path:b}=d,x=d.primitiveName,z=y.primitiveName,E=i.primitiveName;let I=null;d.colorLocked||p||(I=this._maybeGetValueOrOverrideExpression(E,"FillColor"));const L=I??this._getValueOrOverrideExpression(d.type,x,"Color",P(d.color));let N=null;y.colorLocked||p||(N=this._maybeGetValueOrOverrideExpression(E,"StrokeColor"));const R=N??this._getValueOrOverrideExpression(y.type,z,"Color",P(y.color)),A=this._maybeGetValueOrOverrideExpression(E,"StrokeWidth")??this._getValueOrOverrideExpression(y.type,z,"Width",u),w={type:"sprite-rasterization-param",resource:b?{type:"path",path:b,asFill:!0}:{type:"sdf",geom:m,sdfPaddingRatio:M,asFill:!0},overrides:[]};this._cimLayers.push({type:"marker",spriteRasterizationParam:w,colorLocked:p,effects:t,scaleSymbolsProportionally:!!e.scaleSymbolsProportionally,alignment:a,anchorPoint:{x:g,y:_},isAbsoluteAnchorPoint:f,size:n,rotation:0,offsetX:0,offsetY:0,scaleX:1,transform:{type:"cim-marker-transform-param",params:l},frameHeight:n,widthRatio:S,rotateClockwise:!1,referenceSize:s,sizeRatio:v,color:L,outlineColor:R,outlineWidth:A,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&&0===e.indexOf("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 M.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 f(e)?{type:"animation-params",params:e}:null}export{Q as CIMAnalyzer,ee as analyzeCIMResource};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as e}from"../../../../../../../core/arrayUtils.js";import r from"../../../../../../../core/Error.js";import{clone as t}from"../../../../../../../core/lang.js";import s from"../../../../../../../core/Logger.js";import{collectExpressionDependencies as o}from"../../../../../../../support/ArcadeExpression.js";import{getStartGroup as a}from"../../../grouping.js";import{hydrate as i}from"../../../animations/infos.js";import{createParamList as n,compileAnimationParam as c,fromJSON as p,resolveToAnimationInfo as m,encodeParamList as f,getAnimationExpressions as l}from"../../../animations/utils.js";import{applyComputedValue as d}from"./utils.js";import{DictionaryValue as u}from"../../../../../layers/features/support/DictionaryValue.js";const y=()=>s.getLogger("esri.views.2d.engine.webgl.shaderGraph.techniques.mesh.MeshWriterInputEvaluator");async function h(e,r,t,s){const{defaultValue:o,valueExpressionInfo:a,value:i}=r;if(a){if("dictionary-template"===a.type)return{...r,computed:e.createDictionaryTemplateField(a,t),defaultValue:o};const{expression:i}=a,n=await e.createComputedField({expression:i},s);return n?{...r,computed:n,defaultValue:o}:null}return{...r,computed:new u(i),defaultValue:o}}async function v(e,r,t){const{valueExpressionInfo:s}=r,o="dictionary-template"===s.type?e.createDictionaryTemplateField(s,t):await e.createComputedField({expression:s.expression});return o?{...r,computed:o}:null}function P(e){return"object"==typeof e&&null!=e&&(!(!("valueExpressionInfo"in e)||!e.valueExpressionInfo)||"type"in e&&"Process"===e.type&&"op"in e&&"Random"===e.op)}function _(e){if(Array.isArray(e))for(const r of e)if(_(r))return!0;if("object"==typeof e){if(P(e))return!0;for(const r in e){if(_(e[r]))return!0}}return!1}class I{static async create(r,t,s,o){const a={},i=new Map,m=new Map,f=new Map,l=new Map,d=new Map,u=new Map;for(const y in s){const I=s[y];if(null!=I&&"object"==typeof I)if(Array.isArray(I)){if("object"==typeof I[0])throw new Error(`InternalError: Cannot handle ${y}. Nested array params are not supported`);a[y]=I}else if("valueExpressionInfo"in I){if(I.value){a[y]=I.value;continue}const e=await v(r,I,o);if(!e){a[y]=I.defaultValue;continue}i.set(y,e),a[y]=null}else switch(I.type){case"cim-effect-infos":if(I.effectInfos.some(e=>e.overrides.length)){m.set(y,{effects:await Promise.all(I.effectInfos.map(async t=>{const s=t.overrides.map(e=>h(r,e,o,!1));return{effect:t.effect,compiledOverrides:(await Promise.all(s)).filter(e)}}))});break}a[y]=I.effectInfos.map(e=>e.effect);break;case"cim-marker-placement-param":I.overrides.length&&f.set(y,{placementInfo:I,compiledOverrides:(await Promise.all(I.overrides.map(e=>h(r,e,o,!1)))).filter(e)}),a[y]=I.placement;break;case"text-rasterization-param":{if(I.overrides.length){const t=I.overrides.map(e=>h(r,e,o,I.useLegacyLabelEvaluationRules??!1));l.set(y,{compiledOverrides:(await Promise.all(t)).filter(e),rasterizationParam:I,objectIdToResourceId:new Map});continue}const s={type:"cim-rasterization-info",resource:I.resource};a[y]=await t.fetchResourceImmediate(s)??null;break}case"sprite-rasterization-param":{if(I.overrides.length){const t=I.overrides.map(e=>h(r,e,o,!1));l.set(y,{compiledOverrides:(await Promise.all(t)).filter(e),rasterizationParam:I,objectIdToResourceId:new Map});continue}if("animated"===I.resource.type){l.set(y,{compiledOverrides:[],rasterizationParam:I,objectIdToResourceId:new Map});continue}const s={type:"cim-rasterization-info",resource:I.resource};a[y]=await t.fetchResourceImmediate(s)??null;break}case"cim-marker-transform-param":{const{params:e}=I;if(_(e)){const t={compiledMarkerInfos:[]};await Promise.all(e.map(async e=>{const s={props:{}};for(const t in e)if(P(e[t])){const a=await v(r,e[t],o);s.compiledExpressionMap||(s.compiledExpressionMap=new Map);const i=s.compiledExpressionMap;a&&i.set(t,a)}else s.props[t]=e[t];t.compiledMarkerInfos.push(s)})),d.set(y,t)}else a[y]={type:"cim-marker-transform-info",infos:e};break}case"animation-params":{const{params:e}=I,s=n(e);if(_(s)){const e=await Promise.all(s.map(e=>c(e,r)));u.set(y,{params:e,propertyIdToResourceId:new Map,key:y})}else{const e=p(s),r=await t.fetchResourceImmediate({type:"animation-info",resource:e});null!=r&&"sprite"===r.type&&(a[y]={dataRow:r.rect.y,dataColumn:r.rect.x})}break}default:a[y]=I}else a[y]=I}return new I(s,a,i,m,f,l,d,u)}constructor(e,r,t,s,a,i,n,c){this.inputMeshParams=e,this._resolvedMeshParams=r,this._dynamicProperties=t,this._dynamicEffectProperties=s,this._dynamicPlacementProperties=a,this._dynamicAsyncProperties=i,this._dynamicTransformProperties=n,this._dynamicAsyncAnimations=c,this.evaluator=e=>e,this._arcadeDependencies=new Set;for(const p of this._expressions())o(this._arcadeDependencies,p)}get hasDynamicProperties(){return!!(this._dynamicProperties.size||this._dynamicAsyncProperties.size||this._dynamicEffectProperties.size||this._dynamicTransformProperties.size||this._dynamicPlacementProperties.size||this._dynamicAsyncAnimations.size)}get evaluatedMeshParams(){return this._evaluatedMeshParams||(this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams)),this._evaluatedMeshParams}enqueueRequest(e,s,o){for(const i of this._dynamicAsyncProperties.values()){const c=t(i.rasterizationParam.resource);"animated"===i.rasterizationParam.resource.type&&i.rasterizationParam.resource.randomizeStartTime&&(c.primitiveName="__RESERVED__PRIMITIVE__NAME__",c.startGroup=a(s.getObjectId()||0));for(const{primitiveName:e,propertyName:t,computed:a,defaultValue:m,valueExpressionInfo:f}of i.compiledOverrides)try{const r="animated"===i.rasterizationParam.resource.type?c.primitiveName:e;d(c,r,t,a,s,o,m)}catch(n){y().errorOnce(new r("invalid-arcade-expression","Encountered an error when evaluating the arcade expression",{error:n,valueExpressionInfo:f}))}const p=e.enqueueRequest({type:"cim-rasterization-info",resource:c});i.objectIdToResourceId.set(s.getObjectId(),p)}for(const r of this._dynamicAsyncAnimations.values()){const t=r.params.map(e=>m(e,s,o)).map(i).map(e=>e.simplify()),a=f(t),n=e.enqueueRequest({type:"animation-info",resource:a});r.propertyIdToResourceId.set(s.getObjectId()+"."+r.key,n)}}evaluateMeshParams(e,r,t){for(const[s,o]of this._dynamicProperties.entries())this._resolvedMeshParams[s]=o.computed.readWithDefault(r,t,o.defaultValue);for(const[s,o]of this._dynamicPlacementProperties.entries())for(const{computed:e,defaultValue:a,propertyName:i}of o.compiledOverrides){const n=e.readWithDefault(r,t,a);o.placementInfo.placement[i]=n,this._resolvedMeshParams[s]=o.placementInfo.placement}for(const[s,o]of this._dynamicEffectProperties.entries())for(const e of o.effects){for(const{computed:s,defaultValue:o,propertyName:a}of e.compiledOverrides){const i=s.readWithDefault(r,t,o);e.effect[a]=i}this._resolvedMeshParams[s]=o.effects.map(e=>e.effect)}for(const[s,o]of this._dynamicTransformProperties.entries()){const e={type:"cim-marker-transform-info",infos:[]};for(const s of o.compiledMarkerInfos){const o={...s.props};if(s.compiledExpressionMap)for(const[e,a]of s.compiledExpressionMap){const s=a.computed.readWithDefault(r,t,a.defaultValue);o[e]="number"==typeof s||"boolean"==typeof s?s:a.defaultValue}e.infos.push(o)}this._resolvedMeshParams[s]=e}for(const[s,o]of this._dynamicAsyncProperties.entries()){const t=o.objectIdToResourceId.get(r.getObjectId());if(null==t)continue;const a=e.getResource(t);this._resolvedMeshParams[s]=a}for(const[s,o]of this._dynamicAsyncAnimations.entries()){const t=o.propertyIdToResourceId.get(r.getObjectId()+"."+s);if(null==t)continue;const a=e.getResource(t);this._resolvedMeshParams[s]={dataRow:a.rect.y,dataColumn:a.rect.x}}return this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams),this.evaluatedMeshParams}hasArcadeDependency(e){return this._arcadeDependencies.has(e)}*_expressions(){for(const e of this._dynamicProperties.values())yield e.computed;for(const e of this._dynamicEffectProperties.values())for(const r of e.effects)for(const e of r.compiledOverrides)yield e.computed;for(const e of this._dynamicPlacementProperties.values())for(const r of e.compiledOverrides)yield r.computed;for(const e of this._dynamicAsyncProperties.values())for(const r of e.compiledOverrides)yield r.computed;for(const e of this._dynamicTransformProperties.values())for(const r of e.compiledMarkerInfos)if(null!=r.compiledExpressionMap)for(const e of r.compiledExpressionMap.values())yield e.computed;for(const e of this._dynamicAsyncAnimations.values())for(const r of e.params)yield*l(r)}}export{I as MeshWriterInputEvaluator,P as hasExpression};
5
+ import{isSome as e}from"../../../../../../../core/arrayUtils.js";import r from"../../../../../../../core/Error.js";import{clone as t}from"../../../../../../../core/lang.js";import s from"../../../../../../../core/Logger.js";import{collectExpressionDependencies as o}from"../../../../../../../support/ArcadeExpression.js";import{getStartGroup as a}from"../../../grouping.js";import{hydrate as i}from"../../../animations/infos.js";import{createParamList as n,compileAnimationParam as c,fromJSON as p,resolveToAnimationInfo as m,encodeParamList as f,getAnimationExpressions as l}from"../../../animations/utils.js";import{applyComputedValue as d}from"./utils.js";import{DictionaryValue as u}from"../../../../../layers/features/support/DictionaryValue.js";const y=()=>s.getLogger("esri.views.2d.engine.webgl.shaderGraph.techniques.mesh.MeshWriterInputEvaluator");async function h(e,r,t,s){const{defaultValue:o,valueExpressionInfo:a,value:i}=r;if(a){if("dictionary-template"===a.type)return{...r,computed:e.createDictionaryTemplateField(a,t),defaultValue:o};const{expression:i}=a,n=await e.createComputedField({expression:i},s);return n?{...r,computed:n,defaultValue:o}:null}return{...r,computed:new u(i),defaultValue:o}}async function v(e,r,t){const{valueExpressionInfo:s}=r,o="dictionary-template"===s.type?e.createDictionaryTemplateField(s,t):await e.createComputedField({expression:s.expression});return o?{...r,computed:o}:null}function P(e){return"object"==typeof e&&null!=e&&(!(!("valueExpressionInfo"in e)||!e.valueExpressionInfo)||"type"in e&&"Process"===e.type&&"op"in e&&"Random"===e.op)}function _(e){if(Array.isArray(e))for(const r of e)if(_(r))return!0;if("object"==typeof e){if(P(e))return!0;for(const r in e){if(_(e[r]))return!0}}return!1}class I{static async create(r,t,s,o){const a={},i=new Map,m=new Map,f=new Map,l=new Map,d=new Map,u=new Map;for(const y in s){const I=s[y];if(null!=I&&"object"==typeof I)if(Array.isArray(I)){if("object"==typeof I[0])throw new Error(`InternalError: Cannot handle ${y}. Nested array params are not supported`);a[y]=I}else{if("valueExpressionInfo"in I){if(I.value){a[y]=I.value;continue}const e=await v(r,I,o);if(!e){a[y]=I.defaultValue;continue}i.set(y,e),a[y]=null;continue}switch(I.type){case"cim-effect-infos":if(I.effectInfos.some(e=>e.overrides.length)){m.set(y,{effects:await Promise.all(I.effectInfos.map(async t=>{const s=t.overrides.map(e=>h(r,e,o,!1));return{effect:t.effect,compiledOverrides:(await Promise.all(s)).filter(e)}}))});break}a[y]=I.effectInfos.map(e=>e.effect);break;case"cim-marker-placement-param":I.overrides.length&&f.set(y,{placementInfo:I,compiledOverrides:(await Promise.all(I.overrides.map(e=>h(r,e,o,!1)))).filter(e)}),a[y]=I.placement;break;case"text-rasterization-param":{if(I.overrides.length){const t=I.overrides.map(e=>h(r,e,o,I.useLegacyLabelEvaluationRules??!1));l.set(y,{compiledOverrides:(await Promise.all(t)).filter(e),rasterizationParam:I,objectIdToResourceId:new Map});continue}const s={type:"cim-rasterization-info",resource:I.resource};a[y]=await t.fetchResourceImmediate(s)??null;break}case"sprite-rasterization-param":{if(I.overrides.length){const t=I.overrides.map(e=>h(r,e,o,!1));l.set(y,{compiledOverrides:(await Promise.all(t)).filter(e),rasterizationParam:I,objectIdToResourceId:new Map});continue}if("animated"===I.resource.type){l.set(y,{compiledOverrides:[],rasterizationParam:I,objectIdToResourceId:new Map});continue}const s={type:"cim-rasterization-info",resource:I.resource};a[y]=await t.fetchResourceImmediate(s)??null;break}case"cim-marker-transform-param":{const{params:e}=I;if(_(e)){const t={compiledMarkerInfos:[]};await Promise.all(e.map(async e=>{const s={props:{}};for(const t in e)if(P(e[t])){const a=await v(r,e[t],o);s.compiledExpressionMap||(s.compiledExpressionMap=new Map);const i=s.compiledExpressionMap;a&&i.set(t,a)}else s.props[t]=e[t];t.compiledMarkerInfos.push(s)})),d.set(y,t)}else a[y]={type:"cim-marker-transform-info",infos:e};break}case"animation-params":{const{params:e}=I,s=n(e);if(_(s)){const e=await Promise.all(s.map(e=>c(e,r)));u.set(y,{params:e,propertyIdToResourceId:new Map,key:y})}else{const e=p(s),r=await t.fetchResourceImmediate({type:"animation-info",resource:e});null!=r&&"sprite"===r.type&&(a[y]={dataRow:r.rect.y,dataColumn:r.rect.x})}break}default:a[y]=I}}else a[y]=I}return new I(s,a,i,m,f,l,d,u)}constructor(e,r,t,s,a,i,n,c){this.inputMeshParams=e,this._resolvedMeshParams=r,this._dynamicProperties=t,this._dynamicEffectProperties=s,this._dynamicPlacementProperties=a,this._dynamicAsyncProperties=i,this._dynamicTransformProperties=n,this._dynamicAsyncAnimations=c,this.evaluator=e=>e,this._arcadeDependencies=new Set;for(const p of this._expressions())o(this._arcadeDependencies,p)}get hasDynamicProperties(){return!!(this._dynamicProperties.size||this._dynamicAsyncProperties.size||this._dynamicEffectProperties.size||this._dynamicTransformProperties.size||this._dynamicPlacementProperties.size||this._dynamicAsyncAnimations.size)}get evaluatedMeshParams(){return this._evaluatedMeshParams||(this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams)),this._evaluatedMeshParams}enqueueRequest(e,s,o){for(const i of this._dynamicAsyncProperties.values()){const c=t(i.rasterizationParam.resource);"animated"===i.rasterizationParam.resource.type&&i.rasterizationParam.resource.randomizeStartTime&&(c.primitiveName="__RESERVED__PRIMITIVE__NAME__",c.startGroup=a(s.getObjectId()||0));for(const{primitiveName:e,propertyName:t,computed:a,defaultValue:m,valueExpressionInfo:f}of i.compiledOverrides)try{const r="animated"===i.rasterizationParam.resource.type?c.primitiveName:e;d(c,r,t,a,s,o,m)}catch(n){y().errorOnce(new r("invalid-arcade-expression","Encountered an error when evaluating the arcade expression",{error:n,valueExpressionInfo:f}))}const p=e.enqueueRequest({type:"cim-rasterization-info",resource:c});i.objectIdToResourceId.set(s.getObjectId(),p)}for(const r of this._dynamicAsyncAnimations.values()){const t=r.params.map(e=>m(e,s,o)).map(i).map(e=>e.simplify()),a=f(t),n=e.enqueueRequest({type:"animation-info",resource:a});r.propertyIdToResourceId.set(s.getObjectId()+"."+r.key,n)}}evaluateMeshParams(e,r,t){for(const[s,o]of this._dynamicProperties.entries())this._resolvedMeshParams[s]=o.computed.readWithDefault(r,t,o.defaultValue);for(const[s,o]of this._dynamicPlacementProperties.entries())for(const{computed:e,defaultValue:a,propertyName:i}of o.compiledOverrides){const n=e.readWithDefault(r,t,a);o.placementInfo.placement[i]=n,this._resolvedMeshParams[s]=o.placementInfo.placement}for(const[s,o]of this._dynamicEffectProperties.entries())for(const e of o.effects){for(const{computed:s,defaultValue:o,propertyName:a}of e.compiledOverrides){const i=s.readWithDefault(r,t,o);e.effect[a]=i}this._resolvedMeshParams[s]=o.effects.map(e=>e.effect)}for(const[s,o]of this._dynamicTransformProperties.entries()){const e={type:"cim-marker-transform-info",infos:[]};for(const s of o.compiledMarkerInfos){const o={...s.props};if(s.compiledExpressionMap)for(const[e,a]of s.compiledExpressionMap){const s=a.computed.readWithDefault(r,t,a.defaultValue);o[e]="number"==typeof s||"boolean"==typeof s?s:a.defaultValue}e.infos.push(o)}this._resolvedMeshParams[s]=e}for(const[s,o]of this._dynamicAsyncProperties.entries()){const t=o.objectIdToResourceId.get(r.getObjectId());if(null==t)continue;const a=e.getResource(t);this._resolvedMeshParams[s]=a}for(const[s,o]of this._dynamicAsyncAnimations.entries()){const t=o.propertyIdToResourceId.get(r.getObjectId()+"."+s);if(null==t)continue;const a=e.getResource(t);this._resolvedMeshParams[s]={dataRow:a.rect.y,dataColumn:a.rect.x}}return this._evaluatedMeshParams=this.evaluator(this._resolvedMeshParams),this.evaluatedMeshParams}hasArcadeDependency(e){return this._arcadeDependencies.has(e)}*_expressions(){for(const e of this._dynamicProperties.values())yield e.computed;for(const e of this._dynamicEffectProperties.values())for(const r of e.effects)for(const e of r.compiledOverrides)yield e.computed;for(const e of this._dynamicPlacementProperties.values())for(const r of e.compiledOverrides)yield r.computed;for(const e of this._dynamicAsyncProperties.values())for(const r of e.compiledOverrides)yield r.computed;for(const e of this._dynamicTransformProperties.values())for(const r of e.compiledMarkerInfos)if(null!=r.compiledExpressionMap)for(const e of r.compiledExpressionMap.values())yield e.computed;for(const e of this._dynamicAsyncAnimations.values())for(const r of e.params)yield*l(r)}}export{I as MeshWriterInputEvaluator,P as hasExpression};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import i from"../../../Graphic.js";import{destroyMaybe as s}from"../../../core/maybe.js";import{watch as r,initial as l}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import n from"../../../layers/GraphicsLayer.js";import m from"../../../layers/support/TelemetryDisplay.js";import y from"../../../symbols/SimpleFillSymbol.js";import h from"../../../symbols/SimpleLineSymbol.js";import p from"../../../symbols/SimpleMarkerSymbol.js";import{applyCIMSymbolRotation as c}from"../../../symbols/support/cimSymbolUtils.js";import{symbolTypes as b}from"../../../symbols/support/typeUtils.js";import S from"../engine/webgl/OverlayContainer.js";import f from"../engine/webgl/OverlayMultipoint.js";import{LayerView2DMixin as u}from"./LayerView2D.js";import g from"./graphics/GraphicContainer.js";import d from"./graphics/GraphicsView2D.js";import _ from"../../layers/LayerView.js";const L=new t([255,127,0]),v=10005;let T=class extends(u(_)){constructor(){super(...arguments),this._graphicsLayer=new n,this._frameOutlineGraphic=new i({symbol:new y({outline:{type:"simple-line",color:L}})}),this._frameCenterGraphic=new i({symbol:new p({color:L,style:"cross"})}),this._sensorTrailGraphic=new i({symbol:new h({color:L})}),this._sensorSightlineGraphic=new i({symbol:new h({color:L})}),this._sensorLocationGraphic=new i({symbol:new p({color:L})}),this._overlayContainer=null,this._sensorLocationSymbolType=null,this.layer=null,this.sensorLocationSymbol=null,this.symbolAngle=0,this.visibleTelemetryElements=null}destroy(){this._graphicsLayer=s(this._graphicsLayer)}initialize(){this._sensorLocationSymbolType=this.layer?.sensorSymbol.type,this._graphicsLayer.graphics.addMany([this._frameCenterGraphic,this._frameOutlineGraphic,this._sensorLocationGraphic,this._sensorSightlineGraphic,this._sensorTrailGraphic]),this.visibleTelemetryElements=new m({frame:this.layer.telemetryDisplay?.frame??!1,frameCenter:this.layer.telemetryDisplay?.frameCenter??!0,frameOutline:this.layer.telemetryDisplay?.frameOutline??!0,lineOfSight:this.layer.telemetryDisplay?.lineOfSight??!0,sensorLocation:this.layer.telemetryDisplay?.sensorLocation??!0,sensorTrail:this.layer.telemetryDisplay?.sensorTrail??!0})}attach(){this._overlayContainer=new S,this.container.addChild(this._overlayContainer),this._addOverlayMultipoint(),this.graphicsView=new d({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this._graphicsLayer.graphics,container:new g(this.view.featuresTilingScheme)}),this.container.addChild(this.graphicsView.container),this.addAttachHandles(this._graphicsLayer.on("graphic-update",this.graphicsView.graphicUpdateHandler)),this.addAttachHandles([r(()=>[this.layer.telemetryDisplay?.frame,this.layer.telemetryDisplay?.frameCenter,this.layer.telemetryDisplay?.frameOutline,this.layer.telemetryDisplay?.sensorLocation,this.layer.telemetryDisplay?.sensorTrail,this.layer.telemetryDisplay?.lineOfSight],()=>this._updateVisibleTelemetryElements(),l),r(()=>[this.layer.telemetry,this.visibleTelemetryElements?.frameCenter,this.visibleTelemetryElements?.frameOutline,this.visibleTelemetryElements?.sensorLocation,this.visibleTelemetryElements?.sensorTrail,this.visibleTelemetryElements?.lineOfSight],()=>this._updateGraphicGeometries(),l),r(()=>this.layer.metadata,()=>this._updateSensorLocationSymbolAngle(),l),r(()=>this.layer?.frameCenterSymbol,()=>this._updateFrameCenterSymbol(),l),r(()=>this.layer?.frameOutlineSymbol,()=>this._updateFrameOutlineSymbol(),l),r(()=>this.layer?.sensorSightLineSymbol,()=>this._updateSensorSightlineSymbol(),l),r(()=>this.layer?.sensorSymbol,()=>this._updateSensorLocationSymbol(),l),r(()=>this.layer?.sensorTrailSymbol,()=>this._updateSensorTrailSymbol(),l),r(()=>this.symbolAngle,()=>this._updateSensorLocationSymbol(),l)])}detach(){this._overlayContainer.removeAllChildren(),this.container.removeAllChildren(),this.graphicsView=s(this.graphicsView)}supportsSpatialReference(e){return!0}moveEnd(){}viewChange(){this.graphicsView.viewChange()}update(e){this.graphicsView.processUpdate(e)}isUpdating(){return!this.graphicsView||this.graphicsView.updating}_updateVisibleTelemetryElements(){this.visibleTelemetryElements&&this.layer.telemetryDisplay&&(this.visibleTelemetryElements.frame=this.layer.telemetryDisplay.frame,this.visibleTelemetryElements.frameCenter=this.layer.telemetryDisplay.frameCenter,this.visibleTelemetryElements.frameOutline=this.layer.telemetryDisplay.frameOutline,this.visibleTelemetryElements.lineOfSight=this.layer.telemetryDisplay.lineOfSight,this.visibleTelemetryElements.sensorLocation=this.layer.telemetryDisplay.sensorLocation,this.visibleTelemetryElements.sensorTrail=this.layer.telemetryDisplay.sensorTrail)}_updateGraphicGeometries(){const{telemetry:e}=this.layer,{visibleTelemetryElements:t}=this;e&&t&&(t.frameOutline&&e.frameOutline?this._frameOutlineGraphic.geometry=this.layer.telemetry.frameOutline:this._frameOutlineGraphic.geometry=null,t.sensorTrail&&e.sensorTrail?this._sensorTrailGraphic.geometry=this.layer.telemetry.sensorTrail:this._sensorTrailGraphic.geometry=null,t.lineOfSight&&e.lineOfSight?this._sensorSightlineGraphic.geometry=this.layer.telemetry.lineOfSight:this._sensorSightlineGraphic.geometry=null,t.sensorLocation&&e.sensorLocation?this._sensorLocationGraphic.geometry=this.layer.telemetry.sensorLocation:this._sensorLocationGraphic.geometry=null,t.frameCenter&&e.frameCenter?this._frameCenterGraphic.geometry=this.layer.telemetry.frameCenter:this._frameCenterGraphic.geometry=null)}_updateSensorLocationSymbolAngle(){if(!this.layer?.metadata?.size)return;const e=this.layer?.metadata?.get(v);e?.value&&"number"==typeof e?.value&&(this.symbolAngle=Math.round(e?.value))}_updateSensorLocationSymbol(){switch(this._sensorLocationSymbolType){case"simple-marker":this.sensorLocationSymbol=this.layer.sensorSymbol.clone(),this.sensorLocationSymbol.angle=this.symbolAngle,this._sensorLocationGraphic.symbol=this.sensorLocationSymbol.clone();break;case"picture-marker":this.sensorLocationSymbol=this.layer.sensorSymbol,this.sensorLocationSymbol.angle=this.symbolAngle,this._sensorLocationGraphic.symbol=this.sensorLocationSymbol;break;case"cim":this.sensorLocationSymbol=this.layer.sensorSymbol,c(this.sensorLocationSymbol,this.symbolAngle,!0),this._sensorLocationGraphic.symbol=this.sensorLocationSymbol}}_updateFrameCenterSymbol(){this.layer?.frameCenterSymbol&&(this._frameCenterGraphic.symbol=this.layer.frameCenterSymbol.clone())}_updateFrameOutlineSymbol(){this.layer?.frameOutlineSymbol&&(this._frameOutlineGraphic.symbol=this.layer.frameOutlineSymbol.clone())}_updateSensorSightlineSymbol(){this.layer?.sensorSightLineSymbol&&(this._sensorSightlineGraphic.symbol=this.layer.sensorSightLineSymbol.clone())}_updateSensorTrailSymbol(){this.layer?.sensorTrailSymbol&&(this._sensorTrailGraphic.symbol=this.layer.sensorTrailSymbol.clone())}async _addOverlayMultipoint(){if(!this.layer.videoElement)return;const e=new f(this.layer.videoElement);this.addAttachHandles([r(()=>[this.layer.frameHorizonPoints,this.layer.groundControlPoints,this.layer.frameOpacity,this.layer.telemetryDisplay?.frame],()=>{const{visibleTelemetryElements:t}=this;e.frameHorizonPoints=this.layer.frameHorizonPoints,e.groundControlPoints=this.layer.groundControlPoints,e.opacity=this.layer.frameOpacity,e.visible=t?.frame??!1},l)]),this._overlayContainer.addChild(e),this.view.stage.requestRender()}};e([o()],T.prototype,"graphicsView",void 0),e([o()],T.prototype,"layer",void 0),e([o({types:b})],T.prototype,"sensorLocationSymbol",void 0),e([o()],T.prototype,"symbolAngle",void 0),e([o({type:m})],T.prototype,"visibleTelemetryElements",void 0),T=e([a("esri.views.2d.layers.VideoLayerView2D")],T);const w=T;export{w as default};
5
+ import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Color.js";import i from"../../../Graphic.js";import{destroyMaybe as s}from"../../../core/maybe.js";import{watch as r,initial as l}from"../../../core/reactiveUtils.js";import{property as o}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import n from"../../../layers/GraphicsLayer.js";import m from"../../../layers/support/TelemetryDisplay.js";import{getSymbolDisplayAngle as y}from"../../../layers/video/videoUtils.js";import h from"../../../symbols/SimpleFillSymbol.js";import p from"../../../symbols/SimpleLineSymbol.js";import c from"../../../symbols/SimpleMarkerSymbol.js";import{applyCIMSymbolRotation as b}from"../../../symbols/support/cimSymbolUtils.js";import{symbolTypes as f}from"../../../symbols/support/typeUtils.js";import S from"../engine/webgl/OverlayContainer.js";import u from"../engine/webgl/OverlayMultipoint.js";import{LayerView2DMixin as d}from"./LayerView2D.js";import g from"./graphics/GraphicContainer.js";import _ from"./graphics/GraphicsView2D.js";import L from"../../layers/LayerView.js";const v=new t([255,127,0]),T=10005,w=10018;let O=class extends(d(L)){constructor(){super(...arguments),this._graphicsLayer=new n,this._frameOutlineGraphic=new i({symbol:new h({outline:{type:"simple-line",color:v}})}),this._frameCenterGraphic=new i({symbol:new c({color:v,style:"cross"})}),this._sensorTrailGraphic=new i({symbol:new p({color:v})}),this._sensorSightlineGraphic=new i({symbol:new p({color:v})}),this._sensorLocationGraphic=new i({symbol:new c({color:v})}),this._overlayContainer=null,this._sensorLocationSymbolType=null,this.layer=null,this.sensorLocationSymbol=null,this.symbolAngle=0,this.visibleTelemetryElements=null}destroy(){this._graphicsLayer=s(this._graphicsLayer)}initialize(){this._sensorLocationSymbolType=this.layer?.sensorSymbol.type,this._graphicsLayer.graphics.addMany([this._frameCenterGraphic,this._frameOutlineGraphic,this._sensorLocationGraphic,this._sensorSightlineGraphic,this._sensorTrailGraphic]),this.visibleTelemetryElements=new m({frame:this.layer.telemetryDisplay?.frame??!1,frameCenter:this.layer.telemetryDisplay?.frameCenter??!0,frameOutline:this.layer.telemetryDisplay?.frameOutline??!0,lineOfSight:this.layer.telemetryDisplay?.lineOfSight??!0,sensorLocation:this.layer.telemetryDisplay?.sensorLocation??!0,sensorTrail:this.layer.telemetryDisplay?.sensorTrail??!0})}attach(){this._overlayContainer=new S,this.container.addChild(this._overlayContainer),this._addOverlayMultipoint(),this.graphicsView=new _({requestUpdateCallback:()=>this.requestUpdate(),view:this.view,graphics:this._graphicsLayer.graphics,container:new g(this.view.featuresTilingScheme)}),this.container.addChild(this.graphicsView.container),this.addAttachHandles(this._graphicsLayer.on("graphic-update",this.graphicsView.graphicUpdateHandler)),this.addAttachHandles([r(()=>[this.layer.telemetryDisplay?.frame,this.layer.telemetryDisplay?.frameCenter,this.layer.telemetryDisplay?.frameOutline,this.layer.telemetryDisplay?.sensorLocation,this.layer.telemetryDisplay?.sensorTrail,this.layer.telemetryDisplay?.lineOfSight],()=>this._updateVisibleTelemetryElements(),l),r(()=>[this.layer.telemetry,this.visibleTelemetryElements?.frameCenter,this.visibleTelemetryElements?.frameOutline,this.visibleTelemetryElements?.sensorLocation,this.visibleTelemetryElements?.sensorTrail,this.visibleTelemetryElements?.lineOfSight],()=>this._updateGraphicGeometries(),l),r(()=>this.layer.metadata,()=>this._updateSensorLocationSymbolAngle(),l),r(()=>this.layer?.frameCenterSymbol,()=>this._updateFrameCenterSymbol(),l),r(()=>this.layer?.frameOutlineSymbol,()=>this._updateFrameOutlineSymbol(),l),r(()=>this.layer?.sensorSightLineSymbol,()=>this._updateSensorSightlineSymbol(),l),r(()=>this.layer?.sensorSymbol,()=>this._updateSensorLocationSymbol(),l),r(()=>this.layer?.sensorTrailSymbol,()=>this._updateSensorTrailSymbol(),l),r(()=>this.symbolAngle,()=>this._updateSensorLocationSymbol(),l)])}detach(){this._overlayContainer.removeAllChildren(),this.container.removeAllChildren(),this.graphicsView=s(this.graphicsView)}supportsSpatialReference(e){return!0}moveEnd(){}viewChange(){this.graphicsView.viewChange()}update(e){this.graphicsView.processUpdate(e)}isUpdating(){return!this.graphicsView||this.graphicsView.updating}_updateVisibleTelemetryElements(){this.visibleTelemetryElements&&this.layer.telemetryDisplay&&(this.visibleTelemetryElements.frame=this.layer.telemetryDisplay.frame,this.visibleTelemetryElements.frameCenter=this.layer.telemetryDisplay.frameCenter,this.visibleTelemetryElements.frameOutline=this.layer.telemetryDisplay.frameOutline,this.visibleTelemetryElements.lineOfSight=this.layer.telemetryDisplay.lineOfSight,this.visibleTelemetryElements.sensorLocation=this.layer.telemetryDisplay.sensorLocation,this.visibleTelemetryElements.sensorTrail=this.layer.telemetryDisplay.sensorTrail)}_updateGraphicGeometries(){const{telemetry:e}=this.layer,{visibleTelemetryElements:t}=this;e&&t&&(t.frameOutline&&e.frameOutline?this._frameOutlineGraphic.geometry=this.layer.telemetry.frameOutline:this._frameOutlineGraphic.geometry=null,t.sensorTrail&&e.sensorTrail?this._sensorTrailGraphic.geometry=this.layer.telemetry.sensorTrail:this._sensorTrailGraphic.geometry=null,t.lineOfSight&&e.lineOfSight?this._sensorSightlineGraphic.geometry=this.layer.telemetry.lineOfSight:this._sensorSightlineGraphic.geometry=null,t.sensorLocation&&e.sensorLocation?this._sensorLocationGraphic.geometry=this.layer.telemetry.sensorLocation:this._sensorLocationGraphic.geometry=null,t.frameCenter&&e.frameCenter?this._frameCenterGraphic.geometry=this.layer.telemetry.frameCenter:this._frameCenterGraphic.geometry=null)}_updateSensorLocationSymbolAngle(){if(!this.layer?.metadata?.size)return;const{source:e,symbolOffset:t=0}=this.layer.sensorSymbolOrientation||{};if(!e&&!t)return;const i=this.layer?.metadata?.get(T)?.value??0,s=this.layer?.metadata?.get(w)?.value??0,r=y({cameraAzimuth:s,platformHeading:i,source:this.layer.sensorSymbolOrientation?.source,symbolOffset:this.layer.sensorSymbolOrientation?.symbolOffset??0});this.symbolAngle=Math.round(Math.abs(r))}_updateSensorLocationSymbol(){switch(this._sensorLocationSymbolType){case"simple-marker":this.sensorLocationSymbol=this.layer.sensorSymbol.clone(),this.sensorLocationSymbol.angle=this.symbolAngle,this._sensorLocationGraphic.symbol=this.sensorLocationSymbol.clone();break;case"picture-marker":this.sensorLocationSymbol=this.layer.sensorSymbol,this.sensorLocationSymbol.angle=this.symbolAngle,this._sensorLocationGraphic.symbol=this.sensorLocationSymbol;break;case"cim":this.sensorLocationSymbol=this.layer.sensorSymbol,b(this.sensorLocationSymbol,this.symbolAngle,!0),this._sensorLocationGraphic.symbol=this.sensorLocationSymbol}}_updateFrameCenterSymbol(){this.layer?.frameCenterSymbol&&(this._frameCenterGraphic.symbol=this.layer.frameCenterSymbol.clone())}_updateFrameOutlineSymbol(){this.layer?.frameOutlineSymbol&&(this._frameOutlineGraphic.symbol=this.layer.frameOutlineSymbol.clone())}_updateSensorSightlineSymbol(){this.layer?.sensorSightLineSymbol&&(this._sensorSightlineGraphic.symbol=this.layer.sensorSightLineSymbol.clone())}_updateSensorTrailSymbol(){this.layer?.sensorTrailSymbol&&(this._sensorTrailGraphic.symbol=this.layer.sensorTrailSymbol.clone())}async _addOverlayMultipoint(){if(!this.layer.videoElement)return;const e=new u(this.layer.videoElement);this.addAttachHandles([r(()=>[this.layer.frameHorizonPoints,this.layer.groundControlPoints,this.layer.frameOpacity,this.layer.telemetryDisplay?.frame],()=>{const{visibleTelemetryElements:t}=this;e.frameHorizonPoints=this.layer.frameHorizonPoints,e.groundControlPoints=this.layer.groundControlPoints,e.opacity=this.layer.frameOpacity,e.visible=t?.frame??!1},l)]),this._overlayContainer.addChild(e),this.view.stage.requestRender()}};e([o()],O.prototype,"graphicsView",void 0),e([o()],O.prototype,"layer",void 0),e([o({types:f})],O.prototype,"sensorLocationSymbol",void 0),e([o()],O.prototype,"symbolAngle",void 0),e([o({type:m})],O.prototype,"visibleTelemetryElements",void 0),O=e([a("esri.views.2d.layers.VideoLayerView2D")],O);const C=O;export{C as default};