@arcgis/core 6.0.0-next.20 → 6.0.0-next.22

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 (235) hide show
  1. package/arcgisGlobal.d.ts +1 -0
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/0049b66ccbfb168caa76.js +1 -0
  4. package/assets/esri/core/workers/chunks/092e311cb7aea92a6a26.js +1 -0
  5. package/assets/esri/core/workers/chunks/0df9a906f7823c23d426.js +1 -0
  6. package/assets/esri/core/workers/chunks/17c6d66b47aa690df0d4.js +1 -0
  7. package/assets/esri/core/workers/chunks/{3704b4e7efc3abc1a7b1.js → 242a77066ac5cdb5b7d7.js} +1 -1
  8. package/assets/esri/core/workers/chunks/2ad69cc496235702bbf2.js +1 -0
  9. package/assets/esri/core/workers/chunks/2f91fd61019d2a37476d.js +1 -0
  10. package/assets/esri/core/workers/chunks/3cd04d23b73beaf79650.js +1 -0
  11. package/assets/esri/core/workers/chunks/434a8ba841a59e0deab9.js +1 -0
  12. package/assets/esri/core/workers/chunks/{60f92eb03c6e17ab4747.js → 435b90168f79c5587a07.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{f00458654c7c34c369ef.js → 45ba4aa87a4732198596.js} +1 -1
  14. package/assets/esri/core/workers/chunks/504184828048310a052c.js +1 -0
  15. package/assets/esri/core/workers/chunks/{eca44e53bcee9b08d70a.js → 5046214dd32029cb733d.js} +1 -1
  16. package/assets/esri/core/workers/chunks/53ff68d4f9e365fc15cd.js +1 -0
  17. package/assets/esri/core/workers/chunks/542e5640ea1b80ef801a.js +1 -0
  18. package/assets/esri/core/workers/chunks/58865772bed48141a56a.js +1 -0
  19. package/assets/esri/core/workers/chunks/5a9b7eb26f936f03d02e.js +1 -0
  20. package/assets/esri/core/workers/chunks/5d76f4d97beee494bbbf.js +1 -0
  21. package/assets/esri/core/workers/chunks/5f07f52bb8b7721f08d3.js +1 -0
  22. package/assets/esri/core/workers/chunks/67f54efc817b241f8746.js +1 -0
  23. package/assets/esri/core/workers/chunks/6d41444b46677aa762a7.js +1 -0
  24. package/assets/esri/core/workers/chunks/6dfe96b056bec30068df.js +1 -0
  25. package/assets/esri/core/workers/chunks/7159d9c36869cd82599e.js +29 -0
  26. package/assets/esri/core/workers/chunks/792d2b62356a1d953c88.js +1 -0
  27. package/assets/esri/core/workers/chunks/{00d66e3fba5ab4d2aa3c.js → 84940d8e14caf5a27e04.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{9401cc22373566e1171e.js → 8a7b02037151767542f1.js} +1 -1
  29. package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +1 -0
  30. package/assets/esri/core/workers/chunks/a64446a3328a7323e307.js +1 -0
  31. package/assets/esri/core/workers/chunks/a65951f1d5702cfd996e.js +1 -0
  32. package/assets/esri/core/workers/chunks/{7bbfe9ff352afc566367.js → a679207c3458cc0b1fec.js} +1 -1
  33. package/assets/esri/core/workers/chunks/a6f969851d4278865cc5.js +1 -0
  34. package/assets/esri/core/workers/chunks/aa4f3751f0d830113bed.js +1 -0
  35. package/assets/esri/core/workers/chunks/b0ca81a07cff25df19d2.js +1 -0
  36. package/assets/esri/core/workers/chunks/b1d989b72203113a06fe.js +1 -0
  37. package/assets/esri/core/workers/chunks/{9fab290090ef2ccae810.js → b3273f847405799e3362.js} +1 -1
  38. package/assets/esri/core/workers/chunks/b4c3ec081874b49ff89b.js +1 -0
  39. package/assets/esri/core/workers/chunks/b6d71a4ab788a09714f3.js +1 -0
  40. package/assets/esri/core/workers/chunks/{597db9c90f19092d8d66.js → baed828b7846c0863289.js} +14 -14
  41. package/assets/esri/core/workers/chunks/{28b74bc77f7c13080074.js → be97a629e2ae4d13ceb3.js} +1 -1
  42. package/assets/esri/core/workers/chunks/c0d7ae314ebfad1e3791.js +1 -0
  43. package/assets/esri/core/workers/chunks/c82daefb193aae895bc0.js +1 -0
  44. package/assets/esri/core/workers/chunks/d8a7eba588d374b2f961.js +1 -0
  45. package/assets/esri/core/workers/chunks/db9921fbda556f142c4a.js +1 -0
  46. package/assets/esri/core/workers/chunks/ee08ae5b73439a1ff666.js +1 -0
  47. package/assets/esri/core/workers/chunks/{a34b3d2e11a777e1ff3f.js → f28b63c1179366dac8a2.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{557671c897ca5563be6c.js → f6bd7b52745b82ba73dc.js} +1 -1
  49. package/assets/esri/core/workers/chunks/fcaf9450642fcef83286.js +1 -0
  50. package/assets/esri/core/workers/chunks/feb41abc03d677df6f73.js +1 -0
  51. package/assets/esri/core/workers/chunks/ffcb99693182a621a93e.js +1 -0
  52. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +4 -0
  53. package/assets/esri/themes/dark/main.css +1 -1
  54. package/assets/esri/themes/light/main.css +1 -1
  55. package/assets/esri/themes/light/view.css +1 -1
  56. package/chunks/CloudsComposition.glsl.js +2 -2
  57. package/chunks/DefaultMaterial.glsl.js +1 -1
  58. package/chunks/RealisticTree.glsl.js +1 -1
  59. package/chunks/RibbonLine.glsl.js +113 -121
  60. package/config.d.ts +47 -38
  61. package/config.js +1 -1
  62. package/core/accessorSupport/trackingUtils.js +1 -1
  63. package/core/accessorSupport/watch.js +1 -1
  64. package/core/workers/Connection.d.ts +58 -89
  65. package/core/workers/workerFactory.js +1 -1
  66. package/core/workers.d.ts +61 -53
  67. package/geometry/support/MeshComponent.d.ts +1 -1
  68. package/geometry/support/vcsData.js +1 -1
  69. package/kernel.js +1 -1
  70. package/layers/FeatureLayer.d.ts +39 -19
  71. package/layers/FeatureLayer.js +1 -1
  72. package/layers/GeospatialPDFLayer.js +1 -1
  73. package/layers/MapImageLayer.d.ts +10 -3
  74. package/layers/MapNotesLayer.d.ts +2 -2
  75. package/layers/SubtypeGroupLayer.d.ts +64 -1
  76. package/layers/SubtypeGroupLayer.js +1 -1
  77. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +1 -1
  78. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  79. package/layers/graphics/sources/support/QueryTask.js +1 -1
  80. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +16 -16
  81. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  82. package/layers/mixins/ArcGISMapService.js +1 -1
  83. package/layers/ogc/ogcFeatureUtils.js +1 -1
  84. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  85. package/layers/support/LabelClass.d.ts +20 -2
  86. package/layers/support/Sublayer.d.ts +61 -17
  87. package/layers/support/Sublayer.js +1 -1
  88. package/layers/support/TimeInformation.js +2 -0
  89. package/layers/support/commonProperties.js +1 -1
  90. package/libs/basisu/textureMetadata.js +2 -0
  91. package/package.json +4 -4
  92. package/rest/layerSources/DynamicDataLayer.d.ts +4 -2
  93. package/rest/layerSources/DynamicDataLayer.js +1 -1
  94. package/rest/layerSources/DynamicMapLayer.d.ts +1 -1
  95. package/rest/layerSources/DynamicWorkspaceLayer.d.ts +49 -0
  96. package/rest/layerSources/DynamicWorkspaceLayer.js +2 -0
  97. package/rest/layerSources/typeUtils.js +2 -0
  98. package/rest/print.js +1 -1
  99. package/rest/query/operations/queryRelatedRecords.js +1 -1
  100. package/rest/query/operations/queryUtils.js +1 -1
  101. package/rest/support/Query.js +1 -1
  102. package/rest/support/RelationshipQuery.js +1 -1
  103. package/rest/support/timeUtils.js +2 -0
  104. package/symbols/LineSymbol3D.d.ts +5 -3
  105. package/symbols/TextSymbol.d.ts +27 -2
  106. package/time/legacyTimeZoneMap.js +1 -1
  107. package/views/2d/analysis/AreaMeasurement/AreaMeasurementTool.js +1 -1
  108. package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
  109. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementTool.js +1 -1
  110. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
  111. package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +6 -0
  112. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  113. package/views/2d/layers/AnnotationFeatureLayerView2D.js +1 -1
  114. package/views/2d/layers/CSVLayerView2D.js +1 -1
  115. package/views/2d/layers/CatalogFootprintLayerView2D.js +1 -1
  116. package/views/2d/layers/DimensionFeatureLayerView2D.js +1 -1
  117. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  118. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  119. package/views/2d/layers/GeoJSONLayerView2D.js +1 -1
  120. package/views/2d/layers/KnowledgeGraphSublayerView2D.js +1 -1
  121. package/views/2d/layers/OGCFeatureLayerView2D.js +1 -1
  122. package/views/2d/layers/OrientedImageryLayerView2D.js +1 -1
  123. package/views/2d/layers/ParquetLayerView2D.js +1 -1
  124. package/views/2d/layers/StreamLayerView2D.js +1 -1
  125. package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
  126. package/views/2d/layers/WFSLayerView2D.js +1 -1
  127. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  128. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  129. package/views/3d/GroundView3D.js +1 -1
  130. package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
  131. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  132. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  133. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +6 -0
  134. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  135. package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
  136. package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
  137. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  138. package/views/3d/analysis/Viewshed/ViewshedPlacementPointPlugin.js +1 -1
  139. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  140. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementController.js +1 -1
  141. package/views/3d/environment/SunLighting.d.ts +17 -1
  142. package/views/3d/environment/SunLighting.js +1 -1
  143. package/views/3d/environment/VirtualLighting.d.ts +17 -1
  144. package/views/3d/environment/VirtualLighting.js +1 -1
  145. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  146. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  147. package/views/3d/interactive/manipulators/ResizeManipulator.js +1 -1
  148. package/views/3d/interactive/manipulators/RotateManipulator.js +1 -1
  149. package/views/3d/interactive/manipulators/ShiftManipulator.js +1 -1
  150. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  151. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  152. package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
  153. package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
  154. package/views/3d/interactive/visualElements/RightAngleQuadVisualElement.js +1 -1
  155. package/views/3d/layers/FlowSubView3D.js +1 -1
  156. package/views/3d/layers/I3SMeshView3D.js +1 -1
  157. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  158. package/views/3d/layers/TiledLayerView3D.js +1 -1
  159. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  160. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  161. package/views/3d/support/elevationUpdateUtils.js +1 -1
  162. package/views/3d/terrain/TerrainData.js +1 -1
  163. package/views/3d/terrain/TerrainSurface.js +1 -1
  164. package/views/3d/terrain/TileAgent.js +1 -1
  165. package/views/3d/terrain/terrainUtils.js +1 -1
  166. package/views/3d/terrain/tileUtils.js +1 -1
  167. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +2 -2
  168. package/views/3d/webgl-engine/core/shaderLibrary/attributes/SymbolColor.glsl.js +3 -3
  169. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialExternalColor.glsl.js +2 -2
  170. package/views/3d/webgl-engine/core/shaderLibrary/output/getEmissions.glsl.js +2 -2
  171. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +2 -2
  172. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
  173. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  174. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +6 -6
  175. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  176. package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
  177. package/views/3d/webgl-engine/lib/GridLocalOriginFactory.js +1 -1
  178. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  179. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  180. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  181. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  182. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  183. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  184. package/views/BasemapView.js +1 -1
  185. package/views/BreakpointsOwner.d.ts +6 -0
  186. package/views/GroundView.d.ts +1 -1
  187. package/views/GroundView.js +1 -1
  188. package/views/SceneView.js +1 -1
  189. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  190. package/views/types.d.ts +3 -0
  191. package/views/ui/UI.js +1 -1
  192. package/views/webgl/ShaderBuilder.js +1 -1
  193. package/widgets/Daylight/DaylightViewModel.js +1 -1
  194. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  195. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  196. package/widgets/OrientedImageryViewer.js +2 -2
  197. package/widgets/PanoramicViewer/PanoramicVideoViewerViewModel.js +1 -1
  198. package/widgets/Sketch/SketchViewModel.d.ts +61 -2
  199. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +3 -2
  200. package/widgets/TimeSlider.d.ts +5 -4
  201. package/assets/esri/core/workers/chunks/0bd5012da287469b17d5.js +0 -1
  202. package/assets/esri/core/workers/chunks/1e40a26dcce4d1dadc28.js +0 -1
  203. package/assets/esri/core/workers/chunks/2d13a22f7b2427927fdc.js +0 -1
  204. package/assets/esri/core/workers/chunks/34e0a8a3a2beea50f4f5.js +0 -1
  205. package/assets/esri/core/workers/chunks/370aad23df597db80d65.js +0 -1
  206. package/assets/esri/core/workers/chunks/42fd2a7b22b03dacc6a7.js +0 -1
  207. package/assets/esri/core/workers/chunks/494bd434fee9032e1d02.js +0 -1
  208. package/assets/esri/core/workers/chunks/4e350d6c76957f5beb70.js +0 -1
  209. package/assets/esri/core/workers/chunks/4fe34da1c5d63e66ce98.js +0 -1
  210. package/assets/esri/core/workers/chunks/501c6e14ab119785252b.js +0 -1
  211. package/assets/esri/core/workers/chunks/510502a4c9a2ba8d3f7b.js +0 -1
  212. package/assets/esri/core/workers/chunks/564565246dae080f5e6c.js +0 -1
  213. package/assets/esri/core/workers/chunks/612104dff305ff062dfa.js +0 -29
  214. package/assets/esri/core/workers/chunks/6ad309154fe84210d23c.js +0 -1
  215. package/assets/esri/core/workers/chunks/6c255c029d67423e4dac.js +0 -1
  216. package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +0 -1
  217. package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +0 -1
  218. package/assets/esri/core/workers/chunks/74c866e0b66e61751861.js +0 -1
  219. package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +0 -1
  220. package/assets/esri/core/workers/chunks/95dbbddac6581b9d671f.js +0 -1
  221. package/assets/esri/core/workers/chunks/9d61740ef8bdcc162be1.js +0 -1
  222. package/assets/esri/core/workers/chunks/a49fe94933b65b4b64f8.js +0 -1
  223. package/assets/esri/core/workers/chunks/aa1ac7954e4f0fefe15b.js +0 -1
  224. package/assets/esri/core/workers/chunks/b48952e1fb4cb7360dd0.js +0 -1
  225. package/assets/esri/core/workers/chunks/b5df193c93e9c19f9700.js +0 -1
  226. package/assets/esri/core/workers/chunks/befa32b9e7b3fbdd431e.js +0 -1
  227. package/assets/esri/core/workers/chunks/c2c1f51a4668055c2838.js +0 -1
  228. package/assets/esri/core/workers/chunks/d0f5bee9db1ad51ae687.js +0 -1
  229. package/assets/esri/core/workers/chunks/d678828726371243d5eb.js +0 -1
  230. package/assets/esri/core/workers/chunks/dd0310184fe4832755a8.js +0 -1
  231. package/assets/esri/core/workers/chunks/de5ecb567bd69c613e9d.js +0 -1
  232. package/assets/esri/core/workers/chunks/e1f5d00878f27e1d413e.js +0 -1
  233. package/assets/esri/core/workers/chunks/e8bf653376a607f00897.js +0 -1
  234. package/assets/esri/core/workers/chunks/fb70ab267a08e24b710f.js +0 -1
  235. package/assets/esri/core/workers/chunks/fc44d45598a7476bc606.js +0 -1
@@ -122,7 +122,7 @@ export interface KnowledgeGraphSublayerProperties extends LayerProperties, Refre
122
122
  * }
123
123
  * });
124
124
  *
125
- * knowledgeGraphLayer.layers.items[0].labelingInfo = [ statesLabelClass ];
125
+ * knowledgeGraphLayer.layers.at(0).labelingInfo = [ statesLabelClass ];
126
126
  */
127
127
  labelingInfo?: LabelClassProperties[] | null;
