@arcgis/core 5.2.0-next.120 → 5.2.0-next.121

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 (348) hide show
  1. package/arcade/containerUtils.js +1 -1
  2. package/arcade/functions/feature.js +1 -1
  3. package/arcade/functions/featuresetstring.js +1 -1
  4. package/arcade/languageUtils.js +1 -1
  5. package/arcgisGlobal.d.ts +7 -0
  6. package/assets/components/assets/icon/addCellAbove16.json +1 -0
  7. package/assets/components/assets/icon/addCellAbove24.json +1 -0
  8. package/assets/components/assets/icon/addCellAbove32.json +1 -0
  9. package/assets/components/assets/icon/addCellBelow16.json +1 -0
  10. package/assets/components/assets/icon/addCellBelow24.json +1 -0
  11. package/assets/components/assets/icon/addCellBelow32.json +1 -0
  12. package/assets/components/assets/icon/linkedChart16.json +1 -0
  13. package/assets/components/assets/icon/linkedChart24.json +1 -0
  14. package/assets/components/assets/icon/linkedChart32.json +1 -0
  15. package/assets/components/assets/icon/polygonFromFeature16.json +1 -0
  16. package/assets/components/assets/icon/polygonFromFeature24.json +1 -0
  17. package/assets/components/assets/icon/polygonFromFeature32.json +1 -0
  18. package/assets/esri/core/workers/RemoteClient.js +1 -1
  19. package/assets/esri/core/workers/chunks/015cb790262a59857c5f.js +1 -0
  20. package/assets/esri/core/workers/chunks/025da54eef112d7e8f66.js +1 -0
  21. package/assets/esri/core/workers/chunks/033debcbf6b3683dc4fe.js +2 -0
  22. package/assets/esri/core/workers/chunks/064445e6f9512817ac87.js +2 -0
  23. package/assets/esri/core/workers/chunks/{304462b049116f59accc.js → 09676cfa99b90fe0cc63.js} +1 -1
  24. package/assets/esri/core/workers/chunks/0aadee0437fa061e4ff5.js +1 -0
  25. package/assets/esri/core/workers/chunks/{b0058619e0363002ad86.js → 0e9f54d7f158195bd203.js} +1 -1
  26. package/assets/esri/core/workers/chunks/1086f190f94c715bbfe4.js +1 -0
  27. package/assets/esri/core/workers/chunks/1846296be959e28c42bb.js +1 -0
  28. package/assets/esri/core/workers/chunks/{ea9e770efc85594e4dd2.js → 216d8cb86548e92a8196.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{d629708bf23da24ee523.js → 298f234f11a10c5120a2.js} +1 -1
  30. package/assets/esri/core/workers/chunks/29ae19206bbeb480be0f.js +1 -0
  31. package/assets/esri/core/workers/chunks/{dc1944a7601b518a9c48.js → 2ca49fb4590cc34a02bd.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{f890359d972cce54459e.js → 2f829321bfbd3bacd64f.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{7232fc11b23777b6be94.js → 369012c032ea6882607c.js} +1 -1
  34. package/assets/esri/core/workers/chunks/39c5e0f6262f69a62c66.js +1 -0
  35. package/assets/esri/core/workers/chunks/{9f760dc4492a03e0504c.js → 45d87af48a21644590c2.js} +1 -1
  36. package/assets/esri/core/workers/chunks/463d69f596d1d34ef275.js +2 -0
  37. package/assets/esri/core/workers/chunks/49affbed22e201f7c32b.js +1 -0
  38. package/assets/esri/core/workers/chunks/4adad3312caa24af98ac.js +1 -0
  39. package/assets/esri/core/workers/chunks/{8f0ecf4d06ec7b67d4ed.js → 52744dfd430cd0c0edfb.js} +1 -1
  40. package/assets/esri/core/workers/chunks/58a17fb3c0dd07c63d57.js +2 -0
  41. package/assets/esri/core/workers/chunks/5993db944b9e7825e0bc.js +1 -0
  42. package/assets/esri/core/workers/chunks/{090c9c2dbf92f2cac0b8.js → 770ca70d363184e39d60.js} +1 -1
  43. package/assets/esri/core/workers/chunks/83c7c4218bc6ba2f16ee.js +1 -0
  44. package/assets/esri/core/workers/chunks/{cfd8317ecd2e63af7c40.js → 8a103b6e9534516421e2.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{49e8ff5ed079a9e3be4b.js → 91a51d959ee5c6123c46.js} +1 -1
  46. package/assets/esri/core/workers/chunks/92f35b2c3c5f13778308.js +1 -0
  47. package/assets/esri/core/workers/chunks/97cd4145c016cf379120.js +1 -0
  48. package/assets/esri/core/workers/chunks/99ebc99e8d1bca105b5e.js +1 -0
  49. package/assets/esri/core/workers/chunks/{e18b8646c7378213b618.js → 9b3813e39992b1b99941.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{32fc7d1db4b311f6b880.js → 9e5b30b907102bc0c201.js} +1 -1
  51. package/assets/esri/core/workers/chunks/a005efcde3ca9def4e6b.js +1 -0
  52. package/assets/esri/core/workers/chunks/a3c1a5a5c5cbf27b376d.js +1 -0
  53. package/assets/esri/core/workers/chunks/a70c59129ea808857d07.js +1 -0
  54. package/assets/esri/core/workers/chunks/b5b30c8447a0f967fa79.js +1 -0
  55. package/assets/esri/core/workers/chunks/bb5ed2a796a45c41b0b4.js +1 -0
  56. package/assets/esri/core/workers/chunks/bcb06a0643b4c83535ee.js +1 -0
  57. package/assets/esri/core/workers/chunks/{066b7f6866d602f963e0.js → c3008b20cb5fd38bd900.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{22e85819e23202a8ba90.js → c39ebd8d469f1e8bb61e.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{7f2ac03efaa4a4898ba2.js → c3b96d1d43afccd23e45.js} +2 -2
  60. package/assets/esri/core/workers/chunks/{cb983f65995e57fff7a1.js → c44cbe04efddbbbaec13.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{8ce14dd209462f88b163.js → c70a32ac0fa49f4493ca.js} +1 -1
  62. package/assets/esri/core/workers/chunks/ce08e3369641da0d7a27.js +2 -0
  63. package/assets/esri/core/workers/chunks/d1b5be1aeab16d36d4b1.js +1 -0
  64. package/assets/esri/core/workers/chunks/{da6583e8d88441a1c02a.js → d38252956c3d9e2168f7.js} +1 -1
  65. package/assets/esri/core/workers/chunks/{1742dbc6a827cfda471b.js → d3d48401462ef3bf0ad9.js} +1 -1
  66. package/assets/esri/core/workers/chunks/d9b761104ab6e4acaf91.js +1 -0
  67. package/assets/esri/core/workers/chunks/{723478607badcde5706b.js → d9d5f50af047ee7af129.js} +87 -86
  68. package/assets/esri/core/workers/chunks/{354912041363502c6a89.js → da161f8cbe1cfc5fcf7c.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{862e1acd80c4e43831dc.js → dc923e50958b68a50014.js} +1 -1
  70. package/assets/esri/core/workers/chunks/e86f83a6514a35255f64.js +1 -0
  71. package/assets/esri/core/workers/chunks/ea49721fdd2172d1c799.js +1 -0
  72. package/assets/esri/core/workers/chunks/{98a5327fd96d9542b39f.js → f90cad9f007a11154c0d.js} +1 -1
  73. package/assets/esri/core/workers/chunks/{f18ee2eaa96d103627a6.js → fa3f824c874f29d24953.js} +1 -1
  74. package/assets/esri/core/workers/chunks/fbb390c0d92d1536fce3.js +1 -0
  75. package/assets/esri/core/workers/chunks/fbc5f275c4e5e6bfffaa.js +1 -0
  76. package/assets/esri/core/workers/chunks/{6ab7bb3834841834f839.js → fd5e61cb6f936eadcfe3.js} +1 -1
  77. package/assets/esri/themes/dark/main.css +1 -1
  78. package/assets/esri/themes/light/main.css +1 -1
  79. package/assets/esri/themes/light/view.css +1 -1
  80. package/basemaps/BasemapCollection.d.ts +148 -0
  81. package/basemaps/BasemapCollection.js +2 -0
  82. package/basemaps/BasemapsSource.d.ts +39 -0
  83. package/basemaps/BasemapsSource.js +2 -0
  84. package/basemaps/LocalBasemapsSource.d.ts +55 -0
  85. package/basemaps/LocalBasemapsSource.js +2 -0
  86. package/basemaps/PortalBasemapsSource.d.ts +98 -0
  87. package/basemaps/PortalBasemapsSource.js +2 -0
  88. package/basemaps/support/BasemapItem.d.ts +74 -0
  89. package/basemaps/support/BasemapItem.js +2 -0
  90. package/basemaps/support/basemapCompatibilityUtils.js +2 -0
  91. package/basemaps/types.d.ts +42 -0
  92. package/chunks/CheckerBoard.glsl.js +1 -1
  93. package/chunks/ColorMaterial.glsl.js +1 -1
  94. package/chunks/Component.glsl.js +11 -11
  95. package/chunks/DeepSky.glsl.js +1 -1
  96. package/chunks/DefaultMaterial.glsl.js +4 -4
  97. package/chunks/EdgeShader.glsl.js +1 -1
  98. package/chunks/FocusArea.glsl.js +1 -1
  99. package/chunks/GaussianSplat.glsl.js +9 -9
  100. package/chunks/HUDMaterial.glsl.js +1 -1
  101. package/chunks/ImageMaterial.glsl.js +1 -1
  102. package/chunks/LineCallout.glsl.js +1 -1
  103. package/chunks/LineMarker.glsl.js +97 -89
  104. package/chunks/NativeLine.glsl.js +1 -1
  105. package/chunks/Path.glsl.js +8 -7
  106. package/chunks/Pattern.glsl.js +1 -1
  107. package/chunks/PointRenderer.glsl.js +1 -1
  108. package/chunks/RealisticTree.glsl.js +4 -4
  109. package/chunks/RibbonLine.glsl.js +58 -56
  110. package/chunks/ShadowCastAccumulate.glsl.js +3 -3
  111. package/chunks/ShadowHighlight.glsl.js +4 -4
  112. package/chunks/ShadowHighlightBuffer.glsl.js +3 -3
  113. package/chunks/Terrain.glsl.js +12 -14
  114. package/chunks/Viewshed.glsl.js +1 -1
  115. package/chunks/Water.glsl.js +3 -3
  116. package/chunks/languageUtils.js +1 -1
  117. package/config.js +1 -1
  118. package/core/Accessor.d.ts +10 -0
  119. package/kernel.js +1 -1
  120. package/layers/CSVLayer.js +1 -1
  121. package/layers/GeoJSONLayer.d.ts +1 -1
  122. package/layers/GeoJSONLayer.js +1 -1
  123. package/layers/OGCFeatureLayer.js +1 -1
  124. package/layers/StreamLayer.js +1 -1
  125. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  126. package/layers/mixins/FeatureLayerBase.js +1 -1
  127. package/layers/support/LabelClass.d.ts +13 -4
  128. package/layers/support/LabelClass.js +1 -1
  129. package/layers/support/commonProperties.js +1 -1
  130. package/legend/ActiveLayerInfo.d.ts +130 -0
  131. package/legend/ActiveLayerInfo.js +2 -0
  132. package/legend/LegendContent.d.ts +118 -0
  133. package/legend/LegendContent.js +2 -0
  134. package/legend/support/clusterUtils.js +2 -0
  135. package/legend/support/colorRampUtils.js +2 -0
  136. package/legend/support/heatmapRampUtils.js +2 -0
  137. package/legend/support/relationshipRampUtils.js +2 -0
  138. package/legend/support/sizeRampUtils.js +2 -0
  139. package/legend/support/utils.js +2 -0
  140. package/legend/types.d.ts +403 -0
  141. package/libs/i3s/I3SModule.js +1 -1
  142. package/package.json +5 -5
  143. package/support/revision.js +1 -1
  144. package/support/userTypeGuards/isBasemapsSource.js +2 -0
  145. package/symbols/cim/CIMOperators.js +1 -1
  146. package/symbols/cim/callouts/effects/BackgroundCallout.js +2 -0
  147. package/symbols/cim/callouts/effects/BalloonCallout.js +2 -0
  148. package/symbols/cim/callouts/effects/PointSymbolCallout.js +2 -0
  149. package/symbols/cim/callouts/effects/SimpleLineCallout.js +2 -0
  150. package/symbols/cim/callouts/effects/calloutUtils.js +2 -0
  151. package/symbols/cim/cimAnalyzer.js +1 -1
  152. package/symbols/cim/utils.js +1 -1
  153. package/symbols/support/typeUtils.js +1 -1
  154. package/views/2d/LabelManager.js +1 -1
  155. package/views/2d/engine/AFeatureContainer.js +1 -1
  156. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  157. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  158. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  159. package/views/2d/engine/webgl/GlyphWorker.js +1 -1
  160. package/views/2d/engine/webgl/TileCpuState.js +1 -1
  161. package/views/2d/engine/webgl/TileGpuState.js +1 -1
  162. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  163. package/views/2d/engine/webgl/collisions/LabelStore.js +2 -0
  164. package/views/2d/engine/webgl/cpuMapped/CpuBuffer.js +1 -1
  165. package/views/2d/engine/webgl/cpuMapped/CpuMeshData.js +1 -1
  166. package/views/2d/engine/webgl/cpuMapped/GpuMeshState.js +1 -1
  167. package/views/2d/engine/webgl/definitions.js +1 -1
  168. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  169. package/views/2d/engine/webgl/mesh/MultiTileMeshData.js +1 -1
  170. package/views/2d/engine/webgl/mesh/factories/CalloutMeshWriterCoordinator.js +2 -0
  171. package/views/2d/engine/webgl/mesh/factories/FeatureMeshFactory.js +1 -1
  172. package/views/2d/engine/webgl/mesh/factories/MeshWriterGroupCoordinator.js +2 -0
  173. package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
  174. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  175. package/views/2d/engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js +1 -1
  176. package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
  177. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueInstance.js +1 -1
  178. package/views/2d/engine/webgl/shaderGraph/techniques/TestDisplayObject.js +1 -1
  179. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  180. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  181. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  182. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  183. package/views/2d/engine/webgl/shaderGraph/techniques/createGraphicSymbolMeshSchemas.js +1 -1
  184. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  185. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  186. package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
  187. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
  188. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js +1 -1
  189. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js +1 -1
  190. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  191. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  192. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  193. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  194. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  195. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  196. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +2 -0
  197. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  198. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterReferences.js +2 -0
  199. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterVertexPack.js +1 -1
  200. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/dataViewUtils.js +1 -1
  201. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
  202. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  203. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  204. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  205. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  206. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  207. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  208. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/constants.js +1 -1
  209. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  210. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  211. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  212. package/views/2d/engine/webgl/util/DimensionMatcher.js +1 -1
  213. package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
  214. package/views/2d/engine/webgl/util/LabelMatcher.js +1 -1
  215. package/views/2d/engine/webgl/util/MapMatcher.js +1 -1
  216. package/views/2d/engine/webgl/util/Matcher.js +1 -1
  217. package/views/2d/engine/webgl/util/MatcherContext.js +1 -1
  218. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  219. package/views/2d/layers/MediaLayerView2D.js +1 -1
  220. package/views/2d/layers/TileLayerView2D.js +1 -1
  221. package/views/2d/layers/features/FeatureContainer.js +1 -1
  222. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  223. package/views/2d/layers/features/RenderState.js +1 -1
  224. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  225. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  226. package/views/2d/layers/features/support/GraphicsReader.js +1 -1
  227. package/views/2d/layers/graphics/AGraphicContainer.js +1 -1
  228. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  229. package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
  230. package/views/2d/layers/support/annodime/PrivateMatcherGeometryOverrideEffect.js +1 -1
  231. package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
  232. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  233. package/views/2d/layers/support/annodime/debugUtils.js +1 -1
  234. package/views/2d/layers/support/annodime/virtualFields.js +1 -1
  235. package/views/3d/input/SceneInputManager.js +1 -1
  236. package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +2 -0
  237. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  238. package/views/3d/layers/SceneLayerWorker.js +1 -1
  239. package/views/3d/support/MemoryController.js +1 -1
  240. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  241. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  242. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +1 -3
  243. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +1 -1
  244. package/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js +1 -1
  245. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +8 -8
  246. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +6 -6
  247. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +1 -1
  248. package/views/3d/webgl-engine/core/shaderLibrary/forwardLinearDepthToReadShadow.glsl.js +4 -0
  249. package/views/3d/webgl-engine/core/shaderLibrary/{ForwardLinearDepthToWriteShadowMap.glsl.js → forwardLinearDepthToWriteShadow.glsl.js} +5 -5
  250. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  251. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +3 -4
  252. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js +2 -2
  253. package/views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js +5 -0
  254. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +24 -0
  255. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
  256. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  257. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  258. package/views/3d/webgl-engine/effects/focusArea/FocusArea.js +1 -1
  259. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  260. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
  261. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
  262. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  263. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowAccumulator.js +1 -1
  264. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
  265. package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
  266. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  267. package/views/3d/webgl-engine/materials/DrawParameters.js +1 -1
  268. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  269. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  270. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  271. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  272. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  273. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  274. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  275. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +1 -1
  276. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  277. package/views/3d/webgl-engine/shaders/LineTechniqueConfiguration.js +1 -1
  278. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  279. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  280. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  281. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +1 -1
  282. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  283. package/views/3d/webgl-engine/shaders/{AnimatedLine.glsl.js → animatedAlpha.glsl.js} +11 -17
  284. package/views/ToolViewManager.js +1 -1
  285. package/views/VideoView.js +1 -1
  286. package/widgets/BasemapGallery/BasemapGalleryViewModel.d.ts +3 -0
  287. package/widgets/BasemapGallery/support/BasemapGalleryItem.d.ts +3 -0
  288. package/widgets/BasemapGallery/support/LocalBasemapsSource.d.ts +2 -0
  289. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -0
  290. package/widgets/BasemapGallery/types.d.ts +6 -1
  291. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +2 -0
  292. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  293. package/widgets/Editor/EditorViewModel.d.ts +2 -1
  294. package/widgets/Editor/EditorViewModel.js +1 -1
  295. package/widgets/Editor/legacy/CreateFeaturesWorkflow.js +1 -1
  296. package/widgets/Editor.d.ts +2 -1
  297. package/widgets/Editor.js +1 -1
  298. package/widgets/HistogramRangeSlider/HistogramRangeSliderViewModel.d.ts +1 -0
  299. package/widgets/HistogramRangeSlider/HistogramRangeSliderViewModel.js +1 -1
  300. package/widgets/HistogramRangeSlider.js +1 -1
  301. package/widgets/Legend/LegendViewModel.d.ts +1 -0
  302. package/widgets/Legend/LegendViewModel.js +1 -1
  303. package/widgets/Legend/styles/card/CardView.d.ts +1 -0
  304. package/widgets/Legend/styles/card/CardView.js +1 -1
  305. package/widgets/Legend/styles/classic/ClassicView.d.ts +1 -0
  306. package/widgets/Legend/styles/classic/ClassicView.js +1 -1
  307. package/widgets/Legend/support/ActiveLayerInfo.d.ts +2 -0
  308. package/widgets/Legend.js +1 -1
  309. package/assets/esri/core/workers/chunks/03918a862455191a8910.js +0 -1
  310. package/assets/esri/core/workers/chunks/1630913399384030d0b9.js +0 -1
  311. package/assets/esri/core/workers/chunks/1a39335aa2dce6d564d9.js +0 -1
  312. package/assets/esri/core/workers/chunks/25bb07d3c32b16a08813.js +0 -1
  313. package/assets/esri/core/workers/chunks/25cc6d7178a52f2f46b7.js +0 -1
  314. package/assets/esri/core/workers/chunks/2e999b05ce179dd9fa08.js +0 -1
  315. package/assets/esri/core/workers/chunks/36792b8a85e88044cb49.js +0 -1
  316. package/assets/esri/core/workers/chunks/3acc1299c1382c3b034d.js +0 -1
  317. package/assets/esri/core/workers/chunks/430802108b63194b7ddd.js +0 -2
  318. package/assets/esri/core/workers/chunks/4396ef5ab3eb9e9a7df2.js +0 -1
  319. package/assets/esri/core/workers/chunks/4efe5827a5c61db3b19d.js +0 -2
  320. package/assets/esri/core/workers/chunks/5938d5f6e37f49867d5a.js +0 -1
  321. package/assets/esri/core/workers/chunks/70347d25968975126fa7.js +0 -1
  322. package/assets/esri/core/workers/chunks/8628c027198982baed7c.js +0 -1
  323. package/assets/esri/core/workers/chunks/8c521caf050a486b6548.js +0 -1
  324. package/assets/esri/core/workers/chunks/a6d4132a16c51323a38a.js +0 -1
  325. package/assets/esri/core/workers/chunks/add834f867900a7091d2.js +0 -1
  326. package/assets/esri/core/workers/chunks/b56c5883a5468b18b122.js +0 -1
  327. package/assets/esri/core/workers/chunks/b5a102cf9f4377fb9842.js +0 -1
  328. package/assets/esri/core/workers/chunks/b6409d89914030d5854a.js +0 -1
  329. package/assets/esri/core/workers/chunks/c118b88a7c4359e68d9b.js +0 -1
  330. package/assets/esri/core/workers/chunks/c5e288d57bacb8451e2d.js +0 -2
  331. package/assets/esri/core/workers/chunks/ce3fb992f6c6ae7378a3.js +0 -1
  332. package/assets/esri/core/workers/chunks/ceda1e08c9ff26248db0.js +0 -1
  333. package/assets/esri/core/workers/chunks/d5e3f8e5b8d2576d3cb3.js +0 -2
  334. package/assets/esri/core/workers/chunks/ddb5d29a8998d0a76fd4.js +0 -1
  335. package/assets/esri/core/workers/chunks/de8a3a0796bd115426c0.js +0 -1
  336. package/assets/esri/core/workers/chunks/e707534a700a2de687ca.js +0 -1
  337. package/assets/esri/core/workers/chunks/f465fb26541372fdc908.js +0 -2
  338. package/assets/esri/core/workers/chunks/f5423006fb07db7dd6ee.js +0 -1
  339. package/assets/esri/core/workers/chunks/fdad31bbe8aee68a6eaf.js +0 -1
  340. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToReadShadowMap.glsl.js +0 -4
  341. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +0 -18
  342. package/views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js +0 -4
  343. /package/assets/esri/core/workers/chunks/{430802108b63194b7ddd.js.LICENSE.txt → 033debcbf6b3683dc4fe.js.LICENSE.txt} +0 -0
  344. /package/assets/esri/core/workers/chunks/{4efe5827a5c61db3b19d.js.LICENSE.txt → 064445e6f9512817ac87.js.LICENSE.txt} +0 -0
  345. /package/assets/esri/core/workers/chunks/{c5e288d57bacb8451e2d.js.LICENSE.txt → 463d69f596d1d34ef275.js.LICENSE.txt} +0 -0
  346. /package/assets/esri/core/workers/chunks/{d5e3f8e5b8d2576d3cb3.js.LICENSE.txt → 58a17fb3c0dd07c63d57.js.LICENSE.txt} +0 -0
  347. /package/assets/esri/core/workers/chunks/{7f2ac03efaa4a4898ba2.js.LICENSE.txt → c3b96d1d43afccd23e45.js.LICENSE.txt} +0 -0
  348. /package/assets/esri/core/workers/chunks/{f465fb26541372fdc908.js.LICENSE.txt → ce08e3369641da0d7a27.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as s}from"../../../../core/compilerUtils.js";import r from"../../../../core/Error.js";import i from"../../../../core/Handles.js";import has from"../../../../core/has.js";import a from"../../../../core/Logger.js";import{onAbortOrThrow as n,throwIfAborted as o}from"../../../../core/promiseUtils.js";import{QueueProcessor as u}from"../../../../core/QueueProcessor.js";import{parseWhereClause as l}from"../../../../core/sql.js";import{getMetersPerUnitForSR as c}from"../../../../core/units.js";import p from"../../../../geometry/SpatialReference.js";import{set as d,create as f,expandWithAABB as h,expandWithRect as m,negativeInfinity as y}from"../../../../geometry/support/aaBoundingBox.js";import{copy as g,negativeInfinity as _,create as w,expandWithRect as x}from"../../../../geometry/support/aaBoundingRect.js";import{isWebMercator as F,isWGS84 as S}from"../../../../geometry/support/spatialReferenceUtils.js";import{normalizeColumnPath as I,readParquetFileAttribute as v}from"../../../parquet.js";import{convertToGeometry as R}from"../../featureConversionUtils.js";import{getFieldNamesFromStatistics as q}from"../../data/attributeSupport.js";import{getQueryResultExtent as b,getQueryBoundingRects as C,QueryEngine as E}from"../../data/QueryEngine.js";import{queryCapabilities as P}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as O}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as M}from"../../data/queryUtils.js";import{createFileProvider as j}from"../parquet/createFileProvider.js";import{readFieldStatistic as Q}from"../parquet/ParquetFileStatistics.js";import{createDrawingInfo as T}from"./clientSideDefaults.js";import{getParquetFileId as A,getParquetRowId as B,getParquetObjectId as G}from"./parquetIdUtils.js";import N from"../../../support/Field.js";import D from"../../../support/FieldsIndex.js";import{isNumericField as z}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as V}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as k,fromParquetJSONGeometryType as W,toParquetJSONGeometryType as U}from"../../../support/parquetUtils.js";import{loadParquetModule as Z}from"../../../../libs/librust-parquet/loadParquetModule.js";import{FeatureStoreQueryAdapter as J}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as L}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as H}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as X}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as Y}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const $=new J,K=4,ee="__OBJECTID",te=8e3,se=2e7,re=8,ie=2;class ae{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){o(e),await this._fill(e);const t=await ne(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,null!=t.chunk)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<re;){const t=this._getOrCreateNextStream(e);if(null==t)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){const t=this._resolvedCount>=re?re:ie;if(this._fileIndex<this._files.length&&this._streams.length<t){const t=this._files[this._fileIndex++],s=new oe(t.id,this._createFileStream(t,e));return this._streams.push(s),s}return this._getNextStream()}_getNextStream(){const e=this._streams.length;for(let t=0;t<e;t++){const s=(this._streamIndex+t)%e,r=this._streams[s];if(r.canRead)return this._streamIndex=(s+1)%e,r}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function ne(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class oe{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&0===this._readCount}async read(e){this._readCount++;try{const t=await this._stream,s=await t.next(e);return null==s?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:s}}finally{this._readCount--}}}class ue{constructor(){this._hasZ=!1,this._hasM=!1,this._queue=new u({concurrency:K,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={},this._handles=new i}async load(e){const t=e.spatialReference?p.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new r("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=e.customParameters,this._loadParameters=e,await this._updateProvider(j(e.provider,null,()=>this._customParameters));const s=await this._provider.getMetadata(),i=await k(s,{fields:e.fields?.map(e=>N.fromJSON(e)),geometryEncoding:e.geometryEncoding?V(e.geometryEncoding):null,geometryType:e.geometryType?W(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(this._hasZ=!!s?.hasZ,this._hasM=!!s?.hasM,!i.fields)throw new r("parquet:unsupported","Fields must be defined");let n;if(i.spatialReference&&i.geometryType){if(!i.spatialReference)throw new r("parquet:unsupported","SpatialReference must be defined");if(!i.spatialReference.isGeographic&&!i.spatialReference.isWebMercator)throw new r("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");i.spatialReference.isGeographic&&!i.spatialReference.isWGS84&&(a.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:i.spatialReference}),i.spatialReference=p.WGS84),n={geometry:i.geometryEncoding?{geometryType:U(i.geometryType),spatialReference:i.spatialReference.toJSON(),encoding:i.geometryEncoding.toJSON()}:null,displayOptimization:i.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=i.displayOptimization,await this._provider.updateGeometryInfo(n),this._capabilities=qe(await this._getFileStatistics(),this._hasZ,this._hasM);const o=await this._provider.getFiles();if(!o.length)return{layerDefinition:{},capabilities:qe(null,this._hasZ,this._hasM)};const u=await o[0].file;i.file=u;const{fields:l}=i;if(null==l)throw new r("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",l);l.push(new N({name:ee,type:"oid",alias:ee}));for(const r of l){const e=u.getColumnId(r.name);null!=e&&(this._indexMap[r.name]=e)}const c=new D(l.map(e=>e.toJSON()));this._fieldsIndex=c;const d=U(i.geometryType??"point");return this._metadata=X.createFeature({fieldsIndex:c.toJSON(),geometryType:d,hasZ:this._hasZ,hasM:this._hasM,featureIdInfo:{type:"object-id",fieldName:ee},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:i.spatialReference,outSpatialReference:null,attributeSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:d,featureIdInfo:{type:"object-id",fieldName:ee},hasM:this._hasM,hasZ:this._hasZ,spatialReference:i.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=s?.extent?s.extent:await this._tryDeriveParquetFullExtent(i),{capabilities:this._capabilities,layerDefinition:{fields:i.fields?.map(e=>e.toJSON()),drawingInfo:T(d),extent:this._fullExtent??void 0,geometryType:d,geometryEncoding:i.geometryEncoding?.toJSON(),displayOptimization:i.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(const{handle:e}of this._streams.values())e.remove();this._streams.clear(),this._indexMap={},this._handles.removeAll()}async reload(e){this.destroy(),await this.load(e)}set remoteClient(e){this._source=e.createInvokeProxy("")}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._loadParameters={...this._loadParameters,provider:e};const t=j(e,this._provider.getGeometryInfo(),()=>this._customParameters);await this._updateProvider(t)}async getDiagnosticsSnapshot(){const e=await this._provider.getFiles();return{files:await Promise.all(e.map(e=>e.getDiagnosticsSnapshot()))}}async getColumnIndex(e){return(await this._getFileInfoById(e.fileId)).getColumnIndex(e.rowGroupIndex,e.columnIndex)}async getOffsetIndex(e){return(await this._getFileInfoById(e.fileId)).getOffsetIndex(e.rowGroupIndex,e.columnIndex)}async queryFeatures(e,t){const s=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),be(s)||(s.resultRecordCount=s.resultRecordCount?Math.min(s.resultRecordCount,te):te,s.resultOffset=s.resultOffset??0),s.outStatistics)return this._queryStatistics(s,t);s.returnDistinctValues&&(s.returnGeometry=void 0);return(await this._enqueueQuery(s,t)).createQueryResponse()}async queryFeatureCount(e,t){const s=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),!de(s))return this._getFeatureCount();s.outFields=void 0,s.returnGeometry=void 0;return(await this._enqueueQuery(s,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const s=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),!de(s))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);s.resultRecordCount=s.resultRecordCount?Math.min(s.resultRecordCount,8e3):8e3,s.resultOffset=s.resultOffset??0,s.returnGeometry=void 0,s.outFields=void 0;return(await this._enqueueQuery(s,t)).items.map(e=>e.getObjectId())}async queryAttributeBins(e,t={}){throw new r("parquet:unsupported","queryAttributeBins not supported.")}async queryExtent(e,t){const r=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),this._fullExtent&&!de(r))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=s(this._metadata.spatialReference);r.returnGeometry=!0,r.outFields=void 0;const a=d(f(),y),n=f(),o=await this._enqueueQuery(r,t);let u=0;for(const s of o.items)s.getBounds(n)&&(h(a,n),u+=1);return{count:u,extent:b(a,i,r.outSR?s(r.outSR):i.toJSON(),i,!1)}}async queryStream(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const s=await this._getCandidateFiles(e),r=new ae(s,async(t,s)=>{const r=await t.file,i=await this._createParquetDisplayQuery(r,t.id,e);return r.executeQuery(i,te,s)}),i=this._streamIdCounter++,a=n(t.signal,e=>{const t=this._streams.get(i);null!=t&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:r,handle:a}),i}async getStreamNext(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const s=this._streams.get(e);if(!s)return{result:null};const r=await s.stream.next(t.signal);if(null==r)return s.handle.remove(),this._streams.delete(e),{result:null};const i=r.chunk.serialize().buffer,a={fileId:r.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async getStreamNextFeatures(e,t){const{result:s}=await this.getStreamNext(e,t);if(null==s)return null;const r=(await Z()).ParquetChunk.deserialize(new Uint8Array(s.buffer)),i=new Y(this._metadata,this._indexMap,r,s.fileId),a=[];for(;i.next();){const e=R(i.readGeometryWorldSpace(),i.geometryType,i.hasZ,i.hasM),t=i.readAttributes();a.push({attributes:t,geometry:e})}return{features:a}}async createPatch(e,t,s,r,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const a=await this._getFileInfoById(e),n=await a.file;return(await n.createChunkPatch(t,s,r,i.signal)).serialize().buffer}async _updateProvider(e){const t=this._provider;this._handles.removeAll(),this._provider=e,this._handles.add([e.events.on("rangeRead",e=>{this._source.onRangeRead(e)}),e.events.on("sourceChanged",async()=>{await this.reload(this._loadParameters),await this._source.onSourceChange()})]),await(t?.destroy())}async _getCandidateFiles(e){const t=await this._provider.getFiles(),s=await this._getSpatialFilePruning(e);if(null==s)return t;const r=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,s));return"xz"===s.type?ve(r,s):r}async _queryStatistics(e,t){const s=await M({...e},null,this._queryEngineParams.spatialReference);if(s.returnGeometry=void 0,me(s,this._fieldsIndex)){const e=await this._getStatisticsFromFiles(s);if(e)return e}return(await this._enqueueQuery(s,t)).createQueryResponse()}async _getStatisticsFromFiles(e){const t=await this._provider.getFiles(),s={},r=[];for(const i of e.outStatistics??[]){const e=_e(i,t);if(!e.available)return null;s[i.outStatisticFieldName]=e.value,r.push(ge(i,this._fieldsIndex))}return{fields:r,features:[{attributes:s}]}}async _getSpatialFilePruning(e){if("tile"!==e.type&&("arcade"!==e.type||null==e.extent))return null;const t=this._displayOptimization,s=t?.index;if(null==s)return null;const r=e.outSpatialReference.wkid;if(null==s.wkid||null==r)return null;const i=s.wkid,a=await Z();switch(s.type){case"xz":return{type:"xz",fieldName:I(s.code),intersects:(t,n)=>a.queryIntersectsXZStatistics(s.fullExtent,e.extent,r,i,s.maxLevel,t,n)};case"z":return{type:"xy",xFieldName:I(s.xColumn),yFieldName:I(s.yColumn),intersects:(t,s,n,o)=>a.queryIntersectsXYStatistics(e.extent,r,i,t,s,n,o)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case"xz":{const s=Ie(e,t);return"null-only"!==s?.type&&("bounds"!==s?.type||t.intersects(s.minValue,s.maxValue))}case"xy":{const s=e.statistics.statistics.get(t.xFieldName),r=e.statistics.statistics.get(t.yFieldName);return"null-only"!==s?.type&&"null-only"!==r?.type&&("bounds"!==s?.type||"bounds"!==r?.type||t.intersects(s.minValue,s.maxValue,r.minValue,r.maxValue))}}}async _tryDeriveParquetFullExtent(s){if(!s.spatialReference)return null;if(null==this._fullExtent&&"location"===s.geometryEncoding?.type){const i=await this._provider.getFiles(),{xField:a,yField:n}=s.geometryEncoding,o=d(f(),y);let u=!1;for(const s of i){const i=await s.file;for(const s of i.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,s.columnDescriptorForAttribute(a),!1),r=e(i,s.columnDescriptorForAttribute(n),!1),l=Q(t),c=Q(r);if("bounds"===l?.type&&"bounds"===c?.type){const e=[l.minValue,c.minValue,l.maxValue,c.maxValue];m(o,e),u=!0}s.free()}catch(r){i.error=r,i.hasError=!0}finally{t(i)}}}return u?{xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:s.spatialReference?.toJSON()}:null}return null}async _getFileInfoById(e){const t=await this._provider.getFiles();for(const s of t)if(s.id===e)return s;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t,s,r,i){const a=(await Z()).Query.new();null!=s&&a.setPreFilterStart(s),null!=r&&a.setPreFilterCount(r),null!=i&&a.setPostFilterCount(i);const n=await this._getRequiredFields(e);a.setOutFields(n),(e.geometry||e.returnGeometry)&&a.setReturnGeometry(!0),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM);const o=this._tryGetGeneralizedGeometryResolution(e);null!=o&&a.setSourceResolution(o);const u=e.geometry?.spatialReference??this._queryEngineParams.spatialReference,l=u.wkid;if(e.geometry&&(F(u)||S(u))){const t=g(w(),_);for(const s of C(e.geometry))x(t,s);a.setOutSpatialReference(l),a.setExtent({xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]})}if(e.where){const{id:s,file:r}=t;await this._setWhereClause(a,await r,s,e.where)}return a}async _createParquetDisplayQuery(e,t,s){const r=(await Z()).Query.new();if("tile"===s.type){r.setExtent(s.extent),r.setQuantizationTransform(s.transform);const e=this._sourceResolution(s.resolution,s.outSpatialReference);null!=e&&r.setSourceResolution(e)}else"arcade"===s.type&&null!=s.extent&&r.setExtent(s.extent);return r.setOutFields(s.outFields.filter(e=>null!=this._indexMap[e])),r.setOutSpatialReference(s.outSpatialReference.wkid),r.setReturnGeometry(s.returnGeometry),r.setReturnZ(s.returnZ),r.setReturnM(s.returnM),s.where&&await this._setWhereClause(r,e,t,s.where),r}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new r("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new r("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new r("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,s,i){const a=this._indexMap,n=this._fieldsIndex,o={getAttribute(e,r){const i=a[r];if(null==i){const t=n.get(r);if("__OBJECTID"===t?.name){const t=e.row+e.rowGroupStart;return G(s,t)}return null}const o=n.get(r);return v(t,e.rowGroup,e.row,i,o.type)}},u=await l(i,this._fieldsIndex);if(!u.isStandardized)throw new r("sql-parse-error","expression is not standardized");const c=(e,t,s)=>u.testFeatureCompiled({rowGroup:e,row:t,rowGroupStart:s},o,null),p=u.fieldNames.map(e=>n.get(e)).filter(e=>e&&null!=this._indexMap[e?.name]);e.setWhere(i),e.setWhereEvaluator(c),e.setWhereFields(p.map(e=>e.name))}async*_streamFeatures(e,t,s,r,i){const a=await this._provider.getFiles();let n=0;for(const o of a){const a=n,u=n+o.statistics.rowCount;if(n+=o.statistics.rowCount,null!=t&&t>=u)continue;const l=null!=t?Math.max(t-a,0):null;let c=s;if(null!=s){const e=t??0,r=e+s,i=Math.max(e,a),n=Math.min(r,u);c=Math.max(n-i,0)}if(0===c)continue;const p=await this._createParquetQuery(e,o,l,c,r),d=await o.file,f=await d.executeQuery(p,te),h=async()=>{const e=await f.next(i);if(!e)return null;const t=new Y(this._metadata,this._indexMap,e,o.id);return Se([new L(t,null,0,!1)],this._queryEngineParams)};let m=await h();for(;null!=m;)yield m,m=await h()}}async _queryFeaturesWithQueryEnginePagination(e,t){const s=[],r=this._streamFeatures(e,null,null,null,t);let i=await r.next();for(;!i.done;){const a=await i.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of a)s.push(e);i=await r.next()}return s}async _queryFeaturesWithUpfrontPagination(e,t){let s,r,i,a=e.resultOffset??0,n=e.resultRecordCount??te;fe(e)?he(e)||(i=a+n):(a&&(s=a,a=0),r=e.resultRecordCount);const o=[],u=this._streamFeatures(e,s,r,i,t);let l=await u.next();for(;!l.done&&n>0;){const s=await l.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of s)if(a>0)a--;else if(o.push(e),--n<=0)return o;l=await u.next()}return o}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){if(e.objectIds?.length){const s=new Map;for(const t of e.objectIds){const e=A(t),r=B(t);let i=s.get(e);i||(i=[],s.set(e,i)),i.push(r)}const r=[];for(const[i,a]of s.entries()){const s=await this._executeFileIdQuery(e,i,a,t);for(const e of s)r.push(e)}return new O(r,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:$,featureIdInfo:this._queryEngineParams.featureIdInfo})}if("1=1"===e.where&&(e.where=null),e.resultOffset??=0,e.resultRecordCount??=await this._getFeatureCount(),e.resultRecordCount>se){if(!(this._displayOptimization&&e.geometry))throw new r("parquet:cannot-execute-query","Unable to execute query, dataset is too large.")}const s=!!e.orderByFields?.length||!!e.outStatistics?.length||!!e.returnDistinctValues,i=s?await this._queryFeaturesWithQueryEnginePagination(e,t):await this._queryFeaturesWithUpfrontPagination(e,t);return s||(e.resultOffset=0),new O(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:$,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,s,r){const i=await this._getRequiredFields(e),a=(await Z()).Query.new();a.setOutFields(i),a.setReturnGeometry(!!e.returnGeometry),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM),a.setIds(new Uint32Array(s));const n=await this._getFile(t),o=await n.executeQuery(a,te,r);let u=await o.next(r),l=0;const c=[];for(;null!=u;){const e=new Y(this._metadata,this._indexMap,u,t),s=new L(e,null,l++,!1);c.push(s),u=await o.next(r)}return Se(c,this._queryEngineParams).executeQueryForOpaqueFeatures(e,r)}async _getRequiredFields(e){const t=new Set;if(e.outStatistics)for(const s of q(this._fieldsIndex,e.outStatistics,e.groupByFieldsForStatistics))t.add(s);else if(e.outFields)for(const s of e.outFields)t.add(s);return(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e])}_tryGetGeneralizedGeometryResolution(e){if(!this._displayOptimization)return null;const t=e.outSR??this._queryEngineParams.spatialReference;if(!F(t)&&!S(t))return null;const s=e.quantizationParameters?.tolerance??e.maxAllowableOffset;return s?this._sourceResolution(s,t):null}_sourceResolution(e,t){const s=this._queryEngineParams.spatialReference,r=e*(c(t)/c(s));return!Number.isFinite(r)||r<=0?null:r}}function le(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":case"resultOffset":case"resultRecordCount":return!0;default:return!1}}function ce(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":return!0;default:return!1}}function pe(e){switch(e){case"fullText":case"having":case"timeExtent":return!0;case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"resultOffset":case"geometry":case"resultRecordCount":return!1}return!1}function de(e){for(const t in e){const s=t;if(le(s)&&null!==e[s])return!0}return!1}function fe(e){for(const t in e){const s=t;if(ce(s)&&null!==e[s])return!0}return!1}function he(e){for(const t in e){const s=t;if(pe(s)&&null!==e[s])return!0}return!1}function me(e,t){return!!e.outStatistics?.length&&!de(e)&&!e.groupByFieldsForStatistics?.length&&!e.orderByFields?.length&&!e.returnDistinctValues&&!e.returnAggIds&&e.outStatistics.every(e=>ye(e,t))}function ye(e,t){switch(e.statisticType){case"count":return"1"===e.onStatisticField||null!=t.get(e.onStatisticField);case"min":case"max":{const s=t.get(e.onStatisticField);return null!=s&&z(s)}default:return!1}}function ge(e,t){const s="exceedslimit"!==e.statisticType?t.get(e.onStatisticField):null,r="min"!==e.statisticType&&"max"!==e.statisticType||"esriFieldTypeDate"!==s?.type?"esriFieldTypeDouble":s.type;return{name:e.outStatisticFieldName,alias:e.outStatisticFieldName,type:r}}function _e(e,t){switch(e.statisticType){case"count":return we(e,t);case"min":return xe(e,t,Math.min);case"max":return xe(e,t,Math.max);default:return{available:!1,value:null}}}function we(e,t){if("count"!==e.statisticType)return{available:!1,value:null};if("1"===e.onStatisticField)return{available:!0,value:t.reduce((e,t)=>e+t.statistics.rowCount,0)};let s=0;for(const r of t){const t=r.statistics.statistics.get(e.onStatisticField);if(null==t||null==t.nullCount)return{available:!1,value:null};s+=r.statistics.rowCount-t.nullCount}return{available:!0,value:s}}function xe(e,t,s){if("min"!==e.statisticType&&"max"!==e.statisticType)return{available:!1,value:null};let r=null;const i="min"===e.statisticType?"minValue":"maxValue";for(const a of t){const t=a.statistics.statistics.get(e.onStatisticField);if(null==t)return{available:!1,value:null};switch(t.type){case"null-only":continue;case"unknown":return{available:!1,value:null};case"bounds":{const e=Fe(t[i]);if(null==e)return{available:!1,value:null};r=null==r?e:s(r,e);break}}}return{available:!0,value:r}}function Fe(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Se(e,t){const s=new H;for(const r of e)s.insert(r);return new E({...t,featureStore:s})}function Ie(e,t){return e.statistics.statistics.get(t.fieldName)??null}function ve(e,t){return e.slice().sort((e,s)=>{const r=Re(e,t),i=Re(s,t);return r===i?0:r<i?-1:1})}function Re(e,t){const s=Ie(e,t);return"bounds"!==s?.type?Number.POSITIVE_INFINITY:s.maxValue-s.minValue}function qe(e,t,s){const r=e?.featureCount;let i=!1;return null!=r&&r<has("parquetlayer-full-query-feature-count")&&(i=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:s,supportsTrueCurve:!1,supportsZ:t},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{...P,maxRecordCount:te,supportsOrderBy:i,supportsDistinct:!0,supportsStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1}},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function be(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{ue as default};
2
+ import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as s}from"../../../../core/compilerUtils.js";import r from"../../../../core/Error.js";import i from"../../../../core/Handles.js";import has from"../../../../core/has.js";import a from"../../../../core/Logger.js";import{onAbortOrThrow as n,throwIfAborted as o}from"../../../../core/promiseUtils.js";import{QueueProcessor as u}from"../../../../core/QueueProcessor.js";import{parseWhereClause as l}from"../../../../core/sql.js";import{getMetersPerUnitForSR as c}from"../../../../core/units.js";import p from"../../../../geometry/SpatialReference.js";import{set as d,create as f,expandWithAABB as h,expandWithRect as m,negativeInfinity as y}from"../../../../geometry/support/aaBoundingBox.js";import{copy as g,negativeInfinity as _,create as w,expandWithRect as x}from"../../../../geometry/support/aaBoundingRect.js";import{isWebMercator as F,isWGS84 as S}from"../../../../geometry/support/spatialReferenceUtils.js";import{normalizeColumnPath as I,readParquetFileAttribute as v}from"../../../parquet.js";import{convertToGeometry as R}from"../../featureConversionUtils.js";import{getFieldNamesFromStatistics as q}from"../../data/attributeSupport.js";import{getQueryResultExtent as b,getQueryBoundingRects as C,QueryEngine as E}from"../../data/QueryEngine.js";import{queryCapabilities as P}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as O}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as M}from"../../data/queryUtils.js";import{createFileProvider as j}from"../parquet/createFileProvider.js";import{readFieldStatistic as Q}from"../parquet/ParquetFileStatistics.js";import{createDrawingInfo as T}from"./clientSideDefaults.js";import{getParquetFileId as B,getParquetRowId as A,getParquetObjectId as G}from"./parquetIdUtils.js";import N from"../../../support/Field.js";import D from"../../../support/FieldsIndex.js";import{isNumericField as z}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as V}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as k,fromParquetJSONGeometryType as W,toParquetJSONGeometryType as U}from"../../../support/parquetUtils.js";import{loadParquetModule as Z}from"../../../../libs/librust-parquet/loadParquetModule.js";import{FeatureStoreQueryAdapter as J}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as L}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as H}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as X}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as Y}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const $=new J,K=4,ee="__OBJECTID",te=8e3,se=2e7,re=8,ie=2;class ae{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){o(e),await this._fill(e);const t=await ne(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,null!=t.chunk)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<re;){const t=this._getOrCreateNextStream(e);if(null==t)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){const t=this._resolvedCount>=re?re:ie;if(this._fileIndex<this._files.length&&this._streams.length<t){const t=this._files[this._fileIndex++],s=new oe(t.id,this._createFileStream(t,e));return this._streams.push(s),s}return this._getNextStream()}_getNextStream(){const e=this._streams.length;for(let t=0;t<e;t++){const s=(this._streamIndex+t)%e,r=this._streams[s];if(r.canRead)return this._streamIndex=(s+1)%e,r}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function ne(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class oe{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&0===this._readCount}async read(e){this._readCount++;try{const t=await this._stream,s=await t.next(e);return null==s?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:s}}finally{this._readCount--}}}class ue{constructor(){this._hasZ=!1,this._hasM=!1,this._queue=new u({concurrency:K,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={},this._handles=new i}async load(e){const t=e.spatialReference?p.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new r("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=e.customParameters,this._loadParameters=e,await this._updateProvider(j(e.provider,null,()=>this._customParameters));const s=await this._provider.getMetadata(),i=await k(s,{fields:e.fields?.map(e=>N.fromJSON(e)),geometryEncoding:e.geometryEncoding?V(e.geometryEncoding):null,geometryType:e.geometryType?W(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(this._hasZ=!!s?.hasZ,this._hasM=!!s?.hasM,!i.fields)throw new r("parquet:unsupported","Fields must be defined");let n;if(i.spatialReference&&i.geometryType){if(!i.spatialReference)throw new r("parquet:unsupported","SpatialReference must be defined");if(!i.spatialReference.isGeographic&&!i.spatialReference.isWebMercator)throw new r("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");i.spatialReference.isGeographic&&!i.spatialReference.isWGS84&&(a.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:i.spatialReference}),i.spatialReference=p.WGS84),n={geometry:i.geometryEncoding?{geometryType:U(i.geometryType),spatialReference:i.spatialReference.toJSON(),encoding:i.geometryEncoding.toJSON()}:null,displayOptimization:i.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=i.displayOptimization,await this._provider.updateGeometryInfo(n),this._capabilities=qe(await this._getFileStatistics(),this._hasZ,this._hasM);const o=await this._provider.getFiles();if(!o.length)return{layerDefinition:{},capabilities:qe(null,this._hasZ,this._hasM)};const u=await o[0].file;i.file=u;const{fields:l}=i;if(null==l)throw new r("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",l);l.push(new N({name:ee,type:"oid",alias:ee}));for(const r of l){const e=u.getColumnId(r.name);null!=e&&(this._indexMap[r.name]=e)}const c=new D(l.map(e=>e.toJSON()));this._fieldsIndex=c;const d=U(i.geometryType??"point");return this._metadata=X.createFeature({fieldsIndex:c.toJSON(),geometryType:d,hasZ:this._hasZ,hasM:this._hasM,featureIdInfo:{type:"object-id",fieldName:ee},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:i.spatialReference,outSpatialReference:null,attributeSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:d,featureIdInfo:{type:"object-id",fieldName:ee},hasM:this._hasM,hasZ:this._hasZ,spatialReference:i.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=s?.extent?s.extent:await this._tryDeriveParquetFullExtent(i),{capabilities:this._capabilities,layerDefinition:{fields:i.fields?.map(e=>e.toJSON()),drawingInfo:T(d),extent:this._fullExtent??void 0,geometryType:d,geometryEncoding:i.geometryEncoding?.toJSON(),displayOptimization:i.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(const{handle:e}of this._streams.values())e.remove();this._streams.clear(),this._indexMap={},this._handles.removeAll()}async reload(e){this.destroy(),await this.load(e)}set remoteClient(e){this._source=e.createInvokeProxy("")}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._loadParameters={...this._loadParameters,provider:e};const t=j(e,this._provider.getGeometryInfo(),()=>this._customParameters);await this._updateProvider(t)}async getDiagnosticsSnapshot(){const e=await this._provider.getFiles();return{files:await Promise.all(e.map(e=>e.getDiagnosticsSnapshot()))}}async getColumnIndex(e){return(await this._getFileInfoById(e.fileId)).getColumnIndex(e.rowGroupIndex,e.columnIndex)}async getOffsetIndex(e){return(await this._getFileInfoById(e.fileId)).getOffsetIndex(e.rowGroupIndex,e.columnIndex)}async queryFeatures(e,t){const s=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),be(s)||(s.resultRecordCount=s.resultRecordCount?Math.min(s.resultRecordCount,te):te,s.resultOffset=s.resultOffset??0),s.outStatistics)return this._queryStatistics(s,t);s.returnDistinctValues&&(s.returnGeometry=void 0);return(await this._enqueueQuery(s,t)).createQueryResponse()}async queryFeatureCount(e,t){const s=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),!(de(s)||s.returnDistinctValues||s.groupByFieldsForStatistics?.length||s.outStatistics?.length))return this._getFeatureCount();s.returnDistinctValues||(s.outFields=void 0),s.returnGeometry=void 0;return(await this._enqueueQuery(s,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const s=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),!de(s))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);s.resultRecordCount=s.resultRecordCount?Math.min(s.resultRecordCount,8e3):8e3,s.resultOffset=s.resultOffset??0,s.returnGeometry=void 0,s.outFields=void 0;return(await this._enqueueQuery(s,t)).items.map(e=>e.getObjectId())}async queryAttributeBins(e,t={}){throw new r("parquet:unsupported","queryAttributeBins not supported.")}async queryExtent(e,t){const r=await M(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),this._fullExtent&&!de(r))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=s(this._metadata.spatialReference);r.returnGeometry=!0,r.outFields=void 0;const a=d(f(),y),n=f(),o=await this._enqueueQuery(r,t);let u=0;for(const s of o.items)s.getBounds(n)&&(h(a,n),u+=1);return{count:u,extent:b(a,i,r.outSR?s(r.outSR):i.toJSON(),i,!1)}}async queryStream(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const s=await this._getCandidateFiles(e),r=new ae(s,async(t,s)=>{const r=await t.file,i=await this._createParquetDisplayQuery(r,t.id,e);return r.executeQuery(i,te,s)}),i=this._streamIdCounter++,a=n(t.signal,e=>{const t=this._streams.get(i);null!=t&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:r,handle:a}),i}async getStreamNext(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const s=this._streams.get(e);if(!s)return{result:null};const r=await s.stream.next(t.signal);if(null==r)return s.handle.remove(),this._streams.delete(e),{result:null};const i=r.chunk.serialize().buffer,a={fileId:r.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async getStreamNextFeatures(e,t){const{result:s}=await this.getStreamNext(e,t);if(null==s)return null;const r=(await Z()).ParquetChunk.deserialize(new Uint8Array(s.buffer)),i=new Y(this._metadata,this._indexMap,r,s.fileId),a=[];for(;i.next();){const e=R(i.readGeometryWorldSpace(),i.geometryType,i.hasZ,i.hasM),t=i.readAttributes();a.push({attributes:t,geometry:e})}return{features:a}}async createPatch(e,t,s,r,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const a=await this._getFileInfoById(e),n=await a.file;return(await n.createChunkPatch(t,s,r,i.signal)).serialize().buffer}async _updateProvider(e){const t=this._provider;this._handles.removeAll(),this._provider=e,this._handles.add([e.events.on("rangeRead",e=>{this._source.onRangeRead(e)}),e.events.on("sourceChanged",async()=>{await this.reload(this._loadParameters),await this._source.onSourceChange()})]),await(t?.destroy())}async _getCandidateFiles(e){const t=await this._provider.getFiles(),s=await this._getSpatialFilePruning(e);if(null==s)return t;const r=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,s));return"xz"===s.type?ve(r,s):r}async _queryStatistics(e,t){const s=await M({...e},null,this._queryEngineParams.spatialReference);if(s.returnGeometry=void 0,me(s,this._fieldsIndex)){const e=await this._getStatisticsFromFiles(s);if(e)return e}return(await this._enqueueQuery(s,t)).createQueryResponse()}async _getStatisticsFromFiles(e){const t=await this._provider.getFiles(),s={},r=[];for(const i of e.outStatistics??[]){const e=_e(i,t);if(!e.available)return null;s[i.outStatisticFieldName]=e.value,r.push(ge(i,this._fieldsIndex))}return{fields:r,features:[{attributes:s}]}}async _getSpatialFilePruning(e){if("tile"!==e.type&&("arcade"!==e.type||null==e.extent))return null;const t=this._displayOptimization,s=t?.index;if(null==s)return null;const r=e.outSpatialReference.wkid;if(null==s.wkid||null==r)return null;const i=s.wkid,a=await Z();switch(s.type){case"xz":return{type:"xz",fieldName:I(s.code),intersects:(t,n)=>a.queryIntersectsXZStatistics(s.fullExtent,e.extent,r,i,s.maxLevel,t,n)};case"z":return{type:"xy",xFieldName:I(s.xColumn),yFieldName:I(s.yColumn),intersects:(t,s,n,o)=>a.queryIntersectsXYStatistics(e.extent,r,i,t,s,n,o)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case"xz":{const s=Ie(e,t);return"null-only"!==s?.type&&("bounds"!==s?.type||t.intersects(s.minValue,s.maxValue))}case"xy":{const s=e.statistics.statistics.get(t.xFieldName),r=e.statistics.statistics.get(t.yFieldName);return"null-only"!==s?.type&&"null-only"!==r?.type&&("bounds"!==s?.type||"bounds"!==r?.type||t.intersects(s.minValue,s.maxValue,r.minValue,r.maxValue))}}}async _tryDeriveParquetFullExtent(s){if(!s.spatialReference)return null;if(null==this._fullExtent&&"location"===s.geometryEncoding?.type){const i=await this._provider.getFiles(),{xField:a,yField:n}=s.geometryEncoding,o=d(f(),y);let u=!1;for(const s of i){const i=await s.file;for(const s of i.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,s.columnDescriptorForAttribute(a),!1),r=e(i,s.columnDescriptorForAttribute(n),!1),l=Q(t),c=Q(r);if("bounds"===l?.type&&"bounds"===c?.type){const e=[l.minValue,c.minValue,l.maxValue,c.maxValue];m(o,e),u=!0}s.free()}catch(r){i.error=r,i.hasError=!0}finally{t(i)}}}return u?{xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:s.spatialReference?.toJSON()}:null}return null}async _getFileInfoById(e){const t=await this._provider.getFiles();for(const s of t)if(s.id===e)return s;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t,s,r,i){const a=(await Z()).Query.new();null!=s&&a.setPreFilterStart(s),null!=r&&a.setPreFilterCount(r),null!=i&&a.setPostFilterCount(i);const n=await this._getRequiredFields(e);a.setOutFields(n),(e.geometry||e.returnGeometry)&&a.setReturnGeometry(!0),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM);const o=this._tryGetGeneralizedGeometryResolution(e);null!=o&&a.setSourceResolution(o);const u=e.geometry?.spatialReference??this._queryEngineParams.spatialReference,l=u.wkid;if(e.geometry&&(F(u)||S(u))){const t=g(w(),_);for(const s of C(e.geometry))x(t,s);a.setOutSpatialReference(l),a.setExtent({xmin:t[0],ymin:t[1],xmax:t[2],ymax:t[3]})}if(e.where){const{id:s,file:r}=t;await this._setWhereClause(a,await r,s,e.where)}return a}async _createParquetDisplayQuery(e,t,s){const r=(await Z()).Query.new();if("tile"===s.type){r.setExtent(s.extent),r.setQuantizationTransform(s.transform);const e=this._sourceResolution(s.resolution,s.outSpatialReference);null!=e&&r.setSourceResolution(e)}else"arcade"===s.type&&null!=s.extent&&r.setExtent(s.extent);return r.setOutFields(s.outFields.filter(e=>null!=this._indexMap[e])),r.setOutSpatialReference(s.outSpatialReference.wkid),r.setReturnGeometry(s.returnGeometry),r.setReturnZ(s.returnZ),r.setReturnM(s.returnM),s.where&&await this._setWhereClause(r,e,t,s.where),r}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new r("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new r("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new r("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,s,i){const a=this._indexMap,n=this._fieldsIndex,o={getAttribute(e,r){const i=a[r];if(null==i){const t=n.get(r);if("__OBJECTID"===t?.name){const t=e.row+e.rowGroupStart;return G(s,t)}return null}const o=n.get(r);return v(t,e.rowGroup,e.row,i,o.type)}},u=await l(i,this._fieldsIndex);if(!u.isStandardized)throw new r("sql-parse-error","expression is not standardized");const c=(e,t,s)=>u.testFeatureCompiled({rowGroup:e,row:t,rowGroupStart:s},o,null),p=u.fieldNames.map(e=>n.get(e)).filter(e=>e&&null!=this._indexMap[e?.name]);e.setWhere(i),e.setWhereEvaluator(c),e.setWhereFields(p.map(e=>e.name))}async*_streamFeatures(e,t,s,r,i){const a=await this._provider.getFiles();let n=0;for(const o of a){const a=n,u=n+o.statistics.rowCount;if(n+=o.statistics.rowCount,null!=t&&t>=u)continue;const l=null!=t?Math.max(t-a,0):null;let c=s;if(null!=s){const e=t??0,r=e+s,i=Math.max(e,a),n=Math.min(r,u);c=Math.max(n-i,0)}if(0===c)continue;const p=await this._createParquetQuery(e,o,l,c,r),d=await o.file,f=await d.executeQuery(p,te),h=async()=>{const e=await f.next(i);if(!e)return null;const t=new Y(this._metadata,this._indexMap,e,o.id);return Se([new L(t,null,0,!1)],this._queryEngineParams)};let m=await h();for(;null!=m;)yield m,m=await h()}}async _queryFeaturesWithQueryEnginePagination(e,t){const s=[],r=this._streamFeatures(e,null,null,null,t);let i=await r.next();for(;!i.done;){const a=await i.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of a)s.push(e);i=await r.next()}return s}async _queryFeaturesWithUpfrontPagination(e,t){let s,r,i,a=e.resultOffset??0,n=e.resultRecordCount??te;fe(e)?he(e)||(i=a+n):(a&&(s=a,a=0),r=e.resultRecordCount);const o=[],u=this._streamFeatures(e,s,r,i,t);let l=await u.next();for(;!l.done&&n>0;){const s=await l.value.executeQueryForOpaqueFeatures({...e,where:void 0},t);for(const e of s)if(a>0)a--;else if(o.push(e),--n<=0)return o;l=await u.next()}return o}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){if(e.objectIds?.length){const s=new Map;for(const t of e.objectIds){const e=B(t),r=A(t);let i=s.get(e);i||(i=[],s.set(e,i)),i.push(r)}const r=[];for(const[i,a]of s.entries()){const s=await this._executeFileIdQuery(e,i,a,t);for(const e of s)r.push(e)}return new O(r,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:$,featureIdInfo:this._queryEngineParams.featureIdInfo})}if("1=1"===e.where&&(e.where=null),e.resultOffset??=0,e.resultRecordCount??=await this._getFeatureCount(),e.resultRecordCount>se){if(!(this._displayOptimization&&e.geometry))throw new r("parquet:cannot-execute-query","Unable to execute query, dataset is too large.")}const s=!!e.orderByFields?.length||!!e.outStatistics?.length||!!e.returnDistinctValues,i=s?await this._queryFeaturesWithQueryEnginePagination(e,t):await this._queryFeaturesWithUpfrontPagination(e,t);return s||(e.resultOffset=0),new O(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:this._hasM,hasZ:this._hasZ,featureAdapter:$,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,s,r){const i=await this._getRequiredFields(e),a=(await Z()).Query.new();a.setOutFields(i),a.setReturnGeometry(!!e.returnGeometry),a.setReturnZ(!!e.returnZ),a.setReturnM(!!e.returnM),a.setIds(new Uint32Array(s));const n=await this._getFile(t),o=await n.executeQuery(a,te,r);let u=await o.next(r),l=0;const c=[];for(;null!=u;){const e=new Y(this._metadata,this._indexMap,u,t),s=new L(e,null,l++,!1);c.push(s),u=await o.next(r)}return Se(c,this._queryEngineParams).executeQueryForOpaqueFeatures(e,r)}async _getRequiredFields(e){const t=new Set;if(e.outStatistics)for(const s of q(this._fieldsIndex,e.outStatistics,e.groupByFieldsForStatistics))t.add(s);else if(e.outFields)for(const s of e.outFields)t.add(s);return(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e])}_tryGetGeneralizedGeometryResolution(e){if(!this._displayOptimization)return null;const t=e.outSR??this._queryEngineParams.spatialReference;if(!F(t)&&!S(t))return null;const s=e.quantizationParameters?.tolerance??e.maxAllowableOffset;return s?this._sourceResolution(s,t):null}_sourceResolution(e,t){const s=this._queryEngineParams.spatialReference,r=e*(c(t)/c(s));return!Number.isFinite(r)||r<=0?null:r}}function le(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":case"resultOffset":case"resultRecordCount":return!0;default:return!1}}function ce(e){switch(e){case"fullText":case"having":case"timeExtent":case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"geometry":return!0;default:return!1}}function pe(e){switch(e){case"fullText":case"having":case"timeExtent":return!0;case"historicMoment":case"aggregateIds":case"uniqueIds":case"gdbVersion":case"objectIds":case"where":case"resultOffset":case"geometry":case"resultRecordCount":return!1}return!1}function de(e){for(const t in e){const s=t;if(le(s)&&null!==e[s])return!0}return!1}function fe(e){for(const t in e){const s=t;if(ce(s)&&null!==e[s])return!0}return!1}function he(e){for(const t in e){const s=t;if(pe(s)&&null!==e[s])return!0}return!1}function me(e,t){return!!e.outStatistics?.length&&!de(e)&&!e.groupByFieldsForStatistics?.length&&!e.orderByFields?.length&&!e.returnDistinctValues&&!e.returnAggIds&&e.outStatistics.every(e=>ye(e,t))}function ye(e,t){switch(e.statisticType){case"count":return"1"===e.onStatisticField||null!=t.get(e.onStatisticField);case"min":case"max":{const s=t.get(e.onStatisticField);return null!=s&&z(s)}default:return!1}}function ge(e,t){const s="exceedslimit"!==e.statisticType?t.get(e.onStatisticField):null,r="min"!==e.statisticType&&"max"!==e.statisticType||"esriFieldTypeDate"!==s?.type?"esriFieldTypeDouble":s.type;return{name:e.outStatisticFieldName,alias:e.outStatisticFieldName,type:r}}function _e(e,t){switch(e.statisticType){case"count":return we(e,t);case"min":return xe(e,t,Math.min);case"max":return xe(e,t,Math.max);default:return{available:!1,value:null}}}function we(e,t){if("count"!==e.statisticType)return{available:!1,value:null};if("1"===e.onStatisticField)return{available:!0,value:t.reduce((e,t)=>e+t.statistics.rowCount,0)};let s=0;for(const r of t){const t=r.statistics.statistics.get(e.onStatisticField);if(null==t||null==t.nullCount)return{available:!1,value:null};s+=r.statistics.rowCount-t.nullCount}return{available:!0,value:s}}function xe(e,t,s){if("min"!==e.statisticType&&"max"!==e.statisticType)return{available:!1,value:null};let r=null;const i="min"===e.statisticType?"minValue":"maxValue";for(const a of t){const t=a.statistics.statistics.get(e.onStatisticField);if(null==t)return{available:!1,value:null};switch(t.type){case"null-only":continue;case"unknown":return{available:!1,value:null};case"bounds":{const e=Fe(t[i]);if(null==e)return{available:!1,value:null};r=null==r?e:s(r,e);break}}}return{available:!0,value:r}}function Fe(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function Se(e,t){const s=new H;for(const r of e)s.insert(r);return new E({...t,featureStore:s})}function Ie(e,t){return e.statistics.statistics.get(t.fieldName)??null}function ve(e,t){return e.slice().sort((e,s)=>{const r=Re(e,t),i=Re(s,t);return r===i?0:r<i?-1:1})}function Re(e,t){const s=Ie(e,t);return"bounds"!==s?.type?Number.POSITIVE_INFINITY:s.maxValue-s.minValue}function qe(e,t,s){const r=e?.featureCount;let i=!1;return null!=r&&r<has("parquetlayer-full-query-feature-count")&&(i=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:s,supportsTrueCurve:!1,supportsZ:t},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{...P,maxRecordCount:te,supportsOrderBy:i,supportsDistinct:!0,supportsStatistics:!0,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1}},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function be(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{ue as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import{clone as i}from"../../core/lang.js";import{setDeepValue as r}from"../../core/object.js";import{hasSameOrigin as o,getHost as s,changeHost as n}from"../../core/urlUtils.js";import{property as p,subclass as l}from"../../core/accessorSupport/decorators.js";import{excludeTables as d}from"../../core/accessorSupport/layerContainerType.js";import{idToName as a}from"../../core/accessorSupport/PropertyOrigin.js";import u from"../../geometry/Extent.js";import c from"../../geometry/HeightModelInfo.js";import y from"../../geometry/SpatialReference.js";import{elevationInfo as f,maxScale as m,minScale as h}from"../support/commonProperties.js";import v from"../support/EditFieldsInfo.js";import{FeatureIndex as g}from"../support/FeatureIndex.js";import{geometryTypeKebabDict as I,hasCurrentUser as F,isLayerCacheStale as b,supportsQueryOnly as S,readGlobalIdField as j,readObjectIdField as E,readVersion as U}from"../support/featureLayerUtils.js";import x from"../support/GeometryFieldsInfo.js";import O from"../support/LayerFloorInfo.js";import{isPreferredUrlApplicable as M,getPreferredUrl as D,applyPreferredHostToPortalItem as T,getPreferredHost as w}from"../support/layerUtils.js";import{urlProperty as C,normalizeParsedUrlObject as H}from"../support/multiLayerServiceUtils.js";import R from"../support/Relationship.js";import{getFeatureLayerCapabilities as B}from"../support/serviceCapabilitiesUtils.js";import A from"../support/Subtype.js";import{hasTypeKeyword as q,typeKeyword as Q}from"../../portal/support/portalItemUtils.js";import{timeZoneProperty as P}from"../../time/timeZoneUtils.js";import{reader as G}from"../../core/accessorSupport/decorators/reader.js";const V={name:"layerDefinition.timeInfo",read:!0,write:{enabled:!0,writer:(e,t,i,o)=>{if(e){const s=e.toJSON({...o,writeExportOptions:!1});r(i,s,t)}}}},Z=r=>{const Z=r;let _=class extends Z{constructor(){super(...arguments),this.cacheMaxAge=0,this.capabilities=null,this.copyright=null,this.dateFieldsTimeZone=null,this.datesInUnknownTimezone=!1,this.definitionExpression=null,this.displayField=null,this.editFieldsInfo=null,this.editingInfo=null,this.elevationInfo=null,this.fieldsIndex=null,this.floorInfo=null,this.fullExtent=null,this.gdbVersion=null,this.geometryFieldsInfo=null,this.geometryType=null,this.globalIdField=null,this.hasM=void 0,this.hasZ=void 0,this.heightModelInfo=null,this.historicMoment=null,this.indexes=new(t.ofType(g)),this.isTable=!1,this.layerId=void 0,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.preferredTimeZone=null,this.relationships=null,this.returnM=void 0,this.returnZ=void 0,this.serviceDefinitionExpression=null,this.serviceItemId=null,this.sourceJSON=null,this.spatialReference=y.WGS84,this.subtypeField=null,this.subtypes=null,this.timeInfo=null,this.trackIdField=null,this.uniqueIdFields=null,this.url=null,this.version=void 0,this._isUrlHostModified=!1,this._isUrlHostModificationEnabled=!1}getFieldDomain(e,t){throw new Error("Not implemented")}getField(e){return this.fieldsIndex.get(e)}get authenticationTriggerEvent(){if(!this.url)return null;const{capabilities:e}=this;if(e){const{query:t,operations:i,editing:r}=e;if(!t.supportsQueryByOthers||!t.supportsQueryByAnonymous)return"load";if(i.supportsEditing&&!(r.supportsUpdateByOthers&&r.supportsUpdateByAnonymous&&r.supportsDeleteByOthers&&r.supportsDeleteByAnonymous))return"load"}if(F(this.serviceDefinitionExpression)||F(this.definitionExpression))return"load";if(this.userHasUpdateItemPrivileges){if(b(this))return"load";if(this.hasUpdateItemRestrictions)return e.operations.supportsQuery?"editing":"load"}if(this.userHasFullEditingPrivileges&&this.hasFullEditingRestrictions)return"editing";const t=this.editFieldsInfo;return(t?.creatorField||t?.editorField)&&e?.operations.supportsEditing?"editing":null}readCapabilitiesFromService(e,t){return B(t,this.url)}readEditingInfo(e,t){const{editingInfo:i}=t;return i?{lastEditDate:null!=i.lastEditDate?new Date(i.lastEditDate):null}:null}get effectiveCapabilities(){const e=this.capabilities;if(!e)return null;const t=i(e),{operations:r,editing:o}=t;return S(this)?(this.userHasUpdateItemPrivileges&&(r.supportsQuery=!0),t):this.userHasUpdateItemPrivileges?(r.supportsAdd=r.supportsDelete=r.supportsEditing=r.supportsQuery=r.supportsUpdate=o.supportsDeleteByOthers=o.supportsGeometryUpdate=o.supportsUpdateByOthers=!0,t):(this.userHasFullEditingPrivileges&&r.supportsEditing&&(r.supportsAdd=r.supportsDelete=r.supportsUpdate=o.supportsGeometryUpdate=!0),t)}get effectiveEditingEnabled(){return!1}get effectiveUniqueIdFields(){return this.uniqueIdFields?[...this.uniqueIdFields]:[this.objectIdField]}readGlobalIdFieldFromService(e,t){return j(t)}get hasFullEditingRestrictions(){const e=this.capabilities;if(!e||S(this))return!1;const{operations:t,editing:i}=e;return t.supportsEditing&&!(t.supportsAdd&&t.supportsDelete&&t.supportsUpdate&&i.supportsGeometryUpdate)}get hasUpdateItemRestrictions(){const e=this.capabilities;if(!e)return!1;const{operations:t,editing:i}=e;return S(this)?!t.supportsQuery:!(t.supportsAdd&&t.supportsDelete&&t.supportsEditing&&t.supportsQuery&&t.supportsUpdate&&i.supportsDeleteByOthers&&i.supportsGeometryUpdate&&i.supportsUpdateByOthers)}readIsTableFromService(e,t){return"Table"===t.type}readMaxScale(e,t){return t.effectiveMaxScale||e||0}readMinScale(e,t){return t.effectiveMinScale||e||0}readObjectIdFieldFromService(e,t){return E(t)}get parsedUrl(){return H(this)}readServiceDefinitionExpression(e,t){return t.definitionQuery||t.definitionExpression}readUniqueIdFields(e,t){return t.uniqueIdInfo?.OIDFieldContainsHashValue?t.uniqueIdInfo.fields:null}readVersion(e,t){return U(t)}get isUrlHostModified(){const{loaded:e,url:t,_isUrlHostModified:i}=this;if(i)return!0;if(!e||!t)return!1;if(this.originIdOf("url")<7)return!1;const r=this.sourceJSON?.preferredHost;if(!r)return!1;if(!o(t,`https://${r}`,!0))return!1;for(let s=6;s>=3;s--){const e=this.getAtOrigin("url",a(s));if(e)return!o(t,e,!0)}return!1}applyPreferredHost(e){const{url:t,portalItem:i}=this;if(!t||!M(i))return;const r=D();r&&this._isUrlHostModificationEnabled&&(this._set("url",r),this._isUrlHostModified=!0,i&&T(i,w()))}applyHostFromPortalItem(){const{url:e,portalItem:t}=this;if(!e||7===this.originIdOf("url")||!t?.url||!M(t)||!q(t,Q.HOSTED_SERVICE)||o(e,t.url,!0)||!this._isUrlHostModificationEnabled)return;const i=s(t.url);this._set("url",n(e,i)),this._isUrlHostModified=!0}};return e([p({readOnly:!0})],_.prototype,"authenticationTriggerEvent",null),e([p({readOnly:!0,json:{read:e=>e/60}})],_.prototype,"cacheMaxAge",void 0),e([p({readOnly:!0,json:{read:!1,origins:{service:{read:{source:["advancedQueryCapabilities","allowGeometryUpdates","allowUpdateWithoutMValues","archivingInfo","capabilities","datesInUnknownTimezone","hasAttachments","hasM","hasZ","isDataBranchVersioned","isDataVersioned","maxRecordCount","maxRecordCountFactor","maxUniqueIDCount","ownershipBasedAccessControlForFeatures","standardMaxRecordCount","standardMaxRecordCountNoGeometry","supportedQueryFormats","supportsAdvancedQueries","supportsApplyEditsWithGlobalIds","supportsAttachmentsByUploadId","supportsAttachmentsResizing","supportsCalculate","supportsCoordinatesQuantization","supportsExceedsLimitStatistics","supportsFieldDescriptionProperty","supportsQuantizationEditMode","supportsRollbackOnFailureParameter","supportsStatistics","supportsTruncate","supportsValidateSql","tileMaxRecordCount","useStandardizedQueries"]}}}}})],_.prototype,"capabilities",void 0),e([G("service","capabilities")],_.prototype,"readCapabilitiesFromService",null),e([p({type:String,json:{origins:{service:{read:{source:"copyrightText"}}}}})],_.prototype,"copyright",void 0),e([p(P("dateFieldsTimeReference"))],_.prototype,"dateFieldsTimeZone",void 0),e([p({type:Boolean})],_.prototype,"datesInUnknownTimezone",void 0),e([p({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],_.prototype,"definitionExpression",void 0),e([p({type:String,json:{origins:{service:{read:{source:"displayField"}}}}})],_.prototype,"displayField",void 0),e([p({readOnly:!0,type:v})],_.prototype,"editFieldsInfo",void 0),e([p({readOnly:!0})],_.prototype,"editingInfo",void 0),e([G("editingInfo")],_.prototype,"readEditingInfo",null),e([p({readOnly:!0})],_.prototype,"effectiveCapabilities",null),e([p()],_.prototype,"effectiveEditingEnabled",null),e([p({readOnly:!0,type:[String]})],_.prototype,"effectiveUniqueIdFields",null),e([p((()=>{const e=i(f),t=e.json.origins;return t["web-map"]={read:!1,write:!1},t["portal-item"]={read:!1,write:!1},e})())],_.prototype,"elevationInfo",void 0),e([p()],_.prototype,"fieldsIndex",void 0),e([p({type:O,json:{name:"layerDefinition.floorInfo",write:{layerContainerTypes:d}}})],_.prototype,"floorInfo",void 0),e([p({type:u,json:{origins:{service:{read:{source:"extent"}}}}})],_.prototype,"fullExtent",void 0),e([p()],_.prototype,"gdbVersion",void 0),e([p({readOnly:!0,type:x,json:{read:{source:"geometryProperties"}}})],_.prototype,"geometryFieldsInfo",void 0),e([p({type:["point","polygon","polyline","multipoint","multipatch","mesh"],json:{origins:{service:{read:I.read}}}})],_.prototype,"geometryType",void 0),e([p({type:String})],_.prototype,"globalIdField",void 0),e([G("service","globalIdField",["globalIdField","fields"])],_.prototype,"readGlobalIdFieldFromService",null),e([p({readOnly:!0})],_.prototype,"hasFullEditingRestrictions",null),e([p({type:Boolean,json:{origins:{service:{read:!0}}}})],_.prototype,"hasM",void 0),e([p({readOnly:!0})],_.prototype,"hasUpdateItemRestrictions",null),e([p({type:Boolean,json:{origins:{service:{read:!0}}}})],_.prototype,"hasZ",void 0),e([p({readOnly:!0,type:c})],_.prototype,"heightModelInfo",void 0),e([p({type:Date})],_.prototype,"historicMoment",void 0),e([p({type:t.ofType(g),readOnly:!0})],_.prototype,"indexes",void 0),e([p({readOnly:!0})],_.prototype,"isTable",void 0),e([G("service","isTable",["type"])],_.prototype,"readIsTableFromService",null),e([p({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{read:!1,write:{target:"id"}}},read:!1}})],_.prototype,"layerId",void 0),e([p(m)],_.prototype,"maxScale",void 0),e([G("service","maxScale",["maxScale","effectiveMaxScale"])],_.prototype,"readMaxScale",null),e([p(h)],_.prototype,"minScale",void 0),e([G("service","minScale",["minScale","effectiveMinScale"])],_.prototype,"readMinScale",null),e([p({type:String})],_.prototype,"objectIdField",void 0),e([G("service","objectIdField",["objectIdField","fields"])],_.prototype,"readObjectIdFieldFromService",null),e([p({readOnly:!0})],_.prototype,"parsedUrl",null),e([p(P("preferredTimeReference"))],_.prototype,"preferredTimeZone",void 0),e([p({type:[R],readOnly:!0})],_.prototype,"relationships",void 0),e([p({type:Boolean})],_.prototype,"returnM",void 0),e([p({type:Boolean})],_.prototype,"returnZ",void 0),e([p({readOnly:!0,json:{write:!1}})],_.prototype,"serverGens",void 0),e([p({readOnly:!0})],_.prototype,"serviceDefinitionExpression",void 0),e([G("service","serviceDefinitionExpression",["definitionQuery","definitionExpression"])],_.prototype,"readServiceDefinitionExpression",null),e([p({type:String,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_.prototype,"serviceItemId",void 0),e([p()],_.prototype,"sourceJSON",void 0),e([p({type:y,json:{origins:{service:{read:{source:"extent.spatialReference"}}}}})],_.prototype,"spatialReference",void 0),e([p({type:String,readOnly:!0,json:{origins:{service:{read:!0}}}})],_.prototype,"subtypeField",void 0),e([p({type:[A],readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_.prototype,"subtypes",void 0),e([p({json:{origins:{"web-map":V,"portal-item":V}}})],_.prototype,"timeInfo",void 0),e([p({type:String,json:{read:{source:"timeInfo.trackIdField"}}})],_.prototype,"trackIdField",void 0),e([p({type:[String]})],_.prototype,"uniqueIdFields",void 0),e([G("service","uniqueIdFields",["uniqueIdInfo.OIDFieldContainsHashValue","uniqueIdInfo.fields"])],_.prototype,"readUniqueIdFields",null),e([p(C({nonStandardUrlAllowed:!0}))],_.prototype,"url",void 0),e([p({json:{origins:{service:{read:!0}},read:!1}})],_.prototype,"version",void 0),e([G("service","version",["currentVersion","capabilities","drawingInfo","hasAttachments","htmlPopupType","relationships","timeInfo","typeIdField","types"])],_.prototype,"readVersion",null),e([p({readOnly:!0})],_.prototype,"isUrlHostModified",null),_=e([l("esri.layers.mixins.FeatureLayerBase")],_),_};export{Z as FeatureLayerBase};
2
+ import{__decorate as e}from"tslib";import t from"../../core/Collection.js";import{clone as i}from"../../core/lang.js";import{hasSameOrigin as r,getHost as o,changeHost as s}from"../../core/urlUtils.js";import{property as n,subclass as p}from"../../core/accessorSupport/decorators.js";import{excludeTables as l}from"../../core/accessorSupport/layerContainerType.js";import{idToName as d}from"../../core/accessorSupport/PropertyOrigin.js";import a from"../../geometry/Extent.js";import u from"../../geometry/HeightModelInfo.js";import c from"../../geometry/SpatialReference.js";import{elevationInfo as y,maxScale as f,minScale as m,timeInfo as h}from"../support/commonProperties.js";import v from"../support/EditFieldsInfo.js";import{FeatureIndex as g}from"../support/FeatureIndex.js";import{geometryTypeKebabDict as I,hasCurrentUser as F,isLayerCacheStale as S,supportsQueryOnly as b,readGlobalIdField as j,readObjectIdField as E,readVersion as U}from"../support/featureLayerUtils.js";import x from"../support/GeometryFieldsInfo.js";import O from"../support/LayerFloorInfo.js";import{isPreferredUrlApplicable as M,getPreferredUrl as D,applyPreferredHostToPortalItem as T,getPreferredHost as w}from"../support/layerUtils.js";import{urlProperty as C,normalizeParsedUrlObject as H}from"../support/multiLayerServiceUtils.js";import R from"../support/Relationship.js";import{getFeatureLayerCapabilities as B}from"../support/serviceCapabilitiesUtils.js";import A from"../support/Subtype.js";import{hasTypeKeyword as q,typeKeyword as Q}from"../../portal/support/portalItemUtils.js";import{timeZoneProperty as P}from"../../time/timeZoneUtils.js";import{reader as G}from"../../core/accessorSupport/decorators/reader.js";const V=V=>{const Z=V;let _=class extends Z{constructor(){super(...arguments),this.cacheMaxAge=0,this.capabilities=null,this.copyright=null,this.dateFieldsTimeZone=null,this.datesInUnknownTimezone=!1,this.definitionExpression=null,this.displayField=null,this.editFieldsInfo=null,this.editingInfo=null,this.elevationInfo=null,this.fieldsIndex=null,this.floorInfo=null,this.fullExtent=null,this.gdbVersion=null,this.geometryFieldsInfo=null,this.geometryType=null,this.globalIdField=null,this.hasM=void 0,this.hasZ=void 0,this.heightModelInfo=null,this.historicMoment=null,this.indexes=new(t.ofType(g)),this.isTable=!1,this.layerId=void 0,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.preferredTimeZone=null,this.relationships=null,this.returnM=void 0,this.returnZ=void 0,this.serviceDefinitionExpression=null,this.serviceItemId=null,this.sourceJSON=null,this.spatialReference=c.WGS84,this.subtypeField=null,this.subtypes=null,this.timeInfo=null,this.trackIdField=null,this.uniqueIdFields=null,this.url=null,this.version=void 0,this._isUrlHostModified=!1,this._isUrlHostModificationEnabled=!1}getFieldDomain(e,t){throw new Error("Not implemented")}getField(e){return this.fieldsIndex.get(e)}get authenticationTriggerEvent(){if(!this.url)return null;const{capabilities:e}=this;if(e){const{query:t,operations:i,editing:r}=e;if(!t.supportsQueryByOthers||!t.supportsQueryByAnonymous)return"load";if(i.supportsEditing&&!(r.supportsUpdateByOthers&&r.supportsUpdateByAnonymous&&r.supportsDeleteByOthers&&r.supportsDeleteByAnonymous))return"load"}if(F(this.serviceDefinitionExpression)||F(this.definitionExpression))return"load";if(this.userHasUpdateItemPrivileges){if(S(this))return"load";if(this.hasUpdateItemRestrictions)return e.operations.supportsQuery?"editing":"load"}if(this.userHasFullEditingPrivileges&&this.hasFullEditingRestrictions)return"editing";const t=this.editFieldsInfo;return(t?.creatorField||t?.editorField)&&e?.operations.supportsEditing?"editing":null}readCapabilitiesFromService(e,t){return B(t,this.url)}readEditingInfo(e,t){const{editingInfo:i}=t;return i?{lastEditDate:null!=i.lastEditDate?new Date(i.lastEditDate):null}:null}get effectiveCapabilities(){const e=this.capabilities;if(!e)return null;const t=i(e),{operations:r,editing:o}=t;return b(this)?(this.userHasUpdateItemPrivileges&&(r.supportsQuery=!0),t):this.userHasUpdateItemPrivileges?(r.supportsAdd=r.supportsDelete=r.supportsEditing=r.supportsQuery=r.supportsUpdate=o.supportsDeleteByOthers=o.supportsGeometryUpdate=o.supportsUpdateByOthers=!0,t):(this.userHasFullEditingPrivileges&&r.supportsEditing&&(r.supportsAdd=r.supportsDelete=r.supportsUpdate=o.supportsGeometryUpdate=!0),t)}get effectiveEditingEnabled(){return!1}get effectiveUniqueIdFields(){return this.uniqueIdFields?[...this.uniqueIdFields]:[this.objectIdField]}readGlobalIdFieldFromService(e,t){return j(t)}get hasFullEditingRestrictions(){const e=this.capabilities;if(!e||b(this))return!1;const{operations:t,editing:i}=e;return t.supportsEditing&&!(t.supportsAdd&&t.supportsDelete&&t.supportsUpdate&&i.supportsGeometryUpdate)}get hasUpdateItemRestrictions(){const e=this.capabilities;if(!e)return!1;const{operations:t,editing:i}=e;return b(this)?!t.supportsQuery:!(t.supportsAdd&&t.supportsDelete&&t.supportsEditing&&t.supportsQuery&&t.supportsUpdate&&i.supportsDeleteByOthers&&i.supportsGeometryUpdate&&i.supportsUpdateByOthers)}readIsTableFromService(e,t){return"Table"===t.type}readMaxScale(e,t){return t.effectiveMaxScale||e||0}readMinScale(e,t){return t.effectiveMinScale||e||0}readObjectIdFieldFromService(e,t){return E(t)}get parsedUrl(){return H(this)}readServiceDefinitionExpression(e,t){return t.definitionQuery||t.definitionExpression}readUniqueIdFields(e,t){return t.uniqueIdInfo?.OIDFieldContainsHashValue?t.uniqueIdInfo.fields:null}readVersion(e,t){return U(t)}get isUrlHostModified(){const{loaded:e,url:t,_isUrlHostModified:i}=this;if(i)return!0;if(!e||!t)return!1;if(this.originIdOf("url")<7)return!1;const o=this.sourceJSON?.preferredHost;if(!o)return!1;if(!r(t,`https://${o}`,!0))return!1;for(let s=6;s>=3;s--){const e=this.getAtOrigin("url",d(s));if(e)return!r(t,e,!0)}return!1}applyPreferredHost(e){const{url:t,portalItem:i}=this;if(!t||!M(i))return;const r=D();r&&this._isUrlHostModificationEnabled&&(this._set("url",r),this._isUrlHostModified=!0,i&&T(i,w()))}applyHostFromPortalItem(){const{url:e,portalItem:t}=this;if(!e||7===this.originIdOf("url")||!t?.url||!M(t)||!q(t,Q.HOSTED_SERVICE)||r(e,t.url,!0)||!this._isUrlHostModificationEnabled)return;const i=o(t.url);this._set("url",s(e,i)),this._isUrlHostModified=!0}};return e([n({readOnly:!0})],_.prototype,"authenticationTriggerEvent",null),e([n({readOnly:!0,json:{read:e=>e/60}})],_.prototype,"cacheMaxAge",void 0),e([n({readOnly:!0,json:{read:!1,origins:{service:{read:{source:["advancedQueryCapabilities","allowGeometryUpdates","allowUpdateWithoutMValues","archivingInfo","capabilities","datesInUnknownTimezone","hasAttachments","hasM","hasZ","isDataBranchVersioned","isDataVersioned","maxRecordCount","maxRecordCountFactor","maxUniqueIDCount","ownershipBasedAccessControlForFeatures","standardMaxRecordCount","standardMaxRecordCountNoGeometry","supportedQueryFormats","supportsAdvancedQueries","supportsApplyEditsWithGlobalIds","supportsAttachmentsByUploadId","supportsAttachmentsResizing","supportsCalculate","supportsCoordinatesQuantization","supportsExceedsLimitStatistics","supportsFieldDescriptionProperty","supportsQuantizationEditMode","supportsRollbackOnFailureParameter","supportsStatistics","supportsTruncate","supportsValidateSql","tileMaxRecordCount","useStandardizedQueries"]}}}}})],_.prototype,"capabilities",void 0),e([G("service","capabilities")],_.prototype,"readCapabilitiesFromService",null),e([n({type:String,json:{origins:{service:{read:{source:"copyrightText"}}}}})],_.prototype,"copyright",void 0),e([n(P("dateFieldsTimeReference"))],_.prototype,"dateFieldsTimeZone",void 0),e([n({type:Boolean})],_.prototype,"datesInUnknownTimezone",void 0),e([n({type:String,json:{origins:{service:{read:!1,write:!1}},name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],_.prototype,"definitionExpression",void 0),e([n({type:String,json:{origins:{service:{read:{source:"displayField"}}}}})],_.prototype,"displayField",void 0),e([n({readOnly:!0,type:v})],_.prototype,"editFieldsInfo",void 0),e([n({readOnly:!0})],_.prototype,"editingInfo",void 0),e([G("editingInfo")],_.prototype,"readEditingInfo",null),e([n({readOnly:!0})],_.prototype,"effectiveCapabilities",null),e([n()],_.prototype,"effectiveEditingEnabled",null),e([n({readOnly:!0,type:[String]})],_.prototype,"effectiveUniqueIdFields",null),e([n((()=>{const e=i(y),t=e.json.origins;return t["web-map"]={read:!1,write:!1},t["portal-item"]={read:!1,write:!1},e})())],_.prototype,"elevationInfo",void 0),e([n()],_.prototype,"fieldsIndex",void 0),e([n({type:O,json:{name:"layerDefinition.floorInfo",write:{layerContainerTypes:l}}})],_.prototype,"floorInfo",void 0),e([n({type:a,json:{origins:{service:{read:{source:"extent"}}}}})],_.prototype,"fullExtent",void 0),e([n()],_.prototype,"gdbVersion",void 0),e([n({readOnly:!0,type:x,json:{read:{source:"geometryProperties"}}})],_.prototype,"geometryFieldsInfo",void 0),e([n({type:["point","polygon","polyline","multipoint","multipatch","mesh"],json:{origins:{service:{read:I.read}}}})],_.prototype,"geometryType",void 0),e([n({type:String})],_.prototype,"globalIdField",void 0),e([G("service","globalIdField",["globalIdField","fields"])],_.prototype,"readGlobalIdFieldFromService",null),e([n({readOnly:!0})],_.prototype,"hasFullEditingRestrictions",null),e([n({type:Boolean,json:{origins:{service:{read:!0}}}})],_.prototype,"hasM",void 0),e([n({readOnly:!0})],_.prototype,"hasUpdateItemRestrictions",null),e([n({type:Boolean,json:{origins:{service:{read:!0}}}})],_.prototype,"hasZ",void 0),e([n({readOnly:!0,type:u})],_.prototype,"heightModelInfo",void 0),e([n({type:Date})],_.prototype,"historicMoment",void 0),e([n({type:t.ofType(g),readOnly:!0})],_.prototype,"indexes",void 0),e([n({readOnly:!0})],_.prototype,"isTable",void 0),e([G("service","isTable",["type"])],_.prototype,"readIsTableFromService",null),e([n({type:Number,json:{origins:{service:{read:{source:"id"}},"portal-item":{read:!1,write:{target:"id"}}},read:!1}})],_.prototype,"layerId",void 0),e([n(f)],_.prototype,"maxScale",void 0),e([G("service","maxScale",["maxScale","effectiveMaxScale"])],_.prototype,"readMaxScale",null),e([n(m)],_.prototype,"minScale",void 0),e([G("service","minScale",["minScale","effectiveMinScale"])],_.prototype,"readMinScale",null),e([n({type:String})],_.prototype,"objectIdField",void 0),e([G("service","objectIdField",["objectIdField","fields"])],_.prototype,"readObjectIdFieldFromService",null),e([n({readOnly:!0})],_.prototype,"parsedUrl",null),e([n(P("preferredTimeReference"))],_.prototype,"preferredTimeZone",void 0),e([n({type:[R],readOnly:!0})],_.prototype,"relationships",void 0),e([n({type:Boolean})],_.prototype,"returnM",void 0),e([n({type:Boolean})],_.prototype,"returnZ",void 0),e([n({readOnly:!0,json:{write:!1}})],_.prototype,"serverGens",void 0),e([n({readOnly:!0})],_.prototype,"serviceDefinitionExpression",void 0),e([G("service","serviceDefinitionExpression",["definitionQuery","definitionExpression"])],_.prototype,"readServiceDefinitionExpression",null),e([n({type:String,readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_.prototype,"serviceItemId",void 0),e([n()],_.prototype,"sourceJSON",void 0),e([n({type:c,json:{origins:{service:{read:{source:"extent.spatialReference"}}}}})],_.prototype,"spatialReference",void 0),e([n({type:String,readOnly:!0,json:{origins:{service:{read:!0}}}})],_.prototype,"subtypeField",void 0),e([n({type:[A],readOnly:!0,json:{read:!1,origins:{service:{read:!0}}}})],_.prototype,"subtypes",void 0),e([n(h())],_.prototype,"timeInfo",void 0),e([n({type:String,json:{read:{source:"timeInfo.trackIdField"}}})],_.prototype,"trackIdField",void 0),e([n({type:[String]})],_.prototype,"uniqueIdFields",void 0),e([G("service","uniqueIdFields",["uniqueIdInfo.OIDFieldContainsHashValue","uniqueIdInfo.fields"])],_.prototype,"readUniqueIdFields",null),e([n(C({nonStandardUrlAllowed:!0}))],_.prototype,"url",void 0),e([n({json:{origins:{service:{read:!0}},read:!1}})],_.prototype,"version",void 0),e([G("service","version",["currentVersion","capabilities","drawingInfo","hasAttachments","htmlPopupType","relationships","timeInfo","typeIdField","types"])],_.prototype,"readVersion",null),e([n({readOnly:!0})],_.prototype,"isUrlHostModified",null),_=e([p("esri.layers.mixins.FeatureLayerBase")],_),_};export{V as FeatureLayerBase};
@@ -1,14 +1,16 @@
1
1
  import type LabelExpressionInfo from "./LabelExpressionInfo.js";
2
+ import type CIMSymbol from "../../symbols/CIMSymbol.js";
2
3
  import type LabelSymbol3D from "../../symbols/LabelSymbol3D.js";
3
4
  import type TextSymbol from "../../symbols/TextSymbol.js";
4
5
  import type { JSONSupport } from "../../core/JSONSupport.js";
5
6
  import type { PlacementType3D, PointPlacement, PolylinePlacement, PolygonPlacement } from "./types.js";
6
7
  import type { LabelPosition } from "../../portal/jsonTypes.js";
7
8
  import type { LabelExpressionInfoProperties } from "./LabelExpressionInfo.js";
9
+ import type { CIMSymbolProperties } from "../../symbols/CIMSymbol.js";
8
10
  import type { LabelSymbol3DProperties } from "../../symbols/LabelSymbol3D.js";
9
11
  import type { TextSymbolProperties } from "../../symbols/TextSymbol.js";
10
12
 
11
- export interface LabelClassProperties extends Partial<Pick<LabelClass, "allowOverrun" | "deconflictionStrategy" | "labelExpression" | "labelPlacement" | "labelPosition" | "maxScale" | "minScale" | "name" | "repeatLabel" | "useCodedValues" | "where">> {
13
+ export interface LabelClassProperties extends Partial<Pick<LabelClass, "allowOverrun" | "deconflictionStrategy" | "labelExpression" | "labelPlacement" | "labelPosition" | "maxScale" | "minScale" | "name" | "offsetDistance" | "repeatLabel" | "useCodedValues" | "where">> {
12
14
  /**
13
15
  * Defines the labels for a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/).
14
16
  *
@@ -74,7 +76,7 @@ export interface LabelClassProperties extends Partial<Pick<LabelClass, "allowOve
74
76
  * haloSize: 1
75
77
  * };
76
78
  */
77
- symbol?: (TextSymbolProperties & { type: "text" }) | (LabelSymbol3DProperties & { type: "label-3d" });
79
+ symbol?: (TextSymbolProperties & { type: "text" }) | (LabelSymbol3DProperties & { type: "label-3d" }) | (CIMSymbolProperties & { type: "cim" });
78
80
  }
79
81
 
80
82
  /**
@@ -305,6 +307,13 @@ export default class LabelClass extends JSONSupport {
305
307
  * @since 5.0
306
308
  */
307
309
  accessor name: string | null | undefined;
310
+ /**
311
+ * Label offset authored by feature services.
312
+ *
313
+ * @default 0
314
+ * @internal
315
+ */
316
+ accessor offsetDistance: number;
308
317
  /**
309
318
  * Indicates whether or not to repeat the label along the polyline feature.
310
319
  * If `true`, the label will be repeated according to the [repeatLabelDistance](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#repeatLabelDistance).
@@ -370,8 +379,8 @@ export default class LabelClass extends JSONSupport {
370
379
  * haloSize: 1
371
380
  * };
372
381
  */
373
- get symbol(): TextSymbol | LabelSymbol3D;
374
- set symbol(value: (TextSymbolProperties & { type: "text" }) | (LabelSymbol3DProperties & { type: "label-3d" }));
382
+ get symbol(): TextSymbol | LabelSymbol3D | CIMSymbol;
383
+ set symbol(value: (TextSymbolProperties & { type: "text" }) | (LabelSymbol3DProperties & { type: "label-3d" }) | (CIMSymbolProperties & { type: "cim" }));
375
384
  /**
376
385
  * Indicates whether to use domain names if the fields in the [labelExpression](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelExpression)
377
386
  * or [labelExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/#labelExpressionInfo) have domains.
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"../../core/has.js";import{JSONMap as r}from"../../core/jsonMap.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{toPt as i}from"../../core/screenUtils.js";import{property as l,subclass as n}from"../../core/accessorSupport/decorators.js";import s from"./LabelExpressionInfo.js";import{templateStringToSql as a,getSingleFieldArcadeExpression as p,getLabelExpression as c,getLabelExpressionArcade as b,getLabelExpressionSingleField as m,LabelClassSymbol as u}from"./labelUtils.js";import{isSceneServiceLayer as w}from"./layerUtils.js";import{defaultTextSymbol2D as f}from"../../symbols/support/defaults.js";import{writeLabelSymbol as v}from"../../symbols/support/jsonUtils.js";import{symbolTypesLabel3D as y,symbolTypesLabel as h}from"../../symbols/support/typeUtils.js";import{reader as d}from"../../core/accessorSupport/decorators/reader.js";import{writer as S}from"../../core/accessorSupport/decorators/writer.js";var L,P;const x=new r({esriServerPointLabelPlacementAboveCenter:"above-center",esriServerPointLabelPlacementAboveLeft:"above-left",esriServerPointLabelPlacementAboveRight:"above-right",esriServerPointLabelPlacementBelowCenter:"below-center",esriServerPointLabelPlacementBelowLeft:"below-left",esriServerPointLabelPlacementBelowRight:"below-right",esriServerPointLabelPlacementCenterCenter:"center-center",esriServerPointLabelPlacementCenterLeft:"center-left",esriServerPointLabelPlacementCenterRight:"center-right",esriServerLinePlacementAboveAfter:"above-after",esriServerLinePlacementAboveAlong:"above-along",esriServerLinePlacementAboveBefore:"above-before",esriServerLinePlacementAboveStart:"above-start",esriServerLinePlacementAboveEnd:"above-end",esriServerLinePlacementBelowAfter:"below-after",esriServerLinePlacementBelowAlong:"below-along",esriServerLinePlacementBelowBefore:"below-before",esriServerLinePlacementBelowStart:"below-start",esriServerLinePlacementBelowEnd:"below-end",esriServerLinePlacementCenterAfter:"center-after",esriServerLinePlacementCenterAlong:"center-along",esriServerLinePlacementCenterBefore:"center-before",esriServerLinePlacementCenterStart:"center-start",esriServerLinePlacementCenterEnd:"center-end",esriServerPolygonPlacementAlwaysHorizontal:"always-horizontal"},{ignoreUnknown:!0});function g(e,r,t){return{enabled:!w(t?.layer)}}function E(e){return!e||"service"!==e.origin&&!("map-image"===e.layer?.type)}function j(e){return"map-image"===e?.type}function A(e){return!!j(e)&&!!e.capabilities?.exportMap?.supportsArcadeExpressionForLabeling}function C(e){return E(e)||A(e?.layer)}let I=class extends t{static{L=u}static{P=this}static evaluateWhere(e,r){const t=(e,r,t)=>{switch(r){case"=":return e==t;case"<>":return e!=t;case">":return e>t;case">=":return e>=t;case"<":return e<t;case"<=":return e<=t}return!1};try{if(null==e)return!0;const o=e.split(" ");if(3===o.length)return t(r[o[0]],o[1],o[2]);if(7===o.length){const e=t(r[o[0]],o[1],o[2]),i=o[3],l=t(r[o[4]],o[5],o[6]);switch(i){case"AND":return e&&l;case"OR":return e||l}}return!1}catch(o){}}constructor(e){super(e),this[L]=!0,this.type="label",this.name=null,this.allowOverrun=!1,this.deconflictionStrategy="static",this.labelExpression=null,this.labelExpressionInfo=null,this.labelPlacement=null,this.labelPosition="curved",this.maxScale=0,this.minScale=0,this.repeatLabel=!0,this.symbol=f,this.useCodedValues=void 0,this.where=null}readLabelExpression(e,r){const t=r.labelExpressionInfo;if(!t||!t.value&&!t.expression)return e}writeLabelExpression(e,r,t){if(this.labelExpressionInfo)if(null!=this.labelExpressionInfo.value)e=a(this.labelExpressionInfo.value);else if(null!=this.labelExpressionInfo.expression){const r=p(this.labelExpressionInfo.expression);r&&(e="["+r+"]")}null!=e&&(r[t]=e)}writeLabelExpressionInfo(e,r,t,o){if(null==e&&null!=this.labelExpression&&E(o))e=new s({expression:this.getLabelExpressionArcade()});else if(!e)return;const i=e.toJSON(o);i.expression&&(r[t]=i)}writeMaxScale(e,r){(e||this.minScale)&&(r.maxScale=e)}writeMinScale(e,r){(e||this.maxScale)&&(r.minScale=e)}get repeatLabelDistance(){return this._get("repeatLabelDistance")}set repeatLabelDistance(e){this._set("repeatLabelDistance",e)}getLabelExpression(){return c(this)}getLabelExpressionArcade(){return b(this)}getLabelExpressionSingleField(){return m(this)}hash(){return JSON.stringify(this)}clone(){return new P({allowOverrun:this.allowOverrun,deconflictionStrategy:this.deconflictionStrategy,labelExpression:this.labelExpression,labelExpressionInfo:o(this.labelExpressionInfo),labelPosition:this.labelPosition,labelPlacement:this.labelPlacement,maxScale:this.maxScale,minScale:this.minScale,name:this.name,repeatLabel:this.repeatLabel,repeatLabelDistance:this.repeatLabelDistance,symbol:o(this.symbol),where:this.where,useCodedValues:this.useCodedValues})}};e([l({type:String,json:{write:!0}})],I.prototype,"name",void 0),e([l({type:Boolean,json:{write:!0,default:!1,origins:{"web-scene":{write:!1},"portal-item":{default:!1,write:{overridePolicy:g}}}}})],I.prototype,"allowOverrun",void 0),e([l({type:String,json:{write:!0,default:"static",origins:{"web-scene":{write:!1},"portal-item":{default:"static",write:{overridePolicy:g}}}}})],I.prototype,"deconflictionStrategy",void 0),e([l({type:String,json:{write:{overridePolicy(e,r,t){return this.labelExpressionInfo&&"service"===t?.origin&&A(t.layer)?{enabled:!1}:{allowNull:!0}}}}})],I.prototype,"labelExpression",void 0),e([d("labelExpression")],I.prototype,"readLabelExpression",null),e([S("labelExpression")],I.prototype,"writeLabelExpression",null),e([l({type:s,json:{write:{overridePolicy:(e,r,t)=>C(t)?{allowNull:!0}:{enabled:!1}}}})],I.prototype,"labelExpressionInfo",void 0),e([S("labelExpressionInfo")],I.prototype,"writeLabelExpressionInfo",null),e([l({type:x.apiValues,json:{type:x.jsonValues,read:x.read,write:x.write}})],I.prototype,"labelPlacement",void 0),e([l({type:["curved","parallel"],json:{write:!0,origins:{"web-map":{write:!1},"web-scene":{write:!1},"portal-item":{write:!1}}}})],I.prototype,"labelPosition",void 0),e([l({type:Number})],I.prototype,"maxScale",void 0),e([S("maxScale")],I.prototype,"writeMaxScale",null),e([l({type:Number})],I.prototype,"minScale",void 0),e([S("minScale")],I.prototype,"writeMinScale",null),e([l({type:Boolean,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:g}}}}})],I.prototype,"repeatLabel",void 0),e([l({type:Number,cast:i,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:g}}}}})],I.prototype,"repeatLabelDistance",null),e([l({types:h,json:{origins:{"web-scene":{types:y,write:v,default:null}},write:v,default:null}})],I.prototype,"symbol",void 0),e([l({type:Boolean,json:{write:!0}})],I.prototype,"useCodedValues",void 0),e([l({type:String,json:{write:!0}})],I.prototype,"where",void 0),I=P=e([n("esri.layers.support.LabelClass")],I);export{I as default};
2
+ import{__decorate as e}from"tslib";import"../../core/has.js";import{JSONMap as r}from"../../core/jsonMap.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{clone as o}from"../../core/lang.js";import{toPt as i}from"../../core/screenUtils.js";import{property as s,subclass as n}from"../../core/accessorSupport/decorators.js";import{createTypeReader as l}from"../../core/accessorSupport/extensions/serializableProperty/reader.js";import a from"./LabelExpressionInfo.js";import{templateStringToSql as p,getSingleFieldArcadeExpression as c,getLabelExpression as b,getLabelExpressionArcade as m,getLabelExpressionSingleField as u,LabelClassSymbol as f}from"./labelUtils.js";import{isSceneServiceLayer as w}from"./layerUtils.js";import{defaultTextSymbol2D as v}from"../../symbols/support/defaults.js";import{writeLabelSymbol as y}from"../../symbols/support/jsonUtils.js";import{symbolTypesLabel3D as d,symbolTypesLabel as h,symbolTypesLabel2D as S}from"../../symbols/support/typeUtils.js";import{reader as L}from"../../core/accessorSupport/decorators/reader.js";import{writer as P}from"../../core/accessorSupport/decorators/writer.js";var x,g;const E=new r({esriServerPointLabelPlacementAboveCenter:"above-center",esriServerPointLabelPlacementAboveLeft:"above-left",esriServerPointLabelPlacementAboveRight:"above-right",esriServerPointLabelPlacementBelowCenter:"below-center",esriServerPointLabelPlacementBelowLeft:"below-left",esriServerPointLabelPlacementBelowRight:"below-right",esriServerPointLabelPlacementCenterCenter:"center-center",esriServerPointLabelPlacementCenterLeft:"center-left",esriServerPointLabelPlacementCenterRight:"center-right",esriServerLinePlacementAboveAfter:"above-after",esriServerLinePlacementAboveAlong:"above-along",esriServerLinePlacementAboveBefore:"above-before",esriServerLinePlacementAboveStart:"above-start",esriServerLinePlacementAboveEnd:"above-end",esriServerLinePlacementBelowAfter:"below-after",esriServerLinePlacementBelowAlong:"below-along",esriServerLinePlacementBelowBefore:"below-before",esriServerLinePlacementBelowStart:"below-start",esriServerLinePlacementBelowEnd:"below-end",esriServerLinePlacementCenterAfter:"center-after",esriServerLinePlacementCenterAlong:"center-along",esriServerLinePlacementCenterBefore:"center-before",esriServerLinePlacementCenterStart:"center-start",esriServerLinePlacementCenterEnd:"center-end",esriServerPolygonPlacementAlwaysHorizontal:"always-horizontal"},{ignoreUnknown:!0});function j(e,r,t){return{enabled:!w(t?.layer)}}function A(e){return!e||"service"!==e.origin&&!("map-image"===e.layer?.type)}function C(e){return"map-image"===e?.type}function I(e){return!!C(e)&&!!e.capabilities?.exportMap?.supportsArcadeExpressionForLabeling}function B(e){return A(e)||I(e?.layer)}let D=class extends t{static{x=f}static{g=this}static evaluateWhere(e,r){const t=(e,r,t)=>{switch(r){case"=":return e==t;case"<>":return e!=t;case">":return e>t;case">=":return e>=t;case"<":return e<t;case"<=":return e<=t}return!1};try{if(null==e)return!0;const o=e.split(" ");if(3===o.length)return t(r[o[0]],o[1],o[2]);if(7===o.length){const e=t(r[o[0]],o[1],o[2]),i=o[3],s=t(r[o[4]],o[5],o[6]);switch(i){case"AND":return e&&s;case"OR":return e||s}}return!1}catch(o){}}constructor(e){super(e),this[x]=!0,this.type="label",this.name=null,this.allowOverrun=!1,this.deconflictionStrategy="static",this.labelExpression=null,this.labelExpressionInfo=null,this.labelPlacement=null,this.offsetDistance=0,this.labelPosition="curved",this.maxScale=0,this.minScale=0,this.repeatLabel=!0,this.symbol=v,this.useCodedValues=void 0,this.where=null}readLabelExpression(e,r){const t=r.labelExpressionInfo;if(!t||!t.value&&!t.expression)return e}writeLabelExpression(e,r,t){if(this.labelExpressionInfo)if(null!=this.labelExpressionInfo.value)e=p(this.labelExpressionInfo.value);else if(null!=this.labelExpressionInfo.expression){const r=c(this.labelExpressionInfo.expression);r&&(e="["+r+"]")}null!=e&&(r[t]=e)}writeLabelExpressionInfo(e,r,t,o){if(null==e&&null!=this.labelExpression&&A(o))e=new a({expression:this.getLabelExpressionArcade()});else if(!e)return;const i=e.toJSON(o);i.expression&&(r[t]=i)}writeMaxScale(e,r){(e||this.minScale)&&(r.maxScale=e)}writeMinScale(e,r){(e||this.maxScale)&&(r.minScale=e)}get repeatLabelDistance(){return this._get("repeatLabelDistance")}set repeatLabelDistance(e){this._set("repeatLabelDistance",e)}getLabelExpression(){return b(this)}getLabelExpressionArcade(){return m(this)}getLabelExpressionSingleField(){return u(this)}hash(){return JSON.stringify(this)}clone(){return new g({allowOverrun:this.allowOverrun,deconflictionStrategy:this.deconflictionStrategy,labelExpression:this.labelExpression,labelExpressionInfo:o(this.labelExpressionInfo),labelPosition:this.labelPosition,labelPlacement:this.labelPlacement,offsetDistance:this.offsetDistance,maxScale:this.maxScale,minScale:this.minScale,name:this.name,repeatLabel:this.repeatLabel,repeatLabelDistance:this.repeatLabelDistance,symbol:o(this.symbol),where:this.where,useCodedValues:this.useCodedValues})}};e([s({type:String,json:{write:!0}})],D.prototype,"name",void 0),e([s({type:Boolean,json:{write:!0,default:!1,origins:{"web-scene":{write:!1},"portal-item":{default:!1,write:{overridePolicy:j}}}}})],D.prototype,"allowOverrun",void 0),e([s({type:String,json:{write:!0,default:"static",origins:{"web-scene":{write:!1},"portal-item":{default:"static",write:{overridePolicy:j}}}}})],D.prototype,"deconflictionStrategy",void 0),e([s({type:String,json:{write:{overridePolicy(e,r,t){return this.labelExpressionInfo&&"service"===t?.origin&&I(t.layer)?{enabled:!1}:{allowNull:!0}}}}})],D.prototype,"labelExpression",void 0),e([L("labelExpression")],D.prototype,"readLabelExpression",null),e([P("labelExpression")],D.prototype,"writeLabelExpression",null),e([s({type:a,json:{write:{overridePolicy:(e,r,t)=>B(t)?{allowNull:!0}:{enabled:!1}}}})],D.prototype,"labelExpressionInfo",void 0),e([P("labelExpressionInfo")],D.prototype,"writeLabelExpressionInfo",null),e([s({type:E.apiValues,json:{type:E.jsonValues,read:E.read,write:E.write}})],D.prototype,"labelPlacement",void 0),e([s({type:Number,json:{read:!0,write:!0,default:0,origins:{"web-scene":{write:!1}}}})],D.prototype,"offsetDistance",void 0),e([s({type:["curved","parallel"],json:{write:!0,origins:{"web-map":{write:!1},"web-scene":{write:!1},"portal-item":{write:!1}}}})],D.prototype,"labelPosition",void 0),e([s({type:Number})],D.prototype,"maxScale",void 0),e([P("maxScale")],D.prototype,"writeMaxScale",null),e([s({type:Number})],D.prototype,"minScale",void 0),e([P("minScale")],D.prototype,"writeMinScale",null),e([s({type:Boolean,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:j}}}}})],D.prototype,"repeatLabel",void 0),e([s({type:Number,cast:i,json:{write:!0,origins:{"web-scene":{write:!1},"portal-item":{write:{overridePolicy:j}}}}})],D.prototype,"repeatLabelDistance",null),e([s({types:h,json:{types:S,origins:{"portal-item":{types:h,read:{reader:l({types:h})},default:null},"web-scene":{types:d,read:{reader:l({types:d})},write:y,default:null}},write:y,default:null}})],D.prototype,"symbol",void 0),e([s({type:Boolean,json:{write:!0}})],D.prototype,"useCodedValues",void 0),e([s({type:String,json:{write:!0}})],D.prototype,"where",void 0),D=g=e([n("esri.layers.support.LabelClass")],D);export{D as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{JSONMap as e}from"../../core/jsonMap.js";import{excludeTables as r}from"../../core/accessorSupport/layerContainerType.js";import n from"../../geometry/Extent.js";import i from"../../geometry/SpatialReference.js";import{w as a}from"../../chunks/persistableUrlUtils.js";import o from"../../symbols/support/ElevationInfo.js";import t from"../../tables/AttributeTableTemplate.js";import{transparencyToOpacity as s}from"../../webdoc/support/opacityUtils.js";const l={type:Boolean,value:!0,json:{origins:{service:{read:!1,write:!1},"web-map":{read:!1,write:!1}},name:"screenSizePerspective",write:{enabled:!0,layerContainerTypes:r}}},p={type:Boolean,value:!0,json:{name:"disablePopup",read:{reader:(e,r)=>!r.disablePopup},write:{enabled:!0,writer(e,r,n){r[n]=!e}}}},y={type:Boolean,value:!0,nonNullable:!0,json:{name:"showLabels",write:{enabled:!0,layerContainerTypes:r}}},d={type:String,json:{origins:{"portal-item":{write:!1}},write:{isRequired:!0,ignoreOrigin:!0,writer:a}}},m={type:Boolean,value:!0,nonNullable:!0,json:{origins:{service:{read:{enabled:!1}}},name:"showLegend",write:{enabled:!0,layerContainerTypes:r}}},c={value:null,type:o,json:{origins:{service:{name:"elevationInfo",write:!0}},name:"layerDefinition.elevationInfo",write:{enabled:!0,layerContainerTypes:r}}};function w(e){return{type:e,readOnly:!0,json:{origins:{service:{read:!0}},read:!1}}}const f={write:{enabled:!0,layerContainerTypes:r},read:!0},g={type:Number,json:{origins:{"web-document":f,"portal-item":{write:{layerContainerTypes:r}}}}},u={...g,json:{...g.json,origins:{"web-document":{...f,write:{enabled:!0,layerContainerTypes:r,target:{opacity:{type:Number},"layerDefinition.drawingInfo.transparency":{type:Number}}}}},read:{source:["layerDefinition.drawingInfo.transparency","drawingInfo.transparency"],reader:(e,r,n)=>n&&"service"!==n.origin||!r.drawingInfo||void 0===r.drawingInfo.transparency?r.layerDefinition?.drawingInfo&&void 0!==r.layerDefinition.drawingInfo.transparency?s(r.layerDefinition.drawingInfo.transparency):void 0:s(r.drawingInfo.transparency)}}},b={type:n,readOnly:!0,json:{origins:{service:{read:{source:["fullExtent","spatialReference"],reader:(e,r)=>{const a=n.fromJSON(e);return null!=r.spatialReference&&"object"==typeof r.spatialReference&&(a.spatialReference=i.fromJSON(r.spatialReference)),a}}}},read:!1}},j={type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}}}},v={type:Number,json:{origins:{service:{write:{enabled:!1}}},name:"layerDefinition.minScale",write:{layerContainerTypes:r}}},T={type:Number,json:{origins:{service:{write:{enabled:!1}}},name:"layerDefinition.maxScale",write:{layerContainerTypes:r}}},I={json:{write:{ignoreOrigin:!0,layerContainerTypes:r},origins:{"web-map":{read:!1,write:!1}}}},C={type:t,json:{name:"attributeTableInfo",write:!0}},N=new e({High:"high",Medium:"medium",Low:"low",None:"none"}),h={type:N.apiValues,json:{name:"layerDefinition.barrierWeight",default:"high",read:N.read,write:N.write,origins:{service:{read:!1}}}};export{C as attributeTableTemplate,h as barrierWeight,c as elevationInfo,j as id,y as labelsVisible,m as legendEnabled,I as listMode,T as maxScale,v as minScale,g as opacity,u as opacityDrawingInfo,p as popupEnabled,w as readOnlyService,b as sceneLayerFullExtent,l as screenSizePerspectiveEnabled,d as url};
2
+ import{JSONMap as e}from"../../core/jsonMap.js";import{setDeepValue as r}from"../../core/object.js";import{excludeTables as n}from"../../core/accessorSupport/layerContainerType.js";import i from"../../geometry/Extent.js";import a from"../../geometry/SpatialReference.js";import{w as o}from"../../chunks/persistableUrlUtils.js";import t from"../../symbols/support/ElevationInfo.js";import s from"../../tables/AttributeTableTemplate.js";import{transparencyToOpacity as l}from"../../webdoc/support/opacityUtils.js";const p={type:Boolean,value:!0,json:{origins:{service:{read:!1,write:!1},"web-map":{read:!1,write:!1}},name:"screenSizePerspective",write:{enabled:!0,layerContainerTypes:n}}},y={type:Boolean,value:!0,json:{name:"disablePopup",read:{reader:(e,r)=>!r.disablePopup},write:{enabled:!0,writer(e,r,n){r[n]=!e}}}},d={type:Boolean,value:!0,nonNullable:!0,json:{name:"showLabels",write:{enabled:!0,layerContainerTypes:n}}},m={type:String,json:{origins:{"portal-item":{write:!1}},write:{isRequired:!0,ignoreOrigin:!0,writer:o}}},c={type:Boolean,value:!0,nonNullable:!0,json:{origins:{service:{read:{enabled:!1}}},name:"showLegend",write:{enabled:!0,layerContainerTypes:n}}},f={value:null,type:t,json:{origins:{service:{name:"elevationInfo",write:!0}},name:"layerDefinition.elevationInfo",write:{enabled:!0,layerContainerTypes:n}}};function w(e){return{type:e,readOnly:!0,json:{origins:{service:{read:!0}},read:!1}}}const g={write:{enabled:!0,layerContainerTypes:n},read:!0},u={type:Number,json:{origins:{"web-document":g,"portal-item":{write:{layerContainerTypes:n}}}}},b={...u,json:{...u.json,origins:{"web-document":{...g,write:{enabled:!0,layerContainerTypes:n,target:{opacity:{type:Number},"layerDefinition.drawingInfo.transparency":{type:Number}}}}},read:{source:["layerDefinition.drawingInfo.transparency","drawingInfo.transparency"],reader:(e,r,n)=>n&&"service"!==n.origin||!r.drawingInfo||void 0===r.drawingInfo.transparency?r.layerDefinition?.drawingInfo&&void 0!==r.layerDefinition.drawingInfo.transparency?l(r.layerDefinition.drawingInfo.transparency):void 0:l(r.drawingInfo.transparency)}}},j={type:i,readOnly:!0,json:{origins:{service:{read:{source:["fullExtent","spatialReference"],reader:(e,r)=>{const n=i.fromJSON(e);return null!=r.spatialReference&&"object"==typeof r.spatialReference&&(n.spatialReference=a.fromJSON(r.spatialReference)),n}}}},read:!1}},v={type:String,json:{origins:{service:{read:!1},"portal-item":{read:!1}}}},I={type:Number,json:{origins:{service:{write:{enabled:!1}}},name:"layerDefinition.minScale",write:{layerContainerTypes:n}}},T={type:Number,json:{origins:{service:{write:{enabled:!1}}},name:"layerDefinition.maxScale",write:{layerContainerTypes:n}}},N={json:{write:{ignoreOrigin:!0,layerContainerTypes:n},origins:{"web-map":{read:!1,write:!1}}}},C={type:s,json:{name:"attributeTableInfo",write:!0}},O=new e({High:"high",Medium:"medium",Low:"low",None:"none"}),h={type:O.apiValues,json:{name:"layerDefinition.barrierWeight",default:"high",read:O.read,write:O.write,origins:{service:{read:!1}}}};function D(e){return{name:"layerDefinition.timeInfo",read:!0,write:{enabled:!0,overridePolicy(r,n){return{enabled:!0,ignoreOrigin:!!e&&this.originIdOf(n)<3}},writer:(e,n,i,a)=>{if(e){const o=e.toJSON({...a,writeExportOptions:!1});r(i,o,n)}}}}}function S(e){const r=e?.alwaysWriteNonItemOrigin;return{json:{name:e?.name,origins:{"web-map":D(r),"portal-item":D(r)}}}}export{C as attributeTableTemplate,h as barrierWeight,f as elevationInfo,v as id,d as labelsVisible,c as legendEnabled,N as listMode,T as maxScale,I as minScale,u as opacity,b as opacityDrawingInfo,y as popupEnabled,w as readOnlyService,j as sceneLayerFullExtent,p as screenSizePerspectiveEnabled,S as timeInfo,m as url};
@@ -0,0 +1,130 @@
1
+ import type Accessor from "../core/Accessor.js";
2
+ import type Collection from "../core/Collection.js";
3
+ import type Layer from "../layers/Layer.js";
4
+ import type LayerView from "../views/layers/LayerView.js";
5
+ import type { LegendElement } from "./types.js";
6
+ import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
7
+
8
+ export interface ActiveLayerInfoProperties extends Partial<Pick<ActiveLayerInfo, "children" | "hideLayersNotInCurrentView" | "keepCacheOnDestroy" | "layer" | "layerView" | "legendElements" | "parent" | "respectLayerDefinitionExpression" | "respectLayerVisibility" | "sublayerIds" | "title" | "view">> {}
9
+
10
+ /**
11
+ * Represents the legend content for a layer or sublayer in a
12
+ * [LegendContent](https://developers.arcgis.com/javascript/latest/references/core/legend/LegendContent/) instance.
13
+ *
14
+ * An `ActiveLayerInfo` is added to or removed from
15
+ * [LegendContent.activeLayerInfos](https://developers.arcgis.com/javascript/latest/references/core/legend/LegendContent/#activeLayerInfos) as layers become visible or invisible in the view. It maintains
16
+ * parent and child relationships and generates the [legend elements](https://developers.arcgis.com/javascript/latest/references/core/legend/ActiveLayerInfo/#legendElements)
17
+ * required to render the layer's symbology.
18
+ *
19
+ * You can use this class to build custom, interactive legends without using the
20
+ * [Legend component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
21
+ *
22
+ * @since 5.2
23
+ */
24
+ export default class ActiveLayerInfo extends Accessor {
25
+ constructor(properties?: ActiveLayerInfoProperties);
26
+ /**
27
+ * A collection of child activeLayerInfos. This only applies to renderers of
28
+ * [Sublayers](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/) or the children
29
+ * of [GroupLayers](https://developers.arcgis.com/javascript/latest/references/core/layers/GroupLayer/).
30
+ */
31
+ accessor children: Collection<ActiveLayerInfo>;
32
+ /** The CSS filter string representing the effects applied to the active layer. */
33
+ get cssEffectFilter(): string | null | undefined;
34
+ /**
35
+ * When `true`, layers will only be shown in the legend if
36
+ * they are visible in the view's extent. When data from a layer
37
+ * is not visible in the view, the layer's legend information
38
+ * will be hidden.
39
+ *
40
+ * To hide layers completely
41
+ * from the legend, you should set the `legendEnabled` property of
42
+ * the layer to `false`.
43
+ *
44
+ * @default false
45
+ * @see [respectLayerVisibility](https://developers.arcgis.com/javascript/latest/references/core/legend/ActiveLayerInfo/#respectLayerVisibility)
46
+ */
47
+ accessor hideLayersNotInCurrentView: boolean;
48
+ /**
49
+ * Indicates if the legend's display of the layer's renderer is driven by the scale of the view.
50
+ * This is true of [Sublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/) renderers, any renderer that uses
51
+ * a `valueExpression` (Arcade expression), [DotDensityRenderer](https://developers.arcgis.com/javascript/latest/references/core/renderers/DotDensityRenderer/), and
52
+ * layers that have [FeatureReductionLayer.featureReduction](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureReductionLayer/#featureReduction) enabled.
53
+ */
54
+ get isScaleDriven(): boolean;
55
+ /**
56
+ * Indicates whether cached legend responses should be preserved when the active layer info is destroyed.
57
+ * Preserving the cache can avoid repeating legend requests when creating another active layer info for the same layer.
58
+ *
59
+ * @default false
60
+ */
61
+ accessor keepCacheOnDestroy: boolean;
62
+ /** The layer represented by the ActiveLayerInfo object. */
63
+ accessor layer: Layer;
64
+ /** The layerView represented by the ActiveLayerInfo object's layer. */
65
+ accessor layerView: LayerView;
66
+ /**
67
+ * The legendElements is constructed using the layer [Renderer](https://developers.arcgis.com/javascript/latest/references/core/renderers/Renderer/). It reflects the actual
68
+ * structure of the legend.
69
+ */
70
+ accessor legendElements: LegendElement[];
71
+ /** Indicates whether legend elements are currently being generated for this layer or its children. */
72
+ get loading(): boolean;
73
+ /** The opacity of the layer or parent element. */
74
+ get opacity(): number;
75
+ /** The ActiveLayerInfo of the parent [Sublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/) or [GroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GroupLayer/). */
76
+ accessor parent: ActiveLayerInfo | null | undefined;
77
+ /**
78
+ * Indicates if the activeLayerInfo is ready. It is set to `true` when all its [legendElements](https://developers.arcgis.com/javascript/latest/references/core/legend/ActiveLayerInfo/#legendElements) are computed.
79
+ * It is set to `false` when the layer renderer changes so that the legendElements can recomputed.
80
+ */
81
+ get ready(): boolean;
82
+ /**
83
+ * Indicates whether the layer's definition expression should be applied when generating legend information.
84
+ *
85
+ * @default false
86
+ */
87
+ accessor respectLayerDefinitionExpression: boolean;
88
+ /**
89
+ * Determines whether to respect the properties of the layers in the map that
90
+ * control the legend's visibility (`minScale`, `maxScale`, `legendEnabled`).
91
+ * By default, a layer's legend elements **will
92
+ * not render** in the legend given the following conditions:
93
+ *
94
+ * - The [FeatureLayer.legendEnabled](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#legendEnabled) property
95
+ * is set to `false`.
96
+ * - If the view's scale is outside the visibility range
97
+ * defined by the [ScaleRangeLayer.minScale](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/ScaleRangeLayer/#minScale) and
98
+ * [ScaleRangeLayer.maxScale](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/ScaleRangeLayer/#maxScale) properties.
99
+ *
100
+ * When the `respectLayerVisibility` property of the legend is set to `false`, the legend elements for each
101
+ * layer in the map will always display, thus disregarding the `minScale`, `maxScale`,
102
+ * and `legendEnabled` properties for each layer in the map.
103
+ *
104
+ * @default true
105
+ * @see [hideLayersNotInCurrentView](https://developers.arcgis.com/javascript/latest/references/core/legend/ActiveLayerInfo/#hideLayersNotInCurrentView)
106
+ */
107
+ accessor respectLayerVisibility: boolean;
108
+ /** The scale of the view instance in which the Legend is rendered. */
109
+ get scale(): number;
110
+ /**
111
+ * Only applies if the [layer](https://developers.arcgis.com/javascript/latest/references/core/legend/ActiveLayerInfo/#layer) is a [MapImageLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/). An array of
112
+ * MapImageLayer [Sublayer](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Sublayer/) IDs for which to display legend information. For example,
113
+ * if a MapImageLayer contains 100 sublayers, but you want to display the legend for two sublayers,
114
+ * then specifying the IDs of both sublayers will allow the Legend to only display legend information for those sublayers.
115
+ */
116
+ accessor sublayerIds: number[];
117
+ /**
118
+ * The text string that represents the legend's title. This value is read from the `layerInfo` of the
119
+ * corresponding layer in the legend. If not provided, this value comes from the
120
+ * [Layer.title](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#title).
121
+ */
122
+ accessor title: string | null | undefined;
123
+ /**
124
+ * The version of the ActiveLayerInfo. It increases by `1` whenever [ready](https://developers.arcgis.com/javascript/latest/references/core/legend/ActiveLayerInfo/#ready) property of ActiveLayerInfo changes.
125
+ * This property should watched in the view for ActiveLayerInfo changes and update the DOM accordingly.
126
+ */
127
+ get version(): number;
128
+ /** The view in which the Legend is rendered. */
129
+ accessor view: MapViewOrSceneView;
130
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{__decorate as e}from"tslib";import t from"../Color.js";import{addTokenParameter as i}from"../kernel.js";import s from"../request.js";import l from"../core/Accessor.js";import{isSome as r}from"../core/arrayUtils.js";import n from"../core/Collection.js";import{getColorWithEmissiveStrength as a}from"../core/colorUtils.js";import{JSONMap as o}from"../core/jsonMap.js";import u from"../core/Logger.js";import{clamp as c}from"../core/mathUtils.js";import{debounce as d}from"../core/promiseUtils.js";import{on as y,watch as h,initial as f,whenOnce as m}from"../core/reactiveUtils.js";import{px2pt as p}from"../core/screenUtils.js";import{parseWhereClause as g,sqlName as b,sqlLiteral as _}from"../core/sql.js";import{addQueryParameters as S}from"../core/urlUtils.js";import{property as w,subclass as v}from"../core/accessorSupport/decorators.js";import{runUntracked as L}from"../core/accessorSupport/tracking.js";import{EffectView as E}from"../layers/effects/EffectView.js";import{getPixelValueRange as F}from"../layers/raster/formats/pixelRangeUtils.js";import{getEffectiveDisplayFilter as C}from"../layers/support/displayFilterUtils.js";import{ExportImageParameters as I}from"../layers/support/ExportImageParameters.js";import{collectFields as R,collectArcadeFieldNames as V}from"../layers/support/fieldUtils.js";import{isFeatureLayer as x,getFieldConfigurationsContainer as D}from"../layers/support/layerUtils.js";import{getEffectiveClusterSizeVariable as z}from"./support/clusterUtils.js";import{getColorFromPointCloudStops as T,getRampStopsForPointCloud as j,getStretchRampStops as k,getRampStops as P}from"./support/colorRampUtils.js";import{getHeatmapRampStops as O}from"./support/heatmapRampUtils.js";import{getRelationshipRampElement as U,getRotationAngleForFocus as M}from"./support/relationshipRampUtils.js";import{getRampStops as A,realWorldMaxSize as B,realWorldMinSize as N}from"./support/sizeRampUtils.js";import{specialCharsLessThan as $,specialCharsGreaterThan as H,getAuthoringInfoVisualVariableByTheme as W,getSymbolForFlowRenderer as q,formatValue as G,getFormatOptions as J,mergeWhereClauses as Z,getMedianColor as Q,rgbImgSource as K,getFormatOptionsForVisualVariable as X}from"./support/utils.js";import{fromJSON as Y}from"../renderers/support/jsonUtils.js";import{isSupportedRenderer3D as ee}from"../renderers/support/rendererConversion.js";import{getScaleDependentSymbol as te}from"../renderers/support/scaleDependentSymbolUtils.js";import ie from"../renderers/visualVariables/SizeVariable.js";import se from"../renderers/visualVariables/support/SizeVariableLegendOptions.js";import{updateReferenceSizeSymbol as le}from"../smartMapping/renderers/support/referenceSizeUtils.js";import re from"../symbols/SimpleFillSymbol.js";import ne from"../symbols/SimpleMarkerSymbol.js";import{applyCIMSymbolColor as ae}from"../symbols/support/cimSymbolUtils.js";import{renderSymbol as oe}from"../symbols/support/renderUtils.js";import{renderColorRampPreviewHTML as ue,renderDotDensityPreviewHTML as ce,renderPieChartPreviewHTML as de,renderPreviewHTML as ye,getEmissiveFromSymbol as he}from"../symbols/support/symbolUtils.js";import{getCSSFilterFromEffectList as fe,isVolumetricSymbol as me}from"../symbols/support/utils.js";import{formatNumberLabel as pe}from"../widgets/smartMapping/support/utils.js";const ge=16,be="https://utility.arcgis.com/sharing/tools/legend",_e="esri.layers.ImageryLayer",Se="esri.layers.ImageryTileLayer",we="esri.layers.WCSLayer",ve=/^\s*(return\s+)?\$view\.scale\s*(;)?\s*$/i,Le=new o({esriGeometryPoint:"point",esriGeometryMultipoint:"multipoint",esriGeometryPolyline:"polyline",esriGeometryPolygon:"polygon",esriGeometryMultiPatch:"multipatch"}),Ee=new ne({size:6,outline:{color:[128,128,128,.5],width:.5}}),Fe=new re({style:"solid"});function Ce(e){return"flow"===e.type}function Ie(e){return"vector-field"===e.type}function Re(e){return"raster-colormap"===e.type}function Ve(e){return"raster-stretch"===e.type}function xe(e){return"raster-shaded-relief"===e.type}function De(e){return"esri.renderers.SimpleRenderer"===e.declaredClass}function ze(e){return"esri.renderers.ClassBreaksRenderer"===e.declaredClass}function Te(e){return"esri.renderers.UniqueValueRenderer"===e.declaredClass}function je(e){return"esri.renderers.HeatmapRenderer"===e.declaredClass}function ke(e){return Oe(e)||Ue(e)||Me(e)||Pe(e)}function Pe(e){return"esri.renderers.PointCloudRGBRenderer"===e.declaredClass}function Oe(e){return"esri.renderers.PointCloudClassBreaksRenderer"===e.declaredClass}function Ue(e){return"esri.renderers.PointCloudStretchRenderer"===e.declaredClass}function Me(e){return"esri.renderers.PointCloudUniqueValueRenderer"===e.declaredClass}function Ae(e){return"esri.renderers.DotDensityRenderer"===e.declaredClass}function Be(e){return"esri.renderers.PieChartRenderer"===e.declaredClass}function Ne(e,t){return De(e)||ze(e)||Te(e)||je(e)||Ae(e)||Be(e)?"2d"===t.type||ee(e):Ve(e)||Re(e)||xe(e)||Oe(e)||Ue(e)||Me(e)||Ie(e)||Ce(e)}function $e(e){return"esri.layers.BuildingSceneLayer"===e.declaredClass}function He(e){return"esri.layers.SubtypeGroupLayer"===e.declaredClass}function We(e){return"esri.layers.VoxelLayer"===e.declaredClass}function qe(e){return"esri.layers.WMSLayer"===e.declaredClass}function Ge(e){return"esri.layers.WMTSLayer"===e.declaredClass}function Je(e){return"esri.layers.MapImageLayer"===e.declaredClass}function Ze(e){return"esri.layers.TileLayer"===e.declaredClass}function Qe(e){return e.declaredClass===_e}function Ke(e){return e.declaredClass===Se}function Xe(e){return e.declaredClass===we}function Ye(e){return"stretch-ramp"===e.type}function et(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type}function tt(e){const t="authoringInfo"in e?e?.authoringInfo:null;return"univariate-color-size"===t?.type&&"above-and-below"===t?.univariateTheme}function it(e){return"sublayers"in e}function st(e){return e&&"symbol"in e}function lt(e,t){const{field:i,field2:s,field3:l,fieldDelimiter:r,valueExpression:n}=e;if(!i)return null;const a=!(!i&&!n||!s&&!l)?t?.toString().split(r||""):[t],o=i?{[i]:a?.[0]}:null;return o&&(s&&(o[s]=a?.[1]),l&&(o[l]=a?.[2])),o}const rt=new ne({style:"path",path:"M10,5 L5,0 0,5 M5,0 L5,15",size:15,outline:{width:1,color:[85,85,85,1]}});let nt={},at={};const ot=new WeakMap;let ut=class extends l{constructor(e){super(e),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._loading=!1,this._dotDensityUrlCache=new Map,this._scaleDrivenSizeVariable=null,this._clusterSizeVariable=null,this._layerDefinitionExpression=null,this._layerDefinitionExpressionClause=null,this._layerDisplayFilter=null,this._layerDisplayFilterClause=null,this.children=new n,this.hideLayersNotInCurrentView=!1,this.keepCacheOnDestroy=!1,this.layer=null,this.layerView=null,this.legendElements=[],this.parent=null,this.respectLayerDefinitionExpression=!1,this.respectLayerVisibility=!0,this.sublayerIds=[],this.title=null,this.view=null}initialize(){const e=()=>this.notifyChange("ready");this.addHandles([y(()=>this.children,"change",t=>{const{added:i,removed:s}=t;i.forEach(t=>{const i=`activeLayerInfo-ready-watcher-${t.layer.uid}`;this.addHandles(h(()=>t.ready,e,f),i)}),s.forEach(e=>this.removeHandles(e.layer.uid)),e()})]),this.keepCacheOnDestroy||(nt={},at={})}destroy(){this._dotDensityUrlCache=null,this._scaleDrivenSizeVariable=null,this.keepCacheOnDestroy||(nt=null,at=null),this._layerDefinitionExpressionClause=null}get cssEffectFilter(){const{layer:e,scale:t}=this,i="effect"in e?e.effect:null;if(!i)return null;const s=new E({effect:i});return s.endTransition(),s.scale=t,fe(s,!0)}get isScaleDriven(){const e=this.layer;if(null===e)return!1;if("effect"in e&&e.effect&&Array.isArray(e.effect))return!0;if("featureReduction"in e&&e.featureReduction){if("cluster"===e.featureReduction.type)return!0;if("binning"===e.featureReduction.type&&"renderer"in e.featureReduction&&e.featureReduction.renderer)return this._isRendererScaleDriven(e.featureReduction.renderer)}return"renderer"in e&&e.renderer?!!("displayFilterInfo"in e&&e.displayFilterInfo&&Te(e.renderer))||this._isRendererScaleDriven(e.renderer):this._isLayerScaleDriven(this.layer)}get loading(){return this.children.length>0?this.children.some(e=>e.loading):this._loading}get opacity(){const e=this.layer.opacity,t=this.parent?.opacity,i=this.layer.parent,s=i&&"uid"in i?this._getParentLayerOpacity(i):null;return null!=t?t*e:null!=s?s*e:e}get ready(){return L(()=>null===this.layer||(this.children.length>0?this._isGroupActive():this.legendElements.length>0))}get scale(){return this.view?.scale??0}get version(){return this.commitProperty("ready"),L(()=>this._get("version")+1)}async buildLegendElementsForFeatureCollections(e){this._loading=!0;if(!(!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView()))return this.legendElements=[],this._loading=!1,void this.notifyChange("ready");const t=Array.from(e,e=>{if(x(e))return this._getRendererLegendElements(e.renderer,{title:e.title});if(e.featureSet?.features.length){const t=e.layerDefinition,i=t?.drawingInfo,s=i&&Y(i.renderer),l=Le.read(t.geometryType);return s?this._getRendererLegendElements(s,{title:e.name,geometryType:l}):(u.getLogger(this).warn("drawingInfo not available!"),null)}return null});try{const e=[],i=await Promise.allSettled(t);for(const t of i)if("fulfilled"===t.status)for(const i of t.value??[])e.push(i);this.legendElements=e}catch(i){u.getLogger(this).warn("error while building legend for layer!",i)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForRenderer(e){try{this._loading=!0;const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getRendererLegendElements(e):[]}catch(t){u.getLogger(this).warn("error while building legend for layer!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForFeatureReduction(e){try{this._loading=!0,await this._waitForLayerViewUpdate(this.layerView);const t=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView();this.legendElements=t?await this._getLegendElementsForFeatureReduction(e):[]}catch(t){u.getLogger(this).warn("error while building legend for layer!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async buildLegendElementsForTools(){this._loading=!0;const e=this.layer;if(We(e))await this._constructLegendElementsForVoxelLayer();else if(Ge(e))this._constructLegendElementsForWMTSlayer();else if(qe(e))await this._constructLegendElementsForWMSSublayers();else if($e(e))await this._constructLegendElementsForBuildingSceneLayer();else if(Je(e)||Ze(e)||He(e))await this._constructLegendElementsForSublayers();else{this.removeHandles("imageryLayers-watcher");let t="default";if(Qe(e)){const i=e;t=(i?.rasterFunction?.functionName||"default")+"_"+(e.bandIds?.length?e.bandIds.join(""):"###")}if(Ke(e)||"link-chart"===e.type)return;await this._getLegendLayers(`${e.uid}-${t}`).then(async t=>{this.legendElements=[];const i=t.map(async t=>{if(Qe(e)){const t=h(()=>[e.rasterFunction,e.bandIds],()=>d(async()=>{nt.default=null,e.renderer?await this.buildLegendElementsForRenderer(e.renderer):await this.buildLegendElementsForTools()})());this.addHandles(t,"imageryLayers-watcher")}const i=this._generateSymbolTableElementForLegendLayer(t);i?.infos.length&&(Qe(e)&&(i.title=e.title),this.legendElements.push(i))});await Promise.allSettled(i)}).catch(e=>{u.getLogger(this).warn("Request to server for legend has failed!",e)})}this._loading=!1,this.notifyChange("ready")}async _isLayerInCurrentView(e){return this._checkFeatureCountForExpression(e,this.view.extent)}_getParentLayerOpacity(e){let t=1;const i=e.parent;return i&&"uid"in i&&(t=this._getParentLayerOpacity(i)),e.opacity*t}_isGroupActive(){return this.children.some(e=>e.ready)}_isRendererScaleDriven(e){if("dot-density"===e.type)return!0;const t="valueExpression"in e?e.valueExpression:null;if(ve.test(t))return!0;const i="visualVariables"in e?e.visualVariables:null;return!!i?.some(e=>this._isScaleDrivenSizeVariable(e))||this._hasScaleDrivenSymbols(e)}_hasScaleDrivenSymbols(e){switch(e.type){case"simple":return this._isScaleDrivenSymbol(e.symbol);case"class-breaks":return this._isScaleDrivenSymbol(e.defaultSymbol)||e.classBreakInfos.some(e=>this._isScaleDrivenSymbol(e.symbol));case"unique-value":return this._isScaleDrivenSymbol(e.defaultSymbol)||!!e.uniqueValueInfos?.some(e=>this._isScaleDrivenSymbol(e.symbol))}return!1}_isScaleDrivenSymbol(e){if("cim"===e?.type){const{primitiveOverrides:t,minScale:i,maxScale:s}=e.data,l=t?.some(e=>(e.valueExpressionInfo?.expression||"").includes("$view.scale"))??!1;return null!=i||null!=s||l}return!1}_isScaleDrivenSizeVariable(e){if(e&&"size"!==e.type)return!1;const t=e,i=t.minSize,s=t.maxSize;return!("object"!=typeof i||!i||!this._isScaleDrivenSizeVariable(i))||(!("object"!=typeof s||!s||!this._isScaleDrivenSizeVariable(s))||ve.test(t.valueExpression))}_isLayerScaleDriven(e){if("minScale"in e&&e.minScale>0||"maxScale"in e&&e.maxScale>0)return!0;if("sublayers"in e&&e.sublayers)return e.sublayers.some(e=>this._isLayerScaleDriven(e));const t=e.parent;if(!1===e.loaded&&t&&Je(t)&&"source"in e&&e.source&&"map-layer"===e.source.type)for(const i of t.sourceJSON.layers??[])if(i.id===e.source.mapLayerId&&(i.minScale>0||i.maxScale>0))return!0;return!1}async _constructLegendElementsForVoxelLayer(){this._loading=!0,this.legendElements=[],this.removeHandles("voxel-style-watcher"),this.removeHandles("voxel-current-variable");const e=this.layer;this.addHandles(h(()=>e.currentVariableId,()=>this._constructLegendElementsForVoxelLayer()),"voxel-current-variable"),this.addHandles(h(()=>e.getVariableStyles(),()=>this._constructLegendElementsForVoxelLayer()),"voxel-style-watcher");const t=e.getVariableStyle(null),i=[];if(t)if(t.uniqueValues?.length){const e=[];t.uniqueValues.forEach(t=>{t.enabled&&e.push({label:t.label||`${t.value}`,value:t.value,symbol:new re({color:t.color,outline:null})})}),e.length&&i.push({type:"symbol-table",title:t.label,infos:e})}else if(t.transferFunction){const{colorStops:e,stretchRange:s}=t.transferFunction,l=e.toArray().reverse(),r=s.map((e,t)=>`${0===t?$:H} ${pe(e)}`).reverse(),n=l.map(e=>({color:e.color,value:null,label:null}));n[0].label=r[0],n[n.length-1].label=r[1],i.push({type:"color-ramp",title:t.label,infos:n,preview:ue(l.map(e=>e.color))})}await this._generatePreviewsForLegendElements(i,{opacity:e.opacity}),this.legendElements=i,this._loading=!1,this.notifyChange("ready")}_constructLegendElementsForWMTSlayer(){this._loading=!0,this.legendElements=[],this.removeHandles("wmts-activeLayer-watcher");const e=this.layer.activeLayer;this.addHandles(h(()=>{const{layer:e}=this;return e&&"activeLayer"in e&&e.activeLayer},()=>this._constructLegendElementsForWMTSlayer()),"wmts-activeLayer-watcher");const t=e.styleId?e.styles?.find(({id:t})=>t===e.styleId)?.legendUrl:void 0;t&&(this.legendElements=[{type:"symbol-table",title:e.title,infos:[{src:t,opacity:this.opacity}]}]),this._loading=!1,this.notifyChange("ready")}async _constructLegendElementsForWMSSublayers(){this._loading=!0,this.legendElements=[],this.removeHandles("wms-sublayers-watcher");const e=this.layer;let t=null;(e.customParameters||e.customLayerParameters)&&(t={...e.customParameters,...e.customLayerParameters}),this.addHandles(h(()=>{const{layer:e}=this;return e&&"sublayers"in e&&e.sublayers},()=>this._constructLegendElementsForWMSSublayers()),"wms-sublayers-watcher"),this.legendElements=await this._generateLegendElementsForWMSSublayers(e.sublayers,t),this._loading=!1,this.notifyChange("ready")}async _generateLegendElementsForWMSSublayers(e,t){const i=this.layer,s=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForWMSSublayers()),"wms-sublayers-watcher");const l=this.sublayerIds?.map(e=>i.findSublayerById(e))?.filter(r)??[],n=l.length?l:e.toArray();for(const r of n){const e=h(()=>[r.title,r.visible,r.legendEnabled],()=>this._constructLegendElementsForWMSSublayers());if(this.addHandles(e,"wms-sublayers-watcher"),!this.respectLayerVisibility||r.visible&&r.legendEnabled){const e=await this._generateSymbolTableElementForWMSSublayer(r,t);e?.infos.length&&s.unshift(e)}}return s}async _generateSymbolTableElementForWMSSublayer(e,t){if(!e.legendUrl&&e.sublayers){const i=(await this._generateLegendElementsForWMSSublayers(e.sublayers,t)).filter(e=>e);return{type:"symbol-table",title:e.title,infos:i}}return this._generateSymbolTableElementForLegendUrl(e,t)}async _generateSymbolTableElementForLegendUrl(e,t){let i=e.legendUrl;if(!i)return;const l={type:"symbol-table",title:e.title||e.name||String(e.id??""),infos:[]};t&&(i=S(i,t));let r=null;const n=e.layer?.opacity;try{r=(await s(i,{responseType:"image"})).data,r&&(r.style.opacity=n)}catch{}return l.infos.push({src:i,preview:r,opacity:n}),l}_getLegendLayers(e,t){const i=nt&&nt[e];if(i)return Promise.resolve(i);const s=at?.[e];if(null!=s)return s;const l=this._legendRequest(t).then(t=>{const i=t.layers;return nt&&(nt[e]=i),i}).finally(()=>{at&&delete at[e]});return at[e]=l,l}_legendRequest(e){const t=this.layer;let i={f:"json",dynamicLayers:e};if(Qe(t)){const e=t.exportImageServiceParameters.rasterFunction;if(e&&(i.renderingRule=JSON.stringify(e.functionDefinition?.toJSON()||e.toJSON())),t.bandIds&&(i.bandIds=t.bandIds.join()),t.raster||t.viewId||t.customParameters){const{raster:e,viewId:s,customParameters:l}=t;i={raster:e,viewId:s,...i,...l}}}let l=t.url.replace(/(\/)+$/,"");if("version"in t&&+t.version>=10.01){const e=l.indexOf("?");e>-1?l=l.slice(0,e)+"/legend"+l.slice(e):l+="/legend"}else{const e=l.toLowerCase().indexOf("/rest/"),t=-1===e?l:l.slice(0,e)+l.slice(e+5);l=be+"?soapUrl="+encodeURI(t)+"&returnbytes=true"}return s(l,{query:i}).then(e=>e.data)}async _constructLegendElementsForBuildingSceneLayer(){this._loading=!0,this.legendElements=[],this.removeHandles("sublayers-watcher");const e=this.layer;this.addHandles(h(()=>e.sublayers,()=>this._constructLegendElementsForBuildingSceneLayer()),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForBuildingSublayers(e.sublayers,this.opacity)}catch(t){u.getLogger(this).warn("Request to server for legend has failed!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async _generateLegendElementsForBuildingSublayers(e,t){let i=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForBuildingSceneLayer()),"sublayers-watcher");const s=e.toArray();for(const l of s){const e=h(()=>["renderer"in l&&l.renderer,l.opacity,l.title,l.visible],()=>this._constructLegendElementsForBuildingSceneLayer());if(this.addHandles(e,"sublayers-watcher"),!this.respectLayerVisibility||l.visible){const e=null!=l?.opacity?l.opacity:null,s=null!=e?e*t:t;if("building-group"===l.type){const e={type:"symbol-table",title:l.title,infos:[]},t=await this._generateLegendElementsForBuildingSublayers(l.sublayers,s);e.infos.push(...t),i=[e,...i]}else if(l.renderer){i=[...await this._getRendererLegendElements(l.renderer,{title:l.title,opacity:s,sublayer:l}),...i]}}}return i.filter(e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0))}async _constructLegendElementsForSublayers(){this._loading=!0,this.removeHandles("sublayers-watcher");const e=this.layer;if(!(Je(e)||Ze(e)||He(e))||this.hideLayersNotInCurrentView&&!await this._isLayerInCurrentView())return this.legendElements=[],this._loading=!1,void this.notifyChange("ready");this.addHandles(h(()=>e.sublayers,()=>this._constructLegendElementsForSublayers),"sublayers-watcher");try{this.legendElements=await this._generateLegendElementsForSublayers(e.sublayers,this.opacity)}catch(t){u.getLogger(this).warn("Request to server for legend has failed!",t)}finally{this._loading=!1,this.notifyChange("ready")}}async _generateLegendElementsForSublayers(e,t,i){const s=this.layer;let l=[];this.addHandles(e.on("change",()=>this._constructLegendElementsForSublayers()),"sublayers-watcher");let n=e.toArray();!i&&this.sublayerIds&&this.sublayerIds.length&&(n=He(s)?this.sublayerIds.map(e=>s.findSublayerForSubtypeCode(e)).filter(r):this.sublayerIds.map(e=>s.findSublayerById(e)).filter(r));for(const r of n){const e=h(()=>[r.renderer,r.opacity,r.title,r.visible,r.legendEnabled],()=>this._constructLegendElementsForSublayers());this.addHandles(e,"sublayers-watcher");const s=r.createQuery().where,n=!this.hideLayersNotInCurrentView||await this._isLayerInCurrentView(s),a=!this.respectLayerVisibility||r.visible&&r.legendEnabled&&this._isSublayerInScale(r);if(n&&a){const e=null!=r?.opacity?r.opacity:null,s=null!=e?e*t:t,n=!it(r)||r.originIdOf("renderer")>2&&!r.sublayers;if(r.renderer&&n){await r.load();l=[...await this._getRendererLegendElements(r.renderer,{title:r.title,opacity:s,sublayer:r}),...l]}else if(it(r)){const e=await this._generateSymbolTableElementForSublayer(r,s,i);e&&l.unshift(e)}}}return l.filter(e=>!!e&&(!("infos"in e)||!e.infos||e.infos.length>0))}async _generateSymbolTableElementForSublayer(e,t,i){if(!i){i=new Map;const t=this.layer,s=e.source;let l=null;if(!(!s||"map-layer"===s.type&&s.mapLayerId===e.id&&(!s.gdbVersion||s.gdbVersion===("gdbVersion"in t&&t.gdbVersion)))||e.originIdOf("renderer")>2||e.originIdOf("labelingInfo")>2||e.originIdOf("labelsVisible")>2){const e=new I({layer:this.layer});l=e.hasDynamicLayers?e.dynamicLayers:null,e.destroy()}const r=l||`${t.uid}-default`;(await this._getLegendLayers(r,l)).forEach(e=>i.set(e.layerId,e))}const s=i.get(e.id);if((!s||s?.subLayerIds&&s.defaultVisibility)&&e.sublayers){const s=await this._generateLegendElementsForSublayers(e.sublayers,t,i);return{type:"symbol-table",title:e.title,infos:s}}return this._generateSymbolTableElementForLegendLayer(s,e,t)}_generateSymbolTableElementForLegendLayer(e,t,i){if(!e?.legend||this.respectLayerVisibility&&!this._isLegendLayerInScale(e,t))return null;const s=t?.renderer;let l=t?.title||e.layerName;if(s&&(!t||t?.originIdOf("renderer")>2)){const e=t?.title||this._getRendererTitle(s,t);e&&(l&&"string"!=typeof e&&"title"in e&&(e.title=l),l=e)}const r={type:"symbol-table",title:l,legendType:e.legendType||null,infos:[]},n=t?this._sanitizeLegendForSublayer(e.legend.slice(),t):e.legend;return e.legendGroups&&e.legendGroups.length>0?e.legendGroups.forEach(s=>{const l={type:"symbol-table",title:s.heading,legendType:e.legendType||null,infos:this._generateSymbolTableElementInfosForLegendLayer(n.filter(e=>e.groupId===s.id),e.layerId,s.heading||r.title||t?.title,i)};l.infos?.length>0&&r.infos.push(l)}):r.infos=this._generateSymbolTableElementInfosForLegendLayer(n,e.layerId,r.title||t?.title,i),r.infos.length>0?r:null}_generateSymbolTableElementInfosForLegendLayer(e,t,s,l){return e.map(e=>{let r=e.url;if(e.imageData&&e.imageData.length>0)r=`data:image/png;base64,${e.imageData}`;else{if(r.startsWith("http"))return null;r=i(`${this.layer.url}/${t}/images/${r}`)}const n=e.label;return{previewAriaLabel:n||s,label:n,src:r,opacity:l??this.opacity,width:e.width,height:e.height}}).filter(r)}_isSublayerInScale(e){const t=e.minScale||0,i=e.maxScale||0;return!(t>0&&t<this.scale||i>this.scale)}_isLegendLayerInScale(e,t){const i=t||this.layer;let s=null,l=null,r=!0;return!i.minScale&&0!==i.minScale||!i.maxScale&&0!==i.maxScale?(0===e.minScale&&i.tileInfo&&(s=i.tileInfo.lods[0].scale),0===e.maxScale&&i.tileInfo&&(l=i.tileInfo.lods[i.tileInfo.lods.length-1].scale)):(s=Math.min(i.minScale,e.minScale)||i.minScale||e.minScale,l=Math.max(i.maxScale,e.maxScale)),(s>0&&s<this.scale||l>this.scale)&&(r=!1),r}_sanitizeLegendForSublayer(e,t){if("version"in this.layer&&+this.layer.version<10.1||0===e.length)return e;const i=t.renderer,s=e.some(e=>e.values);let l=0,r=null;return s&&e.some((e,t)=>(e.values||(l=t,r=e,r.label||(r.label="others")),null!=r)),i?"unique-value"===i.type?r&&(e.splice(l,1),e.push(r)):"class-breaks"===i.type&&(r&&e.splice(l,1),i.legendOptions?.order||e.reverse(),r&&e.push(r)):r&&(e.splice(l,1),e.push(r)),e}async _getRendererLegendElements(e,t={}){if(!Ne(e,this.view))return u.getLogger(this).warn(`Renderer of type '${e.type}' not supported!`),[];if(ke(e))return this._constructPointCloudRendererLegendElements(e,t);if(Ae(e))return this._constructDotDensityRendererLegendElements(e);const i=await this._loadRenderer(e);return Be(i)?this._constructPieChartRendererLegendElements(i):this._constructRendererLegendElements(i,t)}async _getLegendElementsForFeatureReduction(e){let t=null;return"binning"===e.type?t=e.renderer:"cluster"===e.type&&(t=this._getClusterRenderer(e)),t?this._getRendererLegendElements(t,{isFeatureReductionRenderer:!0}):[]}_getPointCloudRendererTitle(e){return(e.legendOptions?.title||e.field)??""}async _constructPointCloudRendererLegendElements(e,t={}){const i=t.title,s=[];let l=null,r=null;if(Oe(e))l={type:"symbol-table",title:i||this._getPointCloudRendererTitle(e),infos:[]},e.colorClassBreakInfos.forEach(e=>{l.infos.unshift({label:e.label||e.minValue+" - "+e.maxValue,value:[e.minValue,e.maxValue],symbol:this._getAppliedCloneSymbol(Ee,e.color)})});else if(Ue(e)){const t=e.stops;let s=null;if(t?.length&&(1===t.length&&(s=t[0].color),!s)){const e=t[0].value,i=t[t.length-1].value;if(null!=e&&null!=i){s=T(e+(i-e)/2,t)}}l={type:"symbol-table",title:null,infos:[{label:null,value:null,symbol:this._getAppliedCloneSymbol(Ee,s||Ee.color)}]};const n=j(e.stops??[])??[];r={type:"color-ramp",title:i||this._getPointCloudRendererTitle(e),infos:n,preview:ue(n.map(e=>e.color))}}else Me(e)&&(l={type:"symbol-table",title:i||this._getPointCloudRendererTitle(e),infos:[]},e.colorUniqueValueInfos?.forEach(e=>{l.infos.push({label:e.label||e.values.join(", "),value:e.values.join(", "),symbol:this._getAppliedCloneSymbol(Ee,e.color)})}));return l?.infos.length&&s.push(l),r?.infos.length&&s.push(r),await this._generatePreviewsForLegendElements(s,{opacity:this.opacity,symbolConfig:{applyColorModulation:!!e.colorModulation}}),s}async _getElementInfoForDotDensity(e,t){const{color:i,label:s,valueExpressionTitle:l}=t,{backgroundColor:r,outline:n,dotSize:a}=e,o=this.cssEffectFilter,u=a+"-"+i+"-"+r+"-"+(n&&JSON.stringify(n.toJSON()))+"-"+o,c=this._dotDensityUrlCache,d=c.has(u)?c.get(u):ce(e,i);c.set(u,d);const y={shape:{type:"image",x:0,y:0,width:d.width,height:d.height,src:d.src},fill:null,stroke:null,offset:[0,0]},h=oe([[y]],[d.width,d.height],{cssEffectFilter:this.cssEffectFilter});return{opacity:1,src:d.src,preview:h,width:d.width,height:d.height,previewAriaLabel:s||l}}async _constructDotDensityRendererLegendElements(e){const t=e.calculateDotValue(this.view.scale),i=e.legendOptions?.unit,s={type:"symbol-table",title:{value:t&&Math.round(t),unit:i||""},infos:[]};for(const l of e.attributes){const t=await this._getElementInfoForDotDensity(e,l);t.label=l.label||l.valueExpressionTitle||l.field,s.infos.push(t)}return[s]}async _constructPieChartRendererLegendElements(e){const t=[];let i=null;const s=e.outline;e.attributes.forEach(e=>{const i=new ne({color:e.color,outline:s}),l=e.label||e.valueExpressionTitle||e.field;t.push({label:l,symbol:i})});const l=t.length?[...t]:[];if(e.othersCategory?.color&&0!==e.othersCategory?.threshold){const l=new ne({color:e.othersCategory.color,outline:s});i=e.othersCategory.label||"Other",t.push({label:i,symbol:l})}if(e.defaultColor?.a){const i=new ne({color:e.defaultColor,outline:s});t.push({label:e.defaultLabel,symbol:i})}const r=await this._getVisualVariableLegendElements(e,this.layer)||[];if(t.length){r.unshift({type:"symbol-table",title:null,infos:t});const n=l.filter(e=>e.label!==i).map(e=>e.symbol.color).filter(Boolean),a=de(n,{holePercentage:e.holePercentage,backgroundColor:e.backgroundFillSymbol?.color,cssEffectFilter:this.cssEffectFilter,outline:s});r.unshift({type:"pie-chart-ramp",title:this._getRendererTitle(e,this.layer),infos:t,preview:a})}return await this._generatePreviewsForLegendElements(r,{opacity:this.layer.opacity,cssEffectFilter:this.cssEffectFilter}),r}async _getWhereClause(e,t,i){const s=await g(e,i),l=new Set,{field:r,field2:n,field3:a}=t;R(l,i,[r,n,a]),await V(l,i,null,t.valueExpression);const o=new Set(Array.from(l,e=>e.toLowerCase())),u=s?.fieldNames.map(e=>e.toLowerCase());return u?.some(e=>!o.has(e))?null:s}async _processDefinitionExpression(e,t){if(!("definitionExpression"in e))return;const i=e.definitionExpression;i&&this.respectLayerDefinitionExpression?this._layerDefinitionExpression!==i&&(this._layerDefinitionExpressionClause=await this._getWhereClause(i,t,e.fieldsIndex)):this._layerDefinitionExpressionClause=null,this._layerDefinitionExpression=i}async _processDisplayFilter(e,t){if(!("displayFilterInfo"in e))return;const i=e.displayFilterInfo?C(e.displayFilterInfo,this.view):null;return i?.where?this._layerDisplayFilter?.id!==i?.id&&(this._layerDisplayFilterClause=await this._getWhereClause(i.where,t,e.fieldsIndex)):this._layerDisplayFilterClause=null,this._layerDisplayFilter=i,i}async _constructRendererLegendElements(e,t={}){const{title:i,sublayer:s,isFeatureReductionRenderer:l}=t,r=s||this.layer,n=W(e,"reference-size"),a=W(e,"spike"),o=l&&"renderer"in r&&r.renderer?r.renderer:e;let u=null;Te(o)&&(await this._processDefinitionExpression(r,o),u=await this._processDisplayFilter(r,o)),this._hasColorRamp=!1,this._hasOpacityRamp=!1,this._hasSizeRamp=!1,this._scaleDrivenSizeVariable=null;const c=await this._getVisualVariableLegendElements(e,r)||[],d={type:"symbol-table",title:i||this._getRendererTitle(e,r),infos:[]};let y=null,h=!1;const f=new Set;if(Ce(e)&&!this._hasSizeRamp){const t=await q(e);d.infos.push({label:null,symbol:t})}else if(et(e)){let t=i;const s=tt(e)?"univariate-above-and-below-ramp":"univariate-color-size-ramp",l=c.findIndex(e=>"color-ramp"===e.type),r=-1!==l?c.splice(l,1)[0]:null,n=c.findIndex(e=>"size-ramp"===e.type),a=-1!==n?c.splice(n,1)[0]:null,o=[];r&&(t=r.title,o.push(r)),a&&(t=a.title,o.push(a)),o.length>0&&c.push({type:s,title:t,infos:o})}else if(je(e)){const t=O(e);c.push({type:"heatmap-ramp",title:i||this._getRendererTitle(e,r),infos:t,preview:ue(t.map(e=>e.color),{cssEffectFilter:this.cssEffectFilter})})}else if(Te(e)){const t=e.authoringInfo;if("relationship"===t?.type){const{numClasses:i,field1:s,field2:l}=t,n=t.focus;if(i&&s&&l){const t=[s,l];let a=M(n)||0;for(const e of t){const{field:t,normalizationField:i,label:s}=e,l=s||{field:this._getFieldAlias(t,r),normField:i&&this._getFieldAlias(i,r)},n=rt.clone();n.angle=a,d.infos.push({label:l,symbol:n}),f.add(n),a+=90}const o=U({focus:n,numClasses:i,infos:e.uniqueValueInfos??[]});c.unshift(o)}}else if(Qe(this.layer)||Ke(this.layer)){const{uniqueValueInfos:t}=e;if(t)for(const e of t)e.symbol&&await this._checkClausesForUVR(o,e.value,r)&&d.infos.push({label:e.label||e.value,value:e.value,symbol:e.symbol})}else{const{field:t,field2:s,field3:l,fieldDelimiter:a,valueExpression:c,defaultSymbol:y}=e,f=!(!t&&!c||!s&&!l),m=u?.title?.trim(),p=[],{uniqueValueGroups:g}=e;if(g)for(const e of g){const i={type:"symbol-table",title:e.heading,infos:[]},{classes:u}=e;if(u)for(const e of u){const{symbol:u,values:d}=e;if(u){const y=[],h=[];for(const e of d??[]){const{value:i,value2:n,value3:o}=e,u=[],d=[];(t||c)&&(u.push(i),d.push(this._getDomainName(t,i,r)??G(i,J(r,t,this.view.timeZone)))),s&&(u.push(n),d.push(this._getDomainName(s,n,r)??G(n,J(r,s,this.view.timeZone)))),l&&(u.push(o),d.push(this._getDomainName(l,o,r)??G(o,J(r,l,this.view.timeZone)))),y.push(f?u.join(a||""):u[0]),h.push(d.join(" - "))}const m=y.join(", ");let p=e.label;if(!p){const e=h.filter(Boolean);p=e.length?e.join(", "):m}let g=te(e,this.view.scale)??u;"cim"===g.type&&n&&(g=g.clone(),le(g,{innerDotSize:.5*ge,outerRingSize:ge}));let b=!1;for(const e of y)if(b=await this._checkClausesForUVR(o,e,r),b)break;b&&i.infos.push({label:p,value:m,symbol:g})}}i.infos.length&&p.push(i)}if(p.length){const t=p[0];if(1===p.length&&"title"in t&&!t.title){const e=t.infos?.filter(st)??[];d.infos.push(...e)}else y&&(p.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:y}]}),h=!0),d.infos.push(...p);i||e.legendOptions?.title||e.valueExpressionTitle?m&&(d.title=`${d.title} (${m})`):d.title=m}}e.defaultSymbol&&!h&&(d.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),h=!0)}else if(ze(e)){if(!n&&!a){y=this._isUnclassedRenderer(e);if(!y||!this._hasSizeRamp){const t=e.classBreakInfos.filter(({symbol:e})=>e),i="ascending-values"===e.legendOptions?.order;for(const e of t){const{label:t,minValue:s,maxValue:l}=e,n=te(e,this.view.scale)??e.symbol,a=t||(y?null:`${s} - ${l}`),o={previewAriaLabel:a||d.title||r.title,label:a,value:[s,l],symbol:n};i?d.infos.push(o):d.infos.unshift(o)}y&&(d.title=null),this._updateInfosForClassedSizeRenderer(e,d.infos)}e.defaultSymbol&&!y&&(d.infos.push({label:e.defaultLabel||"others",symbol:e.defaultSymbol}),h=!0)}}else if(Ve(e))if(Ke(this.layer)||Xe(this.layer)){const t=await this._constructTileImageryStretchRendererElements(e);Ye(t)?c.push(t):d.infos=t}else{const t=this.layer;let i,s;e.customStatistics?.length&&({min:i,max:s}=e.customStatistics[0]);let l=[],r=t.serviceRasterInfo;if(t.rasterFunction)try{r=await t.generateRasterInfo(t.rasterFunction)}catch{}const n=F(r.pixelType);if(1===r.bandCount){const l=t.bandIds?.[0]||0;i=null!=i?i:r.statistics?r.statistics[l].min:n[0],s=null!=s?s:r.statistics?r.statistics[l].max:n[1],i||s?c.push(await this._getStretchLegendElements(e,{min:i,max:s})):this._getServerSideLegend()}else if(1===t.bandIds?.length)i=null!=i?i:r.statistics?r.statistics[t.bandIds[0]].min:n[0],s=null!=s?s:r.statistics?r.statistics[t.bandIds[0]].max:n[1],i||s?c.push(await this._getStretchLegendElements(e,{min:i,max:s})):this._getServerSideLegend();else if(r.bandCount>=3){const{bandInfos:e}=r,{bandIds:i}=t;e.length>=r.bandCount?3===i?.length?(l=i.map(t=>e[t].name),d.infos=this._createSymbolTableElementMultiBand(l)):"lerc"===t.format?(l=[0,1,2].map(t=>e[t].name),d.infos=this._createSymbolTableElementMultiBand(l)):this._getServerSideLegend():"lerc"===t.format?(l=["band1","band2","band3"],d.infos=this._createSymbolTableElementMultiBand(l)):this._getServerSideLegend()}else this._getServerSideLegend()}else if(Re(e))e.colormapInfos.forEach(e=>{d.infos.push({label:e.label,value:e.value,symbol:this._getAppliedCloneSymbol(Fe,e.color)})});else if(De(e)){let i=e.symbol;switch(t.geometryType){case"point":i="pointSymbol"in r?r.pointSymbol:null;break;case"polyline":i="lineSymbol"in r?r.lineSymbol:null;break;case"polygon":i="polygonSymbol"in r?r.polygonSymbol:null}const s=this._clusterSizeVariable&&this._getClusterSymbol()||!this._hasSizeRamp;e.symbol&&s&&d.infos.push({previewAriaLabel:e.label||d.title||r.title,label:e.label,symbol:i})}else if(Ie(e)){e.outputUnit&&(this.title="("+e.toJSON().outputUnit+")"),d.title=e.attributeField;const t=e.getClassBreakInfos();t?.length?t.forEach(e=>{d.infos.push({label:e.minValue+" - "+e.maxValue,symbol:e.symbol})}):d.infos.push({label:e.attributeField,symbol:e.getDefaultSymbol()})}else xe(e)&&c.push(await this._getStretchLegendElements(e,{min:0,max:255}));const m=e.defaultSymbol;!m||h||De(e)||y&&!this._hasColorRamp&&!this._hasSizeRamp&&!this._hasOpacityRamp||c.push({type:"symbol-table",infos:[{label:e.defaultLabel||"others",symbol:m}]}),d.infos.length&&c.unshift(d);const p=null==t.opacity?this.opacity:t.opacity,g=this._isTallSymbol("visualVariables"in e?e.visualVariables:null),b=Qe(this.layer)||Ke(this.layer);return await this._generatePreviewsForLegendElements(c,{opacity:p,symbolConfig:{isTall:g,isSquareFill:b},cssEffectFilter:this.cssEffectFilter},{arrowMarkerSymbols:f}),e=null,c}async _waitForLayerViewUpdate(e){await m(()=>!e.updating)}async _checkFeatureCountForExpression(e,t){const i=this.layerView;if(!(i&&"createQuery"in i&&"queryFeatureCount"in i))return!0;try{await this._waitForLayerViewUpdate(i);const s=i.createQuery();e&&(s.where=Z(s.where,e)),t&&(s.geometry=t);return await i.queryFeatureCount(s)>0}catch{return!0}}_getUVRFeatureCountExpression(e,t){return Object.entries(e).map(([e,i])=>{const s="getField"in t&&t.getField?t.getField(e):null,l=b(e);if(null==i)return`${l} IS NULL`;try{return`${l} = ${_(i,null,s?{type:s.type}:null)}`}catch{return`${l} = ${_(i)}`}}).join(" AND ")}async _checkClausesForUVR(e,t,i){const s=lt(e,t);if(!s)return!0;const l=!!(!this._layerDefinitionExpressionClause&&this._layerDefinitionExpression&&this.respectLayerDefinitionExpression||!this._layerDisplayFilterClause&&this._layerDisplayFilter?.where),r=this._getUVRFeatureCountExpression(s,i);return(!l||!r||await this._checkFeatureCountForExpression(r))&&(this._layerDefinitionExpressionClause?.testFeature(s)??!0)&&(this._layerDisplayFilterClause?.testFeature(s)??!0)}_getServerSideLegend(){setTimeout(()=>this.buildLegendElementsForTools(),0)}_getAllInfos(e){const t=e?.infos;return t?t.reduce((e,t)=>e.concat(this._getAllInfos(t)),[]):[e]}async _constructTileImageryStretchRendererElements(e){const t=this.layer,i=t.symbolizer.rasterInfo??t.raster.rasterInfo;let s,l;const r=e?.customStatistics?.length?e.customStatistics:i?.statistics;if(r)({min:s,max:l}=r[0]);else{const e=F(i.pixelType);s=e[0],l=e[1]}if(t.hasStandardTime()&&(s=t.getStandardTimeValue(s),l=t.getStandardTimeValue(l)),1===i.bandCount||1===t.bandIds?.length)return this._getStretchLegendElements(e,{min:s,max:l});const n=(t?.bandIds?.length?t.bandIds:Array.from(Array(Math.min(i.bandCount,3)).keys())).map(e=>i.bandInfos[e].name);return n.length<3?n.push(n[1]):n.length>3&&n.splice(3),this._createSymbolTableElementMultiBand(n)}async _getStretchLegendElements(e,t){const i=e.colorRamp?.toJSON(),s=k(i,t);return{type:"stretch-ramp",title:"",infos:s,preview:ue(s.map(e=>e.color))}}_getClusterSymbol(){const e=this.layer,t="featureReduction"in e&&e.featureReduction,i=t&&"symbol"in t&&t.renderer;return i&&!0!==i?.authoringInfo?.isAutoGenerated?null:t&&"symbol"in t?t.symbol:null}async _getSizeLegendElement(e,t,i,s){return{type:"size-ramp",title:this._clusterSizeVariable?this._getClusterTitle(t):e,infos:await A(i,t,await Q(i),this.scale,this.view,s,this._clusterSizeVariable?this._getClusterSymbol():null)}}_createSymbolTableElementMultiBand(e){const t=[],i=["red","green","blue"];return e.forEach((e,s)=>{t.push({label:{colorName:i[s],bandName:e},src:K[s],opacity:this.opacity??1})}),t}_updateInfosForClassedSizeRenderer(e,t){const i="class-breaks-size"===e.authoringInfo?.type,s=e.classBreakInfos.some(e=>me(e.symbol));if(i&&s){const i=B,s=N,l=e.classBreakInfos.length,r=(i-s)/(l>1?l-1:l);t.forEach((e,t)=>{e.size=i-r*t})}}_isTallSymbol(e){let t=!1,i=!1;if(e)for(let s=0;s<e.length&&(!t||!i);s++){const l=e[s];"size"===l.type&&("height"===l.axis&&(t=!0),"width-and-depth"===l.axis&&(i=!0))}return t&&i}async _generatePreviewsForLegendElements(e,t,i){const s=[];for(const l of e)for(const e of l.infos??[])if("infos"in e&&e.infos&&s.push(this._generatePreviewsForLegendElements([e],t,i)),st(e)&&e.symbol&&!e.preview){let r=!0;if("cim"===e.symbol.type){const{minScale:t,maxScale:i}=e.symbol.data;(t&&t<this.scale||i&&i>this.scale)&&(r=!1)}r&&s.push(this._generateSymbolPreviewForInfo(e,{...t,clipBloomEffect:"theme"in l&&"spike"===l.theme,cssEffectFilter:i?.arrowMarkerSymbols?.has(e.symbol)?null:t.cssEffectFilter},i?{applyScaleDrivenSize:!i.arrowMarkerSymbols?.has(e.symbol)}:void 0))}await Promise.all(s)}async _getSize(e,t){let i=null==e.size&&this._hasSizeRamp?p(22):e.size;if(this._scaleDrivenSizeVariable&&t?.applyScaleDrivenSize){const{getSize:t}=await(import("../renderers/visualVariables/support/visualVariableUtils.js"));i=t(this._scaleDrivenSizeVariable,null,{view:this.view.type,scale:this.scale,shape:"simple-marker"===e.symbol.type?e.symbol.style:null})}return i}_getPreviewCIMOptions(e){return{style:"legend",cimOptions:{allowScalingUp:this._hasSizeRamp||!(!this._scaleDrivenSizeVariable||!e?.applyScaleDrivenSize),viewParams:this.isScaleDriven?{viewingMode:"2d"===this.view?.type?"map":this.view?.viewingMode,scale:this.view?.scale}:null}}}async _generateSymbolPreviewForInfo(e,t={},i){const{symbol:s}=e;try{if(t.size=await this._getSize(e,i),t.scale=!1,"cim"===s.type){const e=this._getPreviewCIMOptions(i);t={...t,...e}}e.preview=await ye(s,t)}catch{e.preview=null,u.getLogger(this).warn(`Generating symbol preview failed for symbol type: ${s?.type}`)}}_getClusterRenderer(e){this._clusterSizeVariable=null;const t="renderer"in this.layer?this.layer.renderer:null,i=e.renderer?.clone()||t?.clone(),s=z(e,this.layerView,this.view);if(s&&null!=i&&"visualVariables"in i){const t=i.visualVariables?.some(e=>"size"===e.type&&"outline"!==e.target&&!ve.test(e.valueExpression));if(!t){if("clusterMinSize"in e&&"clusterMaxSize"in e){const{clusterMinSize:t,clusterMaxSize:i}=e;s.legendOptions=new se({showLegend:t!==i})}const t=i.visualVariables||[];i.visualVariables=t.concat([s]),this._clusterSizeVariable=s}}return i}async _loadRenderer(e){if(ot.has(e))return ot.get(e);const t=[],i=e.clone(),s=await Q(i);if(ze(i)||Te(i)){const e=(i.classBreakInfos||i.uniqueValueInfos).map(e=>this._fetchSymbol(e.symbol,s).then(t=>{e.symbol=t}).catch(()=>{e.symbol=null}));Array.prototype.push.apply(t,e)}return t.push(this._fetchSymbol(i.symbol||i.defaultSymbol,i.defaultSymbol?null:s).then(e=>{this._applySymbolToRenderer(i,e,De(i))}).catch(()=>{this._applySymbolToRenderer(i,null,De(i))})),await Promise.allSettled(t),ot.set(e,i),i}_applySymbolToRenderer(e,t,i){i?e.symbol=t:e.defaultSymbol=t}async _fetchSymbol(e,t){if(!e)throw new Error;if("web-style"===e.type)try{const i=await e.fetchSymbol();return this._getAppliedCloneSymbol(i,t)}catch{throw u.getLogger(this).warn("Fetching web-style failed!"),new Error}return this._getAppliedCloneSymbol(e,t)}_getAppliedCloneSymbol(e,i){if(!e||!i)return e;const s=e.clone(),l=i&&i.toRgba();return s.type.includes("3d")?this._applyColorTo3dSymbol(s,l):"cim"===s.type?ae(s,i):s.color&&(s.color=new t(l||s.color)),s}_applyColorTo3dSymbol(e,i){i&&e.symbolLayers.forEach(e=>{e&&(e.material||(e.material={}),e.material.color=new t(i))})}async _getVisualVariableLegendElements(e,t){if(!("visualVariables"in e)||"vector-field"===e.type)return null;const i=e.visualVariables??[],s=[],l=[],n=[],a=W(e,"reference-size")??W(e,"spike");let o;const u=this._clusterSizeVariable;if(2===a?.sizeStops?.length&&(ze(e)||Te(e))){const[e,t]=a.sizeStops,i=u?u.minDataValue:e.value,s=u?u.maxDataValue:t.value;o=new ie({field:a.field??void 0,normalizationField:a.normalizationField,minSize:c(e.size,10,100),maxSize:c(t.size,50,150),minDataValue:i,maxDataValue:s}),l.push(o)}for(const r of i)if("color"===r.type)s.push(r);else if("size"===r.type){if("cluster_count"===r.field&&o)continue;l.push(r)}else"opacity"===r.type&&n.push(r);const d=[...s,...l,...n];let y,h;if(0===s.length&&ze(e)&&e.classBreakInfos&&1===e.classBreakInfos.length){const t=e.classBreakInfos[0];y=t&&t.symbol}0===s.length&&De(e)&&(y=e.symbol);let f=null;if(y){if(y.type.includes("3d")){const e=y.symbolLayers.at(0);"water"===e.type?null!=e.color&&(h=e.color):null!=e.material?.color&&(h=e.material.color)}else y.url||(h=y.color);f=he(y)}const m=this.cssEffectFilter;return(await Promise.all(d.map(async i=>{if(!1!==i.legendOptions?.showLegend){const s=Ce(e)?i.field:this._getRampTitle(i,t);let l=null;const r=X(t,i,this.view.timeZone);if("color"===i.type){const t=await P(i,null,r)??[],n=this._getColorRampInfosWithEmissiveColors(t,e,f);l={type:"color-ramp",title:s,infos:n,preview:ue(n.map(e=>e.color),{cssEffectFilter:m})},this._hasColorRamp||(this._hasColorRamp=t.length>0)}else if("size"===i.type&&"outline"!==i.target)ve.test(i.valueExpression)?this._clusterSizeVariable||(this._scaleDrivenSizeVariable=i):(l=await this._getSizeLegendElement(s,i,e,r),o===i&&"spike"===a?.theme&&(l.theme=a.theme),this._hasSizeRamp||(this._hasSizeRamp=!(null==l.infos||!l.infos.length)));else if("opacity"===i.type){const t=await P(i,h,r)??[],n=this._getColorRampPreviewColors(t,e,f);l={type:"opacity-ramp",title:s,infos:t,preview:ue(n,{cssEffectFilter:m})},this._hasOpacityRamp||(this._hasOpacityRamp=t.length>0)}return l?.infos?l:null}}))).filter(r)}_getColorRampPreviewColors(e,t,i){return this._getColorRampInfosWithEmissiveColors(e,t,i).map(e=>e.color)}_getColorRampInfosWithEmissiveColors(e,t,i){return e.map(e=>{const s=ze(t)?this._getStopEmissiveForColorRampInfo(e,t):i;return void 0===s?e:{...e,color:a(e.color,s)}})}_getStopEmissiveForColorRampInfo(e,t){if(!e.value)return;const i=t.getBreakIndexfromInfos(e.value),s=-1!==i?t.classBreakInfos[i]:null;return he(s?.symbol??t.defaultSymbol??null)}_getDomainName(e,t,i){if(e&&"function"!=typeof e){const s="getField"in i&&i.getField?.(e),l=s&&"getFieldDomain"in i&&i.getFieldDomain?i.getFieldDomain(s.name):null;return"coded-value"===l?.type?l.getName(t):null}return null}_getClusterTitle(e){const t=this.layer,i=e.field;if("featureReduction"in t&&"cluster"===t.featureReduction?.type){const e=t.featureReduction,s="popupTemplate"in e&&e.popupTemplate,l=s&&s.fieldInfos;if(l)for(const t of l)if(t.fieldName===i)return"cluster_count"===i?t.label||{showCount:!0}:t.label}return{showCount:!0}}_getRampTitle(e,t){let i=e.field,s=e.normalizationField,l=!1,r=!1,n=!1,a=null;i="function"==typeof i?null:i,s="function"==typeof s?null:s;const o=e.legendOptions?.title;if(null!=o)a=o;else if(e.valueExpressionTitle)a=e.valueExpressionTitle;else{if("renderer"in t&&t.renderer&&"authoringInfo"in t.renderer&&t.renderer.authoringInfo?.visualVariables){const e=t.renderer.authoringInfo.visualVariables;for(let t=0;t<e.length;t++){const i=e[t];if("color"===i.type){if("ratio"===i.style){l=!0;break}if("percent"===i.style){r=!0;break}if("percent-of-total"===i.style){n=!0;break}}}}a={field:i&&this._getFieldAlias(i,t),normField:s&&this._getFieldAlias(s,t),ratio:l,ratioPercent:r,ratioPercentTotal:n}}return a}_getRendererTitle(e,t){const i=e;if(i.legendOptions?.title)return i.legendOptions.title;if(i.valueExpressionTitle)return i.valueExpressionTitle;let s=i.field,l=null,r=null;if(ze(i)&&(l=i.normalizationField,r="percent-of-total"===i.normalizationType),s="function"==typeof s?null:s,l="function"==typeof l?null:l,Te(i)){const{field2:e,field3:l,fieldDelimiter:r}=i;let n=s&&this._getFieldAlias(s,t);return e&&(n=`<${n}>${r}<${this._getFieldAlias(e,t)}>`,l&&(n=`${n}${r}<${this._getFieldAlias(l,t)}>`)),n}let n=null;return(s||l)&&(n={field:s&&this._getFieldAlias(s,t),normField:l&&this._getFieldAlias(l,t),normByPct:r}),n}_getFieldAlias(e,t){const i=D(t,{checkFeatureReduction:!0});if(i)return i.getFieldAlias(e)||e;const s="popupTemplate"in t?t.popupTemplate:null,l=s?.fieldInfos;let r=l?.find(t=>e===t.fieldName),n=null;"getField"in t&&t.getField?n=t.getField(e):"fieldsIndex"in t&&t.fieldsIndex&&(n=t.fieldsIndex.get(e));let a=null;const o="featureReduction"in t&&t.featureReduction;o&&(r??="popupTemplate"in o?o.popupTemplate?.fieldInfos?.find(t=>e?.toLowerCase()===t.fieldName?.toLowerCase()):void 0,"fields"in o&&o.fields&&(a=o.fields.find(t=>t.name?.toLowerCase()===e?.toLowerCase())));const u=r||n||a;let c=null;return u&&(c=r?.label||n?.alias||a?.alias||"name"in u&&u.name||"fieldName"in u&&u.fieldName||null),c}_isUnclassedRenderer(e){const t=e.visualVariables;let i=!1;return ze(e)&&e.classBreakInfos&&1===e.classBreakInfos.length&&t&&(i=e.field?t.some(t=>!(!t||e.field!==t.field||(e.normalizationField||t.normalizationField)&&e.normalizationField!==t.normalizationField)):!!t.length),i}};e([w()],ut.prototype,"_loading",void 0),e([w()],ut.prototype,"children",void 0),e([w({readOnly:!0})],ut.prototype,"cssEffectFilter",null),e([w()],ut.prototype,"hideLayersNotInCurrentView",void 0),e([w({readOnly:!0})],ut.prototype,"isScaleDriven",null),e([w()],ut.prototype,"keepCacheOnDestroy",void 0),e([w()],ut.prototype,"layer",void 0),e([w()],ut.prototype,"layerView",void 0),e([w()],ut.prototype,"legendElements",void 0),e([w({readOnly:!0})],ut.prototype,"loading",null),e([w({readOnly:!0})],ut.prototype,"opacity",null),e([w()],ut.prototype,"parent",void 0),e([w({readOnly:!0})],ut.prototype,"ready",null),e([w()],ut.prototype,"respectLayerDefinitionExpression",void 0),e([w()],ut.prototype,"respectLayerVisibility",void 0),e([w({readOnly:!0})],ut.prototype,"scale",null),e([w()],ut.prototype,"sublayerIds",void 0),e([w()],ut.prototype,"title",void 0),e([w({readOnly:!0,value:0})],ut.prototype,"version",null),e([w()],ut.prototype,"view",void 0),ut=e([v("esri.legend.ActiveLayerInfo")],ut);const ct=ut;export{ct as default};