128
128
  /**
@@ -182,7 +182,7 @@ export interface KnowledgeGraphSublayerProperties extends LayerProperties, Refre
182
182
  * // a 6pt black marker symbol and a thin, white outline
183
183
  *
184
184
  * //Apply renderer to the first sublayer of the KnowledgeGraphLayer
185
- * const sublayer = knowledgeGraphLayer.layers.items[0];
185
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
186
186
  * sublayer.renderer = {
187
187
  * type: "simple", // autocasts as new SimpleRenderer()
188
188
  * symbol: {
@@ -223,7 +223,7 @@ export interface KnowledgeGraphSublayerProperties extends LayerProperties, Refre
223
223
  * @see [knowledgeGraphService](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraphService/)
224
224
  * @example
225
225
  * //to access individual sublayers in a KnowledgeGraphLayer
226
- * knowledgeGraphLayer.layers.items.forEach((sublayer)=>{
226
+ * knowledgeGraphLayer.layers.forEach((sublayer)=>{
227
227
  * sublayer.popupTemplate = new PopupTemplate({
228
228
  * title: "{common_name}",
229
229
  * content: [{
@@ -256,7 +256,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
256
256
  *
257
257
  * @example
258
258
  * // Set the definition expression directly on sublayer instance to only suppliers with more than 50 employees.
259
- * knowledgeGraphLayer.layers.items[0].definitionExpression = "employee_count > 50";
259
+ * knowledgeGraphLayer.layers.at(0).definitionExpression = "employee_count > 50";
260
260
  */
261
261
  accessor definitionExpression: string | null | undefined;
262
262
  /**
@@ -407,7 +407,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
407
407
  * }
408
408
  * });
409
409
  *
410
- * knowledgeGraphLayer.layers.items[0].labelingInfo = [ statesLabelClass ];
410
+ * knowledgeGraphLayer.layers.at(0).labelingInfo = [ statesLabelClass ];
411
411
  */
412
412
  get labelingInfo(): LabelClass[] | null | undefined;
413
413
  set labelingInfo(value: LabelClassProperties[] | null | undefined);
@@ -515,7 +515,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
515
515
  * // a 6pt black marker symbol and a thin, white outline
516
516
  *
517
517
  * //Apply renderer to the first sublayer of the KnowledgeGraphLayer
518
- * const sublayer = knowledgeGraphLayer.layers.items[0];
518
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
519
519
  * sublayer.renderer = {
520
520
  * type: "simple", // autocasts as new SimpleRenderer()
521
521
  * symbol: {
@@ -629,7 +629,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
629
629
  * // Get a range domain associated with the first feature
630
630
  * // returned from queryFeatures().
631
631
  * //get the first sublayer from the parent KnowledgeGraphLayer
632
- * const sublayer = knowledgeGraphLayer.layers.items[0];
632
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
633
633
  * sublayer.queryFeatures(query).then(function(results){
634
634
  * const domain = sublayer.getFieldDomain("Height", {feature: results.features[0]});
635
635
  * console.log("domain", domain)
@@ -656,14 +656,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
656
656
  * // Queries for the extent of all features matching the layer's configurations
657
657
  * // e.g. definitionExpression
658
658
  * //get the first sublayer from the parent KnowledgeGraphLayer
659
- * const sublayer = knowledgeGraphLayer.layers.items[0];
659
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
660
660
  * sublayer.queryExtent().then(function(results){
661
661
  * // go to the extent of the results satisfying the query
662
662
  * view.goTo(results.extent);
663
663
  * });
664
664
  * @example
665
665
  * //get the first sublayer from the parent KnowledgeGraphLayer
666
- * const sublayer = knowledgeGraphLayer.layers.items[0];
666
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
667
667
  *
668
668
  * const query = new Query();
669
669
  * query.where = "region = 'Southern California'";
@@ -690,14 +690,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
690
690
  * // Queries for the count of all features matching the layer's configurations
691
691
  * // e.g. definitionExpression
692
692
  * //get the first sublayer from the parent KnowledgeGraphLayer
693
- * const sublayer = knowledgeGraphLayer.layers.items[0];
693
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
694
694
  * sublayer.queryFeatureCount().then(function(numFeatures){
695
695
  * // prints the total count to the console
696
696
  * console.log(numFeatures);
697
697
  * });
698
698
  * @example
699
699
  * //get the first sublayer from the parent KnowledgeGraphLayer
700
- * const sublayer = knowledgeGraphLayer.layers.items[0];
700
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
701
701
  *
702
702
  * const query = new Query();
703
703
  * query.where = "region = 'Southern California'";
@@ -736,14 +736,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
736
736
  * // Queries for all the features matching the layer's configurations
737
737
  * // e.g. definitionExpression
738
738
  * //get the first sublayer from the parent KnowledgeGraphLayer
739
- * const sublayer = knowledgeGraphLayer.layers.items[0];
739
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
740
740
  * sublayer.queryFeatures().then(function(results){
741
741
  * // prints the array of result graphics to the console
742
742
  * console.log(results.features);
743
743
  * });
744
744
  * @example
745
745
  * //get the first sublayer from the parent KnowledgeGraphLayer
746
- * const sublayer = knowledgeGraphLayer.layers.items[0];
746
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
747
747
  *
748
748
  * const query = new Query();
749
749
  * query.where = "STATE_NAME = 'Washington'";
@@ -769,7 +769,7 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
769
769
  * });
770
770
  * @example
771
771
  * //get the first sublayer from the parent KnowledgeGraphLayer
772
- * const sublayer = knowledgeGraphLayer.layers.items[0];
772
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
773
773
  *
774
774
  * // query all features from the layer and only return
775
775
  * // attributes specified in outFields.
@@ -799,14 +799,14 @@ export default class KnowledgeGraphSublayer extends KnowledgeGraphSublayerSuperc
799
799
  * // Queries for all the Object IDs of features matching the layer's configurations
800
800
  * // e.g. definitionExpression
801
801
  * //get the first sublayer from the parent KnowledgeGraphLayer
802
- * const sublayer = knowledgeGraphLayer.layers.items[0];
802
+ * const sublayer = knowledgeGraphLayer.layers.at(0);
803
803
  * sublayer.queryObjectIds().then(function(results){
804
804
  * // prints the array of Object IDs to the console
805
805
  * console.log(results);
806
806
  * });
807
807
  * @example
808
808
  * //get the first sublayer from the parent KnowledgeGraphLayer
809
- * const sublayer = linkChartLayer.layers.items[0];
809
+ * const sublayer = linkChartLayer.layers.at(0);
810
810
  *
811
811
  * const query = new Query();
812
812
  * query.where = "region = 'Southern California'";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../../core/MultiOriginJSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import ee from"../../form/FormTemplate.js";import c from"../../geometry/Extent.js";import te from"../../geometry/Point.js";import ne from"../../geometry/Polygon.js";import re from"../../geometry/Polyline.js";import{initializeProjection as ie,project as l}from"../../geometry/projectionUtils.js";import ae from"../../geometry/SpatialReference.js";import{wgs84 as u}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as d}from"../../geometry/support/typeUtils.js";import f from"../../graphic/KnowledgeGraphGraphicOrigin.js";import oe from"../../graphic/LinkChartGraphicOrigin.js";import se from"../Layer.js";import ce from"../graphics/data/FeatureStore.js";import{QueryEngine as le}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as p}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as m,systemAggregationCountFieldName as h,systemIsSpatialFieldName as g,systemLayoutGeometryFieldName as _,systemOriginIdFieldName as ue,systemDestinationIdFieldName as v}from"./constants.js";import{KnowledgeGraphSublayerBase as y}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as b,createDefaultKGSLFormTemplate as x,getDisplayLabelProperty as S,getLinkChartDefaultLabelingInfo as C,getMapDefaultLabelingInfo as w,getKGSublayerSymbolColor as T,getDefaultLCRelationshipSublayerSymbol as E,createDefaultKGSLFeatureTemplates as D,convertLayerEditsToGraphEdits as O,convertGraphEditsResultToFeatureEdits as k}from"./layerUtils.js";import{BlendLayer as A,blendModeProperty as j,effectProperty as M}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as N,displayFilterEnabledProperty as P,displayFilterInfoProperty as F}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as I,featureEffectProperty as L}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as R}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as z,orderByProperty as B}from"../mixins/OrderedLayer.js";import{RefreshableLayer as V}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as H}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as U,useViewTimeProperty as de}from"../mixins/TemporalLayer.js";import{legendEnabled as fe,maxScale as pe,minScale as me,opacity as he,popupEnabled as ge}from"../support/commonProperties.js";import{featureReductionProperty as _e}from"../support/featureReductionUtils.js";import ve from"../support/FeatureTemplate.js";import W from"../support/Field.js";import{fixRendererFields as ye,fixTimeInfoFields as be}from"../support/fieldUtils.js";import xe from"../support/LabelClass.js";import{reader as Se}from"../support/labelingInfo.js";import Ce from"../support/TimeInfo.js";import we from"../../renderers/SimpleRenderer.js";import{fromJSON as G}from"../../renderers/support/jsonUtils.js";import{rendererTypes as Te}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as Ee}from"../../rest/knowledgeGraphService.js";import De from"../../rest/support/FeatureSet.js";import K from"../../rest/support/Query.js";import{createPopupTemplate as Oe}from"../../support/popupUtils.js";import ke from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as q}from"../../symbols/support/utils.js";import Ae from"../../core/workers/RemoteClient.js";import{writer as je}from"../../core/accessorSupport/decorators/writer.js";function J(e){if(!e.json)return e;e.json.write=Y(e.json.write);let t=e.json.origins;if(!t)return e;let n;for(n in t){let e=t[n];e&&(e.write=Y(e.write))}return e}function Y(e){return typeof e==`object`&&e?(e.enabled!==!1&&(e.overridePolicy=Me(e)),e):e===!0?X():e}function Me(e){let{target:t,writer:n,overridePolicy:r,...i}=e;return function(e,t){let n=Z.call(this,e,t);return n.enabled?{...i,...n}:n}}function X(){return{overridePolicy:Z}}function Z(e,t){let n=!!this.geometryType,r={enabled:n};return n&&(r={...r,...Q.call(this,e,t)}),r}function Q(e,t){return{ignoreOrigin:this.originIdOf(t)>0}}let $=class extends y(N(R(I(A(z(U(H(V(a(se)))))))))){constructor(e){super(e),this.blendMode=`normal`,this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=m,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{let e=new MessageChannel;return new Ae(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{let n=K.fromJSON(e);return this.queryFeaturesJSON(n,t)}}}),[e.port2]})},this.type=`knowledge-graph-sublayer`,this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:b(null)}get isTable(){return this.parentCompositeLayer?.type!==`link-chart`&&this.geometryFieldName==null}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome(`editingEnabled`,e)}get effectiveCapabilities(){let e=r(this.capabilities),{operations:t,editing:n}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=n.supportsDeleteByOthers=n.supportsGeometryUpdate=n.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=n.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){let t=this._normalizeFeatureReduction(e);this._set(`featureReduction`,t)}get fields(){let e=[],t=new Map;for(let e of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(e.name,e);return this.objectType?.properties?.forEach(n=>{let r=n.fieldType===`esriFieldTypeOID`?`esriFieldTypeInteger`:n.fieldType,i=W.fromJSON({name:n.name,type:r,alias:n.alias,defaultValue:n.defaultValue,editable:n.editable,nullable:n.nullable,domain:n.domain&&t.has(n.domain)?t.get(n.domain).toJSON():void 0});e.push(i)}),e.push(W.fromJSON({name:this.objectIdField,type:`esriFieldTypeString`,alias:this.objectIdField,editable:!1}),W.fromJSON({name:h,type:`esriFieldTypeInteger`,alias:h,editable:!1}),W.fromJSON({name:g,type:`esriFieldTypeInteger`,alias:g,editable:!1})),e}get formTemplate(){return this._isOverridden(`formTemplate`)?this._get(`formTemplate`):x(this)}set formTemplate(e){this._overrideIfSome(`formTemplate`,e)}get geometryType(){if(this.parentCompositeLayer?.type===`link-chart`)return this.graphType===`relationship`?`polyline`:`point`;let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.geometryType;return!e||e===`esriGeometryNull`?null:d.fromJSON(e)}get geometryFieldName(){return this.parentCompositeLayer?.type===`link-chart`?_:this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case`knowledge-graph`:return new f(this.parent,this);case`link-chart`:return new oe(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set(`graphTypeName`,e)}get hasM(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasM??!1}get hasZ(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasZ??!1}set labelingInfo(e){this._set(`labelingInfo`,e)}get labelingInfo(){if(this._isOverridden(`labelingInfo`))return this._get(`labelingInfo`);if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;let e=this.objectType.properties?S(this.objectType.properties):`ESRI__ID`;return this.parentCompositeLayer.type===`link-chart`?C(this.graphType,this.graphTypeName,e):w(this.graphTypeName,this.geometryType,e)}set renderer(e){ye(e,this.fieldsIndex),this._set(`renderer`,e)}get renderer(){if(this._isOverridden(`renderer`))return this._get(`renderer`);let e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),n=T(t);if(this.parentCompositeLayer?.type===`link-chart`){if(this.graphType===`relationship`)return new we({type:`simple`,symbol:E(n)});let e=G(p(d.toJSON(`point`)).renderer);return q(e.symbol,n),e}let r=G(p(d.toJSON(this.geometryType)).renderer);return q(r.symbol,n),r}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??ae.WGS84}get templates(){return this._isOverridden(`templates`)?this._get(`templates`):D(this)}set templates(e){this._overrideIfSome(`templates`,e)}set timeInfo(e){this._set(`timeInfo`,e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden(`title`)?this._get(`title`):this.graphTypeName}set title(e){this._set(`title`,e)}writeTitle(e,t){t.title=e??`Layer`}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return this.parent?this.parent.userHasFullEditingPrivileges:!1}get userHasUpdateItemPrivileges(){return this.parent?this.parent.userHasUpdateItemPrivileges:!1}createPopupTemplate(e){return Oe(this,e)}createQuery(){return new K({where:`1=1`,outFields:[`*`]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e),a=this.graphicOrigin,o=De.fromJSON(await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal));return o.features.forEach(e=>{e.sourceLayer=this,e.origin=a}),o}async queryFeaturesJSON(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryFeatureCount(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return r.executeQueryForCount(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryExtent(e={},t){await this.load();let n={...e,returnGeometry:!0},{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:a}=await this._setupQueryObjects(n),o=await i.executeQueryForExtent(this._createQueryEngineQueryJSON(r,a),t?.signal),s;return s=o.extent?.xmin!=null&&o.extent?.xmax!=null&&o.extent?.ymin!=null&&o.extent?.ymax!=null?new c(o.extent):new c,{count:o.count,extent:s}}async queryObjectIds(e,t){await this.load();let n=K.from(e),r;if(!this.parentCompositeLayer)i.getLogger(this).warn(`Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded.`),r=this.loadQueryEngine([]);else if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)r=this._cachedQueryEngine;else{let{features:e,cypherTranslationApplied:i}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return r=this.loadQueryEngine(e),await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,i),t?.signal)}return await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new n(`knowledge-graph-sublayer:no-knowledge-graph`,`ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded`);let t=await O(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance?!0:void 0};let r=await Ee(this.parentCompositeLayer.dataManager.knowledgeGraph,t),i=k(r,this.graphTypeName),a={addedFeatures:i.addFeatureResults,updatedFeatures:i.updateFeatureResults,deletedFeatures:i.deleteFeatureResults,addedAttachments:i.addAttachmentResults,deletedAttachments:i.deleteAttachmentResults,updatedAttachments:i.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit(`edits`,a),this.emit(`apply-edits`,{result:Promise.resolve(a)}),this.parentCompositeLayer.type===`link-chart`&&await this.parentCompositeLayer.refreshLinkChartCache([...a.addedFeatures.map(e=>e.globalId),...a.updatedFeatures.map(e=>e.globalId),...a.deletedFeatures.map(e=>e.globalId)]),i}loadQueryEngine(e){let t=new ce({geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),n=new le({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:`object-id`,fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return n.featureStore.addMany(e),n}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer){i.getLogger(this).warn(`Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded.`),this._cachedQueryEngine=this.loadQueryEngine([]);return}let{features:e}=await this.parentCompositeLayer.dataManager.getData(new K({where:`1=1`,outFields:[m]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>be(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){let n=e.toJSON();return t&&delete n.resultOffset,n}async _setupQueryObjects(e,t){let n=K.from(e),r=n.geometry;if(r&&!r.spatialReference?.isWGS84&&(await ie(r.spatialReference,u),n.geometry=r instanceof ne||r instanceof re||r instanceof te?l(r,u):l(r.extent,u)),!this.parentCompositeLayer)return i.getLogger(this).warn(`Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded.`),{resolvedQuery:n,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)return{resolvedQuery:n,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};let{features:a,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return{resolvedQuery:n,queryEngine:this.loadQueryEngine(a),cypherTranslationApplied:o}}};e([o(J(r(j)))],$.prototype,`blendMode`,void 0),e([o({readOnly:!0})],$.prototype,`capabilities`,null),e([o()],$.prototype,`isTable`,null),e([o({json:{origins:{"web-scene":{write:!1}},write:X()}})],$.prototype,`charts`,void 0),e([o({readOnly:!0})],$.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{origins:{service:{read:!1}},name:`layerDefinition.definitionExpression`,write:{ignoreOrigin:!0}}})],$.prototype,`definitionExpression`,void 0),e([o(J(r(P)))],$.prototype,`displayFilterEnabled`,void 0),e([o(J(r(F)))],$.prototype,`displayFilterInfo`,void 0),e([o()],$.prototype,`editingEnabled`,null),e([o(J(r(M)))],$.prototype,`effect`,void 0),e([o({readOnly:!0})],$.prototype,`effectiveCapabilities`,null),e([o({readOnly:!0})],$.prototype,`effectiveEditingEnabled`,null),e([o({type:ke})],$.prototype,`elevationInfo`,void 0),e([o(J(r(L)))],$.prototype,`featureEffect`,void 0),e([o(J(r(_e)))],$.prototype,`featureReduction`,null),e([o()],$.prototype,`fields`,null),e([o({type:ee})],$.prototype,`formTemplate`,null),e([o()],$.prototype,`geometryType`,null),e([o()],$.prototype,`geometryFieldName`,null),e([o({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([o({type:[`entity`,`relationship`],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphType`,void 0),e([o({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphTypeName`,null),e([o()],$.prototype,`hasM`,null),e([o()],$.prototype,`hasZ`,null),e([o({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],$.prototype,`id`,void 0),e([o({type:Boolean,value:!0,nonNullable:!0,json:{name:`showLabels`,default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],$.prototype,`labelsVisible`,void 0),e([o({type:[xe],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:Ne,write:X()}})],$.prototype,`labelingInfo`,null),e([o({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case`link-chart`:t.layerType=`LinkChartSubLayer`;break;case`knowledge-graph`:t.layerType=this.geometryType?`KnowledgeGraphSubLayer`:`KnowledgeGraphSubTable`}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`layerType`,void 0),e([o(J(r(fe)))],$.prototype,`legendEnabled`,void 0),e([o(J(r(pe)))],$.prototype,`maxScale`,void 0),e([o(J(r(me)))],$.prototype,`minScale`,void 0),e([o()],$.prototype,`objectIdField`,void 0),e([o()],$.prototype,`objectType`,void 0),e([o(J(r(he)))],$.prototype,`opacity`,void 0),e([o(J(r(B)))],$.prototype,`orderBy`,void 0),e([o({clonable:!1})],$.prototype,`parent`,void 0),e([o()],$.prototype,`parentCompositeLayer`,void 0),e([o(J(r(ge)))],$.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:{ignoreOrigin:!0}}})],$.prototype,`popupTemplate`,void 0),e([o({type:Number,json:{write:{overridePolicy:Q}}})],$.prototype,`refreshInterval`,void 0),e([o({types:Te,json:{name:`layerDefinition.drawingInfo.renderer`,write:X()}})],$.prototype,`renderer`,null),e([o()],$.prototype,`source`,void 0),e([o()],$.prototype,`spatialReference`,null),e([o({type:ve})],$.prototype,`templates`,null),e([o({type:Ce,json:{name:`layerDefinition.timeInfo`,write:{overridePolicy:Q},origins:{"web-document":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}},"portal-item":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}}}}})],$.prototype,`timeInfo`,null),e([o({readOnly:!0})],$.prototype,`dateFieldsTimeZone`,null),e([o({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`title`,null),e([je(`title`)],$.prototype,`writeTitle`,null),e([o({json:{read:!1}})],$.prototype,`type`,void 0),e([o(J(r(de)))],$.prototype,`useViewTime`,void 0),e([o({readOnly:!0})],$.prototype,`userHasEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasFullEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasUpdateItemPrivileges`,null),e([o({type:Boolean,json:{name:`visibility`,write:X()}})],$.prototype,`visible`,void 0),$=e([s(`esri.layers.knowledgeGraph.KnowledgeGraphSublayer`)],$);function Ne(e,t,n){let r=[[`ESRI__AGGREGATION_COUNT`,h],[`ESRI__ORIGIN_ID`,ue],[`ESRI__DESTINATION_ID`,v],[`ESRI__LAYOUT_GEOMETRY`,_]];try{for(let t of e)for(let[e,n]of r)t.labelExpression=t.labelExpression?.replaceAll(e,n),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,n))}catch(e){i.getLogger(this).warn(`Error updating labelingInfo`,e)}return Se.call(this,e,t,n)}export{$ as default};
2
+ import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import n from"../../core/Error.js";import{clone as r}from"../../core/lang.js";import i from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../../core/MultiOriginJSONSupport.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import"../../core/workers/workers.js";import ee from"../../form/FormTemplate.js";import c from"../../geometry/Extent.js";import te from"../../geometry/Point.js";import ne from"../../geometry/Polygon.js";import re from"../../geometry/Polyline.js";import{initializeProjection as ie,project as l}from"../../geometry/projectionUtils.js";import ae from"../../geometry/SpatialReference.js";import{wgs84 as u}from"../../geometry/support/spatialReferenceUtils.js";import{featureGeometryTypeKebabDictionary as d}from"../../geometry/support/typeUtils.js";import f from"../../graphic/KnowledgeGraphGraphicOrigin.js";import oe from"../../graphic/LinkChartGraphicOrigin.js";import se from"../Layer.js";import ce from"../graphics/data/FeatureStore.js";import{QueryEngine as le}from"../graphics/data/QueryEngine.js";import{createDrawingInfo as p}from"../graphics/sources/support/clientSideDefaults.js";import{systemOidFieldName as m,systemAggregationCountFieldName as h,systemIsSpatialFieldName as g,systemLayoutGeometryFieldName as _,systemOriginIdFieldName as ue,systemDestinationIdFieldName as v}from"./constants.js";import{KnowledgeGraphSublayerBase as y}from"./KnowledgeGraphSublayerBase.js";import{createCapabilitiesFromKnowledgeGraph as b,createDefaultKGSLFormTemplate as x,getDisplayLabelProperty as S,getLinkChartDefaultLabelingInfo as C,getMapDefaultLabelingInfo as w,getKGSublayerSymbolColor as T,getDefaultLCRelationshipSublayerSymbol as E,createDefaultKGSLFeatureTemplates as D,convertLayerEditsToGraphEdits as O,convertGraphEditsResultToFeatureEdits as k}from"./layerUtils.js";import{BlendLayer as A,blendModeProperty as j,effectProperty as M}from"../mixins/BlendLayer.js";import{DisplayFilteredLayer as N,displayFilterEnabledProperty as P,displayFilterInfoProperty as F}from"../mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as I,featureEffectProperty as L}from"../mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as R}from"../mixins/FeatureReductionLayer.js";import{OrderedLayer as z,orderByProperty as B}from"../mixins/OrderedLayer.js";import{RefreshableLayer as V}from"../mixins/RefreshableLayer.js";import{ScaleRangeLayer as H}from"../mixins/ScaleRangeLayer.js";import{TemporalLayer as U,useViewTimeProperty as de}from"../mixins/TemporalLayer.js";import{legendEnabled as fe,maxScale as pe,minScale as me,opacity as he,popupEnabled as ge}from"../support/commonProperties.js";import{featureReductionProperty as _e}from"../support/featureReductionUtils.js";import ve from"../support/FeatureTemplate.js";import W from"../support/Field.js";import{fixRendererFields as ye,fixTimeInfoFields as be}from"../support/fieldUtils.js";import xe from"../support/LabelClass.js";import{reader as Se}from"../support/labelingInfo.js";import Ce from"../support/TimeInfo.js";import we from"../../renderers/SimpleRenderer.js";import{fromJSON as G}from"../../renderers/support/jsonUtils.js";import{rendererTypes as Te}from"../../renderers/support/typeUtils.js";import{executeApplyEdits as Ee}from"../../rest/knowledgeGraphService.js";import De from"../../rest/support/FeatureSet.js";import K from"../../rest/support/Query.js";import{createPopupTemplate as Oe}from"../../support/popupUtils.js";import ke from"../../symbols/support/ElevationInfo.js";import{applyColorToSymbol as q}from"../../symbols/support/utils.js";import Ae from"../../core/workers/RemoteClient.js";import{writer as je}from"../../core/accessorSupport/decorators/writer.js";function J(e){if(!e.json)return e;e.json.write=Y(e.json.write);let t=e.json.origins;if(!t)return e;let n;for(n in t){let e=t[n];e&&(e.write=Y(e.write))}return e}function Y(e){return typeof e==`object`&&e?(e.enabled!==!1&&(e.overridePolicy=Me(e)),e):e===!0?X():e}function Me(e){let{target:t,writer:n,overridePolicy:r,...i}=e;return function(e,t){let n=Z.call(this,e,t);return n.enabled?{...i,...n}:n}}function X(){return{overridePolicy:Z}}function Z(e,t){let n=!!this.geometryType,r={enabled:n};return n&&(r={...r,...Q.call(this,e,t)}),r}function Q(e,t){return{allowNull:this.originIdOf(t)>=3,ignoreOrigin:this.originIdOf(t)>0}}let $=class extends y(N(R(I(A(z(U(H(V(a(se)))))))))){constructor(e){super(e),this.blendMode=`normal`,this.charts=null,this.definitionExpression=null,this.displayFilterEnabled=!0,this.displayFilterInfo=null,this.effect=null,this.elevationInfo=null,this.featureEffect=null,this.graphType=null,this.labelsVisible=!0,this.layerType=null,this.legendEnabled=!0,this.maxScale=0,this.minScale=0,this.objectIdField=m,this.objectType=null,this.opacity=1,this.orderBy=null,this.parent=null,this.parentCompositeLayer=null,this.persistenceEnabled=!0,this.popupEnabled=!0,this.popupTemplate=null,this.refreshInterval=0,this.source={openPorts:()=>this.load().then(()=>{let e=new MessageChannel;return new Ae(e.port1,{channel:e,client:{queryFeatures:(e,t={})=>{let n=K.fromJSON(e);return this.queryFeaturesJSON(n,t)}}}),[e.port2]})},this.type=`knowledge-graph-sublayer`,this.useViewTime=!0,this.visible=!0}get capabilities(){return this.parent?this.parent.sublayerCapabilities:b(null)}get isTable(){return this.parentCompositeLayer?.type!==`link-chart`&&this.geometryFieldName==null}get defaultPopupTemplate(){return this.createPopupTemplate()}get editingEnabled(){return this.capabilities.operations.supportsEditing&&this.userHasEditingPrivileges}set editingEnabled(e){this._overrideIfSome(`editingEnabled`,e)}get effectiveCapabilities(){let e=r(this.capabilities),{operations:t,editing:n}=e;return this.userHasUpdateItemPrivileges&&(t.supportsAdd=t.supportsDelete=t.supportsEditing=t.supportsQuery=t.supportsUpdate=n.supportsDeleteByOthers=n.supportsGeometryUpdate=n.supportsUpdateByOthers=!0),this.userHasFullEditingPrivileges&&t.supportsEditing&&(t.supportsAdd=t.supportsDelete=t.supportsUpdate=n.supportsGeometryUpdate=!0),e}get effectiveEditingEnabled(){return this.userHasUpdateItemPrivileges||this.editingEnabled}set featureReduction(e){let t=this._normalizeFeatureReduction(e);this._set(`featureReduction`,t)}get fields(){let e=[],t=new Map;for(let e of this.parent?.knowledgeGraph.dataModel.domains??[])t.set(e.name,e);return this.objectType?.properties?.forEach(n=>{let r=n.fieldType===`esriFieldTypeOID`?`esriFieldTypeInteger`:n.fieldType,i=W.fromJSON({name:n.name,type:r,alias:n.alias,defaultValue:n.defaultValue,editable:n.editable,nullable:n.nullable,domain:n.domain&&t.has(n.domain)?t.get(n.domain).toJSON():void 0});e.push(i)}),e.push(W.fromJSON({name:this.objectIdField,type:`esriFieldTypeString`,alias:this.objectIdField,editable:!1}),W.fromJSON({name:h,type:`esriFieldTypeInteger`,alias:h,editable:!1}),W.fromJSON({name:g,type:`esriFieldTypeInteger`,alias:g,editable:!1})),e}get formTemplate(){return this._isOverridden(`formTemplate`)?this._get(`formTemplate`):x(this)}set formTemplate(e){this._overrideIfSome(`formTemplate`,e)}get geometryType(){if(this.parentCompositeLayer?.type===`link-chart`)return this.graphType===`relationship`?`polyline`:`point`;let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.geometryType;return!e||e===`esriGeometryNull`?null:d.fromJSON(e)}get geometryFieldName(){return this.parentCompositeLayer?.type===`link-chart`?_:this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name??null}get graphicOrigin(){if(!this.parent)return null;switch(this.parent.type){case`knowledge-graph`:return new f(this.parent,this);case`link-chart`:return new oe(this.parent,this)}}get graphTypeName(){return this.objectType?.name}set graphTypeName(e){this._set(`graphTypeName`,e)}get hasM(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasM??!1}get hasZ(){let e=this.parentCompositeLayer?.dataManager.geographicLookup.get(this.objectType?.name)?.name;return(e?this.objectType?.properties?.[e]:null)?.hasZ??!1}set labelingInfo(e){this._set(`labelingInfo`,e)}get labelingInfo(){if(this._isOverridden(`labelingInfo`))return this._get(`labelingInfo`);if(!this.objectType||!this.parentCompositeLayer||!this.graphTypeName)return null;let e=this.objectType.properties?S(this.objectType.properties):`ESRI__ID`;return this.parentCompositeLayer.type===`link-chart`?C(this.graphType,this.graphTypeName,e):w(this.graphTypeName,this.geometryType,e)}set renderer(e){ye(e,this.fieldsIndex),this._set(`renderer`,e)}get renderer(){if(this._isOverridden(`renderer`))return this._get(`renderer`);let e=this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel,t=[...e?.entityTypes??[],...e?.relationshipTypes??[]].map(e=>e.name).indexOf(this.graphTypeName),n=T(t);if(this.parentCompositeLayer?.type===`link-chart`){if(this.graphType===`relationship`)return new we({type:`simple`,symbol:E(n)});let e=G(p(d.toJSON(`point`)).renderer);return q(e.symbol,n),e}let r=G(p(d.toJSON(this.geometryType)).renderer);return q(r.symbol,n),r}get spatialReference(){return this.parentCompositeLayer?.dataManager?.knowledgeGraph?.dataModel?.spatialReference??ae.WGS84}get templates(){return this._isOverridden(`templates`)?this._get(`templates`):D(this)}set templates(e){this._overrideIfSome(`templates`,e)}set timeInfo(e){this._set(`timeInfo`,e)}get dateFieldsTimeZone(){return this.parentCompositeLayer?.dateFieldsTimeZone}get title(){return this._isOverridden(`title`)?this._get(`title`):this.graphTypeName}set title(e){this._set(`title`,e)}writeTitle(e,t){t.title=e??`Layer`}get userHasEditingPrivileges(){return!this.parent||this.parent.userHasEditingPrivileges}get userHasFullEditingPrivileges(){return this.parent?this.parent.userHasFullEditingPrivileges:!1}get userHasUpdateItemPrivileges(){return this.parent?this.parent.userHasUpdateItemPrivileges:!1}createPopupTemplate(e){return Oe(this,e)}createQuery(){return new K({where:`1=1`,outFields:[`*`]})}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){return this.fields.find(t=>t.name===e)?.domain||null}async queryFeatures(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e),a=this.graphicOrigin,o=De.fromJSON(await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal));return o.features.forEach(e=>{e.sourceLayer=this,e.origin=a}),o}async queryFeaturesJSON(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return await r.executeQuery(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryFeatureCount(e,t){await this.load();let{resolvedQuery:n,queryEngine:r,cypherTranslationApplied:i}=await this._setupQueryObjects(e);return r.executeQueryForCount(this._createQueryEngineQueryJSON(n,i),t?.signal)}async queryExtent(e={},t){await this.load();let n={...e,returnGeometry:!0},{resolvedQuery:r,queryEngine:i,cypherTranslationApplied:a}=await this._setupQueryObjects(n),o=await i.executeQueryForExtent(this._createQueryEngineQueryJSON(r,a),t?.signal),s;return s=o.extent?.xmin!=null&&o.extent?.xmax!=null&&o.extent?.ymin!=null&&o.extent?.ymax!=null?new c(o.extent):new c,{count:o.count,extent:s}}async queryObjectIds(e,t){await this.load();let n=K.from(e),r;if(!this.parentCompositeLayer)i.getLogger(this).warn(`Attempting to query for object IDs with no features failed because the parent composite layer is missing or not yet loaded.`),r=this.loadQueryEngine([]);else if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)r=this._cachedQueryEngine;else{let{features:e,cypherTranslationApplied:i}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return r=this.loadQueryEngine(e),await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,i),t?.signal)}return await r.executeQueryForIds(this._createQueryEngineQueryJSON(n,!1),t?.signal)}async applyEdits(e){if(!this.parentCompositeLayer?.dataManager.knowledgeGraph)throw new n(`knowledge-graph-sublayer:no-knowledge-graph`,`ApplyEdits cannot be executed because the parent does not have a Knowledge Graph model. This is usually caused by the layer not yet being loaded`);let t=await O(e,this,this.parentCompositeLayer);t.options={cascadeDelete:!0,cascadeProvenanceDelete:this.parent?.knowledgeGraph.serviceDefinition.supportsProvenance?!0:void 0};let r=await Ee(this.parentCompositeLayer.dataManager.knowledgeGraph,t),i=k(r,this.graphTypeName),a={addedFeatures:i.addFeatureResults,updatedFeatures:i.updateFeatureResults,deletedFeatures:i.deleteFeatureResults,addedAttachments:i.addAttachmentResults,deletedAttachments:i.deleteAttachmentResults,updatedAttachments:i.updateAttachmentResults,exceededTransferLimit:!1,historicMoment:new Date,edits:void 0};return this.emit(`edits`,a),this.emit(`apply-edits`,{result:Promise.resolve(a)}),this.parentCompositeLayer.type===`link-chart`&&await this.parentCompositeLayer.refreshLinkChartCache([...a.addedFeatures.map(e=>e.globalId),...a.updatedFeatures.map(e=>e.globalId),...a.deletedFeatures.map(e=>e.globalId)]),i}loadQueryEngine(e){let t=new ce({geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ}),n=new le({fieldsIndex:this.fieldsIndex.toJSON(),geometryType:d.toJSON(this.geometryType),hasM:this.hasM,hasZ:this.hasZ,featureIdInfo:{type:`object-id`,fieldName:this.objectIdField},spatialReference:this.spatialReference.toJSON(),timeInfo:this.timeInfo?.toJSON(),featureStore:t});return n.featureStore.addMany(e),n}async refreshCachedQueryEngine(){if(!this.parentCompositeLayer){i.getLogger(this).warn(`Attempting to refresh the cached query engine with no features failed because the parent composite layer is missing or not yet loaded.`),this._cachedQueryEngine=this.loadQueryEngine([]);return}let{features:e}=await this.parentCompositeLayer.dataManager.getData(new K({where:`1=1`,outFields:[m]}),this,this.parentCompositeLayer);this._cachedQueryEngine=this.loadQueryEngine(e)}load(e){return this.addResolvingPromise(this.parent.load(e).then(()=>be(this.timeInfo,this.fieldsIndex))),Promise.resolve(this)}_createQueryEngineQueryJSON(e,t){let n=e.toJSON();return t&&delete n.resultOffset,n}async _setupQueryObjects(e,t){let n=K.from(e),r=n.geometry;if(r&&!r.spatialReference?.isWGS84&&(await ie(r.spatialReference,u),n.geometry=r instanceof ne||r instanceof re||r instanceof te?l(r,u):l(r.extent,u)),!this.parentCompositeLayer)return i.getLogger(this).warn(`Attempting to execute a query with no features failed because the parent composite layer is missing or not yet loaded.`),{resolvedQuery:n,queryEngine:this.loadQueryEngine([]),cypherTranslationApplied:!1};if(this.parentCompositeLayer.type===`link-chart`&&this._cachedQueryEngine)return{resolvedQuery:n,queryEngine:this._cachedQueryEngine,cypherTranslationApplied:!1};let{features:a,cypherTranslationApplied:o}=await this.parentCompositeLayer.dataManager.getData(n,this,this.parentCompositeLayer,t);return{resolvedQuery:n,queryEngine:this.loadQueryEngine(a),cypherTranslationApplied:o}}};e([o(J(r(j)))],$.prototype,`blendMode`,void 0),e([o({readOnly:!0})],$.prototype,`capabilities`,null),e([o()],$.prototype,`isTable`,null),e([o({json:{origins:{"web-scene":{write:!1}},write:X()}})],$.prototype,`charts`,void 0),e([o({readOnly:!0})],$.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{origins:{service:{read:!1}},name:`layerDefinition.definitionExpression`,write:{ignoreOrigin:!0}}})],$.prototype,`definitionExpression`,void 0),e([o(J(r(P)))],$.prototype,`displayFilterEnabled`,void 0),e([o(J(r(F)))],$.prototype,`displayFilterInfo`,void 0),e([o()],$.prototype,`editingEnabled`,null),e([o(J(r(M)))],$.prototype,`effect`,void 0),e([o({readOnly:!0})],$.prototype,`effectiveCapabilities`,null),e([o({readOnly:!0})],$.prototype,`effectiveEditingEnabled`,null),e([o({type:ke})],$.prototype,`elevationInfo`,void 0),e([o(J(r(L)))],$.prototype,`featureEffect`,void 0),e([o(J(r(_e)))],$.prototype,`featureReduction`,null),e([o()],$.prototype,`fields`,null),e([o({type:ee})],$.prototype,`formTemplate`,null),e([o()],$.prototype,`geometryType`,null),e([o()],$.prototype,`geometryFieldName`,null),e([o({readOnly:!0})],$.prototype,`graphicOrigin`,null),e([o({type:[`entity`,`relationship`],nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphType`,void 0),e([o({type:String,nonNullable:!0,json:{write:{isRequired:!0,ignoreOrigin:!0}}})],$.prototype,`graphTypeName`,null),e([o()],$.prototype,`hasM`,null),e([o()],$.prototype,`hasZ`,null),e([o({type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],$.prototype,`id`,void 0),e([o({type:Boolean,value:!0,nonNullable:!0,json:{name:`showLabels`,default:!1,write:{overridePolicy(){return{enabled:!!this.geometryType,alwaysWriteDefaults:!0,ignoreOrigin:!0}}}}})],$.prototype,`labelsVisible`,void 0),e([o({type:[xe],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:Ne,write:X()}})],$.prototype,`labelingInfo`,null),e([o({readOnly:!0,json:{read:!1,write:{writer(e,t){switch(this.parentCompositeLayer?.type){case`link-chart`:t.layerType=`LinkChartSubLayer`;break;case`knowledge-graph`:t.layerType=this.geometryType?`KnowledgeGraphSubLayer`:`KnowledgeGraphSubTable`}},isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`layerType`,void 0),e([o(J(r(fe)))],$.prototype,`legendEnabled`,void 0),e([o(J(r(pe)))],$.prototype,`maxScale`,void 0),e([o(J(r(me)))],$.prototype,`minScale`,void 0),e([o()],$.prototype,`objectIdField`,void 0),e([o()],$.prototype,`objectType`,void 0),e([o(J(r(he)))],$.prototype,`opacity`,void 0),e([o(J(r(B)))],$.prototype,`orderBy`,void 0),e([o({clonable:!1})],$.prototype,`parent`,void 0),e([o()],$.prototype,`parentCompositeLayer`,void 0),e([o(J(r(ge)))],$.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:{ignoreOrigin:!0}}})],$.prototype,`popupTemplate`,void 0),e([o({type:Number,json:{write:{overridePolicy:Q}}})],$.prototype,`refreshInterval`,void 0),e([o({types:Te,json:{name:`layerDefinition.drawingInfo.renderer`,write:X()}})],$.prototype,`renderer`,null),e([o()],$.prototype,`source`,void 0),e([o()],$.prototype,`spatialReference`,null),e([o({type:ve})],$.prototype,`templates`,null),e([o({type:Ce,json:{name:`layerDefinition.timeInfo`,write:{overridePolicy:Q},origins:{"web-document":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}},"portal-item":{name:`layerDefinition.timeInfo`,read:!0,write:{overridePolicy:Q}}}}})],$.prototype,`timeInfo`,null),e([o({readOnly:!0})],$.prototype,`dateFieldsTimeZone`,null),e([o({type:String,json:{write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}})],$.prototype,`title`,null),e([je(`title`)],$.prototype,`writeTitle`,null),e([o({json:{read:!1}})],$.prototype,`type`,void 0),e([o(J(r(de)))],$.prototype,`useViewTime`,void 0),e([o({readOnly:!0})],$.prototype,`userHasEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasFullEditingPrivileges`,null),e([o({readOnly:!0})],$.prototype,`userHasUpdateItemPrivileges`,null),e([o({type:Boolean,json:{name:`visibility`,write:X()}})],$.prototype,`visible`,void 0),$=e([s(`esri.layers.knowledgeGraph.KnowledgeGraphSublayer`)],$);function Ne(e,t,n){let r=[[`ESRI__AGGREGATION_COUNT`,h],[`ESRI__ORIGIN_ID`,ue],[`ESRI__DESTINATION_ID`,v],[`ESRI__LAYOUT_GEOMETRY`,_]];try{for(let t of e)for(let[e,n]of r)t.labelExpression=t.labelExpression?.replaceAll(e,n),t.labelExpressionInfo?.expression&&(t.labelExpressionInfo.expression=t.labelExpressionInfo.expression.replaceAll(e,n))}catch(e){i.getLogger(this).warn(`Error updating labelingInfo`,e)}return Se.call(this,e,t,n)}export{$ as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../request.js";import{some as n}from"../../core/iteratorUtils.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import{join as a}from"../../core/urlUtils.js";import o from"../../core/Version.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/SpatialReference.js";import{parse as d}from"../support/arcgisLayerUrl.js";import{id as f,popupEnabled as p}from"../support/commonProperties.js";import{isHostedLayer as m}from"../../portal/support/portalItemUtils.js";import{reader as h}from"../../core/accessorSupport/decorators/reader.js";const g=g=>{let _=g,v=class extends _{constructor(){super(...arguments),this.capabilities=void 0,this.copyright=null,this.fullExtent=null,this.legendEnabled=!0,this.spatialReference=null,this.version=void 0,this._allLayersAndTablesMap=null}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());if(!n)return{operations:{supportsExportMap:!1,supportsExportTiles:!1,supportsIdentify:!1,supportsQuery:!1,supportsTileMap:!1},exportMap:null,exportTiles:null};let r=this.type,i=r!==`tile`&&!!t.supportsDynamicLayers,a=n.includes(`query`),s=n.includes(`map`),c=!!t.exportTilesAllowed,l=n.includes(`tilemap`),u=n.includes(`data`),d=r!==`tile`&&(!t.tileInfo||i),f=r!==`tile`&&(!t.tileInfo||i),p=r!==`tile`,m=r!==`tile`&&i&&t.currentVersion>=11.1,h=t.cimVersion?o.parse(t.cimVersion):null,g=h?.greaterEqual(1,4)??!1,_=h?.greaterEqual(2,0)??!1;return{operations:{supportsExportMap:s,supportsExportTiles:c,supportsIdentify:a,supportsQuery:u,supportsTileMap:l},exportMap:s?{supportsArcadeExpressionForLabeling:g,supportsCIMSymbols:_,supportsDynamicLayers:i,supportsSublayerOrderBy:m,supportsSublayerDefinitionExpression:f,supportsSublayerVisibility:d,supportsSublayersChanges:p}:null,exportTiles:c?{maxExportTilesCount:+t.maxExportTilesCount}:null}}readVersion(e,t){let n=t.currentVersion;return n||=t.hasOwnProperty(`capabilities`)||t.hasOwnProperty(`tables`)?10:t.hasOwnProperty(`supportedImageFormatTypes`)?9.31:9.3,n}async fetchRelatedService(e){let t=this.portalItem;if(!t||!m(t))return null;this._relatedFeatureServicePromise||=t.fetchRelatedItems({relationshipType:`Service2Service`,direction:`reverse`},e).then(e=>e.find(e=>e.type===`Feature Service`)??null,()=>null);let n=await this._relatedFeatureServicePromise;return i(e),n?{itemId:n.id,url:n.url}:null}async fetchSublayerInfo(e,n){let{source:r}=e;if(this?.portalItem&&this.type===`tile`&&r?.type===`map-layer`&&m(this.portalItem)&&e.originIdOf(`url`)<2){let t=await this.fetchRelatedService(n);t&&(e.url=a(t.url,r.mapLayerId.toString()),e.layerItemId=t.itemId)}let{url:i}=e,o;if(r.type===`data-layer`)o=(await t(i,{responseType:`json`,query:{f:`json`,...this.customParameters,token:this.apiKey},...n})).data;else{let t=e.id;r?.type===`map-layer`&&(t=r.mapLayerId);try{o=(await this.fetchAllLayersAndTables(n)).get(t)}catch{}if(i&&e.originIdOf(`url`)>2)try{let e=await this._fetchAllLayersAndTablesFromService(i),t=d(i)?.sublayer??r.mapLayerId,n=structuredClone(e.get(t));if(n!=null){for(let e of[`drawingInfo`,`maxScale`,`minScale`,`name`])delete n[e];o={...o,...n}}}catch{}}return o}async fetchAllLayersAndTables(e){return this._fetchAllLayersAndTablesFromService(this.parsedUrl?.path,e)}async _fetchAllLayersAndTablesFromService(e,o){await this.load(o),this._allLayersAndTablesMap||=new Map;let s=d(e),c=await r(this._allLayersAndTablesMap,s?.url.path,()=>t(a(s?.url.path,`/layers`),{query:{f:`json`,...this.customParameters,token:this.apiKey}}).then(async e=>{let r=new Map,{layers:i,tables:a}=e.data,o=[...i??[],...a??[]];for(let e of o)r.set(e.id,e);if(n(r.values(),e=>e.capabilities==null||e.extent==null)){let{data:e}=await t(s?.url.path,{query:{f:`json`,...this.customParameters,token:this.apiKey}}).catch(()=>({data:{capabilities:``,fullExtent:void 0}}));for(let t of r.values())t.capabilities??=e.capabilities??``,t.extent??=e.fullExtent}return{result:r}},e=>({error:e})));if(i(o),`result`in c)return c.result;throw c.error}};return e([s({readOnly:!0})],v.prototype,`capabilities`,void 0),e([h(`service`,`capabilities`,[`capabilities`,`cimVersion`,`currentVersion`,`exportTilesAllowed`,`maxExportTilesCount`,`supportsDynamicLayers`,`tileInfo`])],v.prototype,`readCapabilities`,null),e([s({json:{read:{source:`copyrightText`}}})],v.prototype,`copyright`,void 0),e([s({type:l})],v.prototype,`fullExtent`,void 0),e([s(f)],v.prototype,`id`,void 0),e([s({type:Boolean,json:{origins:{service:{read:{enabled:!1}}},read:{source:`showLegend`},write:{target:`showLegend`}}})],v.prototype,`legendEnabled`,void 0),e([s(p)],v.prototype,`popupEnabled`,void 0),e([s({type:u})],v.prototype,`spatialReference`,void 0),e([s({readOnly:!0})],v.prototype,`version`,void 0),e([h(`service`,`version`,[`currentVersion`,`capabilities`,`tables`,`supportedImageFormatTypes`])],v.prototype,`readVersion`,null),v=e([c(`esri.layers.mixins.ArcGISMapService`)],v),v};export{g as ArcGISMapService};
2
+ import{__decorate as e}from"tslib";import t from"../../request.js";import{some as n}from"../../core/iteratorUtils.js";import{getOrCreateMapValue as r}from"../../core/MapUtils.js";import{throwIfAborted as i}from"../../core/promiseUtils.js";import{join as a}from"../../core/urlUtils.js";import o from"../../core/Version.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/SpatialReference.js";import{parse as d}from"../support/arcgisLayerUrl.js";import{id as f,popupEnabled as p}from"../support/commonProperties.js";import{isHostedLayer as m}from"../../portal/support/portalItemUtils.js";import{reader as h}from"../../core/accessorSupport/decorators/reader.js";const g=g=>{let _=g,v=class extends _{constructor(){super(...arguments),this.capabilities=void 0,this.copyright=null,this.fullExtent=null,this.legendEnabled=!0,this.spatialReference=null,this.version=void 0,this._allLayersAndTablesMap=null}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());if(!n)return{operations:{supportsExportMap:!1,supportsExportTiles:!1,supportsIdentify:!1,supportsQuery:!1,supportsTileMap:!1},exportMap:null,exportTiles:null};let r=this.type,i=r!==`tile`&&!!t.supportsDynamicLayers,a=n.includes(`query`),s=n.includes(`map`),c=!!t.exportTilesAllowed,l=n.includes(`tilemap`),u=n.includes(`data`),d=r!==`tile`&&(!t.tileInfo||i),f=r!==`tile`&&(!t.tileInfo||i),p=r!==`tile`,m=r!==`tile`&&i&&t.currentVersion>=11.1,h=t.cimVersion?o.parse(t.cimVersion):null,g=h?.greaterEqual(1,4)??!1,_=h?.greaterEqual(2,0)??!1;return{operations:{supportsExportMap:s,supportsExportTiles:c,supportsIdentify:a,supportsQuery:u,supportsTileMap:l},exportMap:s?{supportsArcadeExpressionForLabeling:g,supportsCIMSymbols:_,supportsDynamicLayers:i,supportsSublayerOrderBy:m,supportsSublayerDefinitionExpression:f,supportsSublayerVisibility:d,supportsSublayersChanges:p}:null,exportTiles:c?{maxExportTilesCount:+t.maxExportTilesCount}:null}}readVersion(e,t){let n=t.currentVersion;return n||=t.hasOwnProperty(`capabilities`)||t.hasOwnProperty(`tables`)?10:t.hasOwnProperty(`supportedImageFormatTypes`)?9.31:9.3,n}async fetchRelatedService(e){let t=this.portalItem;if(!t||!m(t))return null;this._relatedFeatureServicePromise||=t.fetchRelatedItems({relationshipType:`Service2Service`,direction:`reverse`},e).then(e=>e.find(e=>e.type===`Feature Service`)??null,()=>null);let n=await this._relatedFeatureServicePromise;return i(e),n?{itemId:n.id,url:n.url}:null}async fetchSublayerInfo(e,n){let{source:r}=e;if(this?.portalItem&&this.type===`tile`&&r?.type===`map-layer`&&m(this.portalItem)&&e.originIdOf(`url`)<2){let t=await this.fetchRelatedService(n);t&&(e.url=a(t.url,r.mapLayerId.toString()),e.layerItemId=t.itemId)}let{url:i}=e,o;if(r.type===`data-layer`||r.type===`workspace-layer`)o=(await t(i,{responseType:`json`,query:{f:`json`,...this.customParameters,token:this.apiKey},...n})).data;else{let t=e.id;r?.type===`map-layer`&&(t=r.mapLayerId);try{o=(await this.fetchAllLayersAndTables(n)).get(t)}catch{}if(i&&e.originIdOf(`url`)>2)try{let e=await this._fetchAllLayersAndTablesFromService(i),t=d(i)?.sublayer??r.mapLayerId,n=structuredClone(e.get(t));if(n!=null){for(let e of[`drawingInfo`,`maxScale`,`minScale`,`name`])delete n[e];o={...o,...n}}}catch{}}return o}async fetchAllLayersAndTables(e){return this._fetchAllLayersAndTablesFromService(this.parsedUrl?.path,e)}async _fetchAllLayersAndTablesFromService(e,o){await this.load(o),this._allLayersAndTablesMap||=new Map;let s=d(e),c=await r(this._allLayersAndTablesMap,s?.url.path,()=>t(a(s?.url.path,`/layers`),{query:{f:`json`,...this.customParameters,token:this.apiKey}}).then(async e=>{let r=new Map,{layers:i,tables:a}=e.data,o=[...i??[],...a??[]];for(let e of o)r.set(e.id,e);if(n(r.values(),e=>e.capabilities==null||e.extent==null)){let{data:e}=await t(s?.url.path,{query:{f:`json`,...this.customParameters,token:this.apiKey}}).catch(()=>({data:{capabilities:``,fullExtent:void 0}}));for(let t of r.values())t.capabilities??=e.capabilities??``,t.extent??=e.fullExtent}return{result:r}},e=>({error:e})));if(i(o),`result`in c)return c.result;throw c.error}};return e([s({readOnly:!0})],v.prototype,`capabilities`,void 0),e([h(`service`,`capabilities`,[`capabilities`,`cimVersion`,`currentVersion`,`exportTilesAllowed`,`maxExportTilesCount`,`supportsDynamicLayers`,`tileInfo`])],v.prototype,`readCapabilities`,null),e([s({json:{read:{source:`copyrightText`}}})],v.prototype,`copyright`,void 0),e([s({type:l})],v.prototype,`fullExtent`,void 0),e([s(f)],v.prototype,`id`,void 0),e([s({type:Boolean,json:{origins:{service:{read:{enabled:!1}}},read:{source:`showLegend`},write:{target:`showLegend`}}})],v.prototype,`legendEnabled`,void 0),e([s(p)],v.prototype,`popupEnabled`,void 0),e([s({type:u})],v.prototype,`spatialReference`,void 0),e([s({readOnly:!0})],v.prototype,`version`,void 0),e([h(`service`,`version`,[`currentVersion`,`capabilities`,`tables`,`supportedImageFormatTypes`])],v.prototype,`readVersion`,null),v=e([c(`esri.layers.mixins.ArcGISMapService`)],v),v};export{g as ArcGISMapService};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../request.js";import t from"../../core/Error.js";import n from"../../core/Logger.js";import{makeAbsolute as r,addQueryParameters as i,urlToObject as a}from"../../core/urlUtils.js";import o from"../../geometry/SpatialReference.js";import{wgs84 as s}from"../../geometry/support/spatialReferenceUtils.js";import{project as c}from"../../geometry/support/webMercatorUtils.js";import{convertToFeatureSet as l,convertToGeometry as u,convertFromGeometry as d}from"../graphics/featureConversionUtils.js";import f from"../graphics/OptimizedFeatureSet.js";import{validateGeoJSON as p,inferLayerProperties as m,createOptimizedFeatures as h}from"../graphics/sources/geojson/geojson.js";import{createDrawingInfo as g}from"../graphics/sources/support/clientSideDefaults.js";import{mixAttributes as _}from"../graphics/sources/support/sourceUtils.js";import v from"../support/FieldsIndex.js";import{kebabDict as y}from"../support/fieldType.js";import{utc as b}from"../../time/constants.js";const x=()=>n.getLogger(`esri.layers.ogc.ogcFeatureUtils`),S=`startindex`,C=new Set([S,`offset`]),w=`http://www.opengis.net/def/crs/`,T=`${w}OGC/1.3/CRS84`;async function E(n,a,o={},s=5){let{links:c}=n,l=U(c);if(!l)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{apiKey:u,customParameters:d,signal:f}=o,h=r(l.href,n.landingPage.url),_={limit:s,...d,token:u},C=i(h,_),{data:w}=await e(C,{signal:f,headers:{accept:`application/geo+json`}}),T=K(C,s,w.links)??S;p(w);let E=w.numberMatched,D=m(w,{geometryType:a.geometryType}),O=a.fields||D.fields||[],k=a.hasZ==null?D.hasZ:a.hasZ,A=D.geometryType,j=a.objectIdField||D.objectIdFieldName||`OBJECTID`,M=a.timeInfo,N=O.find(({name:e})=>e===j);if(N)N.editable=!1,N.nullable=!1;else{if(!D.objectIdFieldType)throw new t(`ogc-feature-layer:missing-feature-id`,`Collection geojson require a feature id as a unique identifier`);O.unshift({name:j,alias:j,type:D.objectIdFieldType===`number`?`esriFieldTypeOID`:`esriFieldTypeString`,editable:!1,nullable:!1})}if(j!==D.objectIdFieldName){let e=O.find(({name:e})=>e===D.objectIdFieldName);e&&(e.type=`esriFieldTypeInteger`)}O===D.fields&&D.unknownFields.length>0&&x().warn({name:`ogc-feature-layer:unknown-field-types`,message:`Some fields types couldn't be inferred from the features and were dropped`,details:{unknownFields:D.unknownFields}});for(let e of O){if(e.name??=e.alias,e.alias??=e.name,e.type!==`esriFieldTypeOID`&&e.type!==`esriFieldTypeGlobalID`&&(e.editable??=!0,e.nullable??=!0),!e.name)throw new t(`ogc-feature-layer:invalid-field-name`,`field name is missing`,{field:e});if(!y.jsonValues.includes(e.type))throw new t(`ogc-feature-layer:invalid-field-type`,`invalid type for field "${e.name}"`,{field:e})}if(M){let e=new v(O);if(M.startTimeField){let t=e.get(M.startTimeField);t?(M.startTimeField=t.name,t.type=`esriFieldTypeDate`):M.startTimeField=null}if(M.endTimeField){let t=e.get(M.endTimeField);t?(M.endTimeField=t.name,t.type=`esriFieldTypeDate`):M.endTimeField=null}if(M.trackIdField){let t=e.get(M.trackIdField);t?M.trackIdField=t.name:(M.trackIdField=null,x().warn({name:`ogc-feature-layer:invalid-timeInfo-trackIdField`,message:`trackIdField is missing`,details:{timeInfo:M}}))}M.timeReference||={timeZoneIANA:b},!M.startTimeField&&!M.endTimeField&&(x().warn({name:`ogc-feature-layer:invalid-timeInfo`,message:`startTimeField and endTimeField are missing`,details:{timeInfo:M}}),M=void 0)}return{drawingInfo:A?g(A):null,extent:H(n),geometryType:A,fields:O,hasZ:!!k,objectIdField:j,paginationParameter:T,timeInfo:M,featureCount:E}}async function D(n,i={}){let{links:a,url:o}=n,s=V(a);if(!s)throw new t(`ogc-feature-layer:missing-collections-page`,`Missing collections url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});for(let e of f.collections)e.landingPage=n;return f}async function O(n,i={}){let{links:a,url:o}=n,s=B(a);if(!s)throw new t(`ogc-feature-layer:missing-conformance-page`,`Missing conformance url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});return f}async function k(t,n={}){let{apiKey:r,customParameters:i,signal:a}=n,{data:o}=await e(t,{signal:a,headers:{accept:`application/json`},query:{...i,token:r}});return o.url=t,o}async function A(t,n={}){let{links:i,url:a}=t,o=W(i,`service-desc`,`application/vnd.oai.openapi+json;version=3.0`);if(!o)return x().warn(`ogc-feature-layer:missing-openapi-page`,`The OGC API-Features server does not have an OpenAPI page.`),null;let{apiKey:s,customParameters:c,signal:l}=n,u=r(o.href,a),{data:d}=await e(u,{signal:l,headers:{accept:`application/vnd.oai.openapi+json;version=3.0`},query:{...c,token:s}});return d}function j(e){let t=/^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e)?.groups;if(!t)return null;let{authority:n,code:r}=t;switch(n.toLowerCase()){case`ogc`:switch(r.toLowerCase()){case`crs27`:return o.GCS_NAD_1927.wkid;case`crs83`:return 4269;case`crs84`:case`crs84h`:return o.WGS84.wkid;default:return null}case`esri`:case`epsg`:{let e=Number.parseInt(r,10);return Number.isNaN(e)?null:e}default:return null}}async function M(e,t,n){let r=await N(e,t,n);return l(r)}async function N(n,i,a){let{collection:{links:l,landingPage:{url:p}},layerDefinition:m,maxRecordCount:g,queryParameters:{apiKey:y,customParameters:b},spatialReference:x,supportedCrs:S}=n,C=U(l);if(!C)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{geometry:w,num:T,start:E,timeExtent:D,where:O}=i;if(i.objectIds)throw new t(`ogc-feature-layer:query-by-objectids-not-supported`,`Queries with object ids are not supported`);let k=o.fromJSON(x),A=i.outSpatialReference??k,j=A.isWGS84?null:F(A,S),M=z(w,S),N=L(D),P=R(O),I=T??(E==null?g:10),B=E===0?void 0:E,{fields:V,geometryType:H,hasZ:W,objectIdField:K,paginationParameter:q}=m,J=r(C.href,p),{data:Y}=await e(J,{...a,query:{...b,...M,crs:j,datetime:N,query:P,limit:I,[q]:B,token:y},headers:{accept:`application/geo+json`}}),X=h(Y,{geometryType:H,hasZ:W,objectIdField:K}),Z=X.length===I&&!!G(Y.links??[]),Q=new v(V);for(let e of X){let t={};_(Q,t,e.attributes,!0);for(let e of Q.fields)e.nullable&&!(e.name in t)&&(t[e.name]=null);t[K]=e.attributes[K],e.attributes=t}if(!j&&A.isWebMercator){for(let e of X)if(e.geometry!=null&&H!=null){let t=u(e.geometry,H,W,!1);t.spatialReference=o.WGS84,e.geometry=d(c(t,A))}}for(let e of X)e.objectId=e.attributes[K];let ee=j||!j&&A.isWebMercator?A.toJSON():s,$=new f;return $.exceededTransferLimit=Z,$.features=X,$.fields=V,$.geometryType=H,$.hasZ=W,$.spatialReference=ee,$}function P(e){return e!=null&&e.type===`extent`}function F(e,t){let{isWebMercator:n,wkid:r,latestWkid:i}=e;if(!r&&!i)return null;let a=n?t[3857]??t[102100]??t[102113]??t[900913]:r&&t[r]||i&&t[i];return a?`${w}${a}`:null}function I(e){if(!e)return``;let{xmin:t,ymin:n,xmax:r,ymax:i}=e;return`${t},${n},${r},${i}`}function L(e){if(!e)return null;let{start:t,end:n}=e;return`${t==null?`..`:t.toISOString()}/${n==null?`..`:n.toISOString()}`}function R(e){return!e||e===`1=1`?null:e}function z(e,t){if(!P(e))return null;let{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:I(e)};let r=F(n,t);return r==null?n.isWebMercator?{bbox:I(c(e,o.WGS84))}:null:{bbox:I(e),"bbox-crs":r}}function B(e){return W(e,`conformance`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/conformance`,`application/json`)}function V(e){return W(e,`data`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/data`,`application/json`)}function H(e){let t=e.extent?.spatial;if(!t)return null;let n=t.bbox[0],r=n.length===4,[i,a]=n,s=r?void 0:n[2];return{xmin:i,ymin:a,xmax:r?n[2]:n[3],ymax:r?n[3]:n[4],zmin:s,zmax:r?void 0:n[5],spatialReference:o.WGS84.toJSON()}}function U(e){return W(e,`items`,`application/geo+json`,`http://www.opengis.net/def/profile/ogc/0/rfc7946`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/items`,`application/geo+json`,`http://www.opengis.net/def/profile/ogc/0/rfc7946`)}function W(e,t,n,r){return r?e.find(({rel:e,type:i,profile:a})=>e===t&&i===n&&a?.includes(r))??e.find(({rel:e,type:r,profile:i})=>e===t&&r===n&&!i):e.find(({rel:e,type:r})=>e===t&&r===n)??e.find(({rel:e,type:n})=>e===t&&!n)}function G(e){return W(e,`next`,`application/geo+json`)}function K(e,t,n){if(!n)return;let r=G(n),i=a(r?.href)?.query;if(!i)return;let o=a(e).query,s=Object.keys(o??{});return Object.entries(i).filter(([e])=>!s.includes(e)).find(([e,n])=>C.has(e.toLowerCase())&&Number.parseInt(n,10)===t)?.[0]}export{T as crsDefault,w as crsPrefix,E as getCollectionDefinition,U as getItemsLink,D as getServerCollectionsPage,O as getServerConformance,k as getServerLandingPage,A as getServerOpenApi,j as getSpatialReferenceWkid,M as queryFeatureSetJSON,N as queryOptimizedFeatureSet};
2
+ import e from"../../request.js";import t from"../../core/Error.js";import n from"../../core/Logger.js";import{makeAbsolute as r,addQueryParameters as i,urlToObject as a}from"../../core/urlUtils.js";import o from"../../geometry/SpatialReference.js";import{wgs84 as s}from"../../geometry/support/spatialReferenceUtils.js";import{project as c}from"../../geometry/support/webMercatorUtils.js";import{convertToFeatureSet as l,convertToGeometry as u,convertFromGeometry as d}from"../graphics/featureConversionUtils.js";import f from"../graphics/OptimizedFeatureSet.js";import{validateGeoJSON as p,inferLayerProperties as m,createOptimizedFeatures as h}from"../graphics/sources/geojson/geojson.js";import{createDrawingInfo as g}from"../graphics/sources/support/clientSideDefaults.js";import{mixAttributes as _}from"../graphics/sources/support/sourceUtils.js";import v from"../support/FieldsIndex.js";import{kebabDict as y}from"../support/fieldType.js";import{utc as b}from"../../time/constants.js";const x=()=>n.getLogger(`esri.layers.ogc.ogcFeatureUtils`),S=`startindex`,C=new Set([S,`offset`]),w=`http://www.opengis.net/def/crs/`,T=`${w}OGC/1.3/CRS84`;async function E(n,a,o={},s=5){let{links:c}=n,l=U(c);if(!l)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{apiKey:u,customParameters:d,signal:f}=o,h=r(l.href,n.landingPage.url),_={limit:s,...d,token:u},C=i(h,_),{data:w}=await e(C,{signal:f,headers:{accept:`application/geo+json`}}),T=K(C,s,w.links)??S;p(w);let E=w.numberMatched,D=m(w,{geometryType:a.geometryType}),O=a.fields||D.fields||[],k=a.hasZ==null?D.hasZ:a.hasZ,A=D.geometryType,j=a.objectIdField||D.objectIdFieldName||`OBJECTID`,M=a.timeInfo,N=O.find(({name:e})=>e===j);if(N)N.editable=!1,N.nullable=!1;else{if(!D.objectIdFieldType)throw new t(`ogc-feature-layer:missing-feature-id`,`Collection geojson require a feature id as a unique identifier`);O.unshift({name:j,alias:j,type:D.objectIdFieldType===`number`?`esriFieldTypeOID`:`esriFieldTypeString`,editable:!1,nullable:!1})}if(j!==D.objectIdFieldName){let e=O.find(({name:e})=>e===D.objectIdFieldName);e&&(e.type=`esriFieldTypeInteger`)}O===D.fields&&D.unknownFields.length>0&&x().warn({name:`ogc-feature-layer:unknown-field-types`,message:`Some fields types couldn't be inferred from the features and were dropped`,details:{unknownFields:D.unknownFields}});for(let e of O){if(e.name??=e.alias,e.alias??=e.name,e.type!==`esriFieldTypeOID`&&e.type!==`esriFieldTypeGlobalID`&&(e.editable??=!0,e.nullable??=!0),!e.name)throw new t(`ogc-feature-layer:invalid-field-name`,`field name is missing`,{field:e});if(!y.jsonValues.includes(e.type))throw new t(`ogc-feature-layer:invalid-field-type`,`invalid type for field "${e.name}"`,{field:e})}if(M){let e=new v(O);if(M.startTimeField){let t=e.get(M.startTimeField);t?(M.startTimeField=t.name,t.type=`esriFieldTypeDate`):M.startTimeField=null}if(M.endTimeField){let t=e.get(M.endTimeField);t?(M.endTimeField=t.name,t.type=`esriFieldTypeDate`):M.endTimeField=null}if(M.trackIdField){let t=e.get(M.trackIdField);t?M.trackIdField=t.name:(M.trackIdField=null,x().warn({name:`ogc-feature-layer:invalid-timeInfo-trackIdField`,message:`trackIdField is missing`,details:{timeInfo:M}}))}M.timeReference||={timeZoneIANA:b},!M.startTimeField&&!M.endTimeField&&(x().warn({name:`ogc-feature-layer:invalid-timeInfo`,message:`startTimeField and endTimeField are missing`,details:{timeInfo:M}}),M=void 0)}return{drawingInfo:A?g(A):null,extent:H(n),geometryType:A,fields:O,hasZ:!!k,objectIdField:j,paginationParameter:T,timeInfo:M,featureCount:E}}async function D(n,i={}){let{links:a,url:o}=n,s=V(a);if(!s)throw new t(`ogc-feature-layer:missing-collections-page`,`Missing collections url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});for(let e of f.collections)e.landingPage=n;return f}async function O(n,i={}){let{links:a,url:o}=n,s=B(a);if(!s)throw new t(`ogc-feature-layer:missing-conformance-page`,`Missing conformance url`);let{apiKey:c,customParameters:l,signal:u}=i,d=r(s.href,o),{data:f}=await e(d,{signal:u,headers:{accept:`application/json`},query:{...l,token:c}});return f}async function k(t,n={}){let{apiKey:r,customParameters:i,signal:a}=n,{data:o}=await e(t,{signal:a,headers:{accept:`application/json`},query:{...i,token:r}});return o.url=t,o}async function A(t,n={}){let{links:i,url:a}=t,o=W(i,`service-desc`,`application/vnd.oai.openapi+json;version=3.0`);if(!o)return x().warn(`ogc-feature-layer:missing-openapi-page`,`The OGC API-Features server does not have an OpenAPI page.`),null;let{apiKey:s,customParameters:c,signal:l}=n,u=r(o.href,a),{data:d}=await e(u,{signal:l,headers:{accept:`application/vnd.oai.openapi+json;version=3.0`},query:{...c,token:s}});return d}function j(e){let t=/^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e)?.groups;if(!t)return null;let{authority:n,code:r}=t;switch(n.toLowerCase()){case`ogc`:switch(r.toLowerCase()){case`crs27`:return o.GCS_NAD_1927.wkid;case`crs83`:return 4269;case`crs84`:case`crs84h`:return o.WGS84.wkid;default:return null}case`esri`:case`epsg`:{let e=Number.parseInt(r,10);return Number.isNaN(e)?null:e}default:return null}}async function M(e,t,n){let r=await N(e,t,n);return l(r)}async function N(n,i,a){let{collection:{links:l,landingPage:{url:p}},layerDefinition:m,maxRecordCount:g,queryParameters:{apiKey:y,customParameters:b},spatialReference:x,supportedCrs:S}=n,C=U(l);if(!C)throw new t(`ogc-feature-layer:missing-items-page`,`Missing items url`);let{geometry:w,num:T,start:E,timeExtent:D,where:O}=i;if(i.objectIds)throw new t(`ogc-feature-layer:query-by-objectids-not-supported`,`Queries with object ids are not supported`);let k=o.fromJSON(x),A=i.outSpatialReference??k,j=A.isWGS84?null:F(A,S),M=z(w,S),N=L(D),P=R(O),I=T??(E==null?g:10),B=E===0?void 0:E,{fields:V,geometryType:H,hasZ:W,objectIdField:K,paginationParameter:q}=m,J=r(C.href,p),{data:Y}=await e(J,{...a,query:{...b,...M,crs:j,datetime:N,query:P,limit:I,[q]:B,token:y},headers:{accept:`application/geo+json`}}),X=h(Y,{geometryType:H,hasZ:W,objectIdField:K}),Z=X.length===I&&!!G(Y.links??[]),Q=new v(V);for(let e of X){let t={};_(Q,t,e.attributes,!0);for(let e of Q.fields)e.nullable&&!(e.name in t)&&(t[e.name]=null);t[K]=e.attributes[K],e.attributes=t}if(!j&&A.isWebMercator){for(let e of X)if(e.geometry!=null&&H!=null){let t=u(e.geometry,H,W,!1);t.spatialReference=o.WGS84,e.geometry=d(c(t,A))}}for(let e of X)e.objectId=e.attributes[K];let ee=j||!j&&A.isWebMercator?A.toJSON():s,$=new f;return $.exceededTransferLimit=Z,$.features=X,$.fields=V,$.geometryType=H,$.hasZ=W,$.spatialReference=ee,$}function P(e){return e!=null&&e.type===`extent`}function F(e,t){let{isWebMercator:n,wkid:r,latestWkid:i}=e;if(!r&&!i)return null;let a=n?t[3857]??t[102100]??t[102113]??t[900913]:r&&t[r]||i&&t[i];return a?`${w}${a}`:null}function I(e){if(!e)return``;let{xmin:t,ymin:n,xmax:r,ymax:i}=e;return`${t},${n},${r},${i}`}function L(e){if(!e)return null;let{start:t,end:n}=e;return`${t==null?`..`:t.toISOString()}/${n==null?`..`:n.toISOString()}`}function R(e){return!e||e===`1=1`?null:e}function z(e,t){if(!P(e))return null;let{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:I(e)};let r=F(n,t);return r==null?n.isWebMercator?{bbox:I(c(e,o.WGS84))}:null:{bbox:I(e),"bbox-crs":r}}function B(e){return W(e,`conformance`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/conformance`,`application/json`)}function V(e){return W(e,`data`,`application/json`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/data`,`application/json`)}function H(e){let t=e.extent?.spatial;if(!t)return null;let n=t.bbox[0],r=n.length===4,[i,a]=n,s=r?void 0:n[2];return{xmin:i,ymin:a,xmax:r?n[2]:n[3],ymax:r?n[3]:n[4],zmin:s,zmax:r?void 0:n[5],spatialReference:o.WGS84.toJSON()}}function U(e){return W(e,`items`,`application/geo+json`,`http://www.opengis.net/def/profile/OGC/0/rfc7946`)??W(e,`http://www.opengis.net/def/rel/ogc/1.0/items`,`application/geo+json`,`http://www.opengis.net/def/profile/OGC/0/rfc7946`)}function W(e,t,n,r){return r?e.find(({rel:e,type:i,profile:a})=>e===t&&i===n&&a?.some(e=>e.toLowerCase()===r.toLowerCase()))??e.find(({rel:e,type:r,profile:i})=>e===t&&r===n&&!i):e.find(({rel:e,type:r})=>e===t&&r===n)??e.find(({rel:e,type:n})=>e===t&&!n)}function G(e){return W(e,`next`,`application/geo+json`)}function K(e,t,n){if(!n)return;let r=G(n),i=a(r?.href)?.query;if(!i)return;let o=a(e).query,s=Object.keys(o??{});return Object.entries(i).filter(([e])=>!s.includes(e)).find(([e,n])=>C.has(e.toLowerCase())&&Number.parseInt(n,10)===t)?.[0]}export{T as crsDefault,w as crsPrefix,E as getCollectionDefinition,U as getItemsLink,D as getServerCollectionsPage,O as getServerConformance,k as getServerLandingPage,A as getServerOpenApi,j as getSpatialReferenceWkid,M as queryFeatureSetJSON,N as queryOptimizedFeatureSet};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{deg2rad as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transpose as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{sub as a,add as o,length as s,dot as c}from"../../../core/libs/gl-matrix-2/math/vec3.js";import l from"../../../geometry/Circle.js";import u from"../../../geometry/Mesh.js";import d from"../../../geometry/Multipoint.js";import f from"../../../geometry/Polygon.js";import{projectAsync as p}from"../../../geometry/projectionUtils.js";import m from"../../../geometry/SpatialReference.js";import{polygonCentroidPoint as h}from"../../../geometry/support/centroid.js";import{earth as g}from"../../../geometry/support/Ellipsoid.js";import _ from"../../../geometry/support/MeshComponent.js";import{createSphere as v}from"../../../geometry/support/meshUtils.js";import y from"../../../geometry/support/MeshVertexAttributes.js";import{create as b,fromArray as x,intersectRay as S}from"../../../geometry/support/plane.js";import{isWebMercator as C}from"../../../geometry/support/spatialReferenceUtils.js";import{getMetersPerUnitOfSR as w}from"./utils.js";import{convertToSRUnits as T,getWebMercatorScalingFactor as E,createRotationMatrixFromHPR as D,transformMat3 as O,scaleAndAddWithFactor as k,scaleWithFactor as A,computeHFOVAndVFOV as j,projectiveTransform as M}from"../transformations/utils.js";const N=Math.PI/180;function P(e,t,n){let r=T(e,t.spatialReference);return r.cameraHeight=(t.z??r.cameraHeight)-n,e.isSpherical?z(r,t):F(r,t)}function F(e,t){let{horizontalFieldOfView:n,verticalFieldOfView:r,cameraHeading:i}=e,a=E(t.y,t.spatialReference),o=e.cameraPitch,s=e.cameraRoll??0,c=150;n>150&&(o=90,s=0,c=5);let l=Math.ceil(n/c),u=I(l,i,n),d=K(e)*a,p=new f({spatialReference:t?.spatialReference});p.imageID=e.objectId;let m=null;for(let i of u)m=L(i,o,e.cameraHeight,t,d,a,r,n,l,p,s,e.nearDistance);return m.imageID=e.objectId,{polygon:p,frustum:m}}function I(e,t,n){let r=[];if(e%2==0)for(let i=0;i<e/2;i++)r.push(t-n/e*(i+.5),t+n/e*(i+.5));else{r.push(t);for(let i=1;i<e/2;i++)r.push(t-n/e*i,t+n/e*i)}return r.sort(),r}function L(e,t,s,c,l,u,d,f,p,m,h=0,g=0){let _=i(n(),D([e,t,h??0])),v=U({cameraHeight:s,cameraPitch:t,farDistance:l,location:c,horizontalFieldOfView:f,nearDistance:g,verticalFieldOfView:d},_),y=O([0,0,-1],_),{x:b,y:x}=c,S=k([b,x,c.z??s],y,l,u),C=2*Math.tan(d*N/2)*l,w=2*Math.tan(f/p*N/2)*l,T=O([0,1,0],_),E=O([1,0,0],_),j=A(T,C/2,u),M=A(E,w/2,u),P=a(r(),j,M),F=o(r(),j,M),I=R([o(r(),S,P),o(r(),S,F),a(r(),S,P),a(r(),S,F)],s,c,u);return I.push(I[0]),m.addRing(I),v}function R(e,t,n,r){return e.map(e=>W(e,t,n,r))}function z(e,t){let{farDistance:n,objectId:r,nearDistance:i,cameraHeight:a}=e,o=E(t.y,t.spatialReference),s=new l({center:t.clone(),radius:n*o});if(s.imageID=r,i){let e=new l({center:t.clone(),radius:i*o});s.addRing(e.rings[0])}let c=t.clone();c.z=(t.z??a)-n*o;let u=v(c,{size:2*n*o});return u.imageID=r,{polygon:s,frustum:u}}function B(e,t){return e.contains(t)}function V(e,t){let r=T(e,e.location.spatialReference);if(t.z==null)return!1;let{horizontalFieldOfView:a,location:o,nearDistance:l=0,verticalFieldOfView:u}=r,d=K(r);if(a==null||u==null||d<=0)return!1;let f=E(o.y,o.spatialReference),p=o.z??0,m=[(t.x-o.x)/f,(t.y-o.y)/f,t.z-p];if(r.isSpherical){let e=s(m);return l<=e&&e<=d}let h=i(n(),D([r.cameraHeading,r.cameraPitch,r.cameraRoll??0])),g=O([0,0,-1],h),_=c(m,g);return _>0&&_>=l&&_<=d}function H(e,t){return Math.sign(e)!==Math.sign(t)}function U(e,t,n){let{cameraHeight:i,cameraPitch:s,farDistance:c,location:l,horizontalFieldOfView:d,nearDistance:f,verticalFieldOfView:p}=e,m=l.z??i,h=m-i,g=q(l),_=!(s+p/2>=90),v=2*Math.tan(p*N/2)*f,b=2*Math.tan(d*N/2)*f,x=2*Math.tan(p*N/2)*c,S=2*Math.tan(d*N/2)*c,C,w=[0,0,-1];w=O(w,t),C=k([l.x,l.y,m],w,c,g),_&&(C[2]=h);let T=k([l.x,l.y,m],w,f,g),E=[0,1,0];E=O(E,t);let D=[1,0,0];D=O(D,t);let j=[],M=[];f?(M=[{faces:[4,0,3,4,7,3]},{faces:[5,1,2,5,6,2]},{faces:[4,0,1,4,5,1]},{faces:[6,2,3,6,7,3]}],j=j.concat(o(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(o(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g))))):(j=[l.x,l.y,m],M=[{faces:[0,1,2,0,2,3,0,3,4,0,4,1]}]),j=j.concat(o(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(o(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g))));let P=new y({position:Float64Array.from(j)});return new u({vertexAttributes:P,components:M,spatialReference:l.spatialReference})}function W(e,t,n,i){{let o=n.z??t,s=o-t,c=Math.sqrt((e[2]-o)**2+(Math.sqrt((e[0]-n.x)**2+(e[1]-n.y)**2)/i)**2)*i,l=A(a(r(),[e[0],e[1],e[2]],[n.x,n.y,o]),1/c,1/i),u=t/(o-e[2]),d={x:(1-u)*n.x+u*e[0],y:(1-u)*n.y+u*e[1],z:(1-u)*o+u*e[2]},f=Math.sqrt((d.z-o)**2+(Math.sqrt((d.x-n.x)**2+(d.y-n.y)**2)/i)**2)*i,p=A(a(r(),[d.x,d.y,d.z],[n.x,n.y,o]),1/f,1/i);return H(l[0],p[0])&&H(l[1],p[1])&&H(l[2],p[2])||e[2]>=s?[e[0],e[1],s]:[d.x,d.y,d.z]}}function G(e){let{spatialReference:t,x:n,y:r}=e.geometry,{cameraHeading:i,cameraPitch:a,farDistance:o,nearDistance:s}=e,c=q(e.geometry),l=new f({spatialReference:t}),u=Math.abs(1.44*o*c),d=Math.abs(1.44*s*c);(a<20||i==null)&&(d=u);let p=[];return p[0]={x:n+u*Math.sin((i-45)*N),y:r+u*Math.cos((i-45)*N)},p[1]={x:n+u*Math.sin((i+45)*N),y:r+u*Math.cos((i+45)*N)},p[2]={x:n+d*Math.sin((i+135)*N),y:r+d*Math.cos((i+135)*N)},p[3]={x:n+d*Math.sin((i+225)*N),y:r+d*Math.cos((i+225)*N)},l.addRing([[p[0].x,p[0].y,0],[p[1].x,p[1].y,0],[p[2].x,p[2].y,0],[p[3].x,p[3].y,0],[p[0].x,p[0].y,0]]),l}function K(t){let{cameraHeight:n,cameraPitch:r,farDistance:i,location:a,verticalFieldOfView:o}=t;return i??(r+o/2>=90?20/w(a.spatialReference):n/Math.cos(e(r)))}function q(e){return e&&C(e?.spatialReference)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e.y/g.radius))):1}function ee(e,t){let n=1+t/100;if(e.declaredClass===`esri.geometry.Circle`){let{radius:t,center:r}=e,i=t*n,a=new l({radius:i,center:r});return e.rings.length>1&&a.addRing(e.rings[1]),a}if(e.declaredClass===`esri.geometry.Polygon`){let t=new f({spatialReference:e.spatialReference}),i=h(e);if(i){let o=[];for(let t=0;t<e.rings[0].length;t++){let s=Math.sqrt((i.x-e.rings[0][t][0])**2+(i.y-e.rings[0][t][1])**2),c=A(a(r(),[e.rings[0][t][0],e.rings[0][t][1],0],[i.x,i.y,0]),1/s,1),l=k([i.x,i.y,0],c,s*n,1);o.push({x:l[0],y:l[1]})}t.addRing([[o[0].x,o[0].y,0],[o[1].x,o[1].y,0],[o[2].x,o[2].y,0],[o[3].x,o[3].y,0],[o[0].x,o[0].y,0]])}return t}return e}async function te(e,t,n){let{cameraHeight:r,cameraLocation:i,cameraPitch:a,frustumVertices:o,horizontalFieldOfView:s,imageHeight:c,imageWidth:l,inSRS:u,outSRS:d,verticalFieldOfView:f,cameraRoll:p,options:h}=n,g=new m(u),_=new m(d),v=j(s,f,p??0),y=o.length>15;return a+v.vfov/2>=90?await oe(o,e,l,c,g,_,y,h):await ne(o,e,t,i,r,y,g,_,h)}async function ne(e,t,n,r,i,a,o,s,c){let l=re(e,t,n,r,i);if(!l)return;let{farPlane:d,nearPlane:f}=l,p=await J([...f?.vertexPositions??e.slice(0,3),...d.vertexPositions],o,s,c),m=$(p);return new u({vertexAttributes:new y({position:p}),components:Q(a?X(m,!0):Z(m,!0)),spatialReference:s})}function re(e,t,n,r,i){let a=Y(e),o=Y(e,`near`);if(!a)return;let s=t.length;for(let e=0;e<s;e++){let t=Array.from(n[e]),s=[t[0]-r[0],t[1]-r[1],t[2]-(r[2]??i)];ae(r,s,e,o),ie(r,s,e,a)}return{farPlane:a,nearPlane:o}}function ie(e,t,n,i){let{coefficients:a,vertexPositions:o}=i,s=r();S(a,{origin:e,direction:t},s)&&o.splice(n*3,3,...s)}function ae(e,t,n,i){if(!i)return;let a=r();S(i.coefficients,{origin:e,direction:t},a)&&i.vertexPositions.splice(n*3,3,...a)}async function oe(e,t,n,r,i,a,o,s){let c=o?[]:[e[0],e[1],e[2]],l,d=[];for(let i of t)o?(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]]]),c=c.concat(...l),l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[12],e[13],e[14]],[e[15],e[16],e[17]],[e[18],e[19],e[20]],[e[21],e[22],e[23]]]),d=d.concat(...l)):(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]],[e[12],e[13],e[14]]]),c=c.concat(...l));c=c.concat(d);let f=await J(c,i,a,s),p=$(f);return new u({vertexAttributes:new y({position:f}),components:Q(o?X(p,!0):Z(p,!0)),spatialReference:a})}async function J(e,n,r,i){if(n.equals(r))return e;let a=e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]||(e[r]=[]),e[r].push(t),e},[]),{points:o}=await p(new d({points:a,spatialReference:n}),r,i);return t(i),o.flat()}function Y(e,t=`far`){let n=b(),r;switch(t){case`far`:if(r=Array.from(e.length===15?e.slice(3):e.slice(12)),x(n,r,!1))return{coefficients:n,vertexPositions:r};break;case`near`:return r=Array.from(e.slice(0,12)),e.length===15||!x(n,r,!1)?void 0:{coefficients:n,vertexPositions:r}}}const X=(e,t=!1)=>{if(t&&e-2<=4||e<=4||e%2!=0)throw Error(`Invalid number of vertices`);let n=[],r=e/2,i=Math.round((t?e-2:e)/2);for(let a=0;a<i;a++){let i=a+r,o=t?i+1:i,s=o%e,c=(t?i:o+1)%e;n.push({faces:new Uint32Array([a,c,s,a,a+1,s])})}return n};function Z(e,t=!1){if(e<3||t&&e-1<3)throw Error(`Invalid number of vertices`);let n=[],r=t?e-2:e-1;for(let e=0;e<r;e++)n.push({faces:new Uint32Array([0,e+1,e+2])});return n}const Q=e=>e.map(e=>new _(e)),$=e=>e.length/3;export{V as checkIfFrustumContainsSelectedPoint,B as checkIfPolygonContainsSelectedPoint,G as computePolygonForInspection,P as createCoveragePolygon,R as limitZToGround,J as projectVertices,ee as resizePolygon,te as updateFrustum};
2
+ import{deg2rad as e}from"../../../core/mathUtils.js";import{throwIfAborted as t}from"../../../core/promiseUtils.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{zeros as r}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transpose as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{sub as a,add as o,length as s,dot as c}from"../../../core/libs/gl-matrix-2/math/vec3.js";import l from"../../../geometry/Circle.js";import u from"../../../geometry/Mesh.js";import d from"../../../geometry/Multipoint.js";import f from"../../../geometry/Polygon.js";import{projectAsync as p}from"../../../geometry/projectionUtils.js";import m from"../../../geometry/SpatialReference.js";import{polygonCentroidPoint as h}from"../../../geometry/support/centroid.js";import{earth as g}from"../../../geometry/support/Ellipsoid.js";import _ from"../../../geometry/support/MeshComponent.js";import{createSphere as v}from"../../../geometry/support/meshUtils.js";import y from"../../../geometry/support/MeshVertexAttributes.js";import{create as b,fromArray as x,intersectRay as S}from"../../../geometry/support/plane.js";import{isWebMercator as C}from"../../../geometry/support/spatialReferenceUtils.js";import{getMetersPerUnitOfSR as w}from"./utils.js";import{convertToSRUnits as T,getWebMercatorScalingFactor as E,createRotationMatrixFromHPR as D,transformMat3 as O,scaleAndAddWithFactor as k,scaleWithFactor as A,computeHFOVAndVFOV as j,projectiveTransform as M}from"../transformations/utils.js";const N=Math.PI/180;function P(e,t,n){let r=T(e,t.spatialReference);return r.cameraHeight=(t.z??r.cameraHeight)-n,e.isSpherical?te(r,t):F(r,t)}function F(e,t){let{horizontalFieldOfView:n,verticalFieldOfView:r,cameraHeading:i}=e,a=E(t.y,t.spatialReference),o=e.cameraPitch,s=e.cameraRoll??0,c=150;n>150&&(o=90,s=0,c=5);let l=Math.ceil(n/c),u=I(l,i,n),d=V(e)*a,p=new f({spatialReference:t?.spatialReference});p.imageID=e.objectId;let m=null;for(let i of u)m=ee(i,o,e.cameraHeight,t,d,a,r,n,l,p,s,e.nearDistance);return m.imageID=e.objectId,{polygon:p,frustum:m}}function I(e,t,n){let r=[];if(e%2==0)for(let i=0;i<e/2;i++)r.push(t-n/e*(i+.5),t+n/e*(i+.5));else{r.push(t);for(let i=1;i<e/2;i++)r.push(t-n/e*i,t+n/e*i)}return r.sort(),r}function ee(e,t,s,c,l,u,d,f,p,m,h=0,g=0){let _=i(n(),D([e,t,h??0])),v=re({cameraHeight:s,cameraPitch:t,farDistance:l,location:c,horizontalFieldOfView:f,nearDistance:g,verticalFieldOfView:d},_),y=O([0,0,-1],_),{x:b,y:x}=c,S=k([b,x,c.z??s],y,l,u),C=2*Math.tan(d*N/2)*l,w=2*Math.tan(f/p*N/2)*l,T=O([0,1,0],_),E=O([1,0,0],_),j=A(T,C/2,u),M=A(E,w/2,u),P=a(r(),j,M),F=o(r(),j,M),I=L([o(r(),S,P),o(r(),S,F),a(r(),S,P),a(r(),S,F)],s,c,u);return I.push(I[0]),m.addRing(I),v}function L(e,t,n,r){return e.map(e=>ie(e,t,n,r))}function te(e,t){let{farDistance:n,objectId:r,nearDistance:i,cameraHeight:a}=e,o=E(t.y,t.spatialReference),s=new l({center:t.clone(),radius:n*o});if(s.imageID=r,i){let e=new l({center:t.clone(),radius:i*o});s.addRing(e.rings[0])}let c=t.clone();c.z=(t.z??a)-n*o;let u=v(c,{size:2*n*o});return u.imageID=r,{polygon:s,frustum:u}}function ne(e,t){return e.contains(t)}function R({cameraHeading:e,cameraPitch:t,cameraRoll:r,farDistance:a,horizontalFieldOfView:o,nearDistance:s,vectorToPoint:l,verticalFieldOfView:u}){let d=i(n(),D([e,t,r])),f=O([1,0,0],d),p=O([0,1,0],d),m=O([0,0,-1],d),h=c(l,f),g=c(l,p),_=c(l,m);if(_<=0||_<s||_>a)return!1;let v=_*Math.tan(o*N/2),y=_*Math.tan(u*N/2);return Math.abs(h)<=v&&Math.abs(g)<=y}function z(e,t){let n=T(e,e.location.spatialReference);if(t.z==null)return!1;let{horizontalFieldOfView:r,location:i,nearDistance:a,verticalFieldOfView:o}=n,c=V(n);if(r==null||o==null||!Number.isFinite(a)||a<0||!Number.isFinite(c)||c<=0)return!1;let l=E(i.y,i.spatialReference),u=i.z??0,d=[(t.x-i.x)/l,(t.y-i.y)/l,t.z-u];if(n.isSpherical){let e=s(d);return a<=e&&e<=c}let f={vectorToPoint:d,verticalFieldOfView:o,nearDistance:a,farDistance:c};if(r>150){let e=Math.ceil(r/5),t=r/e;return I(e,n.cameraHeading,r).some(e=>R({...f,cameraHeading:e,cameraPitch:90,cameraRoll:0,horizontalFieldOfView:t}))}return R({...f,cameraHeading:n.cameraHeading,cameraPitch:n.cameraPitch,cameraRoll:n.cameraRoll??0,horizontalFieldOfView:r})}function B(e,t){return Math.sign(e)!==Math.sign(t)}function re(e,t,n){let{cameraHeight:i,cameraPitch:s,farDistance:c,location:l,horizontalFieldOfView:d,nearDistance:f,verticalFieldOfView:p}=e,m=l.z??i,h=m-i,g=H(l),_=!(s+p/2>=90),v=2*Math.tan(p*N/2)*f,b=2*Math.tan(d*N/2)*f,x=2*Math.tan(p*N/2)*c,S=2*Math.tan(d*N/2)*c,C,w=[0,0,-1];w=O(w,t),C=k([l.x,l.y,m],w,c,g),_&&(C[2]=h);let T=k([l.x,l.y,m],w,f,g),E=[0,1,0];E=O(E,t);let D=[1,0,0];D=O(D,t);let j=[],M=[];f?(M=[{faces:[4,0,3,4,7,3]},{faces:[5,1,2,5,6,2]},{faces:[4,0,1,4,5,1]},{faces:[6,2,3,6,7,3]}],j=j.concat(o(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(o(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,a(r(),A(E,v/2,g),A(D,b/2,g)))),j=j.concat(a(r(),T,o(r(),A(E,v/2,g),A(D,b/2,g))))):(j=[l.x,l.y,m],M=[{faces:[0,1,2,0,2,3,0,3,4,0,4,1]}]),j=j.concat(o(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(o(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,a(r(),A(E,x/2,g),A(D,S/2,g)))),j=j.concat(a(r(),C,o(r(),A(E,x/2,g),A(D,S/2,g))));let P=new y({position:Float64Array.from(j)});return new u({vertexAttributes:P,components:M,spatialReference:l.spatialReference})}function ie(e,t,n,i){{let o=n.z??t,s=o-t,c=Math.sqrt((e[2]-o)**2+(Math.sqrt((e[0]-n.x)**2+(e[1]-n.y)**2)/i)**2)*i,l=A(a(r(),[e[0],e[1],e[2]],[n.x,n.y,o]),1/c,1/i),u=t/(o-e[2]),d={x:(1-u)*n.x+u*e[0],y:(1-u)*n.y+u*e[1],z:(1-u)*o+u*e[2]},f=Math.sqrt((d.z-o)**2+(Math.sqrt((d.x-n.x)**2+(d.y-n.y)**2)/i)**2)*i,p=A(a(r(),[d.x,d.y,d.z],[n.x,n.y,o]),1/f,1/i);return B(l[0],p[0])&&B(l[1],p[1])&&B(l[2],p[2])||e[2]>=s?[e[0],e[1],s]:[d.x,d.y,d.z]}}function ae(e){let{spatialReference:t,x:n,y:r}=e.geometry,{cameraHeading:i,cameraPitch:a,farDistance:o,nearDistance:s}=e,c=H(e.geometry),l=new f({spatialReference:t}),u=Math.abs(1.44*o*c),d=Math.abs(1.44*s*c);(a<20||i==null)&&(d=u);let p=[];return p[0]={x:n+u*Math.sin((i-45)*N),y:r+u*Math.cos((i-45)*N)},p[1]={x:n+u*Math.sin((i+45)*N),y:r+u*Math.cos((i+45)*N)},p[2]={x:n+d*Math.sin((i+135)*N),y:r+d*Math.cos((i+135)*N)},p[3]={x:n+d*Math.sin((i+225)*N),y:r+d*Math.cos((i+225)*N)},l.addRing([[p[0].x,p[0].y,0],[p[1].x,p[1].y,0],[p[2].x,p[2].y,0],[p[3].x,p[3].y,0],[p[0].x,p[0].y,0]]),l}function V(t){let{cameraHeight:n,cameraPitch:r,farDistance:i,location:a,verticalFieldOfView:o}=t;return i??(r+o/2>=90?20/w(a.spatialReference):n/Math.cos(e(r)))}function H(e){return e&&C(e?.spatialReference)?1/Math.cos(Math.PI/2-2*Math.atan(Math.exp(-1*e.y/g.radius))):1}function U(e,t){let n=1+t/100;if(e.declaredClass===`esri.geometry.Circle`){let{radius:t,center:r}=e,i=t*n,a=new l({radius:i,center:r});return e.rings.length>1&&a.addRing(e.rings[1]),a}if(e.declaredClass===`esri.geometry.Polygon`){let t=new f({spatialReference:e.spatialReference}),i=h(e);if(i){let o=[];for(let t=0;t<e.rings[0].length;t++){let s=Math.sqrt((i.x-e.rings[0][t][0])**2+(i.y-e.rings[0][t][1])**2),c=A(a(r(),[e.rings[0][t][0],e.rings[0][t][1],0],[i.x,i.y,0]),1/s,1),l=k([i.x,i.y,0],c,s*n,1);o.push({x:l[0],y:l[1]})}t.addRing([[o[0].x,o[0].y,0],[o[1].x,o[1].y,0],[o[2].x,o[2].y,0],[o[3].x,o[3].y,0],[o[0].x,o[0].y,0]])}return t}return e}async function W(e,t,n){let{cameraHeight:r,cameraLocation:i,cameraPitch:a,frustumVertices:o,horizontalFieldOfView:s,imageHeight:c,imageWidth:l,inSRS:u,outSRS:d,verticalFieldOfView:f,cameraRoll:p,options:h}=n,g=new m(u),_=new m(d),v=j(s,f,p??0),y=o.length>15;return a+v.vfov/2>=90?await se(o,e,l,c,g,_,y,h):await G(o,e,t,i,r,y,g,_,h)}async function G(e,t,n,r,i,a,o,s,c){let l=K(e,t,n,r,i);if(!l)return;let{farPlane:d,nearPlane:f}=l,p=await J([...f?.vertexPositions??e.slice(0,3),...d.vertexPositions],o,s,c),m=$(p);return new u({vertexAttributes:new y({position:p}),components:Q(a?X(m,!0):Z(m,!0)),spatialReference:s})}function K(e,t,n,r,i){let a=Y(e),o=Y(e,`near`);if(!a)return;let s=t.length;for(let e=0;e<s;e++){let t=Array.from(n[e]),s=[t[0]-r[0],t[1]-r[1],t[2]-(r[2]??i)];oe(r,s,e,o),q(r,s,e,a)}return{farPlane:a,nearPlane:o}}function q(e,t,n,i){let{coefficients:a,vertexPositions:o}=i,s=r();S(a,{origin:e,direction:t},s)&&o.splice(n*3,3,...s)}function oe(e,t,n,i){if(!i)return;let a=r();S(i.coefficients,{origin:e,direction:t},a)&&i.vertexPositions.splice(n*3,3,...a)}async function se(e,t,n,r,i,a,o,s){let c=o?[]:[e[0],e[1],e[2]],l,d=[];for(let i of t)o?(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[0],e[1],e[2]],[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]]]),c=c.concat(...l),l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[12],e[13],e[14]],[e[15],e[16],e[17]],[e[18],e[19],e[20]],[e[21],e[22],e[23]]]),d=d.concat(...l)):(l=M([i[0],i[1],1],[[0,0,1],[n,0,1],[n,r,1],[0,r,1]],[[e[3],e[4],e[5]],[e[6],e[7],e[8]],[e[9],e[10],e[11]],[e[12],e[13],e[14]]]),c=c.concat(...l));c=c.concat(d);let f=await J(c,i,a,s),p=$(f);return new u({vertexAttributes:new y({position:f}),components:Q(o?X(p,!0):Z(p,!0)),spatialReference:a})}async function J(e,n,r,i){if(n.equals(r))return e;let a=e.reduce((e,t,n)=>{let r=Math.floor(n/3);return e[r]||(e[r]=[]),e[r].push(t),e},[]),{points:o}=await p(new d({points:a,spatialReference:n}),r,i);return t(i),o.flat()}function Y(e,t=`far`){let n=b(),r;switch(t){case`far`:if(r=Array.from(e.length===15?e.slice(3):e.slice(12)),x(n,r,!1))return{coefficients:n,vertexPositions:r};break;case`near`:return r=Array.from(e.slice(0,12)),e.length===15||!x(n,r,!1)?void 0:{coefficients:n,vertexPositions:r}}}const X=(e,t=!1)=>{if(t&&e-2<=4||e<=4||e%2!=0)throw Error(`Invalid number of vertices`);let n=[],r=e/2,i=Math.round((t?e-2:e)/2);for(let a=0;a<i;a++){let i=a+r,o=t?i+1:i,s=o%e,c=(t?i:o+1)%e;n.push({faces:new Uint32Array([a,c,s,a,a+1,s])})}return n};function Z(e,t=!1){if(e<3||t&&e-1<3)throw Error(`Invalid number of vertices`);let n=[],r=t?e-2:e-1;for(let e=0;e<r;e++)n.push({faces:new Uint32Array([0,e+1,e+2])});return n}const Q=e=>e.map(e=>new _(e)),$=e=>e.length/3;export{z as checkIfFrustumContainsSelectedPoint,ne as checkIfPolygonContainsSelectedPoint,ae as computePolygonForInspection,P as createCoveragePolygon,L as limitZToGround,J as projectVertices,U as resizePolygon,W as updateFrustum};
@@ -20,11 +20,20 @@ export interface LabelClassProperties extends Partial<Pick<LabelClass, "allowOve
20
20
  * property. If `true`, then [labelExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelExpression) or labelExpressionInfo can be used.
21
21
  * If `false`, then only labelExpression can be used.
22
22
  *
23
+ * This property supports [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html) if
24
+ * the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it. See the [Labeling guide](https://developers.arcgis.com/javascript/latest/labeling/#formatting-tags)
25
+ * for more details.
26
+ *
23
27
  * @see [Arcade Labeling Profile](https://developers.arcgis.com/javascript/latest/arcade/#labeling)
24
28
  * @example
25
29
  * // For Spokane County, WA, label will display: "Spokane County, Washington"
26
30
  * labelClass.labelExpressionInfo = {
27
- * expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME"
31
+ * expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME",
32
+ * };
33
+ * @example
34
+ * // For Spokane County, WA, label will display: "Spokane County, Washington" where "Washington" is bold and underlined
35
+ * labelClass.labelExpressionInfo = {
36
+ * expression: "return `${$feature.COUNTY_NAME} County, <BOL><UND>${$feature.STATE_NAME}</UND></BOL>`",
28
37
  * };
29
38
  */
30
39
  labelExpressionInfo?: LabelExpressionInfoProperties | null;
@@ -230,11 +239,20 @@ export default class LabelClass extends JSONSupport {
230
239
  * property. If `true`, then [labelExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelExpression) or labelExpressionInfo can be used.
231
240
  * If `false`, then only labelExpression can be used.
232
241
  *
242
+ * This property supports [formatting tags](https://doc.esri.com/en/arcgis-pro/latest/help/mapping/text/text-formatting-tags.html) if
243
+ * the associated [Font.family](https://developers.arcgis.com/javascript/latest/references/core/symbols/Font/#family) supports it. See the [Labeling guide](https://developers.arcgis.com/javascript/latest/labeling/#formatting-tags)
244
+ * for more details.
245
+ *
233
246
  * @see [Arcade Labeling Profile](https://developers.arcgis.com/javascript/latest/arcade/#labeling)
234
247
  * @example
235
248
  * // For Spokane County, WA, label will display: "Spokane County, Washington"
236
249
  * labelClass.labelExpressionInfo = {
237
- * expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME"
250
+ * expression: "$feature.COUNTY_NAME + ' County, ' + $feature.STATE_NAME",
251
+ * };
252
+ * @example
253
+ * // For Spokane County, WA, label will display: "Spokane County, Washington" where "Washington" is bold and underlined
254
+ * labelClass.labelExpressionInfo = {
255
+ * expression: "return `${$feature.COUNTY_NAME} County, <BOL><UND>${$feature.STATE_NAME}</UND></BOL>`",
238
256
  * };
239
257
  */
240
258
  get labelExpressionInfo(): LabelExpressionInfo | null | undefined;
@@ -16,6 +16,7 @@ import type OrderByInfo from "./OrderByInfo.js";
16
16
  import type Relationship from "./Relationship.js";
17
17
  import type DynamicDataLayer from "../../rest/layerSources/DynamicDataLayer.js";
18
18
  import type DynamicMapLayer from "../../rest/layerSources/DynamicMapLayer.js";
19
+ import type DynamicWorkspaceLayer from "../../rest/layerSources/DynamicWorkspaceLayer.js";
19
20
  import type AttachmentInfo from "../../rest/query/support/AttachmentInfo.js";
20
21
  import type FeatureSet from "../../rest/support/FeatureSet.js";
21
22
  import type Query from "../../rest/support/Query.js";
@@ -46,6 +47,7 @@ import type { DotDensityRendererProperties } from "../../renderers/DotDensityRen
46
47
  import type { UniqueValueRendererProperties } from "../../renderers/UniqueValueRenderer.js";
47
48
  import type { ClassBreaksRendererProperties } from "../../renderers/ClassBreaksRenderer.js";
48
49
  import type { SimpleRendererProperties } from "../../renderers/SimpleRenderer.js";
50
+ import type { DynamicWorkspaceLayerProperties } from "../../rest/layerSources/DynamicWorkspaceLayer.js";
49
51
  import type { DynamicDataLayerProperties } from "../../rest/layerSources/DynamicDataLayer.js";
50
52
  import type { DynamicMapLayerProperties } from "../../rest/layerSources/DynamicMapLayer.js";
51
53
 
@@ -202,11 +204,17 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
202
204
  /**
203
205
  * An object that allows you to create a dynamic layer with data
204
206
  * either from the map service sublayers or data from a registered workspace.
205
- * See [DynamicMapLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/)
206
- * for creating dynamic layers from map service layers for on the fly
207
- * rendering, labeling, and filtering (definition expressions). To create
208
- * dynamic layers from other sources in registered workspaces such as tables and table joins,
209
- * see [DynamicDataLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/).
207
+ *
208
+ * Use [DynamicMapLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) for creating dynamic layers from
209
+ * map service layers for on the fly rendering, labeling, and filtering (definition expressions).
210
+ *
211
+ * Use [DynamicDataLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/) for creating dynamic layers from other sources in registered
212
+ * workspaces such as tables and table joins.
213
+ *
214
+ * Use [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) for creating dynamic layers from pre-authored Layer Files (.lyrx) in registered workspaces.
215
+ *
216
+ * > [!WARNING]
217
+ * > Sublayers with a [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) source cannot be [saved](https://developers.arcgis.com/javascript/latest/references/core/WebMap/#save) to web maps.
210
218
  *
211
219
  * @example
212
220
  * // Creates two sublayers that point to the same map service layer.
@@ -237,8 +245,21 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
237
245
  * }
238
246
  * }]
239
247
  * });
248
+ * @example
249
+ * ```js
250
+ * const layer = new MapImageLayer({
251
+ * url: "<your-map-service-url>",
252
+ * sublayers: [{
253
+ * source: {
254
+ * type: "workspace-layer",
255
+ * workspaceId: "lyrx_folder",
256
+ * layerId: "WorldCities.lyrx"
257
+ * }
258
+ * }]
259
+ * });
260
+ * ```
240
261
  */
241
- source?: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" });
262
+ source?: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" }) | (DynamicWorkspaceLayerProperties & { type: "workspace-layer" });
242
263
  /**
243
264
  * If a sublayer contains sublayers, this
244
265
  * property is a [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) of [Sublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/)
@@ -287,8 +308,9 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
287
308
  * ## Dynamic layers
288
309
  *
289
310
  * Sublayers may be rendered on the fly as dynamic layers. Dynamic layers are created using
290
- * the [source](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#source) property of the sublayer. There are two types of dynamic layers:
291
- * [dynamic map layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) and [dynamic data layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/).
311
+ * the [source](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#source) property of the sublayer. There are three types of dynamic layers:
312
+ * [dynamic map layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/), [dynamic data layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/), and
313
+ * [dynamic workspace layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/).
292
314
  *
293
315
  * [Dynamic map layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) allow you to override sublayers in the map service with new renderers,
294
316
  * definition expressions, opacity, scale visibility, etc. Multiple dynamic map layers may exist
@@ -301,6 +323,9 @@ export interface SublayerProperties extends LoadableMixinProperties, Identifiabl
301
323
  * published and configured with the ArcGIS Server Manager. Data from tables may be joined to other
302
324
  * tables or dynamic map layers.
303
325
  *
326
+ * [Dynamic workspace layers](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) let you create sublayers from pre-authored
327
+ * ArcGIS Pro layer files (`.lyrx`) in registered workspaces.
328
+ *
304
329
  * @since 4.1
305
330
  * @see [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/)
306
331
  * @see [Sample - MapImageLayer: toggle sublayer visibility](https://developers.arcgis.com/javascript/latest/sample-code/layers-mapimagelayer-sublayers/)
@@ -463,7 +488,7 @@ export default class Sublayer extends SublayerSuperclass {
463
488
  * @see [loadStatus](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#loadStatus)
464
489
  * @example
465
490
  * // print the first Sublayer's first field to the console
466
- * console.log(mapImageLayer.sublayers.items[0].fields[0]);
491
+ * console.log(mapImageLayer.sublayers.at(0).fields[0]);
467
492
  *
468
493
  * // OUTPUT:
469
494
  * alias: "OBJECTID"
@@ -487,7 +512,7 @@ export default class Sublayer extends SublayerSuperclass {
487
512
  * @see [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/#fields)
488
513
  * @example
489
514
  * // lookup a field by name, name is case-insensitive
490
- * const fieldsIndex = mapImageLayer.sublayers.items[0].fieldsIndex.get("OBjecTID");
515
+ * const fieldsIndex = mapImageLayer.sublayers.at(0).fieldsIndex.get("OBjecTID");
491
516
  *
492
517
  * // if there's a field by that name, print it to the console
493
518
  * if (fieldsIndex) {
@@ -839,11 +864,17 @@ export default class Sublayer extends SublayerSuperclass {
839
864
  /**
840
865
  * An object that allows you to create a dynamic layer with data
841
866
  * either from the map service sublayers or data from a registered workspace.
842
- * See [DynamicMapLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/)
843
- * for creating dynamic layers from map service layers for on the fly
844
- * rendering, labeling, and filtering (definition expressions). To create
845
- * dynamic layers from other sources in registered workspaces such as tables and table joins,
846
- * see [DynamicDataLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/).
867
+ *
868
+ * Use [DynamicMapLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicMapLayer/) for creating dynamic layers from
869
+ * map service layers for on the fly rendering, labeling, and filtering (definition expressions).
870
+ *
871
+ * Use [DynamicDataLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicDataLayer/) for creating dynamic layers from other sources in registered
872
+ * workspaces such as tables and table joins.
873
+ *
874
+ * Use [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) for creating dynamic layers from pre-authored Layer Files (.lyrx) in registered workspaces.
875
+ *
876
+ * > [!WARNING]
877
+ * > Sublayers with a [DynamicWorkspaceLayer](https://developers.arcgis.com/javascript/latest/references/core/rest/layerSources/DynamicWorkspaceLayer/) source cannot be [saved](https://developers.arcgis.com/javascript/latest/references/core/WebMap/#save) to web maps.
847
878
  *
848
879
  * @example
849
880
  * // Creates two sublayers that point to the same map service layer.
@@ -874,9 +905,22 @@ export default class Sublayer extends SublayerSuperclass {
874
905
  * }
875
906
  * }]
876
907
  * });
908
+ * @example
909
+ * ```js
910
+ * const layer = new MapImageLayer({
911
+ * url: "<your-map-service-url>",
912
+ * sublayers: [{
913
+ * source: {
914
+ * type: "workspace-layer",
915
+ * workspaceId: "lyrx_folder",
916
+ * layerId: "WorldCities.lyrx"
917
+ * }
918
+ * }]
919
+ * });
920
+ * ```
877
921
  */
878
- get source(): DynamicMapLayer | DynamicDataLayer;
879
- set source(value: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" }));
922
+ get source(): DynamicMapLayer | DynamicDataLayer | DynamicWorkspaceLayer;
923
+ set source(value: (DynamicMapLayerProperties & { type: "map-layer" }) | (DynamicDataLayerProperties & { type: "data-layer" }) | (DynamicWorkspaceLayerProperties & { type: "workspace-layer" }));
880
924
  /**
881
925
  * The [map service's metadata JSON](https://developers.arcgis.com/rest/services-reference/map-service.htm)
882
926
  * exposed by the ArcGIS REST API. While most commonly used properties