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

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 (534) hide show
  1. package/Ground.js +1 -1
  2. package/arcade/containerUtils.js +1 -1
  3. package/arcade/functions/feature.js +1 -1
  4. package/arcade/functions/featuresetstring.js +1 -1
  5. package/arcade/languageUtils.js +1 -1
  6. package/arcgisGlobal.d.ts +9 -0
  7. package/assets/components/assets/icon/addCellAbove16.json +1 -0
  8. package/assets/components/assets/icon/addCellAbove24.json +1 -0
  9. package/assets/components/assets/icon/addCellAbove32.json +1 -0
  10. package/assets/components/assets/icon/addCellBelow16.json +1 -0
  11. package/assets/components/assets/icon/addCellBelow24.json +1 -0
  12. package/assets/components/assets/icon/addCellBelow32.json +1 -0
  13. package/assets/components/assets/icon/linkedChart16.json +1 -0
  14. package/assets/components/assets/icon/linkedChart24.json +1 -0
  15. package/assets/components/assets/icon/linkedChart32.json +1 -0
  16. package/assets/components/assets/icon/polygonFromFeature16.json +1 -0
  17. package/assets/components/assets/icon/polygonFromFeature24.json +1 -0
  18. package/assets/components/assets/icon/polygonFromFeature32.json +1 -0
  19. package/assets/esri/core/workers/RemoteClient.js +1 -1
  20. package/assets/esri/core/workers/chunks/0148cb611bf7c8c5fe8a.js +1 -0
  21. package/assets/esri/core/workers/chunks/025da54eef112d7e8f66.js +1 -0
  22. package/assets/esri/core/workers/chunks/033debcbf6b3683dc4fe.js +2 -0
  23. package/assets/esri/core/workers/chunks/064445e6f9512817ac87.js +2 -0
  24. package/assets/esri/core/workers/chunks/{304462b049116f59accc.js → 09676cfa99b90fe0cc63.js} +1 -1
  25. package/assets/esri/core/workers/chunks/0aadee0437fa061e4ff5.js +1 -0
  26. package/assets/esri/core/workers/chunks/{deb5b1d772ca407654d4.js → 0acc754907395e83bbc6.js} +1 -1
  27. package/assets/esri/core/workers/chunks/1302bf9718747cd9fdd9.js +1 -0
  28. package/assets/esri/core/workers/chunks/{956432c9d45940983bc2.js → 1b42d163ef22e3565bb7.js} +1 -1
  29. package/assets/esri/core/workers/chunks/1b551ef3d84d9c1e93f9.js +1 -0
  30. package/assets/esri/core/workers/chunks/1c38ce72160d5a4e4b3d.js +1 -0
  31. package/assets/esri/core/workers/chunks/1c3b087fbf2d102376fc.js +1 -0
  32. package/assets/esri/core/workers/chunks/{e18b8646c7378213b618.js → 1e46703cb566c25458ad.js} +1 -1
  33. package/assets/esri/core/workers/chunks/1f135269aea3931e11b2.js +1 -0
  34. package/assets/esri/core/workers/chunks/{ea9e770efc85594e4dd2.js → 216d8cb86548e92a8196.js} +1 -1
  35. package/assets/esri/core/workers/chunks/23279303cd7698314c56.js +1 -0
  36. package/assets/esri/core/workers/chunks/{4bf2cc4d092601ff2b86.js → 24673aac70d6c949b6fa.js} +1 -1
  37. package/assets/esri/core/workers/chunks/24cf91aeab53a897e951.js +1 -0
  38. package/assets/esri/core/workers/chunks/26bc509a031788bfa678.js +1 -0
  39. package/assets/esri/core/workers/chunks/{d629708bf23da24ee523.js → 298f234f11a10c5120a2.js} +1 -1
  40. package/assets/esri/core/workers/chunks/29ae19206bbeb480be0f.js +1 -0
  41. package/assets/esri/core/workers/chunks/2ae6deade655fdbc28de.js +1 -0
  42. package/assets/esri/core/workers/chunks/{37cf4ca2083cd3b6002e.js → 2c7bb5c9751524687002.js} +1 -1
  43. package/assets/esri/core/workers/chunks/2c8957f9c7610805208c.js +1 -0
  44. package/assets/esri/core/workers/chunks/{dc1944a7601b518a9c48.js → 2ca49fb4590cc34a02bd.js} +1 -1
  45. package/assets/esri/core/workers/chunks/2d592c935571de80a2e2.js +1 -0
  46. package/assets/esri/core/workers/chunks/{a917a1df8270860dc514.js → 2f52ad525744b8793d49.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{f890359d972cce54459e.js → 2f829321bfbd3bacd64f.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{6efc5873747b9cd44fb9.js → 323451ef52d0c2805f1d.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{7232fc11b23777b6be94.js → 369012c032ea6882607c.js} +1 -1
  50. package/assets/esri/core/workers/chunks/37ae52c71bf9c70fbb92.js +1 -0
  51. package/assets/esri/core/workers/chunks/38890ac5917942374ab8.js +1 -0
  52. package/assets/esri/core/workers/chunks/3e33d953e41b281a120b.js +1 -0
  53. package/assets/esri/core/workers/chunks/3e52351e06d85bf9bedd.js +1 -0
  54. package/assets/esri/core/workers/chunks/{9f760dc4492a03e0504c.js → 45d87af48a21644590c2.js} +1 -1
  55. package/assets/esri/core/workers/chunks/462fd57af8ed7921d6ba.js +1 -0
  56. package/assets/esri/core/workers/chunks/463d69f596d1d34ef275.js +2 -0
  57. package/assets/esri/core/workers/chunks/475906b079f4f1ddacf2.js +1 -0
  58. package/assets/esri/core/workers/chunks/48a2f68e06a2e90b77d0.js +1 -0
  59. package/assets/esri/core/workers/chunks/49affbed22e201f7c32b.js +1 -0
  60. package/assets/esri/core/workers/chunks/{b6ca73c1384f07b30b74.js → 4bb8432d99a39733368f.js} +1 -1
  61. package/assets/esri/core/workers/chunks/{cb983f65995e57fff7a1.js → 4f58e0322707f63f5bf2.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{8f0ecf4d06ec7b67d4ed.js → 52744dfd430cd0c0edfb.js} +1 -1
  63. package/assets/esri/core/workers/chunks/58a17fb3c0dd07c63d57.js +2 -0
  64. package/assets/esri/core/workers/chunks/5993db944b9e7825e0bc.js +1 -0
  65. package/assets/esri/core/workers/chunks/{b0058619e0363002ad86.js → 59cd139712d919e6a738.js} +1 -1
  66. package/assets/esri/core/workers/chunks/59d5247ac4075b024244.js +1 -0
  67. package/assets/esri/core/workers/chunks/5b9f3c4f65412c66316f.js +1 -0
  68. package/assets/esri/core/workers/chunks/{be3421ffb5b391bca02e.js → 5d35e0c2665f5e625ee9.js} +1 -1
  69. package/assets/esri/core/workers/chunks/5e70bfb9d6235a87b87a.js +1 -0
  70. package/assets/esri/core/workers/chunks/6006bd8a5ed945fa2776.js +1 -0
  71. package/assets/esri/core/workers/chunks/618927cfcb93dd1d92fd.js +1 -0
  72. package/assets/esri/core/workers/chunks/6709d24867d275b33d24.js +1 -0
  73. package/assets/esri/core/workers/chunks/68e24fa3f564c2a5c9fd.js +1 -0
  74. package/assets/esri/core/workers/chunks/{6ab7bb3834841834f839.js → 724ea2e2843e6dac0a90.js} +1 -1
  75. package/assets/esri/core/workers/chunks/7441d121f00ce747c08e.js +1 -0
  76. package/assets/esri/core/workers/chunks/{090c9c2dbf92f2cac0b8.js → 770ca70d363184e39d60.js} +1 -1
  77. package/assets/esri/core/workers/chunks/781fa83e8063b8f685dc.js +1 -0
  78. package/assets/esri/core/workers/chunks/78c1b75b1a8937eaa3cd.js +1 -0
  79. package/assets/esri/core/workers/chunks/793b072519ded0dc6f34.js +1 -0
  80. package/assets/esri/core/workers/chunks/7994fce5f36963aadc51.js +1 -0
  81. package/assets/esri/core/workers/chunks/7adee504107cb9ad8563.js +1 -0
  82. package/assets/esri/core/workers/chunks/7efc45858ebd3fd3302e.js +1 -0
  83. package/assets/esri/core/workers/chunks/7ff536284942c5284a16.js +1 -0
  84. package/assets/esri/core/workers/chunks/813dd84933b407c8fe86.js +1 -0
  85. package/assets/esri/core/workers/chunks/83c7c4218bc6ba2f16ee.js +1 -0
  86. package/assets/esri/core/workers/chunks/8daeac785af725c3ebdf.js +1 -0
  87. package/assets/esri/core/workers/chunks/{3ab25279aaa30f035038.js → 8daed13400d9e63e65ae.js} +1 -1
  88. package/assets/esri/core/workers/chunks/9020bd7a0e488d55ef14.js +1 -0
  89. package/assets/esri/core/workers/chunks/92f35b2c3c5f13778308.js +1 -0
  90. package/assets/esri/core/workers/chunks/97cd4145c016cf379120.js +1 -0
  91. package/assets/esri/core/workers/chunks/{cf7c06702babd6fa88b4.js → 9af36ee6a0df224859bc.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{452d069ba7ad6759b558.js → 9c46c7f00d42f5c02b26.js} +1 -1
  93. package/assets/esri/core/workers/chunks/{32fc7d1db4b311f6b880.js → 9e5b30b907102bc0c201.js} +1 -1
  94. package/assets/esri/core/workers/chunks/a3ab53b534e2872131be.js +1 -0
  95. package/assets/esri/core/workers/chunks/{f18ee2eaa96d103627a6.js → aa6b2cc8f6f5627891c1.js} +1 -1
  96. package/assets/esri/core/workers/chunks/ac7af417ebf7721d7400.js +1 -0
  97. package/assets/esri/core/workers/chunks/aed479c14d93955f4798.js +1 -0
  98. package/assets/esri/core/workers/chunks/{60c61f34733063730386.js → b013b70e40dfb6ce013e.js} +1 -1
  99. package/assets/esri/core/workers/chunks/b22de8bf4a4a739bc36d.js +1 -0
  100. package/assets/esri/core/workers/chunks/b39cd78d2d97bef9909e.js +1 -0
  101. package/assets/esri/core/workers/chunks/b5f50955c1eee55b67d1.js +1 -0
  102. package/assets/esri/core/workers/chunks/b688e6463a651779a016.js +1 -0
  103. package/assets/esri/core/workers/chunks/bb5ed2a796a45c41b0b4.js +1 -0
  104. package/assets/esri/core/workers/chunks/bdf012e591a8476db467.js +1 -0
  105. package/assets/esri/core/workers/chunks/{daf7b647bd960d8bad56.js → be52c319a0a81ce1ba36.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{066b7f6866d602f963e0.js → c3008b20cb5fd38bd900.js} +1 -1
  107. package/assets/esri/core/workers/chunks/{22e85819e23202a8ba90.js → c39ebd8d469f1e8bb61e.js} +1 -1
  108. package/assets/esri/core/workers/chunks/{7f2ac03efaa4a4898ba2.js → c3b96d1d43afccd23e45.js} +2 -2
  109. package/assets/esri/core/workers/chunks/{89edaa1ffa566908ebca.js → ca5a4f62b09cc8579dc0.js} +1 -1
  110. package/assets/esri/core/workers/chunks/ce08e3369641da0d7a27.js +2 -0
  111. package/assets/esri/core/workers/chunks/ce1ccf9ec90b786591e5.js +1 -0
  112. package/assets/esri/core/workers/chunks/cf0bed7ae27021fd7b05.js +1 -0
  113. package/assets/esri/core/workers/chunks/cf6f671823fa6c2a9a5e.js +1 -0
  114. package/assets/esri/core/workers/chunks/d25210574168ead2f813.js +1 -0
  115. package/assets/esri/core/workers/chunks/d3378c479052d566317c.js +1 -0
  116. package/assets/esri/core/workers/chunks/{1742dbc6a827cfda471b.js → d3d48401462ef3bf0ad9.js} +1 -1
  117. package/assets/esri/core/workers/chunks/d3ef23923424ad8c5048.js +1 -0
  118. package/assets/esri/core/workers/chunks/{46388b86d1b10e6121bd.js → d507d7d7a7282fc38e8d.js} +1 -1
  119. package/assets/esri/core/workers/chunks/dc0816f064be576a2fa6.js +1 -0
  120. package/assets/esri/core/workers/chunks/{862e1acd80c4e43831dc.js → dc923e50958b68a50014.js} +1 -1
  121. package/assets/esri/core/workers/chunks/dd4ecf81250cc001d040.js +1 -0
  122. package/assets/esri/core/workers/chunks/e10fe4c77b8dc4492092.js +1 -0
  123. package/assets/esri/core/workers/chunks/e4e1db4e9e5f13167401.js +1 -0
  124. package/assets/esri/core/workers/chunks/e5ee64e2fb5bfcb716d8.js +1 -0
  125. package/assets/esri/core/workers/chunks/{e755075ac2e02e881fad.js → e6637f9176566382ed3e.js} +1 -1
  126. package/assets/esri/core/workers/chunks/e6dc68c4bd8eddb168d1.js +1 -0
  127. package/assets/esri/core/workers/chunks/eb780f2dafa14f776166.js +1 -0
  128. package/assets/esri/core/workers/chunks/{723478607badcde5706b.js → eb7f45736c852725b0bb.js} +150 -118
  129. package/assets/esri/core/workers/chunks/ed31ec586b754241474d.js +1 -0
  130. package/assets/esri/core/workers/chunks/f38d11be766043413659.js +1 -0
  131. package/assets/esri/core/workers/chunks/{98a5327fd96d9542b39f.js → f90cad9f007a11154c0d.js} +1 -1
  132. package/assets/esri/libs/pdfjs/pdf.worker.mjs +63075 -0
  133. package/assets/esri/libs/pdfjs/wasm/jbig2.wasm +0 -0
  134. package/assets/esri/libs/pdfjs/wasm/openjpeg.wasm +0 -0
  135. package/assets/esri/libs/pdfjs/wasm/qcms_bg.wasm +0 -0
  136. package/assets/esri/libs/pdfjs/wasm/quickjs-eval.wasm +0 -0
  137. package/assets/esri/themes/dark/main.css +1 -1
  138. package/assets/esri/themes/light/main.css +1 -1
  139. package/assets/esri/themes/light/view.css +1 -1
  140. package/assets/esri/widgets/support/SelectionToolbar/t9n/messages.en.json +1 -1
  141. package/basemaps/BasemapCollection.d.ts +148 -0
  142. package/basemaps/BasemapCollection.js +2 -0
  143. package/basemaps/BasemapsSource.d.ts +39 -0
  144. package/basemaps/BasemapsSource.js +2 -0
  145. package/basemaps/LocalBasemapsSource.d.ts +55 -0
  146. package/basemaps/LocalBasemapsSource.js +2 -0
  147. package/basemaps/PortalBasemapsSource.d.ts +98 -0
  148. package/basemaps/PortalBasemapsSource.js +2 -0
  149. package/basemaps/support/BasemapItem.d.ts +74 -0
  150. package/basemaps/support/BasemapItem.js +2 -0
  151. package/basemaps/support/basemapCompatibilityUtils.js +2 -0
  152. package/basemaps/types.d.ts +42 -0
  153. package/chunks/CheckerBoard.glsl.js +1 -1
  154. package/chunks/CloudsComposition.glsl.js +2 -2
  155. package/chunks/ColorMaterial.glsl.js +1 -1
  156. package/chunks/Component.glsl.js +11 -11
  157. package/chunks/DeepSky.glsl.js +1 -1
  158. package/chunks/DefaultMaterial.glsl.js +4 -4
  159. package/chunks/EdgeShader.glsl.js +1 -1
  160. package/chunks/FocusArea.glsl.js +1 -1
  161. package/chunks/GaussianSplat.glsl.js +9 -9
  162. package/chunks/GlobalIllumination.glsl.js +42 -13
  163. package/chunks/GlobalIlluminationBlur.glsl.js +1 -1
  164. package/chunks/HUDMaterial.glsl.js +1 -1
  165. package/chunks/ImageMaterial.glsl.js +1 -1
  166. package/chunks/LineCallout.glsl.js +1 -1
  167. package/chunks/LineMarker.glsl.js +97 -89
  168. package/chunks/NativeLine.glsl.js +1 -1
  169. package/chunks/Path.glsl.js +8 -7
  170. package/chunks/Pattern.glsl.js +1 -1
  171. package/chunks/PointRenderer.glsl.js +1 -1
  172. package/chunks/RealisticTree.glsl.js +4 -4
  173. package/chunks/RibbonLine.glsl.js +58 -56
  174. package/chunks/ShadowCastAccumulate.glsl.js +3 -3
  175. package/chunks/ShadowHighlight.glsl.js +4 -4
  176. package/chunks/ShadowHighlightBuffer.glsl.js +3 -3
  177. package/chunks/Terrain.glsl.js +12 -14
  178. package/chunks/Viewshed.glsl.js +1 -1
  179. package/chunks/Water.glsl.js +3 -3
  180. package/chunks/languageUtils.js +1 -1
  181. package/config.js +1 -1
  182. package/core/Accessor.d.ts +10 -0
  183. package/core/arrayUtils.js +1 -1
  184. package/core/workers/registry.js +1 -1
  185. package/geometry/support/geometryUtils.js +1 -1
  186. package/geometry/support/heightModelInfoUtils.js +1 -1
  187. package/geometry/support/meshUtils/elevation.js +1 -1
  188. package/kernel.js +1 -1
  189. package/layers/CSVLayer.js +1 -1
  190. package/layers/GeoJSONLayer.d.ts +1 -1
  191. package/layers/GeoJSONLayer.js +1 -1
  192. package/layers/GeospatialPDFLayer.d.ts +40 -0
  193. package/layers/GeospatialPDFLayer.js +2 -0
  194. package/layers/IntegratedMeshLayer.js +1 -1
  195. package/layers/OGCFeatureLayer.js +1 -1
  196. package/layers/StreamLayer.js +1 -1
  197. package/layers/geospatialPDF/GeospatialPDFFrame.js +2 -0
  198. package/layers/geospatialPDF/GeospatialPDFLayerWorker.js +5 -0
  199. package/layers/geospatialPDF/GeospatialPDFParserUtils.js +2 -0
  200. package/layers/geospatialPDF/GeospatialPDFWorkerClient.js +2 -0
  201. package/layers/geospatialPDF/LGIDictMapFrame.js +2 -0
  202. package/layers/geospatialPDF/Projection.js +2 -0
  203. package/layers/geospatialPDF/ViewportMeasureFrame.js +2 -0
  204. package/layers/geospatialPDF/renderExtentUtils.js +2 -0
  205. package/layers/geospatialPDF/sharedUtils.js +2 -0
  206. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  207. package/layers/mixins/ArcGISImageService.js +1 -1
  208. package/layers/mixins/FeatureLayerBase.js +1 -1
  209. package/layers/raster/datasets/GeospatialPDFRaster.js +2 -0
  210. package/layers/support/ElevationQuery.js +1 -1
  211. package/layers/support/LabelClass.d.ts +13 -4
  212. package/layers/support/LabelClass.js +1 -1
  213. package/layers/support/commonProperties.js +1 -1
  214. package/layers/support/layersLoader.js +1 -1
  215. package/layers/types.d.ts +1 -1
  216. package/legend/ActiveLayerInfo.d.ts +130 -0
  217. package/legend/ActiveLayerInfo.js +2 -0
  218. package/legend/LegendContent.d.ts +118 -0
  219. package/legend/LegendContent.js +2 -0
  220. package/legend/support/clusterUtils.js +2 -0
  221. package/legend/support/colorRampUtils.js +2 -0
  222. package/legend/support/heatmapRampUtils.js +2 -0
  223. package/legend/support/relationshipRampUtils.js +2 -0
  224. package/legend/support/sizeRampUtils.js +2 -0
  225. package/legend/support/utils.js +2 -0
  226. package/legend/types.d.ts +403 -0
  227. package/libs/i3s/I3SModule.js +1 -1
  228. package/package.json +7 -7
  229. package/portal/PortalItem.js +1 -1
  230. package/portal/support/portalLayers.js +1 -1
  231. package/support/revision.js +1 -1
  232. package/support/userTypeGuards/isBasemapsSource.js +2 -0
  233. package/symbols/cim/CIMOperators.js +1 -1
  234. package/symbols/cim/callouts/effects/BackgroundCallout.js +2 -0
  235. package/symbols/cim/callouts/effects/BalloonCallout.js +2 -0
  236. package/symbols/cim/callouts/effects/PointSymbolCallout.js +2 -0
  237. package/symbols/cim/callouts/effects/SimpleLineCallout.js +2 -0
  238. package/symbols/cim/callouts/effects/calloutUtils.js +2 -0
  239. package/symbols/cim/cimAnalyzer.js +1 -1
  240. package/symbols/cim/utils.js +1 -1
  241. package/symbols/support/typeUtils.js +1 -1
  242. package/views/2d/LabelManager.js +1 -1
  243. package/views/2d/engine/AFeatureContainer.js +1 -1
  244. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  245. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  246. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  247. package/views/2d/engine/webgl/GlyphWorker.js +1 -1
  248. package/views/2d/engine/webgl/TileCpuState.js +1 -1
  249. package/views/2d/engine/webgl/TileGpuState.js +1 -1
  250. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  251. package/views/2d/engine/webgl/collisions/LabelStore.js +2 -0
  252. package/views/2d/engine/webgl/cpuMapped/CpuBuffer.js +1 -1
  253. package/views/2d/engine/webgl/cpuMapped/CpuMeshData.js +1 -1
  254. package/views/2d/engine/webgl/cpuMapped/GpuMeshState.js +1 -1
  255. package/views/2d/engine/webgl/definitions.js +1 -1
  256. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  257. package/views/2d/engine/webgl/mesh/MultiTileMeshData.js +1 -1
  258. package/views/2d/engine/webgl/mesh/factories/CalloutMeshWriterCoordinator.js +2 -0
  259. package/views/2d/engine/webgl/mesh/factories/FeatureMeshFactory.js +1 -1
  260. package/views/2d/engine/webgl/mesh/factories/MeshWriterGroupCoordinator.js +2 -0
  261. package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
  262. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  263. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  264. package/views/2d/engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js +1 -1
  265. package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
  266. package/views/2d/engine/webgl/shaderGraph/techniques/TechniqueInstance.js +1 -1
  267. package/views/2d/engine/webgl/shaderGraph/techniques/TestDisplayObject.js +1 -1
  268. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  269. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  270. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  271. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  272. package/views/2d/engine/webgl/shaderGraph/techniques/createGraphicSymbolMeshSchemas.js +1 -1
  273. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  274. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  275. package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
  276. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
  277. package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillMeshWriter.js +1 -1
  278. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js +1 -1
  279. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  280. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
  281. package/views/2d/engine/webgl/shaderGraph/techniques/line/LineMeshWriter.js +1 -1
  282. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  283. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  284. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  285. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/CalloutMeshWriterPolicy.js +2 -0
  286. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  287. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterReferences.js +2 -0
  288. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterVertexPack.js +1 -1
  289. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/dataViewUtils.js +1 -1
  290. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartShader.js +1 -1
  291. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  292. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  293. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  294. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  295. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  296. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  297. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/constants.js +1 -1
  298. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  299. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  300. package/views/2d/engine/webgl/util/AnnotationMatcher.js +1 -1
  301. package/views/2d/engine/webgl/util/DimensionMatcher.js +1 -1
  302. package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
  303. package/views/2d/engine/webgl/util/LabelMatcher.js +1 -1
  304. package/views/2d/engine/webgl/util/MapMatcher.js +1 -1
  305. package/views/2d/engine/webgl/util/Matcher.js +1 -1
  306. package/views/2d/engine/webgl/util/MatcherContext.js +1 -1
  307. package/views/2d/input/MapViewInputManager.js +1 -1
  308. package/views/2d/input/handlers/KeyPan.js +1 -1
  309. package/views/2d/input/handlers/KeyRotate.js +1 -1
  310. package/views/2d/layerViewModuleImportUtils.js +1 -1
  311. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  312. package/views/2d/layers/GeospatialPDFLayerView2D.js +2 -0
  313. package/views/2d/layers/MediaLayerView2D.js +1 -1
  314. package/views/2d/layers/TileLayerView2D.js +1 -1
  315. package/views/2d/layers/features/FeatureContainer.js +1 -1
  316. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  317. package/views/2d/layers/features/RenderState.js +1 -1
  318. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  319. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  320. package/views/2d/layers/features/support/GraphicsReader.js +1 -1
  321. package/views/2d/layers/graphics/AGraphicContainer.js +1 -1
  322. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  323. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  324. package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
  325. package/views/2d/layers/support/annodime/MatcherGeometryOverride.js +1 -1
  326. package/views/2d/layers/support/annodime/PrivateMatcherGeometryOverrideEffect.js +1 -1
  327. package/views/2d/layers/support/annodime/annotationGraphic.js +1 -1
  328. package/views/2d/layers/support/annodime/cimAnnotations.js +1 -1
  329. package/views/2d/layers/support/annodime/debugUtils.js +1 -1
  330. package/views/2d/layers/support/annodime/virtualFields.js +1 -1
  331. package/views/2d/types.d.ts +2 -0
  332. package/views/3d/GroundView3D.js +1 -1
  333. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  334. package/views/3d/input/SceneInputManager.js +1 -1
  335. package/views/3d/input/handlers/KeyboardNavigation.js +1 -1
  336. package/views/3d/input/handlers/ground/GroundDoubleClickMove.js +2 -0
  337. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  338. package/views/3d/layerViewModuleImportUtils.js +1 -1
  339. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  340. package/views/3d/layers/GeospatialPDFLayerView3D.js +2 -0
  341. package/views/3d/layers/I3SMeshView3D.js +1 -1
  342. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  343. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  344. package/views/3d/layers/LayerView3D.js +1 -1
  345. package/views/3d/layers/SceneLayerWorker.js +1 -1
  346. package/views/3d/layers/i3s/I3SMaterialUtil.js +1 -1
  347. package/views/3d/layers/i3s/Intersector.js +1 -1
  348. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  349. package/views/3d/support/GroundAndIMSurface.js +1 -1
  350. package/views/3d/support/MemoryController.js +1 -1
  351. package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
  352. package/views/3d/support/hitTest.js +1 -1
  353. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  354. package/views/3d/types.d.ts +2 -0
  355. package/views/3d/webgl-engine/collections/Component/Material/Component.glsl.js +1 -1
  356. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  357. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +1 -3
  358. package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +1 -1
  359. package/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js +1 -1
  360. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +8 -8
  361. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +6 -6
  362. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +1 -1
  363. package/views/3d/webgl-engine/core/shaderLibrary/forwardLinearDepthToReadShadow.glsl.js +4 -0
  364. package/views/3d/webgl-engine/core/shaderLibrary/{ForwardLinearDepthToWriteShadowMap.glsl.js → forwardLinearDepthToWriteShadow.glsl.js} +5 -5
  365. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +8 -6
  366. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js +2 -2
  367. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +1 -1
  368. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +1 -1
  369. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadow.glsl.js +3 -4
  370. package/views/3d/webgl-engine/core/shaderLibrary/shading/calculateUVZShadowFromDepth.glsl.js +2 -2
  371. package/views/3d/webgl-engine/core/shaderLibrary/shading/readFragmentShadow.glsl.js +5 -0
  372. package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +24 -0
  373. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
  374. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +6 -6
  375. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  376. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
  377. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.js +1 -1
  378. package/views/3d/webgl-engine/effects/focusArea/FocusArea.js +1 -1
  379. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  380. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  381. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.glsl.js +1 -1
  382. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightBuffer.glsl.js +1 -1
  383. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  384. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowAccumulator.js +1 -1
  385. package/views/3d/webgl-engine/effects/shadowAccumulation/ShadowCastAccumulate.glsl.js +1 -1
  386. package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
  387. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  388. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  389. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  390. package/views/3d/webgl-engine/materials/DrawParameters.js +1 -1
  391. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  392. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  393. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  394. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  395. package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
  396. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  397. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  398. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +1 -1
  399. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  400. package/views/3d/webgl-engine/shaders/LineTechniqueConfiguration.js +1 -1
  401. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  402. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  403. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  404. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +1 -1
  405. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  406. package/views/3d/webgl-engine/shaders/{AnimatedLine.glsl.js → animatedAlpha.glsl.js} +11 -17
  407. package/views/SceneView.d.ts +31 -0
  408. package/views/SceneView.js +1 -1
  409. package/views/ToolViewManager.js +1 -1
  410. package/views/VideoView.js +1 -1
  411. package/views/View.d.ts +35 -0
  412. package/views/View.js +1 -1
  413. package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
  414. package/views/analysis/ElevationProfile/elevationProfileQuerySourceUtils.js +1 -1
  415. package/views/interactive/options/ViewOptions.d.ts +98 -0
  416. package/views/interactive/options/ViewOptions.js +2 -0
  417. package/views/interactive/support/Units.d.ts +10 -2
  418. package/views/interactive/support/Units.js +1 -1
  419. package/views/layers/FeatureLikeLayerView.d.ts +27 -5
  420. package/views/layers/GraphicsLayerView.d.ts +25 -2
  421. package/views/layers/ImageryTileLayerView.js +1 -1
  422. package/views/selection/types.d.ts +1 -1
  423. package/views/support/DefaultsFromMap.js +1 -1
  424. package/views/types.d.ts +9 -3
  425. package/widgets/BasemapGallery/BasemapGalleryViewModel.d.ts +3 -0
  426. package/widgets/BasemapGallery/support/BasemapGalleryItem.d.ts +3 -0
  427. package/widgets/BasemapGallery/support/LocalBasemapsSource.d.ts +2 -0
  428. package/widgets/BasemapGallery/support/PortalBasemapsSource.d.ts +2 -0
  429. package/widgets/BasemapGallery/types.d.ts +6 -1
  430. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +2 -0
  431. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  432. package/widgets/Editor/EditorViewModel.d.ts +2 -1
  433. package/widgets/Editor/EditorViewModel.js +1 -1
  434. package/widgets/Editor/legacy/CreateFeaturesWorkflow.js +1 -1
  435. package/widgets/Editor.d.ts +2 -1
  436. package/widgets/Editor.js +1 -1
  437. package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
  438. package/widgets/HistogramRangeSlider/HistogramRangeSliderViewModel.d.ts +1 -0
  439. package/widgets/HistogramRangeSlider/HistogramRangeSliderViewModel.js +1 -1
  440. package/widgets/HistogramRangeSlider.js +1 -1
  441. package/widgets/Legend/LegendViewModel.d.ts +1 -0
  442. package/widgets/Legend/LegendViewModel.js +1 -1
  443. package/widgets/Legend/styles/card/CardView.d.ts +1 -0
  444. package/widgets/Legend/styles/card/CardView.js +1 -1
  445. package/widgets/Legend/styles/classic/ClassicView.d.ts +1 -0
  446. package/widgets/Legend/styles/classic/ClassicView.js +1 -1
  447. package/widgets/Legend/support/ActiveLayerInfo.d.ts +2 -0
  448. package/widgets/Legend.js +1 -1
  449. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +8 -2
  450. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  451. package/widgets/support/SelectionToolbar/VisibleElements.d.ts +8 -1
  452. package/widgets/support/SelectionToolbar/VisibleElements.js +1 -1
  453. package/widgets/support/SelectionToolbar.d.ts +7 -1
  454. package/widgets/support/SelectionToolbar.js +1 -1
  455. package/assets/esri/core/workers/chunks/01ca17092545d72be7b6.js +0 -1
  456. package/assets/esri/core/workers/chunks/03918a862455191a8910.js +0 -1
  457. package/assets/esri/core/workers/chunks/0b727d7bf3e36e146725.js +0 -1
  458. package/assets/esri/core/workers/chunks/0bd067a5c0bac96caeb5.js +0 -1
  459. package/assets/esri/core/workers/chunks/0ff13f7a18b0123d253e.js +0 -1
  460. package/assets/esri/core/workers/chunks/114bc14c49176f64a2c5.js +0 -1
  461. package/assets/esri/core/workers/chunks/1630913399384030d0b9.js +0 -1
  462. package/assets/esri/core/workers/chunks/173417fe995e9bfc49d8.js +0 -1
  463. package/assets/esri/core/workers/chunks/1a39335aa2dce6d564d9.js +0 -1
  464. package/assets/esri/core/workers/chunks/25bb07d3c32b16a08813.js +0 -1
  465. package/assets/esri/core/workers/chunks/25cc6d7178a52f2f46b7.js +0 -1
  466. package/assets/esri/core/workers/chunks/2cf571d968118b6bdde0.js +0 -1
  467. package/assets/esri/core/workers/chunks/2e999b05ce179dd9fa08.js +0 -1
  468. package/assets/esri/core/workers/chunks/354912041363502c6a89.js +0 -1
  469. package/assets/esri/core/workers/chunks/36792b8a85e88044cb49.js +0 -1
  470. package/assets/esri/core/workers/chunks/3acc1299c1382c3b034d.js +0 -1
  471. package/assets/esri/core/workers/chunks/430802108b63194b7ddd.js +0 -2
  472. package/assets/esri/core/workers/chunks/43436c7ccc6baefc885d.js +0 -1
  473. package/assets/esri/core/workers/chunks/4396ef5ab3eb9e9a7df2.js +0 -1
  474. package/assets/esri/core/workers/chunks/445b0ca1b70730c9a2e6.js +0 -1
  475. package/assets/esri/core/workers/chunks/48d3da636be15581fd7d.js +0 -1
  476. package/assets/esri/core/workers/chunks/49e8ff5ed079a9e3be4b.js +0 -1
  477. package/assets/esri/core/workers/chunks/4efe5827a5c61db3b19d.js +0 -2
  478. package/assets/esri/core/workers/chunks/501df20cdd09384f6ee2.js +0 -1
  479. package/assets/esri/core/workers/chunks/50ae209237f104735a30.js +0 -1
  480. package/assets/esri/core/workers/chunks/54f9062526c2002b7fd7.js +0 -1
  481. package/assets/esri/core/workers/chunks/56b7ac280bf0be938c14.js +0 -1
  482. package/assets/esri/core/workers/chunks/5938d5f6e37f49867d5a.js +0 -1
  483. package/assets/esri/core/workers/chunks/61bcbafd676804ce3e1d.js +0 -1
  484. package/assets/esri/core/workers/chunks/63f7141c71f29dbe8270.js +0 -1
  485. package/assets/esri/core/workers/chunks/70347d25968975126fa7.js +0 -1
  486. package/assets/esri/core/workers/chunks/726ca458b98bb4334431.js +0 -1
  487. package/assets/esri/core/workers/chunks/75410a4de76e67ed5da4.js +0 -1
  488. package/assets/esri/core/workers/chunks/85780f4fa4b5509f864e.js +0 -1
  489. package/assets/esri/core/workers/chunks/862754d2d659528fe884.js +0 -1
  490. package/assets/esri/core/workers/chunks/8628c027198982baed7c.js +0 -1
  491. package/assets/esri/core/workers/chunks/8675ab3c4dec2f13b9c6.js +0 -1
  492. package/assets/esri/core/workers/chunks/8c521caf050a486b6548.js +0 -1
  493. package/assets/esri/core/workers/chunks/8ce14dd209462f88b163.js +0 -1
  494. package/assets/esri/core/workers/chunks/917dec9c004218c58950.js +0 -1
  495. package/assets/esri/core/workers/chunks/91f451b98e0f696043df.js +0 -1
  496. package/assets/esri/core/workers/chunks/9d92e6f0beed9a8580fa.js +0 -1
  497. package/assets/esri/core/workers/chunks/a42505b978d54d36d3b6.js +0 -1
  498. package/assets/esri/core/workers/chunks/a6d4132a16c51323a38a.js +0 -1
  499. package/assets/esri/core/workers/chunks/a86a4e550a92f770d6d5.js +0 -1
  500. package/assets/esri/core/workers/chunks/add834f867900a7091d2.js +0 -1
  501. package/assets/esri/core/workers/chunks/b45ebb1b64ee7314375e.js +0 -1
  502. package/assets/esri/core/workers/chunks/b56c5883a5468b18b122.js +0 -1
  503. package/assets/esri/core/workers/chunks/b5a102cf9f4377fb9842.js +0 -1
  504. package/assets/esri/core/workers/chunks/b6409d89914030d5854a.js +0 -1
  505. package/assets/esri/core/workers/chunks/baa8bce361a2677533ec.js +0 -1
  506. package/assets/esri/core/workers/chunks/c118b88a7c4359e68d9b.js +0 -1
  507. package/assets/esri/core/workers/chunks/c5e288d57bacb8451e2d.js +0 -2
  508. package/assets/esri/core/workers/chunks/ce3fb992f6c6ae7378a3.js +0 -1
  509. package/assets/esri/core/workers/chunks/ceda1e08c9ff26248db0.js +0 -1
  510. package/assets/esri/core/workers/chunks/cf1106eda10f3cccb1bd.js +0 -1
  511. package/assets/esri/core/workers/chunks/cfd8317ecd2e63af7c40.js +0 -1
  512. package/assets/esri/core/workers/chunks/d5e3f8e5b8d2576d3cb3.js +0 -2
  513. package/assets/esri/core/workers/chunks/d6130cd8a20d24dd9d3c.js +0 -1
  514. package/assets/esri/core/workers/chunks/da5b3421a984cb94fd58.js +0 -1
  515. package/assets/esri/core/workers/chunks/da6583e8d88441a1c02a.js +0 -1
  516. package/assets/esri/core/workers/chunks/ddb5d29a8998d0a76fd4.js +0 -1
  517. package/assets/esri/core/workers/chunks/de8a3a0796bd115426c0.js +0 -1
  518. package/assets/esri/core/workers/chunks/e52f30dfb7c82491a7f2.js +0 -1
  519. package/assets/esri/core/workers/chunks/e707534a700a2de687ca.js +0 -1
  520. package/assets/esri/core/workers/chunks/e88eee4c2fc4229c2a8b.js +0 -1
  521. package/assets/esri/core/workers/chunks/f465fb26541372fdc908.js +0 -2
  522. package/assets/esri/core/workers/chunks/f5423006fb07db7dd6ee.js +0 -1
  523. package/assets/esri/core/workers/chunks/f75e57d3e02f9828b049.js +0 -1
  524. package/assets/esri/core/workers/chunks/f774e5b94710ccee1af0.js +0 -1
  525. package/assets/esri/core/workers/chunks/fdad31bbe8aee68a6eaf.js +0 -1
  526. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToReadShadowMap.glsl.js +0 -4
  527. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +0 -18
  528. package/views/3d/webgl-engine/core/shaderLibrary/shading/ShadowmapFiltering.glsl.js +0 -4
  529. /package/assets/esri/core/workers/chunks/{430802108b63194b7ddd.js.LICENSE.txt → 033debcbf6b3683dc4fe.js.LICENSE.txt} +0 -0
  530. /package/assets/esri/core/workers/chunks/{4efe5827a5c61db3b19d.js.LICENSE.txt → 064445e6f9512817ac87.js.LICENSE.txt} +0 -0
  531. /package/assets/esri/core/workers/chunks/{c5e288d57bacb8451e2d.js.LICENSE.txt → 463d69f596d1d34ef275.js.LICENSE.txt} +0 -0
  532. /package/assets/esri/core/workers/chunks/{d5e3f8e5b8d2576d3cb3.js.LICENSE.txt → 58a17fb3c0dd07c63d57.js.LICENSE.txt} +0 -0
  533. /package/assets/esri/core/workers/chunks/{7f2ac03efaa4a4898ba2.js.LICENSE.txt → c3b96d1d43afccd23e45.js.LICENSE.txt} +0 -0
  534. /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{FeatureMatcher as e}from"./Matcher.js";class s extends e{static async fromLabelSchema(e,a){const r=a.classes.map(async s=>{const a=await e.createMeshWriters(s.meshes);return{minScale:s.minScale,maxScale:s.maxScale,meshes:a,expression:null,where:await e.storage.createWhereClause(s.where)}}),t=await Promise.all(r);return new s(t)}constructor(e){super(),this._labels=e}match(e,s,a,r){if(!this._labels.length)return null;const t=this._getLabels(s.$view.scale),l=[];for(const c of t)c.where&&!c.where(e,a)||l.push(...c.meshes);return l}hasArcadeDependency(e){return this._labels.some(s=>s.meshes.some(s=>s.hasArcadeDependency(e)))}_getLabels(e){return this._labels.filter(s=>this._validForTileScale(s,e))}_validForTileScale(e,s){const a=s-s/4,r=s+s/2;return(!e.minScale||e.minScale>=a)&&(!e.maxScale||e.maxScale<=r)}}export{s as LabelMatcher};
2
+ import{FeatureMatcher as e,combineMeshWriterGroups as s}from"./Matcher.js";class a extends e{static async fromLabelSchema(e,s){const r=s.classes.map(async s=>{const a=await e.createMeshWriters(s.meshes);return{minScale:s.minScale,maxScale:s.maxScale,meshes:a,expression:null,where:await e.storage.createWhereClause(s.where)}}),t=await Promise.all(r);return new a(t)}constructor(e){super(),this._labels=e}match(e,a,r,t){const l=this.matchGroups(e,a,r,t);return l.length>0?s(...l):null}matchGroups(e,s,a,r){if(!this._labels.length)return[];const t=this._getLabels(s.$view.scale),l=[];for(const c of t)c.where&&!c.where(e,a)||l.push(c.meshes);return l}hasArcadeDependency(e){return this._labels.some(s=>s.meshes.writers.some(s=>s.hasArcadeDependency(e)))}_getLabels(e){return this._labels.filter(s=>this._validForTileScale(s,e))}_validForTileScale(e,s){const a=s-s/4,r=s+s/2;return(!e.minScale||e.minScale>=a)&&(!e.maxScale||e.maxScale<=r)}}export{a as LabelMatcher};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{FeatureMatcher as e}from"./Matcher.js";class t extends e{constructor(e,t){super(),this._defaultSymbolSortKey=0,this._nullResult=null,this._resultsMap=new Map,this._fields=[],this._fields=e,this._separator=t||""}static async fromMatcherSchema(e,s){const l=s.expression?[e.storage.createComputedField({expression:s.expression})]:[s.field?e.storage.createComputedField({field:s.field}):null,s.field2?e.storage.createComputedField({field:s.field2}):null,s.field3?e.storage.createComputedField({field:s.field3}):null],r=(await Promise.all(l)).filter(e=>!!e),i=new t(r,s.fieldDelimiter),a=await e.createMeshWriters(s.defaultSymbol);i.setDefault(a);const u=await e.createMeshWriters(s.backgroundFill);return i.setBackgroundFill(u),await Promise.all(s.map.map(async(t,s)=>{const l=[...await e.createMeshWriters(t.meshes),...await e.createMeshWriters(t.alternateMeshes)];"<Null>"===t.value?i.setNullResult(l):i.add(t.value,l,s+1)})),i}setNullResult(e){this._nullResult=e}getSortKey(e,t){const s=this._getValueFromFields(e,t);if(null==s||""===s||"<Null>"===s)return 0;const l=this._resultsMap.get(s.toString());return l?l.sortKey:this._defaultSymbolSortKey}add(e,t,s){this._resultsMap.set(e.toString(),{meshWriters:t,sortKey:s}),this._defaultSymbolSortKey=Math.max(this._defaultSymbolSortKey,s+1)}size(){return super.size()+this._resultsMap.size}hasArcadeDependency(e){return this._fields.some(t=>t.hasArcadeDependency(e))||[...this._resultsMap.values()].some(t=>t.meshWriters.some(t=>t.hasArcadeDependency(e)))||this._nullResult?.some(t=>t.hasArcadeDependency(e))||!1}doMatch(e,t,s){const l=this._getValueFromFields(e,t);if(null!==this._nullResult&&(null==l||""===l||"<Null>"===l))return this._nullResult;if(null==l)return null;const r=l.toString();return this._resultsMap.get(r)?.meshWriters}_getValueFromFields(e,t){const s=[];for(const l of this._fields){const r=l.read(e,t);null==r||""===r?s.push("<Null>"):s.push(r)}return s.join(this._separator)}}export{t as MapMatcher};
2
+ import{FeatureMatcher as e,combineMeshWriterGroups as t}from"./Matcher.js";class s extends e{constructor(e,t){super(),this._defaultSymbolSortKey=0,this._nullResult=null,this._resultsMap=new Map,this._fields=[],this._fields=e,this._separator=t||""}static async fromMatcherSchema(e,l){const r=l.expression?[e.storage.createComputedField({expression:l.expression})]:[l.field?e.storage.createComputedField({field:l.field}):null,l.field2?e.storage.createComputedField({field:l.field2}):null,l.field3?e.storage.createComputedField({field:l.field3}):null],i=(await Promise.all(r)).filter(e=>!!e),a=new s(i,l.fieldDelimiter),u=await e.createMeshWriters(l.defaultSymbol);a.setDefault(u);const o=await e.createMeshWriters(l.backgroundFill);return a.setBackgroundFill(o),await Promise.all(l.map.map(async(s,l)=>{const r=await e.createMeshWriters(s.meshes),i=await e.createMeshWriters(s.alternateMeshes),u=t(r,i);"<Null>"===s.value?a.setNullResult(u):a.add(s.value,u,l+1)})),a}setNullResult(e){this._nullResult=e}getSortKey(e,t){const s=this._getValueFromFields(e,t);if(null==s||""===s||"<Null>"===s)return 0;const l=this._resultsMap.get(s.toString());return l?l.sortKey:this._defaultSymbolSortKey}add(e,t,s){this._resultsMap.set(e.toString(),{meshWriters:t,sortKey:s}),this._defaultSymbolSortKey=Math.max(this._defaultSymbolSortKey,s+1)}size(){return super.size()+this._resultsMap.size}hasArcadeDependency(e){return this._fields.some(t=>t.hasArcadeDependency(e))||[...this._resultsMap.values()].some(t=>t.meshWriters.writers.some(t=>t.hasArcadeDependency(e)))||this._nullResult?.writers.some(t=>t.hasArcadeDependency(e))||!1}doMatch(e,t,s){const l=this._getValueFromFields(e,t);if(null!==this._nullResult&&(null==l||""===l||"<Null>"===l))return this._nullResult;if(null==l)return null;const r=l.toString();return this._resultsMap.get(r)?.meshWriters}_getValueFromFields(e,t){const s=[];for(const l of this._fields){const r=l.read(e,t);null==r||""===r?s.push("<Null>"):s.push(r)}return s.join(this._separator)}}export{s as MapMatcher};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- class t{constructor(){this._defaultResult=null,this._backgroundFillResult=null}static async from(e,s){const l=new t;return l.setDefault(await e.createMeshWriters(s.meshes)),l}size(){return 1}getDefault(){return this._defaultResult}setDefault(t){this._defaultResult=t}getBackgroundFill(){return this._backgroundFillResult}setBackgroundFill(t){this._backgroundFillResult=t}hasArcadeDependency(t){return this._defaultResult?.some(e=>e.hasArcadeDependency(t))??!1}match(t,e,s,l){const u=this.doMatch(t,e,l)||this.getDefault();if(u&&u.length>0){const t=this.getBackgroundFill();if(t)return[...t,...u]}return u}cleanup(t,e,s,l,u){}getSortKey(t,e){return 0}doMatch(t,e,s){return null}async fetchResources(t,e,s,l){}}export{t as FeatureMatcher};
2
+ function e(e,t){if(e.length!==t.length)throw new Error("InternalError: mesh writer schemas and writers must have matching lengths");const n=new Map;for(let r=0;r<t.length;r++){const s=e[r];for(const e of t[r].references?.exports??[]){if(n.has(e)){if("label-reference-symbol"===e)continue;throw new Error(`InternalError: multiple mesh writers export the "${e}" reference type`)}n.set(e,s)}}const s=new Map;let o=!1;for(let l=0;l<t.length;l++){const i=e[l],c=[...(t[l].references?.dependencies??[]).map(e=>r(e,n)),...(t[l].references?.externalDependencies??[]).map(e=>({type:e,external:!0}))];s.set(i,c),o||=c.length>0}return{writers:e,dependencies:s,exports:n,requiresCoordination:o}}function t(...e){const t=[],r=new Map,n=new Map;let s=!1;for(const o of e){t.push(...o.writers),s||=o.requiresCoordination;for(const[e,t]of o.dependencies)r.set(e,t);for(const[e,t]of o.exports){if(n.has(e)){if("label-reference-symbol"===e)continue;throw new Error(`InternalError: multiple mesh writer groups export the "${e}" reference type`)}n.set(e,t)}}return{writers:t,dependencies:r,exports:n,requiresCoordination:s}}function r(e,t){const r=t.get(e);if(!r)throw new Error(`InternalError: no mesh writer exports the "${e}" reference type`);return{type:e,writer:r,external:!1}}class n{constructor(){this._defaultResult=null,this._backgroundFillResult=null}static async from(e,t){const r=new n;return r.setDefault(await e.createMeshWriters(t.meshes)),r}size(){return 1}getDefault(){return this._defaultResult}setDefault(e){this._defaultResult=e}getBackgroundFill(){return this._backgroundFillResult}setBackgroundFill(e){this._backgroundFillResult=e}hasArcadeDependency(e){return this._defaultResult?.writers.some(t=>t.hasArcadeDependency(e))??!1}match(e,r,n,s){const o=this.doMatch(e,r,s)||this.getDefault();if(o&&o.writers.length>0){const e=this.getBackgroundFill();if(e)return t(e,o)}return o}matchGroups(e,t,r,n){const s=this.match(e,t,r,n);return s?[s]:[]}cleanup(e,t,r,n,s){}getSortKey(e,t){return 0}getCalloutAnchor(e,t){return null}doMatch(e,t,r){return null}async fetchResources(e,t,r,n){}}export{n as FeatureMatcher,t as combineMeshWriterGroups,e as createMeshWriterGroup};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- class s{constructor(s,t,r,e,i){this.storage=s,this.proxy=t,this.viewParams=r,this.registry=e,this.fieldsMap=i}async createMeshWriters(s){const t=s.map(s=>this.registry.createMeshWriter(this.storage,this.proxy,this.viewParams,s,this.fieldsMap));return Promise.all(t)}}export{s as MatcherContext};
2
+ import{createMeshWriterGroup as s}from"./Matcher.js";class t{constructor(s,t,r,i,e){this.storage=s,this.proxy=t,this.viewParams=r,this.registry=i,this.fieldsMap=e}async createMeshWriters(t){const r=t.map(s=>this.registry.createMeshWriter(this.storage,this.proxy,this.viewParams,s,this.fieldsMap));return s(await Promise.all(r),t)}}export{t as MatcherContext};
@@ -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/Accessor.js";import"../../../core/has.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{when as i,watch as o,initial as r,syncAndInitial as s}from"../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{DoubleClickZoom as c}from"./handlers/DoubleClickZoom.js";import{DoubleTapDragZoom as l}from"./handlers/DoubleTapDragZoom.js";import{DragPan as m}from"./handlers/DragPan.js";import{DragRotate as h}from"./handlers/DragRotate.js";import{DragZoomBox as u}from"./handlers/DragZoomBox.js";import{GamepadNavigation as w}from"./handlers/GamepadNavigation.js";import{KeyPan as d}from"./handlers/KeyPan.js";import{KeyRotate as v}from"./handlers/KeyRotate.js";import{KeyZoom as g}from"./handlers/KeyZoom.js";import{MouseWheelZoom as f}from"./handlers/MouseWheelZoom.js";import{PinchRotateAndZoom as j}from"./handlers/PinchAction.js";import{BrowserEventSource as A}from"../../input/BrowserEventSource.js";import{InputManager as P,ViewEventPriorities as y}from"../../input/InputManager.js";import{PreventContextMenu as _}from"../../input/handlers/PreventContextMenu.js";import{PreventTouchSelection as D}from"../../input/handlers/PreventTouchSelection.js";import{getPointerActions as M}from"../../input/handlers/support.js";import{DoubleTapDrag as I}from"../../input/recognizers/DoubleTapDrag.js";import{Drag as b}from"../../input/recognizers/Drag.js";import{ImmediateDoubleClick as z}from"../../input/recognizers/ImmediateDoubleClick.js";import{PointerClickHoldAndDrag as T}from"../../input/recognizers/PointerClickHoldAndDrag.js";import{SingleAndDoubleClick as E}from"../../input/recognizers/SingleAndDoubleClick.js";const N={counter:"Control",precisionPan:"Alt",coarsePan:"Shift",pan:{left:"ArrowLeft",right:"ArrowRight",up:"ArrowUp",down:"ArrowDown"},zoom:{zoomIn:["=","+"],zoomOut:["-","_"]},rotate:{clockwise:["a","A"],counterClockwise:["d","D"],reset:["n","N"]}},C=Symbol("handles");let H=class extends t{initialize(){const e=()=>this.view?.ready;this.addHandles([i(()=>!e(),()=>this._disconnect()),i(e,()=>this._connect())])}destroy(){this._disconnect()}get updating(){return!!this._inputManager?.updating}get latestPointerInfo(){return this._inputManager?.latestPointerInfo}get latestPenInfo(){return this._inputManager?.latestPenInfo}get multiTouchActive(){return this._inputManager?.multiTouchActive??!1}isModifierKeyDown(e){return this._inputManager?.isModifierKeyDown(e)??!1}_disconnect(){this.view.viewEvents.disconnect(),this.removeHandles(C),this._inputManager=n(this._inputManager)}_connect(){const e=this.view.surface,t=new A(e,this.view.input),n=[new z,new T,new E,new b(this.view.navigation),new I],i=new P({eventSource:t,recognizers:n}),a=new m(this.view,["primary"]),p=new h(this.view,["secondary"]);i.installHandlers("prevent-context-menu",[new _],y.INTERNAL),i.installHandlers("prevent-touch-text-selection-gesture",[new D(this.view)],y.INTERNAL),i.installHandlers("navigation",[new j(this.view),new w(this.view),new f(this.view),new c(this.view),new c(this.view,[N.counter]),new u(this.view),a,new d(this.view,N.pan),new d(this.view,N.pan,[N.coarsePan],4),new d(this.view,N.pan,[N.precisionPan,N.coarsePan],.25),new d(this.view,N.pan,[N.precisionPan],.25),new g(this.view,N.zoom),new v(this.view,N.rotate),p,new l(this.view,"touch")],y.INTERNAL),this.view.viewEvents.connect(i),this._source=t,this._inputManager=i,this.addHandles([o(()=>this.view?.navigation?.browserTouchPanEnabled,e=>{this._source&&(this._source.browserTouchPanningEnabled=!e)},r),o(()=>{const{actionMap:e}=this.view.navigation;return{panActions:M("pan",e),rotateActions:M("rotate",e)}},({panActions:e,rotateActions:t})=>{a.pointerActions=e,p.pointerActions=t},s)],C)}get test(){}};e([a()],H.prototype,"view",void 0),e([a({readOnly:!0})],H.prototype,"updating",null),e([a()],H.prototype,"latestPointerInfo",null),e([a()],H.prototype,"latestPenInfo",null),e([a()],H.prototype,"multiTouchActive",null),H=e([p("esri.views.2d.input.MapViewInputManager")],H);const S=H;export{S as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{when as o,watch as i,initial as r,syncAndInitial as s}from"../../../core/reactiveUtils.js";import{property as a,subclass as p}from"../../../core/accessorSupport/decorators.js";import{DoubleClickZoom as c}from"./handlers/DoubleClickZoom.js";import{DoubleTapDragZoom as l}from"./handlers/DoubleTapDragZoom.js";import{DragPan as m}from"./handlers/DragPan.js";import{DragRotate as u}from"./handlers/DragRotate.js";import{DragZoomBox as h}from"./handlers/DragZoomBox.js";import{GamepadNavigation as w}from"./handlers/GamepadNavigation.js";import{KeyPan as d}from"./handlers/KeyPan.js";import{KeyRotate as v}from"./handlers/KeyRotate.js";import{KeyZoom as g}from"./handlers/KeyZoom.js";import{MouseWheelZoom as f}from"./handlers/MouseWheelZoom.js";import{PinchRotateAndZoom as j}from"./handlers/PinchAction.js";import{BrowserEventSource as A}from"../../input/BrowserEventSource.js";import{InputManager as P,ViewEventPriorities as y}from"../../input/InputManager.js";import{PreventContextMenu as _}from"../../input/handlers/PreventContextMenu.js";import{PreventTouchSelection as D}from"../../input/handlers/PreventTouchSelection.js";import{getPointerActions as M}from"../../input/handlers/support.js";import{DoubleTapDrag as I}from"../../input/recognizers/DoubleTapDrag.js";import{Drag as b}from"../../input/recognizers/Drag.js";import{ImmediateDoubleClick as z}from"../../input/recognizers/ImmediateDoubleClick.js";import{PointerClickHoldAndDrag as T}from"../../input/recognizers/PointerClickHoldAndDrag.js";import{SingleAndDoubleClick as E}from"../../input/recognizers/SingleAndDoubleClick.js";const N={counter:"Control",precisionPan:"Alt",coarsePan:"Shift",pan:{left:"ArrowLeft",right:"ArrowRight",up:"ArrowUp",down:"ArrowDown"},zoom:{zoomIn:["=","+"],zoomOut:["-","_"]},rotate:{clockwise:["a","A"],counterClockwise:["d","D"],reset:["n","N"]}},C=Symbol("handles");let H=class extends t{initialize(){const e=()=>this.view?.ready;this.addHandles([o(()=>!e(),()=>this._disconnect()),o(e,()=>this._connect())])}destroy(){this._disconnect()}get updating(){return!!this._inputManager?.updating}get latestPointerInfo(){return this._inputManager?.latestPointerInfo}get latestPenInfo(){return this._inputManager?.latestPenInfo}get multiTouchActive(){return this._inputManager?.multiTouchActive??!1}isModifierKeyDown(e){return this._inputManager?.isModifierKeyDown(e)??!1}_disconnect(){this.view.viewEvents.disconnect(),this.removeHandles(C),this._inputManager=n(this._inputManager)}_connect(){const e=this.view.surface,t=new A(e,this.view.input),n=[new z,new T,new E,new b(this.view.navigation),new I],o=new P({eventSource:t,recognizers:n}),a=new m(this.view,["primary"]),p=new u(this.view,["secondary"]);o.installHandlers("prevent-context-menu",[new _],y.INTERNAL),o.installHandlers("prevent-touch-text-selection-gesture",[new D(this.view)],y.INTERNAL),o.installHandlers("navigation",[new j(this.view),new w(this.view),new f(this.view),new c(this.view),new c(this.view,[N.counter]),new h(this.view),a,new d(this.view,N.pan,{coarse:N.coarsePan,precision:N.precisionPan}),new g(this.view,N.zoom),new v(this.view,N.rotate),p,new l(this.view,"touch")],y.INTERNAL),this.view.viewEvents.connect(o),this._source=t,this._inputManager=o,this.addHandles([i(()=>this.view?.navigation?.browserTouchPanEnabled,e=>{this._source&&(this._source.browserTouchPanningEnabled=!e)},r),i(()=>{const{actionMap:e}=this.view.navigation;return{panActions:M("pan",e),rotateActions:M("rotate",e)}},({panActions:e,rotateActions:t})=>{a.pointerActions=e,p.pointerActions=t},s)],C)}get test(){}};e([a()],H.prototype,"view",void 0),e([a({readOnly:!0})],H.prototype,"updating",null),e([a()],H.prototype,"latestPointerInfo",null),e([a()],H.prototype,"latestPenInfo",null),e([a()],H.prototype,"multiTouchActive",null),H=e([p("esri.views.2d.input.MapViewInputManager")],H);const S=H;export{S as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{InputHandler as i}from"../../../input/InputHandler.js";import{onVisibilityChange as t}from"../../../input/VisibilityChange.js";class e extends i{constructor(i,e,s,o=1){super(!0),this.view=i,this.keys=e,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=i=>{const t=this._keyMap[i.data.key];if(1!==this._panFactor){if("key-up"===i.type&&this._modifiers.some(t=>t.toLowerCase()===i.data.key.toLowerCase()))return void this._stopMovement();if(!this._modifiers.every(t=>i.modifiers.has(t)||i.modifiers.has(t.toLowerCase())||i.modifiers.has(t.toUpperCase())))return}if(i.modifiers.has("Meta")||i.modifiers.has("Control"))return void this._stopMovement();if(null==t)return;i.stopPropagation(),i.preventDefault();const e="key-down"===i.type,s=this._pressedKeys.has(t);if(this._pressedKeys[e?"add":"delete"](t),e){if(s)return;this._updateDirection(),this._isSticky=!1,this._setTimeout(()=>{this._isSticky&&this._handlePopKey()})}else{const i=void 0===this._timeout,t=this._pressedKeys.size>0;i||t?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._updateDirection(),0===this._pressedKeys.size&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._panFactor=o,this._modifiers=s??[],this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",s,this._handleKey),this.registerIncoming("key-up",1!==o?null:s,this._handleKey),this.registerIncoming("blur",1!==o?null:s,this._stopMovement),this._visibilityHandle=t(i=>i?null:this._stopMovement())}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(i){const t=null!=this._currentDirection;null!=i?(t||this.view.mapViewNavigation.begin(),this._currentDirection?.x===i.x&&this._currentDirection.y===i.y||this.view.mapViewNavigation.continuousPanVector(i)):t&&this.view.mapViewNavigation.stop(),this._currentDirection=i}_updateDirection(){const i=Number(this._pressedKeys.has("right"))-Number(this._pressedKeys.has("left")),t=Number(this._pressedKeys.has("up"))-Number(this._pressedKeys.has("down")),e=Math.hypot(i,t);this._direction=0===e?void 0:{x:i/e*this._panFactor,y:t/e*this._panFactor}}_setTimeout(i){clearTimeout(this._timeout),this._timeout=void 0===i?void 0:setTimeout(()=>{this._timeout=void 0,i()},this._stickyKeyDuration)}}export{e as KeyPan};
2
+ import{InputHandler as t}from"../../../input/InputHandler.js";import{onVisibilityChange as i}from"../../../input/VisibilityChange.js";class e extends t{constructor(t,e,s){super(!0),this.view=t,this.keys=e,this._modifiers=s,this._panFactor=1,this._isSticky=!1,this._pressedKeys=new Set,this._timeout=void 0,this._currentDirection=void 0,this._stickyKeyDuration=200,this._handleKey=t=>{const i=this._keyMap[t.data.key],e=this._updatePanFactor(t.modifiers);if(t.modifiers.has("Meta")||t.modifiers.has("Control"))return void this._stopMovement();if(null==i)return void(e&&this._updateDirection());t.stopPropagation(),t.preventDefault();const s="key-down"===t.type,r=this._pressedKeys.has(i);if(this._pressedKeys[s?"add":"delete"](i),s){if(r)return void(e&&this._updateDirection());this._updateDirection(),this._isSticky=!1,this._setTimeout(()=>{this._isSticky&&this._handlePopKey()})}else{const t=void 0===this._timeout,i=this._pressedKeys.size>0;t||i?this._handlePopKey():this._isSticky=!0}},this._handlePopKey=()=>{this._updateDirection(),0===this._pressedKeys.size&&this._stopMovement()},this._stopMovement=()=>{this._isSticky=!1,this._direction=void 0,this._pressedKeys.clear(),this._setTimeout(void 0)},this._keyMap={[e.left]:"left",[e.right]:"right",[e.up]:"up",[e.down]:"down"},this.registerIncoming("key-down",this._handleKey),this.registerIncoming("key-up",this._handleKey),this.registerIncoming("blur",this._stopMovement),this._visibilityHandle=i(t=>t?null:this._stopMovement())}onUninstall(){this._stopMovement(),this._visibilityHandle?.remove()}get _direction(){return this._currentDirection}set _direction(t){const i=null!=this._currentDirection,e=null!=t,s=this.view?.mapViewNavigation;null!=s?(e?(i||s.begin(),this._currentDirection?.x===t.x&&this._currentDirection.y===t.y||s.continuousPanVector(t)):i&&s.stop(),this._currentDirection=t):this._currentDirection=t}_updateDirection(){const t=Number(this._pressedKeys.has("right"))-Number(this._pressedKeys.has("left")),i=Number(this._pressedKeys.has("up"))-Number(this._pressedKeys.has("down")),e=Math.hypot(t,i);if(0===e&&this._isSticky&&null!=this._currentDirection){const t=Math.hypot(this._currentDirection.x,this._currentDirection.y);return void(this._direction={x:this._currentDirection.x/t*this._panFactor,y:this._currentDirection.y/t*this._panFactor})}this._direction=0===e?void 0:{x:t/e*this._panFactor,y:i/e*this._panFactor}}_updatePanFactor(t){if(null==this._modifiers)return!1;const{coarse:i,precision:e}=this._modifiers,s=(t.has(e)?.25:1)*(t.has(i)?4:1),r=this._panFactor!==s;return this._panFactor=s,r}_setTimeout(t){clearTimeout(this._timeout),this._timeout=void 0===t?void 0:setTimeout(()=>{this._timeout=void 0,t()},this._stickyKeyDuration)}}export{e as KeyPan};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{InputHandler as e}from"../../../input/InputHandler.js";import{onVisibilityChange as i}from"../../../input/VisibilityChange.js";class t extends e{constructor(e,t,s){super(!0),this.view=e,this.keys=t,this._keyToDirection=new Map,this._pressed=!1,this._addKeysMapping(t),this.registerIncoming("key-down",s,e=>this._handleKeyDown(e)),this.registerIncoming("key-up",s,e=>this._handleKeyUp(e)),this.registerIncoming("blur",s,()=>this._handleStop()),this._visibilityHandle=i(e=>e?null:this._handleStop())}onUninstall(){this._visibilityHandle?.remove(),this._handleStop()}_addKeysMapping(e){this._addKeyMapping(e.clockwise,"clockwise"),this._addKeyMapping(e.counterClockwise,"counterClockwise"),this._addKeyMapping(e.reset,"reset")}_addKeyMapping(e,i){for(const t of e)this._keyToDirection.set(t,i)}_handleKeyDown(e){e.data.repeat||this._handleKey(e,!0)}_handleKeyUp(e){this._handleKey(e,!1)}_handleStop(){this._pressed&&(this._pressed=!1,this.view.mapViewNavigation.stop())}_handleKey(e,i){const t=e.modifiers;if(t.size>0&&!t.has("Shift")||!this.view.constraints.rotationEnabled)return;const s=this._keyToDirection.get(e.data.key);if(this._pressed=null!=s,this._pressed){if(e.preventDefault(),i)switch(this.view.mapViewNavigation.begin(),s){case"clockwise":this.view.mapViewNavigation.continuousRotateClockwise();break;case"counterClockwise":this.view.mapViewNavigation.continuousRotateCounterclockwise();break;case"reset":this.view.mapViewNavigation.resetRotation()}else this._pressed=!1,this.view.mapViewNavigation.stop();e.stopPropagation()}}}export{t as KeyRotate};
2
+ import{InputHandler as e}from"../../../input/InputHandler.js";import{onVisibilityChange as i}from"../../../input/VisibilityChange.js";class t extends e{constructor(e,t,s){super(!0),this.view=e,this.keys=t,this._keyToDirection=new Map,this._pressed=!1,this._pressedKeys=new Set,this._addKeysMapping(t),this.registerIncoming("key-down",s,e=>this._handleKeyDown(e)),this.registerIncoming("key-up",s,e=>this._handleKeyUp(e)),this.registerIncoming("blur",s,()=>this._handleStop()),this._visibilityHandle=i(e=>e?null:this._handleStop())}onUninstall(){this._handleStop(),this._visibilityHandle?.remove()}_addKeysMapping(e){this._addKeyMapping(e.clockwise,"clockwise"),this._addKeyMapping(e.counterClockwise,"counterClockwise"),this._addKeyMapping(e.reset,"reset")}_addKeyMapping(e,i){for(const t of e)this._keyToDirection.set(t,i)}_handleKeyDown(e){e.data.repeat||this._handleKey(e,!0)}_handleKeyUp(e){this._handleKey(e,!1)}_handleStop(){this._pressedKeys.clear(),this._stopRotation()}_stopRotation(){this._pressed&&(this._pressed=!1,this.view.mapViewNavigation.stop())}_handleKey(e,i){const t=e.modifiers;if(t.size>0&&!t.has("Shift")||!this.view.constraints.rotationEnabled)return;const s=this._keyToDirection.get(e.data.key);null!=s&&(e.stopPropagation(),e.preventDefault(),"reset"!==s?(this._pressedKeys[i?"add":"delete"](s),this._updateDirection()):i?(this._handleStop(),this.view.mapViewNavigation.begin(),this.view.mapViewNavigation.resetRotation(),this._pressed=!0):this._handleStop())}_updateDirection(){const e=this._pressedKeys.has("clockwise");e!==this._pressedKeys.has("counterClockwise")?(this._pressed||(this._pressed=!0,this.view.mapViewNavigation.begin()),e?this.view.mapViewNavigation.continuousRotateClockwise():this.view.mapViewNavigation.continuousRotateCounterclockwise()):this._stopRotation()}}export{t as KeyRotate};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Error.js";let r=null;function t(){return r??=Promise.all([import("./webglDeps.js"),import("./mapViewDeps.js")]),r}const a=()=>t().then(()=>import("./layers/TileLayerView2D.js")),i={"annotation-feature":()=>t().then(()=>import("./layers/AnnotationFeatureLayerView2D.js")),"base-dynamic":()=>t().then(()=>import("./layers/BaseDynamicLayerView2D.js")),"base-tile":a,"bing-maps":a,catalog:()=>t().then(()=>import("./layers/CatalogLayerView2D.js")),"catalog-dynamic-group":()=>t().then(()=>import("./layers/CatalogDynamicGroupLayerView2D.js")),"catalog-footprint":()=>t().then(()=>import("./layers/CatalogFootprintLayerView2D.js")),csv:()=>t().then(()=>import("./layers/CSVLayerView2D.js")),"geo-rss":()=>t().then(()=>import("./layers/GeoRSSLayerView2D.js")),feature:()=>t().then(()=>import("./layers/FeatureLayerView2D.js")),"dimension-feature":()=>t().then(()=>import("./layers/DimensionFeatureLayerView2D.js")),geojson:()=>t().then(()=>import("./layers/GeoJSONLayerView2D.js")),graphics:()=>t().then(()=>import("./layers/GraphicsLayerView2D.js")),group:()=>t().then(()=>import("./layers/GroupLayerView2D.js")),imagery:()=>t().then(()=>import("./layers/ImageryLayerView2D.js")),"imagery-tile":()=>t().then(()=>import("./layers/ImageryTileLayerView2D.js")),kml:()=>t().then(()=>import("./layers/KMLLayerView2D.js")),"knowledge-graph":()=>t().then(()=>import("./layers/KnowledgeGraphLayerView2D.js")),"link-chart":()=>t().then(()=>import("./layers/KnowledgeGraphLayerView2D.js")),"knowledge-graph-sublayer":()=>t().then(()=>import("./layers/KnowledgeGraphSublayerView2D.js")),"map-image":()=>t().then(()=>import("./layers/MapImageLayerView2D.js")),"map-notes":()=>t().then(()=>import("./layers/MapNotesLayerView2D.js")),media:()=>t().then(()=>import("./layers/MediaLayerView2D.js")),"ogc-feature":()=>t().then(()=>import("./layers/OGCFeatureLayerView2D.js")),"open-street-map":a,"oriented-imagery":()=>t().then(()=>import("./layers/OrientedImageryLayerView2D.js")),parquet:()=>t().then(()=>import("./layers/ParquetLayerView2D.js")),route:()=>t().then(()=>import("./layers/RouteLayerView2D.js")),stream:()=>t().then(()=>import("./layers/StreamLayerView2D.js")),"subtype-group":()=>t().then(()=>import("./layers/SubtypeGroupLayerView2D.js")),tile:a,"vector-tile":()=>t().then(()=>import("./layers/VectorTileLayerView2D.js")),video:()=>t().then(()=>import("./layers/VideoLayerView2D.js")),wcs:()=>t().then(()=>import("./layers/ImageryTileLayerView2D.js")),"web-tile":a,wfs:()=>t().then(()=>import("./layers/WFSLayerView2D.js")),wms:()=>t().then(()=>import("./layers/WMSLayerView2D.js")),wmts:()=>t().then(()=>import("./layers/WMTSLayerView2D.js")),"base-elevation":null,"building-scene":null,dimension:null,elevation:null,"gaussian-splat":null,"integrated-mesh-3dtiles":null,"integrated-mesh":null,"line-of-sight":null,"point-cloud":null,scene:null,unknown:null,unsupported:null,viewshed:null,voxel:null};function s(r){const t=r.declaredClass?r.declaredClass.slice(r.declaredClass.lastIndexOf(".")+1):"Unknown",a=t.replaceAll(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return new e(`${a}:view-not-supported`,`${t} is not supported in 2D`)}const n=new Map,l={hasLayerViewModule:e=>null!=i[e.type],importLayerView:e=>{const r=n.get(e.type);if(r)return r;const t=i[e.type];if(null==t)throw s(e);const a=t(e);return n.set(e.type,a),a}};export{l as layerView2DImporter};
2
+ import e from"../../core/Error.js";let r=null;function t(){return r??=Promise.all([import("./webglDeps.js"),import("./mapViewDeps.js")]),r}const a=()=>t().then(()=>import("./layers/TileLayerView2D.js")),i={"annotation-feature":()=>t().then(()=>import("./layers/AnnotationFeatureLayerView2D.js")),"base-dynamic":()=>t().then(()=>import("./layers/BaseDynamicLayerView2D.js")),"base-tile":a,"bing-maps":a,catalog:()=>t().then(()=>import("./layers/CatalogLayerView2D.js")),"catalog-dynamic-group":()=>t().then(()=>import("./layers/CatalogDynamicGroupLayerView2D.js")),"catalog-footprint":()=>t().then(()=>import("./layers/CatalogFootprintLayerView2D.js")),csv:()=>t().then(()=>import("./layers/CSVLayerView2D.js")),"geospatial-pdf":()=>t().then(()=>import("./layers/GeospatialPDFLayerView2D.js")),"geo-rss":()=>t().then(()=>import("./layers/GeoRSSLayerView2D.js")),feature:()=>t().then(()=>import("./layers/FeatureLayerView2D.js")),"dimension-feature":()=>t().then(()=>import("./layers/DimensionFeatureLayerView2D.js")),geojson:()=>t().then(()=>import("./layers/GeoJSONLayerView2D.js")),graphics:()=>t().then(()=>import("./layers/GraphicsLayerView2D.js")),group:()=>t().then(()=>import("./layers/GroupLayerView2D.js")),imagery:()=>t().then(()=>import("./layers/ImageryLayerView2D.js")),"imagery-tile":()=>t().then(()=>import("./layers/ImageryTileLayerView2D.js")),kml:()=>t().then(()=>import("./layers/KMLLayerView2D.js")),"knowledge-graph":()=>t().then(()=>import("./layers/KnowledgeGraphLayerView2D.js")),"link-chart":()=>t().then(()=>import("./layers/KnowledgeGraphLayerView2D.js")),"knowledge-graph-sublayer":()=>t().then(()=>import("./layers/KnowledgeGraphSublayerView2D.js")),"map-image":()=>t().then(()=>import("./layers/MapImageLayerView2D.js")),"map-notes":()=>t().then(()=>import("./layers/MapNotesLayerView2D.js")),media:()=>t().then(()=>import("./layers/MediaLayerView2D.js")),"ogc-feature":()=>t().then(()=>import("./layers/OGCFeatureLayerView2D.js")),"open-street-map":a,"oriented-imagery":()=>t().then(()=>import("./layers/OrientedImageryLayerView2D.js")),parquet:()=>t().then(()=>import("./layers/ParquetLayerView2D.js")),route:()=>t().then(()=>import("./layers/RouteLayerView2D.js")),stream:()=>t().then(()=>import("./layers/StreamLayerView2D.js")),"subtype-group":()=>t().then(()=>import("./layers/SubtypeGroupLayerView2D.js")),tile:a,"vector-tile":()=>t().then(()=>import("./layers/VectorTileLayerView2D.js")),video:()=>t().then(()=>import("./layers/VideoLayerView2D.js")),wcs:()=>t().then(()=>import("./layers/ImageryTileLayerView2D.js")),"web-tile":a,wfs:()=>t().then(()=>import("./layers/WFSLayerView2D.js")),wms:()=>t().then(()=>import("./layers/WMSLayerView2D.js")),wmts:()=>t().then(()=>import("./layers/WMTSLayerView2D.js")),"base-elevation":null,"building-scene":null,dimension:null,elevation:null,"gaussian-splat":null,"integrated-mesh-3dtiles":null,"integrated-mesh":null,"line-of-sight":null,"point-cloud":null,scene:null,unknown:null,unsupported:null,viewshed:null,voxel:null};function s(r){const t=r.declaredClass?r.declaredClass.slice(r.declaredClass.lastIndexOf(".")+1):"Unknown",a=t.replaceAll(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();return new e(`${a}:view-not-supported`,`${t} is not supported in 2D`)}const l=new Map,n={hasLayerViewModule:e=>null!=i[e.type],importLayerView:e=>{const r=l.get(e.type);if(r)return r;const t=i[e.type];if(null==t)throw s(e);const a=t(e);return l.set(e.type,a),a}};export{n as layerView2DImporter};
@@ -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"../../../AggregateGraphic.js";import r from"../../../Graphic.js";import s from"../../../TrackGraphic.js";import{isSome as i}from"../../../core/arrayUtils.js";import a from"../../../core/Collection.js";import o from"../../../core/Error.js";import{makeHandle as n,handlesGroup as l}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import u from"../../../core/Logger.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{notDeepEqual as c}from"../../../core/object.js";import{createAbortError as p,ignoreAbortErrors as d,throwIfNotAbortError as y,isAbortError as m}from"../../../core/promiseUtils.js";import{watch as f,sync as g}from"../../../core/reactiveUtils.js";import{sqlAnd as w}from"../../../core/sql.js";import{getMetersPerUnitForSR as v}from"../../../core/units.js";import{property as _,subclass as b}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as S}from"../../../core/support/UpdatingHandles.js";import A from"../../../geometry/Extent.js";import{fromJSON as F}from"../../../geometry/support/jsonUtils.js";import j from"../../../geometry/support/rotate.js";import{isCurvedGeometry as x}from"../../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as R}from"../../../geometry/support/curves/densifyCurvedGeometry.js";import I from"../../../layers/effects/FeatureEffectView.js";import{convertFromFeature as E}from"../../../layers/graphics/featureConversionUtils.js";import O from"../../../layers/support/FeatureFilter.js";import{checkServiceCurrentUserSupport as k}from"../../../layers/support/featureLayerUtils.js";import{packFields as U}from"../../../layers/support/fieldUtils.js";import{getEffectiveLayerCapabilities as C}from"../../../layers/support/layerUtils.js";import{combineTimeExtent as V}from"../../../layers/support/timeSupport.js";import Q from"../../../rest/support/AggregateFeatureSet.js";import q from"../../../rest/support/AttributeBinsFeatureSet.js";import M from"../../../rest/support/AttributeBinsQuery.js";import P from"../../../rest/support/FeatureSet.js";import L from"../../../rest/support/Query.js";import{HittestDrawHelper as H}from"../../../symbols/cim/CIMSymbolDrawHelper.js";import{symbolToCIM as T}from"../../../symbols/cim/CIMSymbolHelper.js";import{getDisplayedSymbol as D}from"../../../symbols/support/symbolUtils.js";import{LayerView2D as W}from"./LayerView2D.js";import{FeatureContainer as G}from"./features/FeatureContainer.js";import{createFeaturePipelineWorkerProxy as N}from"./features/FeaturePipelineWorkerProxy.js";import{FeatureSourceEventLog as J}from"./features/FeatureSourceEventLog.js";import{AnnotationLayerAdapter as z}from"./features/layerAdapters/AnnotationLayerAdapter.js";import{CatalogFootprintLayerAdapter as B}from"./features/layerAdapters/CatalogFootprintLayerAdapter.js";import{DimensionLayerAdapter as Z}from"./features/layerAdapters/DimensionLayerAdapter.js";import{FeatureLayerAdapter as K}from"./features/layerAdapters/FeatureLayerAdapter.js";import{createFeatureIdInfo as $}from"./features/layerAdapters/featureServiceUtils.js";import{InMemoryLayerAdapter as X}from"./features/layerAdapters/InMemoryLayerAdapter.js";import{KnowledgeGraphSublayerAdapter as Y}from"./features/layerAdapters/KnowledgeGraphSublayerAdapter.js";import{OGCFeatureLayerAdapter as ee}from"./features/layerAdapters/OGCFeatureLayerAdapter.js";import{OrientedImageryLayerAdapter as te}from"./features/layerAdapters/OrientedImageryLayerAdapter.js";import{ParquetLayerAdapter as re}from"./features/layerAdapters/ParquetLayerAdapter.js";import{StreamLayerAdapter as se}from"./features/layerAdapters/StreamLayerAdapter.js";import{SubtypeGroupLayerAdapter as ie}from"./features/layerAdapters/SubtypeGroupLayerAdapter.js";import{createComplexSymbolInstances as ae}from"./features/schema/processor/symbols/ComplexSymbolSchema.js";import{DebouncedFeatureOverride as oe}from"./support/DebouncedFeatureOverride.js";import{FeatureCommandQueue as ne}from"./support/FeatureCommandQueue.js";import{createFilterSchemas as le}from"./support/FilterSchema.js";import{handleNoEngineError as ue}from"./support/handleNoEngineError.js";import{toJSONGeometryType as he}from"./support/util.js";import{getMapPointsFromScreen as ce,getHittestType as pe}from"../support/hitTestUtils.js";import{FeatureTileSubscriptionManager as de}from"../tiling/FeatureTileSubscriptionManager.js";import{RefreshableLayerView as ye}from"../../layers/RefreshableLayerView.js";import{getHighlightName as me}from"../../support/highlightOptionsUtils.js";function fe(e,t){const r=new Set;return e&&e.forEach(e=>r.add(e)),t&&t.forEach(e=>r.add(e)),r.has("*")?["*"]:Array.from(r)}const ge=4294967294;function we(e,t){return l(e.map(e=>f(()=>{const t=e();return t&&"object"==typeof t?"getTime"in t&&"function"==typeof t.getTime?t.getTime():JSON.stringify(t):t},t,g)))}function ve(e){if(!e.geometry)return e;if(!x(e.geometry))return e;const t=.001/v(e.geometry.spatialReference),r=100;return{geometry:R(e.geometry,{maxSegmentsPerCurve:12e3,maxSegmentLength:r*t,maxDeviation:0}),attributes:e.attributes}}const _e=l=>{const g=ye(W(l));let v=class extends g{constructor(){super(...arguments),this._commandsQueue=new ne({process:e=>{switch(e.type){case"override-batch":return this._doOverride(e);case"update":return this._doUpdate()}}}),this._visibilityOverrides=new Set,this._lastAvailableFields=[],this._lastTargetState=null,this._stationaryRotation=0,this.eventLog=new J,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._editUpdatingHandles=new S,this._fields=null,this._hittestDrawHelper=null,this._sourceUpdating=!1,this.featureEffectView=new I}destroy(){this._editUpdatingHandles.destroy(),this._workerProxy?.destroy(),this._workerAttached.reject(p()),this._commandsQueue.destroy(),this._hittestDrawHelper?.destroy()}initialize(){this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this.addResolvingPromise(this._initProxy()),this.featureEffectView.featureEffect=this.featureEffect,this.featureEffectView.endTransition()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new o("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:e});if(("feature"===e.type||"subtype-group"===e.type)&&!1===C(e)?.operations.supportsQuery)throw new o("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._workerProxy&&this._workerProxy.destroy();const t=this._createClientOptions();this._workerProxy=await N(t)}async _attachProxy(){const e=j(this.view.extent,this.view.rotation,this.view.center),t={tileInfoJSON:this.view?.featuresTilingScheme?.tileInfo?.toJSON(),initialViewExtent:e.toJSON()};try{await this._workerProxy.pipeline.onAttach(t),this._workerAttached.resolve()}catch(r){this._workerAttached.reject(p()),y(r)}}async _detachProxy(){return this._workerProxy.pipeline.onDetach()}async getWorker(){return await this._workerAttached.promise,this._workerProxy}get dataUpdating(){return this._sourceUpdating||this._editUpdatingHandles.updating}get hasAllFeatures(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryAllFeatures}get hasAllFeaturesInView(){const e=this.effectiveDisplayFilter?.where||null,t=!this.eventLog.willQueryAllFeatures&&null!=e&&"1=1"!==e;return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&!t}get hasFullGeometries(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryFullResolutionGeometry}get layerAdapter(){switch(this.layer.type){case"annotation-feature":return new z(this.layer);case"dimension-feature":return new Z(this.layer);case"feature":return"memory"===this.layer.source.type?new X(this.layer):new K(this.layer);case"geojson":case"csv":case"wfs":return new X(this.layer);case"parquet":return new re(this.layer);case"subtype-group":return new ie(this.layer);case"ogc-feature":return new ee(this.layer);case"stream":return new se(this.layer);case"oriented-imagery":return new te(this.layer);case"knowledge-graph-sublayer":return new Y(this.layer);case"catalog-footprint":return new B(this.layer);default:this.layer}return null}get timeExtent(){return V(this.layerAdapter.timeOptions,this.view?.timeExtent,this._get("timeExtent"))}get usedMemory(){return this.container.usedMemory+this.eventLog.pipelineStatistics.usedMemory}getDisplayStatistics(e,t){return this.featureContainer?.getDisplayStatistics(e,t)}highlight(e,t){const s=me(t);let o;if(e instanceof O)o=e;else{let t;e instanceof r?t=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?t=[e]:a.isCollection(e)&&e.length>0?t=e.map(e=>e?.getObjectId()).toArray():Array.isArray(e)&&e.length>0&&(t="number"==typeof e[0]||"string"==typeof e[0]?e:e.map(e=>e?.getObjectId()));const s=t?.filter(i);if(!s?.length)return n();o=new O({objectIds:s})}const l=this._addHighlightFilter(o,s);return n(()=>!this.destroyed&&this._removeHighlight(l))}async hitTest(e,i,a){const o=pe(i);if(!o)return null;const n="point"===o,{trueHitIds:l,candidateHitIds:u}=await this.featureContainer.hitTest(i,a??null),h=await this.getWorker(),[c,p]=await Promise.all([h.pipeline.getDisplayFeatures(u),h.pipeline.getDisplayFeatures(l)]),{features:d,aggregates:y,tracks:f}=c,{features:g,aggregates:w,tracks:v}=p,_=[];if(!n&&this.hasRenderer()){const e=new Map,t=new r;for(const r of d){t.attributes=r.attributes,t.geometry=F(r.geometry),t.symbol=null;const s=this.layerAdapter.getRenderer(t);if(!s){_.push(r);continue}const i=await D(t,{renderer:s,scale:this.view.scale,resolution:this.view.resolution,spatialReference:this.view.spatialReference,viewingMode:"2d",timeZone:this.view.timeZone});if(!i)continue;let a=null;const o=T(i);if("web-style"===o.type)try{const e=T(await o.fetchSymbol({acceptedFormats:["cim","web"]}));a="web-style"===e.type?null:e}catch(R){m(R),0;continue}else a=o;const n=a?.symbol;if(!n)continue;const l=this.view.stage.cimAnalyzer.analyzeSymbolReference(a,!1).some(e=>"alignment"in e&&0===e.alignment);e.set(r,{cimSymbol:n,isScreenAligned:l})}e.size>0&&!this._hittestDrawHelper&&(this._hittestDrawHelper=new H(this.view.stage.painter.textureManager.resourceManager));const{resolution:s,rotation:a}=this.view.state,n=ce(this.view,i);for(const[r,{cimSymbol:i,isScreenAligned:l}]of e){if(!r)continue;const e={hittestType:o,textInfo:null,mapRotation:a,resolution:s,searchDist:0,isScreenAligned:l};this._hittestDrawHelper.hitTest(n,i,r.geometry,e)&&_.push(r)}}else _.push(...d);const b=[...g,..._],S=[...w,...y],A=[...v,...f],j=this.featureContainer.getSortKeys(b.map(e=>e.displayId)),x=({displayId:e},{displayId:t})=>j.has(e)&&j.has(t)?j.get(e)-j.get(t):e-t;return b.sort(x).reverse(),S.sort(x).reverse(),[...S.map(r=>this._createAggregateGraphicHit(e,t.fromJSON(r))),...A.map(t=>this._createTrackGraphicHit(e,s.fromJSON(t))),...b.map(t=>this._createFeatureGraphicHit(n?e:null,r.fromJSON(t)))]}async queryAggregateSummaryStatistics(e,t,r){const s={...t,scale:this.view.scale},i=(await this.getWorker()).aggregates.executeQueryForSummaryStatistics(this._cleanUpAggregateQuery(e),s,r);return ue(i,{})}async queryUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForUniqueValues(this._cleanUpQuery(e),i,r);return ue(a,{uniqueValueInfos:[]})}async queryAggregateUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForUniqueValues(this._cleanUpAggregateQuery(e),i,r);return ue(a,{uniqueValueInfos:[]})}async queryAggregateClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForClassBreaks(this._cleanUpAggregateQuery(e),i,r);return ue(a,{classBreakInfos:[]})}async queryHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForHistogram(this._cleanUpQuery(e),i,r);return ue(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateCount(e,t){const r=(await this.getWorker()).aggregates.executeQueryForCount(this._cleanUpAggregateQuery(e),t);return ue(r,0)}async queryAggregateHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForHistogram(this._cleanUpAggregateQuery(e),i,r);return ue(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateIds(e,t){const r=(await this.getWorker()).aggregates.executeQueryForIds(this._cleanUpAggregateQuery(e),t);return ue(r,[])}async queryAggregateJSON(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t);return ue(r,{features:[]})}async queryAttributeBins(e,t){const r=(await this.getWorker()).features.executeAttributeBinsQuery(this._cleanUpAttributeBinsQuery(e),t),s=await ue(r,{features:[]});return q.fromJSON(s)}async queryAggregates(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t),s=await ue(r,{features:[]}),i=Q.fromJSON(s);return i.features.forEach(e=>this.layerAdapter.setAggregateGraphicOrigin?.(e)),i}async queryClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForClassBreaks(this._cleanUpQuery(e),i,r);return ue(a,{classBreakInfos:[]})}async queryExtent(e,t){const r=(await this.getWorker()).features.executeQueryForExtent(this._cleanUpQuery(e),t),s=await ue(r,{count:0,extent:null});return{count:s.count,extent:A.fromJSON(s.extent)}}async queryFeatureCount(e,t){const r=(await this.getWorker()).features.executeQueryForCount(this._cleanUpQuery(e),t);return ue(r,0)}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then(e=>{const t=P.fromJSON(e);return t.features.forEach(e=>this._setOriginForFeature(e)),t})}async queryFeaturesJSON(e,t){const r=(await this.getWorker()).features.executeQuery(this._cleanUpQuery(e),t);return ue(r,{features:[]})}async queryHeatmapStatistics(e){return(await this.getWorker()).pipeline.queryHeatmapStatistics(e)}async queryObjectIds(e,t){const r=(await this.getWorker()).features.executeQueryForIds(this._cleanUpQuery(e),t);return ue(r,[])}async queryStatistics(){const e=await this.getWorker();return ue(e.pipeline.queryStatistics(),{featureCount:0,ringCount:0,vertexCount:0})}async querySummaryStatistics(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForSummaryStatistics(this._cleanUpQuery(e),i,r);return ue(a,{})}async queryVisibleFeatures(e,t){const r=(await this.getWorker()).pipeline.queryVisibleFeatures(this._cleanUpQuery(e),t),s=await ue(r,{features:[]}),i=P.fromJSON(s);return i.features.forEach(e=>this._setOriginForFeature(e)),i}async getSampleFeatures(e){return(await this.getWorker()).pipeline.getSampleFeatures(e)}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._subscriptions)return;this.view.animation&&!this._lastTargetState&&(this._lastTargetState=e.state.clone()),!this.view.animation&&this._lastTargetState&&(this._lastTargetState=null);const t=this.featureContainer.getPresenting(),r=this._subscriptions.update(e.targetState,this._lastTargetState,t);r&&(this.featureContainer.updateSubscriptions(r),d(this._updatingHandles.addPromise(this.getWorker().then(e=>e.pipeline.updateSubscriptions(r))))),this._subscriptions.coverage&&this.featureContainer.setCoverage(this._subscriptions.coverage)}attach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.attach"),d(this._updatingHandles.addPromise(this._workerAttached.promise)),d(this._attachProxy()),this.featureContainer=new G(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptions=new de(this.view.featuresTilingScheme),this._stationaryRotation=this.view.rotation,this.requestUpdate(),this.addAttachHandles([we([()=>this._displayRefreshVersion,()=>"displayFilterInfo"in this.layer&&this.layer.displayFilterInfo,()=>this.timeExtent,()=>this.clips,()=>this.filter,()=>this.effectiveDisplayFilterClause,()=>this.featureEffect,()=>this._sourceRefreshVersion,()=>this.view.timeZone,()=>this.view.timeExtent,...this.layerAdapter.getUpdateHashProperties(this.view)],()=>this._update()),f(()=>this.updateSuspended,e=>{e||this._subscriptions.resume(this.featureContainer.getPresenting())}),f(()=>this.view.stationary,e=>{if(!e)return;const t=this.view.rotation;t!==this._stationaryRotation&&(this._stationaryRotation=t,this._update()),this.getWorker().then(e=>{if(this.destroyed)return;const t=j(this.view.extent,this.view.rotation,this.view.center);return e.pipeline.updateStationaryExtent(t.toJSON(),this.featureContainer.requiresRefresh)}).catch(()=>{})})]),this._update(),"stream"!==this.layer.type&&"parquet"!==this.layer.type&&"catalog-footprint"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",e=>this._editUpdatingHandles.addPromise(this._edit(e))))}emitFirstDraw(e){this.emit("first-draw",{timestamp:e})}detach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.detach"),this._detachProxy(),this._fields=null,this.featureContainer.destroy(),this.featureContainer=null,this._commandsQueue.clear(),this.container.removeAllChildren(),this._subscriptions=h(this._subscriptions),this._workerProxy.pipeline.onDetach(),this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this._lastAvailableFields=[],this._lastSchema=null}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}addOverrides(e){return this._commandsQueue.push({type:"override",options:{...e,release:[]}})}removeOverrides(e){for(const r of e)if(null==r)throw new o("featurelayerview:bad-override","Tried to remove an override for an invalid objectId",{objectId:r});const t={added:[],updated:[],removed:[],release:e,isWeak:!1,historicMoment:null};return this._commandsQueue.push({type:"override",options:t})}onProxyClientEvent(e){}hasRenderer(){return"renderer"in this.layer&&null!=this.layer.renderer}isUpdating(){const e=this.hasRenderer(),t=this._commandsQueue.updateTracking.updating,r=null!=this._updatingRequiredPromise,s=this.featureContainer.updating;return this.updateRequested||e&&(t||r)||s||this._pipelineUpdating||this.dataUpdating}_createClientOptions(){const e=this;return{updateSchemaStart:()=>e.updateSchemaStart(),updateSchemaEnd:t=>e.updateSchemaEnd(t),openMemoryPorts:async()=>{if(this.layerAdapter?.openMessagePorts){const e=await this.layerAdapter.openMessagePorts();return{result:e,transferList:e}}throw new Error("InternalError: Layer adapter does not support opening message ports")},openGlyphPorts:async()=>{const t=await e.container.stage.textureManager.openMessagePorts();return{result:t,transferList:t}},get container(){return e.featureContainer},setUpdating:e=>{this._set("_pipelineUpdating",e.pipeline),this._set("_sourceUpdating",e.source)},emitEvent:e=>{this.onProxyClientEvent(e)},get eventLog(){return e.eventLog},fetch:async t=>{if(has("esri-2d-stabilize-glyphs")){const r=[];for(const s of t)r.push(await e.view.stage.painter.textureManager.rasterizeItem(s));return r}return Promise.all(t.map(t=>e.view.stage.painter.textureManager.rasterizeItem(t)))},fetchDictionary:e=>Promise.all(e.map(e=>this._fetchDictionaryRequest(e))),fetchMesh:e=>Promise.all(e.map(e=>this._fetchMeshRequest(e)))}}async _fetchDictionaryRequest(e){try{if(!("renderer"in this.layer)||!this.layer.renderer||"dictionary"!==this.layer.renderer.type)throw new Error("InternalError: Expected renderer to be of type 'dictionary'");const t=this.layer.renderer,r=this._lastSchema.processor.mesh.factory.symbology;if("dictionary"!==r.type)throw new Error("InternalError: Expected schema to be of type 'dictionary'");const s={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:r.scaleExpression,viewRotation:this._stationaryRotation};this._fields||(this._fields=this.layer.fields.map(e=>e.toJSON()));const i=r.visualVariableUniforms,a=he(this.layer.geometryType),o=await t.getSymbolForControlString(e.controlString,a,!1);if(!o||!o.data)return{type:"dictionary-response",meshes:[]};return{type:"dictionary-response",meshes:await ae({...o.data,hasTextStringTemplates:!0},{uniforms:i,path:"renderer",schemaOptions:s})}}catch(t){return{type:"dictionary-response",meshes:[]}}}async _fetchMeshRequest(e){const{layer:t}=this;try{const r={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:null,viewRotation:this._stationaryRotation};this._fields||(this._fields=t.fields.map(e=>e.toJSON()));return{type:"mesh-response",meshes:await ae({...e.symbolReference,hasTextStringTemplates:!0},{path:"anno-like",schemaOptions:r,uniforms:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:null,visualVariableSizeStops:null,visualVariableSizeScaleStops:null,visualVariableSizeOutlineScaleStops:null,visualVariableSizeUnitValue:null,visualVariableSizeMinMaxValue:null}})}}catch(r){return{type:"mesh-response",meshes:[]}}}_cleanUpQuery(e){const t=L.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),"returnZ"in this.layer&&(t.returnZ??=this.layer.returnZ),"returnM"in this.layer&&(t.returnM??=this.layer.returnM),t.toJSON()}_cleanUpAttributeBinsQuery(e){const t=M.from(e);return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t.toJSON()}_cleanUpAggregateQuery(e){const t=L.from(e)||this.createAggregateQuery();t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference);const r=t.objectIds??[];for(const s of t.aggregateIds??[])r.push(s);return t.objectIds=r,t.aggregateIds=[],t.toJSON()}async _update(){return this._commandsQueue.push({type:"update"})}_edit(e){return this._commandsQueue.push({type:"edit",event:e})}async doRefresh(e){this.attached&&(this.updateSuspended&&e||(e?this.incrementSourceRefreshVersion():this.incrementDisplayRefreshVersion()))}incrementSourceRefreshVersion(){this._sourceRefreshVersion=(this._sourceRefreshVersion+1)%ge+1}incrementDisplayRefreshVersion(){this._displayRefreshVersion=(this._displayRefreshVersion+1)%ge+1}async _resolveIdenifiers(e){const t=[],r=[];for(const a of e)null==a.objectId||-1===a.objectId?null==a.globalId?u.getLogger(this).warn("mapview-apply-edits","A feature identifier must contain either a GlobalId or ObjectId. Ignoring",{identifier:a}):r.push(a.globalId):t.push(a.objectId);const s="globalIdField"in this.layer&&this.layer.globalIdField,i=s&&this.availableFields.includes(s);if(r.length&&!i)return u.getLogger(this).error(new o("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${s} to be included the layer's outFields for updates to be reflected on the map`)),t;if(r.length){const e=await this._workerProxy.pipeline.getObjectIdsFromGlobalIds(r);for(const r of e)t.push(r)}return t}_resolveOverrides(e){const t=!1,r=!1,s=he(this.layer.geometryType),i=$(this.layer),a=[];for(const n of e.added){const e=E(ve(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.updated){const e=E(ve(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.removed)if(null==n)throw new o("featurelayerview:bad-override","Tried to remove an invalid objectId",{objectId:n});return{type:"override",updates:a,removed:e.removed,release:e.release,isWeak:e.isWeak??!1,historicMoment:e.historicMoment??null}}async _resolveEdit(e){const t=this.layer,r=e.historicMoment?.getTime()??null,s="layerId"in t&&e.editedFeatures?.find(e=>e.layerId===t.layerId);if(s&&this._canEditByFeature(s)){const{adds:e,deletes:t,updates:i}=s.editedFeatures,a=this.layer.objectIdField,o=i.map(e=>e.current),n=t.map(e=>"attributes"in e?{objectId:a?e.attributes[a]:null}:e),l=await this._resolveIdenifiers(n);return this._resolveOverrides({added:e,updated:o,removed:l,historicMoment:r,isWeak:!0,release:[]})}const[i,a,o]=await Promise.all([this._resolveIdenifiers(e.addedFeatures),this._resolveIdenifiers(e.updatedFeatures),this._resolveIdenifiers(e.deletedFeatures)]);return{type:"override-by-id",updates:[...i,...a],removed:o,historicMoment:r,isWeak:!0}}_canEditByFeature(e){const{adds:t,updates:r}=e.editedFeatures;return t.every(e=>this.view.spatialReference.equals(e.geometry?.spatialReference))&&r.every(e=>this.view.spatialReference.equals(e.current.geometry?.spatialReference))}async updateSchemaStart(){const e=this.layer;"featureReduction"in e&&e.featureReduction&&e.featureReduction!==this._lastFeatureReduction&&(e.featureReduction=e.featureReduction?.clone(),this._lastFeatureReduction=e.featureReduction);try{if(await Promise.allSettled([this._handleChange(),k(e)]),this.destroyed||!this.layerAdapter?.hasRequiredSupport||!this._subscriptions)return null;const t=this.featureContainer.updateStart("subtype-group"===e.type);this._lastFeatureEffect=this.featureEffect;const r={store:t,cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,scaleExpression:void 0,viewRotation:this._stationaryRotation},s=await this._createViewSchemaConfig(),i={source:await this.layerAdapter.createSourceSchema(s,this._sourceRefreshVersion),processor:await this.layerAdapter.createProcessorSchema(r,s,this._displayRefreshVersion)};return c(this._lastSchema?.source.strategy,i.source.strategy)||c(this._lastSchema?.processor,i.processor)?(this._lastSchema=i,this._fields=null,i):null}catch(t){}return null}async updateSchemaEnd(e){try{this.featureEffectView.featureEffect=this._lastFeatureEffect,e&&this.featureEffectView.endTransition(),await this.featureContainer.updateEnd(this._lastSchema.processor,this.layerAdapter.getLabelingDeconflictionInfo(),e),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.updateEnd")}catch(t){}}async _doUpdate(){const e=Math.round(performance.now()),t=await this.getWorker();await t.pipeline.updateSchema(e),this.requestUpdate()}async _doOverride(e){const t=await this.getWorker();try{let r=new oe;for(const s of e.messages)switch(s.type){case"edit":r.tryAdd(await this._resolveEdit(s.event))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(await this._resolveEdit(s.event)));break;case"override":r.tryAdd(this._resolveOverrides(s.options))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(this._resolveOverrides(s.options)));break}await t.pipeline.onOverride(r.toMessage())}catch(r){m(r),0}}_getEffectiveAvailableFields(e){const t=fe(this._lastAvailableFields,e);return this._lastAvailableFields=t,U(this.layer.fieldsIndex,t)}async _createViewSchemaConfig(){const e=this.requiresCurrentUser?await this.signedInUser:null,t=x(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter,this.effectiveDisplayFilterClause),r=this.featureEffect?.filter?.toJSON()??null,s=this._getHighlightFilterGroups().map(({order:e,filters:t})=>({order:e,filters:t.map(e=>e.toJSON())})),i=le({layerFilter:t,effectFilter:r,highlightFilters:s});return{availableFields:this._getEffectiveAvailableFields(this.availableFields),displayFilterEnabled:this.displayFilterEnabled,filters:i,scale:this.view.scale,timeZone:this.view.timeZone,timeExtent:this.view.timeExtent,currentUser:e,spatialReference:this.view.spatialReference,extent:this.view.extent,returnZ:this.hasZ,returnM:this.hasM}}_onHighlightChange(){this._commandsQueue.push({type:"update"})}_setOriginForFeature(e){e.layer=e.sourceLayer=this.layer,this.layerAdapter.setGraphicOrigin(e)}_createFeatureGraphicHit(e,t){return this._setOriginForFeature(t),this._createGraphicHit(e,t)}_createTrackGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setTrackGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createAggregateGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setAggregateGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createGraphicHit(e,t){return null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};function x(e,t,r,s,i,a){i&&(i=i.clone());const o=null!=i?i.timeExtent:null,n=null!=r&&null!=o?r.intersection(o):r||o;n&&(i??=new O,i.timeExtent=n),i=t.addFilters?.(i,e)??i,a&&(i??=new O,i.where=w(i.where,a));let l=i?.toJSON()??null;return s.size&&(l??=(new O).toJSON(),l.hiddenIds=Array.from(s)),l}return e([_()],v.prototype,"_commandsQueue",void 0),e([_()],v.prototype,"_sourceRefreshVersion",void 0),e([_()],v.prototype,"_displayRefreshVersion",void 0),e([_({readOnly:!0})],v.prototype,"_pipelineUpdating",void 0),e([_()],v.prototype,"_sourceUpdating",void 0),e([_({readOnly:!0})],v.prototype,"dataUpdating",null),e([_({readOnly:!0})],v.prototype,"hasAllFeatures",null),e([_({readOnly:!0})],v.prototype,"hasAllFeaturesInView",null),e([_({readOnly:!0})],v.prototype,"hasFullGeometries",null),e([_()],v.prototype,"featureEffectView",void 0),e([_()],v.prototype,"layerAdapter",null),e([_({readOnly:!0})],v.prototype,"timeExtent",null),v=e([b("esri.views.2d.layers.FeatureLikeLayerView2D")],v),v};export{_e as FeatureLikeLayerView2D};
2
+ import{__decorate as e}from"tslib";import t from"../../../AggregateGraphic.js";import r from"../../../Graphic.js";import s from"../../../TrackGraphic.js";import{isSome as i}from"../../../core/arrayUtils.js";import a from"../../../core/Collection.js";import o from"../../../core/Error.js";import{makeHandle as n,handlesGroup as l}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import u from"../../../core/Logger.js";import{destroyMaybe as h}from"../../../core/maybe.js";import{notDeepEqual as c}from"../../../core/object.js";import{createAbortError as p,ignoreAbortErrors as d,throwIfNotAbortError as y,isAbortError as m}from"../../../core/promiseUtils.js";import{watch as f,sync as g}from"../../../core/reactiveUtils.js";import{sqlAnd as w}from"../../../core/sql.js";import{getMetersPerUnitForSR as v}from"../../../core/units.js";import{property as _,subclass as b}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as S}from"../../../core/support/UpdatingHandles.js";import A from"../../../geometry/Extent.js";import{fromJSON as F}from"../../../geometry/support/jsonUtils.js";import j from"../../../geometry/support/rotate.js";import{isCurvedGeometry as x}from"../../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as R}from"../../../geometry/support/curves/densifyCurvedGeometry.js";import I from"../../../layers/effects/FeatureEffectView.js";import{convertFromFeature as E}from"../../../layers/graphics/featureConversionUtils.js";import O from"../../../layers/support/FeatureFilter.js";import{checkServiceCurrentUserSupport as k}from"../../../layers/support/featureLayerUtils.js";import{packFields as U}from"../../../layers/support/fieldUtils.js";import{getEffectiveLayerCapabilities as V}from"../../../layers/support/layerUtils.js";import{combineTimeExtent as C}from"../../../layers/support/timeSupport.js";import Q from"../../../rest/support/AggregateFeatureSet.js";import q from"../../../rest/support/AttributeBinsFeatureSet.js";import M from"../../../rest/support/AttributeBinsQuery.js";import P from"../../../rest/support/FeatureSet.js";import L from"../../../rest/support/Query.js";import{HittestDrawHelper as H}from"../../../symbols/cim/CIMSymbolDrawHelper.js";import{symbolToCIM as T}from"../../../symbols/cim/CIMSymbolHelper.js";import{getDisplayedSymbol as D}from"../../../symbols/support/symbolUtils.js";import{LayerView2D as W}from"./LayerView2D.js";import{FeatureContainer as G}from"./features/FeatureContainer.js";import{createFeaturePipelineWorkerProxy as N}from"./features/FeaturePipelineWorkerProxy.js";import{FeatureSourceEventLog as J}from"./features/FeatureSourceEventLog.js";import{AnnotationLayerAdapter as z}from"./features/layerAdapters/AnnotationLayerAdapter.js";import{CatalogFootprintLayerAdapter as B}from"./features/layerAdapters/CatalogFootprintLayerAdapter.js";import{DimensionLayerAdapter as Z}from"./features/layerAdapters/DimensionLayerAdapter.js";import{FeatureLayerAdapter as K}from"./features/layerAdapters/FeatureLayerAdapter.js";import{createFeatureIdInfo as $}from"./features/layerAdapters/featureServiceUtils.js";import{InMemoryLayerAdapter as X}from"./features/layerAdapters/InMemoryLayerAdapter.js";import{KnowledgeGraphSublayerAdapter as Y}from"./features/layerAdapters/KnowledgeGraphSublayerAdapter.js";import{OGCFeatureLayerAdapter as ee}from"./features/layerAdapters/OGCFeatureLayerAdapter.js";import{OrientedImageryLayerAdapter as te}from"./features/layerAdapters/OrientedImageryLayerAdapter.js";import{ParquetLayerAdapter as re}from"./features/layerAdapters/ParquetLayerAdapter.js";import{StreamLayerAdapter as se}from"./features/layerAdapters/StreamLayerAdapter.js";import{SubtypeGroupLayerAdapter as ie}from"./features/layerAdapters/SubtypeGroupLayerAdapter.js";import{createComplexSymbolInstances as ae}from"./features/schema/processor/symbols/ComplexSymbolSchema.js";import{DebouncedFeatureOverride as oe}from"./support/DebouncedFeatureOverride.js";import{FeatureCommandQueue as ne}from"./support/FeatureCommandQueue.js";import{createFilterSchemas as le}from"./support/FilterSchema.js";import{handleNoEngineError as ue}from"./support/handleNoEngineError.js";import{toJSONGeometryType as he}from"./support/util.js";import{getMapPointsFromScreen as ce,getHittestType as pe}from"../support/hitTestUtils.js";import{FeatureTileSubscriptionManager as de}from"../tiling/FeatureTileSubscriptionManager.js";import{RefreshableLayerView as ye}from"../../layers/RefreshableLayerView.js";import{getHighlightName as me}from"../../support/highlightOptionsUtils.js";function fe(e,t){const r=new Set;return e&&e.forEach(e=>r.add(e)),t&&t.forEach(e=>r.add(e)),r.has("*")?["*"]:Array.from(r)}const ge=4294967294;function we(e,t){return l(e.map(e=>f(()=>{const t=e();return t&&"object"==typeof t?"getTime"in t&&"function"==typeof t.getTime?t.getTime():JSON.stringify(t):t},t,g)))}function ve(e){if(!e.geometry)return e;if(!x(e.geometry))return e;const t=.001/v(e.geometry.spatialReference),r=100;return{geometry:R(e.geometry,{maxSegmentsPerCurve:12e3,maxSegmentLength:r*t,maxDeviation:0}),attributes:e.attributes}}const _e=l=>{const g=ye(W(l));let v=class extends g{constructor(){super(...arguments),this._commandsQueue=new ne({process:e=>{switch(e.type){case"override-batch":return this._doOverride(e);case"update":return this._doUpdate()}}}),this._visibilityOverrides=new Set,this._lastAvailableFields=[],this._lastTargetState=null,this._stationaryRotation=0,this.eventLog=new J,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._editUpdatingHandles=new S,this._fields=null,this._hittestDrawHelper=null,this._sourceUpdating=!1,this.featureEffectView=new I}destroy(){this._editUpdatingHandles.destroy(),this._workerProxy?.destroy(),this._workerAttached.reject(p()),this._commandsQueue.destroy(),this._hittestDrawHelper?.destroy()}initialize(){this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this.addResolvingPromise(this._initProxy()),this.featureEffectView.featureEffect=this.featureEffect,this.featureEffectView.endTransition()}async _initProxy(){const e=this.layer;if("isTable"in e&&e.isTable)throw new o("featurelayerview:table-not-supported","table feature layer can't be displayed",{layer:e});if(("feature"===e.type||"subtype-group"===e.type)&&!1===V(e)?.operations.supportsQuery)throw new o("featurelayerview:query-not-supported","layer view requires a layer with query capability",{layer:e});this._workerProxy&&this._workerProxy.destroy();const t=this._createClientOptions();this._workerProxy=await N(t)}async _attachProxy(){const e=j(this.view.extent,this.view.rotation,this.view.center),t={tileInfoJSON:this.view?.featuresTilingScheme?.tileInfo?.toJSON(),initialViewExtent:e.toJSON()};try{await this._workerProxy.pipeline.onAttach(t),this._workerAttached.resolve()}catch(r){this._workerAttached.reject(p()),y(r)}}async _detachProxy(){return this._workerProxy.pipeline.onDetach()}async getWorker(){return await this._workerAttached.promise,this._workerProxy}get dataUpdating(){return this._sourceUpdating||this._editUpdatingHandles.updating}get hasAllFeatures(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryAllFeatures}get hasAllFeaturesInView(){const e=this.effectiveDisplayFilter?.where||null,t=!this.eventLog.willQueryAllFeatures&&null!=e&&"1=1"!==e;return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&!t}get hasFullGeometries(){return this.layer.visible&&!this.suspended&&this.eventLog.hasAllData&&this.eventLog.willQueryFullResolutionGeometry}get layerAdapter(){switch(this.layer.type){case"annotation-feature":return new z(this.layer);case"dimension-feature":return new Z(this.layer);case"feature":return"memory"===this.layer.source.type?new X(this.layer):new K(this.layer);case"geojson":case"csv":case"wfs":return new X(this.layer);case"parquet":return new re(this.layer);case"subtype-group":return new ie(this.layer);case"ogc-feature":return new ee(this.layer);case"stream":return new se(this.layer);case"oriented-imagery":return new te(this.layer);case"knowledge-graph-sublayer":return new Y(this.layer);case"catalog-footprint":return new B(this.layer);default:this.layer}return null}get timeExtent(){return C(this.layerAdapter.timeOptions,this.view?.timeExtent,this._get("timeExtent"))}get usedMemory(){return this.container.usedMemory+this.eventLog.pipelineStatistics.usedMemory}getDisplayStatistics(e,t){return this.featureContainer?.getDisplayStatistics(e,t)}highlight(e,t){const s=me(t);let o;if(e instanceof O)o=e;else{let t;e instanceof r?t=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?t=[e]:a.isCollection(e)&&e.length>0?t=e.map(e=>e?.getObjectId()).toArray():Array.isArray(e)&&e.length>0&&(t="number"==typeof e[0]||"string"==typeof e[0]?e:e.map(e=>e?.getObjectId()));const s=t?.filter(i);if(!s?.length)return n();o=new O({objectIds:s})}const l=this._addHighlightFilter(o,s);return n(()=>!this.destroyed&&this._removeHighlight(l))}async hitTest(e,i,a){const o=pe(i);if(!o)return null;const n="point"===o,{trueHitIds:l,candidateHitIds:u}=await this.featureContainer.hitTest(i,a??null),h=await this.getWorker(),[c,p]=await Promise.all([h.pipeline.getDisplayFeatures(u),h.pipeline.getDisplayFeatures(l)]),{features:d,aggregates:y,tracks:f}=c,{features:g,aggregates:w,tracks:v}=p,_=[];if(!n&&this.hasRenderer()){const e=new Map,t=new r;for(const r of d){t.attributes=r.attributes,t.geometry=F(r.geometry),t.symbol=null;const s=this.layerAdapter.getRenderer(t);if(!s){_.push(r);continue}const i=await D(t,{renderer:s,scale:this.view.scale,resolution:this.view.resolution,spatialReference:this.view.spatialReference,viewingMode:"2d",timeZone:this.view.timeZone});if(!i)continue;let a=null;const o=T(i);if("web-style"===o.type)try{const e=T(await o.fetchSymbol({acceptedFormats:["cim","web"]}));a="web-style"===e.type?null:e}catch(R){m(R),0;continue}else a=o;const n=a?.symbol;if(!n)continue;const l=this.view.stage.cimAnalyzer.analyzeSymbolReference(a,!1).some(e=>"alignment"in e&&0===e.alignment);e.set(r,{cimSymbol:n,isScreenAligned:l})}e.size>0&&!this._hittestDrawHelper&&(this._hittestDrawHelper=new H(this.view.stage.painter.textureManager.resourceManager));const{resolution:s,rotation:a}=this.view.state,n=ce(this.view,i);for(const[r,{cimSymbol:i,isScreenAligned:l}]of e){if(!r)continue;const e={hittestType:o,textInfo:null,mapRotation:a,resolution:s,searchDist:0,isScreenAligned:l};this._hittestDrawHelper.hitTest(n,i,r.geometry,e)&&_.push(r)}}else _.push(...d);const b=[...g,..._],S=[...w,...y],A=[...v,...f],j=this.featureContainer.getSortKeys(b.map(e=>e.displayId)),x=({displayId:e},{displayId:t})=>j.has(e)&&j.has(t)?j.get(e)-j.get(t):e-t;return b.sort(x).reverse(),S.sort(x).reverse(),[...S.map(r=>this._createAggregateGraphicHit(e,t.fromJSON(r))),...A.map(t=>this._createTrackGraphicHit(e,s.fromJSON(t))),...b.map(t=>this._createFeatureGraphicHit(n?e:null,r.fromJSON(t)))]}async queryAggregateSummaryStatistics(e,t,r){const s={...t,scale:this.view.scale},i=(await this.getWorker()).aggregates.executeQueryForSummaryStatistics(this._cleanUpAggregateQuery(e),s,r);return ue(i,{})}async queryUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForUniqueValues(this._cleanUpQuery(e),i,r);return ue(a,{uniqueValueInfos:[]})}async queryAggregateUniqueValues(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForUniqueValues(this._cleanUpAggregateQuery(e),i,r);return ue(a,{uniqueValueInfos:[]})}async queryAggregateClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForClassBreaks(this._cleanUpAggregateQuery(e),i,r);return ue(a,{classBreakInfos:[]})}async queryHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForHistogram(this._cleanUpQuery(e),i,r);return ue(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateCount(e,t){const r=(await this.getWorker()).aggregates.executeQueryForCount(this._cleanUpAggregateQuery(e),t);return ue(r,0)}async queryAggregateHistogram(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.aggregates.executeQueryForHistogram(this._cleanUpAggregateQuery(e),i,r);return ue(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateIds(e,t){const r=(await this.getWorker()).aggregates.executeQueryForIds(this._cleanUpAggregateQuery(e),t);return ue(r,[])}async queryAggregateJSON(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t);return ue(r,{features:[]})}async queryAttributeBins(e,t){const r=(await this.getWorker()).features.executeAttributeBinsQuery(this._cleanUpAttributeBinsQuery(e),t),s=await ue(r,{features:[]});return q.fromJSON(s)}async queryAggregates(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t),s=await ue(r,{features:[]}),i=Q.fromJSON(s);return i.features.forEach(e=>this.layerAdapter.setAggregateGraphicOrigin?.(e)),i}async queryClassBreaks(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForClassBreaks(this._cleanUpQuery(e),i,r);return ue(a,{classBreakInfos:[]})}async queryExtent(e,t){const r=(await this.getWorker()).features.executeQueryForExtent(this._cleanUpQuery(e),t),s=await ue(r,{count:0,extent:null});return{count:s.count,extent:A.fromJSON(s.extent)}}async queryFeatureCount(e,t){const r=(await this.getWorker()).features.executeQueryForCount(this._cleanUpQuery(e),t);return ue(r,0)}queryFeatures(e,t){return this.queryFeaturesJSON(e,t).then(e=>{const t=P.fromJSON(e);return t.features.forEach(e=>this._setOriginForFeature(e)),t})}async queryFeaturesJSON(e,t){const r=(await this.getWorker()).features.executeQuery(this._cleanUpQuery(e),t);return ue(r,{features:[]})}async queryHeatmapStatistics(e){return(await this.getWorker()).pipeline.queryHeatmapStatistics(e)}async queryObjectIds(e,t){const r=(await this.getWorker()).features.executeQueryForIds(this._cleanUpQuery(e),t);return ue(r,[])}async queryStatistics(){const e=await this.getWorker();return ue(e.pipeline.queryStatistics(),{featureCount:0,ringCount:0,vertexCount:0})}async querySummaryStatistics(e,t,r){const s=await this.getWorker(),i={...t,scale:this.view.scale},a=s.features.executeQueryForSummaryStatistics(this._cleanUpQuery(e),i,r);return ue(a,{})}async queryVisibleFeatures(e,t){const r=(await this.getWorker()).pipeline.queryVisibleFeatures(this._cleanUpQuery(e),t),s=await ue(r,{features:[]}),i=P.fromJSON(s);return i.features.forEach(e=>this._setOriginForFeature(e)),i}async getSampleFeatures(e){return(await this.getWorker()).pipeline.getSampleFeatures(e)}setVisibility(e,t){t?this._visibilityOverrides.delete(e):this._visibilityOverrides.add(e),this._update()}update(e){if(!this._subscriptions)return;this.view.animation&&!this._lastTargetState&&(this._lastTargetState=e.state.clone()),!this.view.animation&&this._lastTargetState&&(this._lastTargetState=null);const t=this.featureContainer.getPresenting(),r=this._subscriptions.update(e.targetState,this._lastTargetState,t);r&&(this.featureContainer.updateSubscriptions(r),d(this._updatingHandles.addPromise(this.getWorker().then(e=>e.pipeline.updateSubscriptions(r))))),this._subscriptions.coverage&&this.featureContainer.setCoverage(this._subscriptions.coverage)}attach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.attach"),d(this._updatingHandles.addPromise(this._workerAttached.promise)),d(this._attachProxy()),this.featureContainer=new G(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptions=new de(this.view.featuresTilingScheme),this._stationaryRotation=this.view.rotation,this.requestUpdate(),this.addAttachHandles([we([()=>this._displayRefreshVersion,()=>"displayFilterInfo"in this.layer&&this.layer.displayFilterInfo,()=>this.timeExtent,()=>this.clips,()=>this.filter,()=>this.effectiveDisplayFilterClause,()=>this.featureEffect,()=>this._sourceRefreshVersion,()=>this.view.timeZone,()=>this.view.timeExtent,...this.layerAdapter.getUpdateHashProperties(this.view)],()=>this._update()),f(()=>this.updateSuspended,e=>{e||this._subscriptions.resume(this.featureContainer.getPresenting())}),f(()=>this.view.stationary,e=>{if(!e)return;const t=this.view.rotation;t!==this._stationaryRotation&&(this._stationaryRotation=t,this._update()),this.getWorker().then(e=>{if(this.destroyed)return;const t=j(this.view.extent,this.view.rotation,this.view.center);return e.pipeline.updateViewExtent(t.toJSON(),this.featureContainer.requiresRefresh)}).catch(()=>{})})]),this._update(),"stream"!==this.layer.type&&"parquet"!==this.layer.type&&"catalog-footprint"!==this.layer.type&&this.addAttachHandles(this.layer.on("edits",e=>this._editUpdatingHandles.addPromise(this._edit(e))))}emitFirstDraw(e){this.emit("first-draw",{timestamp:e})}detach(){has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.detach"),this._detachProxy(),this._fields=null,this.featureContainer.destroy(),this.featureContainer=null,this._commandsQueue.clear(),this.container.removeAllChildren(),this._subscriptions=h(this._subscriptions),this._workerProxy.pipeline.onDetach(),this._workerAttached=Promise.withResolvers(),d(this._workerAttached.promise),this._lastAvailableFields=[],this._lastSchema=null}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}addOverrides(e){return this._commandsQueue.push({type:"override",options:{...e,release:[]}})}removeOverrides(e){for(const r of e)if(null==r)throw new o("featurelayerview:bad-override","Tried to remove an override for an invalid objectId",{objectId:r});const t={added:[],updated:[],removed:[],release:e,isWeak:!1,historicMoment:null};return this._commandsQueue.push({type:"override",options:t})}onProxyClientEvent(e){}hasRenderer(){return"renderer"in this.layer&&null!=this.layer.renderer}isUpdating(){const e=this.hasRenderer(),t=this._commandsQueue.updateTracking.updating,r=null!=this._updatingRequiredPromise,s=this.featureContainer.updating;return this.updateRequested||e&&(t||r)||s||this._pipelineUpdating||this.dataUpdating}_createClientOptions(){const e=this;return{updateSchemaStart:()=>e.updateSchemaStart(),updateSchemaEnd:t=>e.updateSchemaEnd(t),openMemoryPorts:async()=>{if(this.layerAdapter?.openMessagePorts){const e=await this.layerAdapter.openMessagePorts();return{result:e,transferList:e}}throw new Error("InternalError: Layer adapter does not support opening message ports")},openGlyphPorts:async()=>{const t=await e.container.stage.textureManager.openMessagePorts();return{result:t,transferList:t}},get container(){return e.featureContainer},setUpdating:e=>{this._set("_pipelineUpdating",e.pipeline),this._set("_sourceUpdating",e.source)},emitEvent:e=>{this.onProxyClientEvent(e)},get eventLog(){return e.eventLog},fetch:async t=>{if(has("esri-2d-stabilize-glyphs")){const r=[];for(const s of t)r.push(await e.view.stage.painter.textureManager.rasterizeItem(s));return r}return Promise.all(t.map(t=>e.view.stage.painter.textureManager.rasterizeItem(t)))},fetchDictionary:e=>Promise.all(e.map(e=>this._fetchDictionaryRequest(e))),fetchMesh:e=>Promise.all(e.map(e=>this._fetchMeshRequest(e)))}}async _fetchDictionaryRequest(e){try{if(!("renderer"in this.layer)||!this.layer.renderer||"dictionary"!==this.layer.renderer.type)throw new Error("InternalError: Expected renderer to be of type 'dictionary'");const t=this.layer.renderer,r=this._lastSchema.processor.mesh.factory.symbology;if("dictionary"!==r.type)throw new Error("InternalError: Expected schema to be of type 'dictionary'");const s={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:r.scaleExpression,viewRotation:this._stationaryRotation};this._fields||(this._fields=this.layer.fields.map(e=>e.toJSON()));const i=r.visualVariableUniforms,a=he(this.layer.geometryType),o=await t.getSymbolForControlString(e.controlString,a,!1);if(!o||!o.data)return{type:"dictionary-response",meshes:[]};return{type:"dictionary-response",meshes:await ae({...o.data,hasTextStringTemplates:!0},{uniforms:i,path:"renderer",schemaOptions:s})}}catch(t){return{type:"dictionary-response",meshes:[]}}}async _fetchMeshRequest(e){const{layer:t}=this;try{const r={cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,store:this.featureContainer.instanceStore,scaleExpression:null,viewRotation:this._stationaryRotation};this._fields||(this._fields=t.fields.map(e=>e.toJSON()));return{type:"mesh-response",meshes:await ae({...e.symbolReference,hasTextStringTemplates:!0},{path:"anno-like",schemaOptions:r,uniforms:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:null,visualVariableSizeStops:null,visualVariableSizeScaleStops:null,visualVariableSizeOutlineScaleStops:null,visualVariableSizeUnitValue:null,visualVariableSizeMinMaxValue:null}})}}catch(r){return{type:"mesh-response",meshes:[]}}}_cleanUpQuery(e){const t=L.from(e)||this.createQuery();return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),"returnZ"in this.layer&&(t.returnZ??=this.layer.returnZ),"returnM"in this.layer&&(t.returnM??=this.layer.returnM),t.toJSON()}_cleanUpAttributeBinsQuery(e){const t=M.from(e);return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t.toJSON()}_cleanUpAggregateQuery(e){const t=L.from(e)||this.createAggregateQuery();t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference);const r=t.objectIds??[];for(const s of t.aggregateIds??[])r.push(s);return t.objectIds=r,t.aggregateIds=[],t.toJSON()}async _update(){return this._commandsQueue.push({type:"update"})}_edit(e){return this._commandsQueue.push({type:"edit",event:e})}async doRefresh(e){this.attached&&(this.updateSuspended&&e||(e?this.incrementSourceRefreshVersion():this.incrementDisplayRefreshVersion()))}incrementSourceRefreshVersion(){this._sourceRefreshVersion=(this._sourceRefreshVersion+1)%ge+1}incrementDisplayRefreshVersion(){this._displayRefreshVersion=(this._displayRefreshVersion+1)%ge+1}async _resolveIdenifiers(e){const t=[],r=[];for(const a of e)null==a.objectId||-1===a.objectId?null==a.globalId?u.getLogger(this).warn("mapview-apply-edits","A feature identifier must contain either a GlobalId or ObjectId. Ignoring",{identifier:a}):r.push(a.globalId):t.push(a.objectId);const s="globalIdField"in this.layer&&this.layer.globalIdField,i=s&&this.availableFields.includes(s);if(r.length&&!i)return u.getLogger(this).error(new o("mapview-apply-edits",`Editing the specified service requires the layer's globalIdField, ${s} to be included the layer's outFields for updates to be reflected on the map`)),t;if(r.length){const e=await this._workerProxy.pipeline.getObjectIdsFromGlobalIds(r);for(const r of e)t.push(r)}return t}_resolveOverrides(e){const t=!1,r=!1,s=he(this.layer.geometryType),i=$(this.layer),a=[];for(const n of e.added){const e=E(ve(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.updated){const e=E(ve(n),s,t,r,i);if(null==e.objectId)throw new o("featurelayerview:bad-override","Feature does not have an objectId",{feature:n});a.push(e)}for(const n of e.removed)if(null==n)throw new o("featurelayerview:bad-override","Tried to remove an invalid objectId",{objectId:n});return{type:"override",updates:a,removed:e.removed,release:e.release,isWeak:e.isWeak??!1,historicMoment:e.historicMoment??null}}async _resolveEdit(e){const t=this.layer,r=e.historicMoment?.getTime()??null,s="layerId"in t&&e.editedFeatures?.find(e=>e.layerId===t.layerId);if(s&&this._canEditByFeature(s)){const{adds:e,deletes:t,updates:i}=s.editedFeatures,a=this.layer.objectIdField,o=i.map(e=>e.current),n=t.map(e=>"attributes"in e?{objectId:a?e.attributes[a]:null}:e),l=await this._resolveIdenifiers(n);return this._resolveOverrides({added:e,updated:o,removed:l,historicMoment:r,isWeak:!0,release:[]})}const[i,a,o]=await Promise.all([this._resolveIdenifiers(e.addedFeatures),this._resolveIdenifiers(e.updatedFeatures),this._resolveIdenifiers(e.deletedFeatures)]);return{type:"override-by-id",updates:[...i,...a],removed:o,historicMoment:r,isWeak:!0}}_canEditByFeature(e){const{adds:t,updates:r}=e.editedFeatures;return t.every(e=>this.view.spatialReference.equals(e.geometry?.spatialReference))&&r.every(e=>this.view.spatialReference.equals(e.current.geometry?.spatialReference))}async updateSchemaStart(){const e=this.layer;"featureReduction"in e&&e.featureReduction&&e.featureReduction!==this._lastFeatureReduction&&(e.featureReduction=e.featureReduction?.clone(),this._lastFeatureReduction=e.featureReduction);try{if(await Promise.allSettled([this._handleChange(),k(e)]),this.destroyed||!this.layerAdapter?.hasRequiredSupport||!this._subscriptions)return null;const t=this.featureContainer.updateStart("subtype-group"===e.type);this._lastFeatureEffect=this.featureEffect;const r={store:t,cimAnalyzer:this.view.stage.cimAnalyzer,cimResourceManager:this.view.stage.painter.textureManager.resourceManager,scaleExpression:void 0,viewRotation:this._stationaryRotation},s=await this._createViewSchemaConfig(),i={source:await this.layerAdapter.createSourceSchema(s,this._sourceRefreshVersion),processor:await this.layerAdapter.createProcessorSchema(r,s,this._displayRefreshVersion)};return c(this._lastSchema?.source.strategy,i.source.strategy)||c(this._lastSchema?.processor,i.processor)?(this._lastSchema=i,this._fields=null,i):null}catch(t){}return null}async updateSchemaEnd(e){try{this.featureEffectView.featureEffect=this._lastFeatureEffect,e&&this.featureEffectView.endTransition(),await this.featureContainer.updateEnd(this._lastSchema.processor,this.layerAdapter.getLabelingDeconflictionInfo(),e),has("esri-2d-update-debug")&&console.debug("FeatureLayerView2D.updateEnd")}catch(t){}}async _doUpdate(){const e=Math.round(performance.now()),t=await this.getWorker();await t.pipeline.updateSchema(e),this.requestUpdate()}async _doOverride(e){const t=await this.getWorker();try{let r=new oe;for(const s of e.messages)switch(s.type){case"edit":r.tryAdd(await this._resolveEdit(s.event))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(await this._resolveEdit(s.event)));break;case"override":r.tryAdd(this._resolveOverrides(s.options))||(await t.pipeline.onOverride(r.toMessage()),r=new oe,r.tryAdd(this._resolveOverrides(s.options)));break}await t.pipeline.onOverride(r.toMessage())}catch(r){m(r),0}}_getEffectiveAvailableFields(e){const t=fe(this._lastAvailableFields,e);return this._lastAvailableFields=t,U(this.layer.fieldsIndex,t)}async _createViewSchemaConfig(){const e=this.requiresCurrentUser?await this.signedInUser:null,t=x(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter,this.effectiveDisplayFilterClause),r=this.featureEffect?.filter?.toJSON()??null,s=this._getHighlightFilterGroups().map(({order:e,filters:t})=>({order:e,filters:t.map(e=>e.toJSON())})),i=le({layerFilter:t,effectFilter:r,highlightFilters:s});return{availableFields:this._getEffectiveAvailableFields(this.availableFields),displayFilterEnabled:this.displayFilterEnabled,filters:i,scale:this.view.scale,timeZone:this.view.timeZone,timeExtent:this.view.timeExtent,currentUser:e,spatialReference:this.view.spatialReference,extent:this.view.extent,returnZ:this.hasZ,returnM:this.hasM}}_onHighlightChange(){this._commandsQueue.push({type:"update"})}_setOriginForFeature(e){e.layer=e.sourceLayer=this.layer,this.layerAdapter.setGraphicOrigin(e)}_createFeatureGraphicHit(e,t){return this._setOriginForFeature(t),this._createGraphicHit(e,t)}_createTrackGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setTrackGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createAggregateGraphicHit(e,t){return t.layer=t.sourceLayer=this.layer,this.layerAdapter.setAggregateGraphicOrigin?.(t),this._createGraphicHit(e,t)}_createGraphicHit(e,t){return null!=t.geometry&&(t.geometry.spatialReference=this.view.spatialReference),{type:"graphic",graphic:t,layer:this.layer,mapPoint:e}}};function x(e,t,r,s,i,a){i&&(i=i.clone());const o=null!=i?i.timeExtent:null,n=null!=r&&null!=o?r.intersection(o):r||o;n&&(i??=new O,i.timeExtent=n),i=t.addFilters?.(i,e)??i,a&&(i??=new O,i.where=w(i.where,a));let l=i?.toJSON()??null;return s.size&&(l??=(new O).toJSON(),l.hiddenIds=Array.from(s)),l}return e([_()],v.prototype,"_commandsQueue",void 0),e([_()],v.prototype,"_sourceRefreshVersion",void 0),e([_()],v.prototype,"_displayRefreshVersion",void 0),e([_({readOnly:!0})],v.prototype,"_pipelineUpdating",void 0),e([_()],v.prototype,"_sourceUpdating",void 0),e([_({readOnly:!0})],v.prototype,"dataUpdating",null),e([_({readOnly:!0})],v.prototype,"hasAllFeatures",null),e([_({readOnly:!0})],v.prototype,"hasAllFeaturesInView",null),e([_({readOnly:!0})],v.prototype,"hasFullGeometries",null),e([_()],v.prototype,"featureEffectView",void 0),e([_()],v.prototype,"layerAdapter",null),e([_({readOnly:!0})],v.prototype,"timeExtent",null),v=e([b("esri.views.2d.layers.FeatureLikeLayerView2D")],v),v};export{_e as FeatureLikeLayerView2D};
@@ -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"../../../core/Logger.js";import{isAbortError as r}from"../../../core/promiseUtils.js";import{watch as s}from"../../../core/reactiveUtils.js";import{property as i,subclass as a}from"../../../core/accessorSupport/decorators.js";import{LayerView2D as o}from"./LayerView2D.js";import h from"./imagery/ImageryTileView2D.js";import d from"../../layers/ImageryTileLayerView.js";import{RefreshableLayerView as l}from"../../layers/RefreshableLayerView.js";let n=class extends(l(o(d))){constructor(){super(...arguments),this.subview=null}get displayParameters(){const{layer:e}=this,t=this._get("displayParameters");return e.renderer&&e.visible?{renderer:e.renderer,interpolation:e.interpolation,clipToNeatline:e.clippedToNeatline}:t}update(e){this.subview?.update(e),this.notifyChange("updating")}isUpdating(){return!this.subview||this.subview.updating}attach(){this.layer.increaseRasterJobHandlerUsage();const e=new h({layer:this.layer,layerView:this,scheduler:this.scheduler});e.useWebGLForProcessing=!0,e.useProgressiveUpdate=!0,this._attachSubview(e),this.subview=e,this.requestUpdate(),this.addAttachHandles([s(()=>this.layer.clippedToNeatline,()=>{const e=this.subview.redrawOrRefetch({refetch:!0,reprocess:!1}).catch(e=>{r(e)||t.getLogger(this).error(e)});this._updatingHandles.addPromise(e)})])}detach(){this.layer.decreaseRasterJobHandlerUsage(),this._detachSubview(this.subview),this.subview?.destroy(),this.subview=null}viewChange(){this.requestUpdate()}moveEnd(){this.subview.moveEnd()}doRefresh(){return this.subview?this.subview.doRefresh():Promise.resolve()}_attachSubview(e){e&&!e.attached&&(e.attach(),e.attached=!0,this.container.addChildAt(e.container,0))}_detachSubview(e){e?.attached&&(this.container.removeChild(e.container),e.detach(),e.attached=!1)}};e([i()],n.prototype,"subview",void 0),e([i({readOnly:!0})],n.prototype,"displayParameters",null),n=e([a("esri.views.2d.layers.GeospatialPDFLayerView2D")],n);const c=n;export{c 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"../../../Graphic.js";import t from"../../../core/Collection.js";import i from"../../../core/Error.js";import"../../../core/has.js";import{some as r}from"../../../core/iteratorUtils.js";import s from"../../../core/Logger.js";import{getOrCreateMapValue as n}from"../../../core/MapUtils.js";import{isAbortError as o}from"../../../core/promiseUtils.js";import l from"../../../core/ReactiveMap.js";import{watch as a,syncAndInitial as m,on as c}from"../../../core/reactiveUtils.js";import{isScreenRect as h,isScreenPolygon as p}from"../../../core/screenUtils.js";import{property as u,subclass as d}from"../../../core/accessorSupport/decorators.js";import f from"../../../geometry/Extent.js";import{create as g}from"../../../geometry/support/aaBoundingRect.js";import{ringsContainsCoords as y}from"../../../geometry/support/contains.js";import{targetIntersectsPolygon as j,extentIntersectsPolygon as _}from"../../../geometry/support/intersectsBase.js";import{MediaElementView as w}from"../../../layers/support/MediaElementView.js";import"../../../renderers/SimpleRenderer.js";import"../../../symbols/SimpleFillSymbol.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../geometry/support/spatialReferenceUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import"./graphics/GraphicsView2D.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/GpuMeshState.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../../webgl/UniformBufferLayout.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/mathUtils.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import"../tiling/TileInfoView.js";import"../tiling/TileKey.js";import v from"../tiling/TileQueue.js";import b from"../tiling/TileStrategy.js";import E from"../engine/webgl/Overlay.js";import S from"../engine/webgl/OverlayContainer.js";import{LayerView2D as R}from"./LayerView2D.js";import{getMapPointsFromScreen as T}from"../support/hitTestUtils.js";import U from"../../layers/MediaLayerView.js";import{TaskPriority as G}from"../../support/Scheduler.js";let q=class extends(R(U)){constructor(){super(...arguments),this._overlayContainer=null,this._fetchQueue=null,this._tileStrategy=null,this._elementReferences=new l,this._debugGraphicsView=null,this._interaction=null,this.elements=new t}initialize(){this.addHandles([a(()=>[this.interactive,this.suspended],async()=>{if(this.interactive&&!this._interaction){const{MediaLayerInteraction:e}=await this._updatingHandles.addPromise(import("./support/MediaLayerInteraction.js"));if(this.destroyed)return;this._interaction=new e({view:this.view,layer:this.layer}),this.selectedElement!==this._interaction.selectedElement&&(this._interaction.selectedElement=this.selectedElement),this.interactionOptions!==this._interaction.options&&(this._interaction.options=this.interactionOptions)}this._interaction&&(this._interaction.enabled=!this.suspended&&this.interactive)},m),a(()=>this.interactionOptions,e=>{this._interaction&&(this._interaction.options=e)},m),a(()=>this.selectedElement,e=>{this._interaction&&(this._interaction.selectedElement=e)},m)])}isUpdating(){return!0===this._interaction?.updating||r(this._elementReferences.values(),({overlay:e})=>!e.isReady)}attach(){this.addAttachHandles([c(()=>this.layer.effectiveSource,"refresh",()=>{const e=this.layer.effectiveSource;if(e)for(const{elementView:{element:t}}of this._elementReferences.values())e.hasElement(t)||this._removeElementReference(t);this._tileStrategy.refresh(e=>this._updateTile(e)),this.requestUpdate()}),c(()=>this.layer.effectiveSource,"change",({element:e})=>this._elementUpdateHandler(e))]),this._overlayContainer=new S,this.container.addChild(this._overlayContainer),this._fetchQueue=new v({tileInfoView:this.view.featuresTilingScheme,concurrency:10,process:(e,t)=>this._queryElements(e,t),scheduler:this.scheduler,priority:G.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new b({cachePolicy:"purge",resampling:!0,acquireTile:e=>this._acquireTile(e),releaseTile:e=>this._releaseTile(e),tileInfoView:this.view.featuresTilingScheme}),this.requestUpdate()}detach(){this.elements.removeAll(),this._tileStrategy.destroy(),this._fetchQueue.destroy(),this._overlayContainer.removeAllChildren(),this.container.removeAllChildren(),this._elementReferences.clear(),this._debugGraphicsView?.destroy()}supportsSpatialReference(e){return!0}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}update(e){this._tileStrategy.update(e),this._debugGraphicsView?.update(e)}async hitTest(e,t){const i=[],r=e.normalize(),s=[r.x,r.y],n=h(t),o=p(t),l=n||o;for(const{elementView:{normalizedCoords:a,element:m}}of this._elementReferences.values())if(l){const r=T(this.view,t).map(e=>[e.x,e.y]);null!=a&&j(r,a.rings)&&i.push({type:"media",element:m,layer:this.layer,mapPoint:null,sourcePoint:m.toSource(e)})}else null!=a&&y(a.rings,s)&&i.push({type:"media",element:m,layer:this.layer,mapPoint:e,sourcePoint:m.toSource(e)});return i.reverse()}canResume(){return null!=this.layer.source&&super.canResume()}async doRefresh(){this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updateTile(e))}_acquireTile(e){const t=new M(e.clone());return this._updateTile(t),t}_updateTile(e){this._updatingHandles.consumePromise(this._fetchQueue.push(e.key).then(t=>{const[i,r]=e.setElements(t);this._referenceElements(e,i),this._dereferenceElements(e,r),this.requestUpdate()},e=>{o(e)||s.getLogger(this).error(e)}))}_releaseTile(e){this._fetchQueue.abort(e.key.id),e.elements&&this._dereferenceElements(e,e.elements),this.requestUpdate()}async _queryElements(e,t){const i=this.layer.effectiveSource;if(null==i)return[];this.view.featuresTilingScheme.getTileBounds(V,e,!0);const r=new f({xmin:V[0],ymin:V[1],xmax:V[2],ymax:V[3],spatialReference:this.view.spatialReference});return i.queryElements(r,t)}_referenceElements(e,t){if(null!=this.layer.source)for(const i of t)this._referenceElement(e,i)}_referenceElement(e,t){n(this._elementReferences,t.uid,()=>{const e=new w({element:t,spatialReference:this.view.spatialReference}),r=new E(e);return this._overlayContainer.addChild(r),this.elements.add(t),this._updatingHandles.consumePromise(t.load().catch(e=>{s.getLogger("esri.views.2d.layers.MediaLayerView2D").error(new i("element-load-error","Element cannot be displayed",{element:t,error:e}))})),{debugGraphic:null,elementView:e,overlay:r,tiles:new Set}}).tiles.add(e)}_dereferenceElements(e,t){for(const i of t)this._dereferenceElement(e,i)}_dereferenceElement(e,t){const i=this._elementReferences.get(t.uid);i&&(i.tiles.delete(e),i.tiles.size||this._removeElementReference(t))}_removeElementReference(e){const t=this._elementReferences.get(e.uid);t&&(this._overlayContainer.removeChild(t.overlay),t.overlay.destroy(),t.elementView.destroy(),this._elementReferences.delete(e.uid),this.elements.remove(e),this._debugGraphicsView?.graphics.remove(t.debugGraphic))}_elementUpdateHandler(e){if(!this.layer.effectiveSource?.hasElement(e))return;let t=this._elementReferences.get(e.uid);if(t){const i=t.elementView.normalizedCoords;if(null==i)return void this._removeElementReference(e);const r=[],s=[];for(const e of this._tileStrategy.tiles){const n=x(this.view.featuresTilingScheme,e,i);t.tiles.has(e)?n||s.push(e):n&&r.push(e)}for(const t of r)this._referenceElement(t,e);for(const t of s)this._dereferenceElement(t,e);return t=this._elementReferences.get(e.uid),void(t?.debugGraphic&&(t.debugGraphic.geometry=t.elementView.normalizedCoords,this._debugGraphicsView.graphicUpdateHandler({graphic:t.debugGraphic,property:"geometry"})))}const i=new w({element:e,spatialReference:this.view.spatialReference}).normalizedCoords;if(null!=i)for(const r of this._tileStrategy.tiles){x(this.view.featuresTilingScheme,r,i)&&this._referenceElement(r,e)}}};e([u({readOnly:!0})],q.prototype,"elements",void 0),q=e([d("esri.views.2d.layers.MediaLayerView2D")],q);const V=g(),C={xmin:0,ymin:0,xmax:0,ymax:0};function x(e,t,i){return e.getTileBounds(V,t.key,!0),C.xmin=V[0],C.ymin=V[1],C.xmax=V[2],C.ymax=V[3],_(C,i)}class M{constructor(e){this.key=e,this.elements=null,this.isReady=!1,this.visible=!0}setElements(e){const t=[],i=new Set(this.elements);this.elements=e;for(const r of e)i.has(r)?i.delete(r):t.push(r);return this.isReady=!0,[t,Array.from(i)]}destroy(){}}const P=q;export{P as default};
2
+ import{__decorate as e}from"tslib";import"../../../Graphic.js";import t from"../../../core/Collection.js";import i from"../../../core/Error.js";import"../../../core/has.js";import{some as r}from"../../../core/iteratorUtils.js";import s from"../../../core/Logger.js";import{getOrCreateMapValue as n}from"../../../core/MapUtils.js";import{isAbortError as o}from"../../../core/promiseUtils.js";import l from"../../../core/ReactiveMap.js";import{watch as a,syncAndInitial as m,on as c}from"../../../core/reactiveUtils.js";import{isScreenRect as h,isScreenPolygon as p}from"../../../core/screenUtils.js";import{property as u,subclass as d}from"../../../core/accessorSupport/decorators.js";import f from"../../../geometry/Extent.js";import{create as g}from"../../../geometry/support/aaBoundingRect.js";import{ringsContainsCoords as y}from"../../../geometry/support/contains.js";import{targetIntersectsPolygon as j,extentIntersectsPolygon as _}from"../../../geometry/support/intersectsBase.js";import{MediaElementView as w}from"../../../layers/support/MediaElementView.js";import"../../../renderers/SimpleRenderer.js";import"../../../symbols/SimpleFillSymbol.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../geometry/support/spatialReferenceUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import"./graphics/GraphicsView2D.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../../webgl/UniformBufferLayout.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/mathUtils.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import"../tiling/TileInfoView.js";import"../tiling/TileKey.js";import v from"../tiling/TileQueue.js";import b from"../tiling/TileStrategy.js";import E from"../engine/webgl/Overlay.js";import S from"../engine/webgl/OverlayContainer.js";import{LayerView2D as R}from"./LayerView2D.js";import{getMapPointsFromScreen as T}from"../support/hitTestUtils.js";import U from"../../layers/MediaLayerView.js";import{TaskPriority as q}from"../../support/Scheduler.js";let G=class extends(R(U)){constructor(){super(...arguments),this._overlayContainer=null,this._fetchQueue=null,this._tileStrategy=null,this._elementReferences=new l,this._debugGraphicsView=null,this._interaction=null,this.elements=new t}initialize(){this.addHandles([a(()=>[this.interactive,this.suspended],async()=>{if(this.interactive&&!this._interaction){const{MediaLayerInteraction:e}=await this._updatingHandles.addPromise(import("./support/MediaLayerInteraction.js"));if(this.destroyed)return;this._interaction=new e({view:this.view,layer:this.layer}),this.selectedElement!==this._interaction.selectedElement&&(this._interaction.selectedElement=this.selectedElement),this.interactionOptions!==this._interaction.options&&(this._interaction.options=this.interactionOptions)}this._interaction&&(this._interaction.enabled=!this.suspended&&this.interactive)},m),a(()=>this.interactionOptions,e=>{this._interaction&&(this._interaction.options=e)},m),a(()=>this.selectedElement,e=>{this._interaction&&(this._interaction.selectedElement=e)},m)])}isUpdating(){return!0===this._interaction?.updating||r(this._elementReferences.values(),({overlay:e})=>!e.isReady)}attach(){this.addAttachHandles([c(()=>this.layer.effectiveSource,"refresh",()=>{const e=this.layer.effectiveSource;if(e)for(const{elementView:{element:t}}of this._elementReferences.values())e.hasElement(t)||this._removeElementReference(t);this._tileStrategy.refresh(e=>this._updateTile(e)),this.requestUpdate()}),c(()=>this.layer.effectiveSource,"change",({element:e})=>this._elementUpdateHandler(e))]),this._overlayContainer=new S,this.container.addChild(this._overlayContainer),this._fetchQueue=new v({tileInfoView:this.view.featuresTilingScheme,concurrency:10,process:(e,t)=>this._queryElements(e,t),scheduler:this.scheduler,priority:q.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new b({cachePolicy:"purge",resampling:!0,acquireTile:e=>this._acquireTile(e),releaseTile:e=>this._releaseTile(e),tileInfoView:this.view.featuresTilingScheme}),this.requestUpdate()}detach(){this.elements.removeAll(),this._tileStrategy.destroy(),this._fetchQueue.destroy(),this._overlayContainer.removeAllChildren(),this.container.removeAllChildren(),this._elementReferences.clear(),this._debugGraphicsView?.destroy()}supportsSpatialReference(e){return!0}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}update(e){this._tileStrategy.update(e),this._debugGraphicsView?.update(e)}async hitTest(e,t){const i=[],r=e.normalize(),s=[r.x,r.y],n=h(t),o=p(t),l=n||o;for(const{elementView:{normalizedCoords:a,element:m}}of this._elementReferences.values())if(l){const r=T(this.view,t).map(e=>[e.x,e.y]);null!=a&&j(r,a.rings)&&i.push({type:"media",element:m,layer:this.layer,mapPoint:null,sourcePoint:m.toSource(e)})}else null!=a&&y(a.rings,s)&&i.push({type:"media",element:m,layer:this.layer,mapPoint:e,sourcePoint:m.toSource(e)});return i.reverse()}canResume(){return null!=this.layer.source&&super.canResume()}async doRefresh(){this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updateTile(e))}_acquireTile(e){const t=new M(e.clone());return this._updateTile(t),t}_updateTile(e){this._updatingHandles.consumePromise(this._fetchQueue.push(e.key).then(t=>{const[i,r]=e.setElements(t);this._referenceElements(e,i),this._dereferenceElements(e,r),this.requestUpdate()},e=>{o(e)||s.getLogger(this).error(e)}))}_releaseTile(e){this._fetchQueue.abort(e.key.id),e.elements&&this._dereferenceElements(e,e.elements),this.requestUpdate()}async _queryElements(e,t){const i=this.layer.effectiveSource;if(null==i)return[];this.view.featuresTilingScheme.getTileBounds(V,e,!0);const r=new f({xmin:V[0],ymin:V[1],xmax:V[2],ymax:V[3],spatialReference:this.view.spatialReference});return i.queryElements(r,t)}_referenceElements(e,t){if(null!=this.layer.source)for(const i of t)this._referenceElement(e,i)}_referenceElement(e,t){n(this._elementReferences,t.uid,()=>{const e=new w({element:t,spatialReference:this.view.spatialReference}),r=new E(e);return this._overlayContainer.addChild(r),this.elements.add(t),this._updatingHandles.consumePromise(t.load().catch(e=>{s.getLogger("esri.views.2d.layers.MediaLayerView2D").error(new i("element-load-error","Element cannot be displayed",{element:t,error:e}))})),{debugGraphic:null,elementView:e,overlay:r,tiles:new Set}}).tiles.add(e)}_dereferenceElements(e,t){for(const i of t)this._dereferenceElement(e,i)}_dereferenceElement(e,t){const i=this._elementReferences.get(t.uid);i&&(i.tiles.delete(e),i.tiles.size||this._removeElementReference(t))}_removeElementReference(e){const t=this._elementReferences.get(e.uid);t&&(this._overlayContainer.removeChild(t.overlay),t.overlay.destroy(),t.elementView.destroy(),this._elementReferences.delete(e.uid),this.elements.remove(e),this._debugGraphicsView?.graphics.remove(t.debugGraphic))}_elementUpdateHandler(e){if(!this.layer.effectiveSource?.hasElement(e))return;let t=this._elementReferences.get(e.uid);if(t){const i=t.elementView.normalizedCoords;if(null==i)return void this._removeElementReference(e);const r=[],s=[];for(const e of this._tileStrategy.tiles){const n=x(this.view.featuresTilingScheme,e,i);t.tiles.has(e)?n||s.push(e):n&&r.push(e)}for(const t of r)this._referenceElement(t,e);for(const t of s)this._dereferenceElement(t,e);return t=this._elementReferences.get(e.uid),void(t?.debugGraphic&&(t.debugGraphic.geometry=t.elementView.normalizedCoords,this._debugGraphicsView.graphicUpdateHandler({graphic:t.debugGraphic,property:"geometry"})))}const i=new w({element:e,spatialReference:this.view.spatialReference}).normalizedCoords;if(null!=i)for(const r of this._tileStrategy.tiles){x(this.view.featuresTilingScheme,r,i)&&this._referenceElement(r,e)}}};e([u({readOnly:!0})],G.prototype,"elements",void 0),G=e([d("esri.views.2d.layers.MediaLayerView2D")],G);const V=g(),C={xmin:0,ymin:0,xmax:0,ymax:0};function x(e,t,i){return e.getTileBounds(V,t.key,!0),C.xmin=V[0],C.ymin=V[1],C.xmax=V[2],C.ymax=V[3],_(C,i)}class M{constructor(e){this.key=e,this.elements=null,this.isReady=!1,this.visible=!0}setElements(e){const t=[],i=new Set(this.elements);this.elements=e;for(const r of e)i.has(r)?i.delete(r):t.push(r);return this.isReady=!0,[t,Array.from(i)]}destroy(){}}const P=G;export{P 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{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as r,waitTick as s}from"../../../core/promiseUtils.js";import{property as h,subclass as a}from"../../../core/accessorSupport/decorators.js";import{equals as o}from"../../../geometry/support/spatialReferenceUtils.js";import l from"../../../layers/support/FeatureFilter.js";import{GraphicsCollection as p}from"../../../support/GraphicsCollection.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../chunks/pe.js";import"../../../core/has.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import n from"./graphics/GraphicsView2D.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/GpuMeshState.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../../webgl/UniformBufferLayout.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/mathUtils.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/Extent.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as c}from"./BitmapTileLayerView2D.js";import{LayerView2D as g}from"./LayerView2D.js";import m from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as u,resampleImage as f}from"./support/imageUtils.js";import d from"../tiling/TileInfoView.js";import y from"../tiling/TileKey.js";import w from"../tiling/TileQueue.js";import j from"../tiling/TileStrategy.js";import _ from"../../layers/LayerView.js";import{RefreshableLayerView as T}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as b}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as V,MapServiceLayerViewHelper as U}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as v}from"../../support/drapedUtils.js";import{getHighlightName as H}from"../../support/highlightOptionsUtils.js";import{TaskPriority as I}from"../../support/Scheduler.js";const q=[0,0];let G=class extends(T(c(g(_)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new p,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new d(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:I.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new j({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),V(this,this.layer)){const e=this._highlightView=new n({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new m(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new U({createFetchPopupFeaturesQueryGeometry:(e,i)=>v(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtTarget(e,i,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,t):[]}highlight(e,t){const r=b(e);if(0===r.length)return i();const s=H(t),h=this._addHighlightGraphics(r,s);return i(()=>!this.destroyed&&this._removeHighlightGraphics(r,h))}_onHighlightChange(){const e=this._getHighlightFilterGroups();this._highlightView?.setHighlightFilters(e)}_addHighlightGraphics(e,i){return this._highlightGraphics.addMany(e),this._addHighlightFilter(new l({objectIds:e.map(e=>e.uid)}),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlight(i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return o(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(q,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.size,this._updatingHandles.consumePromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:s=0}=i;try{return await this._fetchImage(e,t)}catch(h){if(r(h))throw h;if(!this.resampling)return u(this._tileInfoView.size);if(s<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const r=new y(t),h=await this._fetchTileWithoutTilemapCache(r,{...i,resamplingLevel:s+1});return f(this._tileInfoView,h,r,e)}}return u(this._tileInfoView.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:h,resamplingLevel:a=0}=i,o=new y(0,0,0,0);let l,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,o,{signal:h}),!this.resampling&&o.level!==e.level)return await s(i),u(this._tileInfoView.size);l=await this._fetchImage(o,h)}catch(n){if(r(n))throw n;if(this.resampling&&"unknown"===p&&a<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){o.set(t);try{l=await this._fetchTileWithTilemapCache(o,{...i,resamplingLevel:a+1})}catch{}}}}return l?this.resampling?f(this._tileInfoView,l,o,e):l:u(this._tileInfoView.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.size[0],e.bitmap.height=this._tileInfoView.size[1],e.once("attach",()=>this.requestUpdate()),e.once("isReady",()=>this.requestUpdate())}catch(i){r(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i}).then(({bitmap:e})=>e)}};e([h()],G.prototype,"resampling",null),e([h()],G.prototype,"tilemapCache",null),G=e([a("esri.views.2d.layers.TileLayerView2D")],G);const S=G;export{S as default};
2
+ import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as r,waitTick as s}from"../../../core/promiseUtils.js";import{property as h,subclass as a}from"../../../core/accessorSupport/decorators.js";import{equals as o}from"../../../geometry/support/spatialReferenceUtils.js";import l from"../../../layers/support/FeatureFilter.js";import{GraphicsCollection as p}from"../../../support/GraphicsCollection.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../chunks/pe.js";import"../../../core/has.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import n from"./graphics/GraphicsView2D.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../geometry/Polygon.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../../webgl/UniformBufferLayout.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"../../../geometry/support/normalizeUtils.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/mathUtils.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../../../geometry/Extent.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as c}from"./BitmapTileLayerView2D.js";import{LayerView2D as g}from"./LayerView2D.js";import m from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as u,resampleImage as f}from"./support/imageUtils.js";import d from"../tiling/TileInfoView.js";import y from"../tiling/TileKey.js";import w from"../tiling/TileQueue.js";import j from"../tiling/TileStrategy.js";import _ from"../../layers/LayerView.js";import{RefreshableLayerView as T}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as b}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as V,MapServiceLayerViewHelper as U}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as v}from"../../support/drapedUtils.js";import{getHighlightName as H}from"../../support/highlightOptionsUtils.js";import{TaskPriority as I}from"../../support/Scheduler.js";const q=[0,0];let G=class extends(T(c(g(_)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new p,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new d(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:I.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new j({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),V(this,this.layer)){const e=this._highlightView=new n({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new m(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new U({createFetchPopupFeaturesQueryGeometry:(e,i)=>v(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtTarget(e,i,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,t):[]}highlight(e,t){const r=b(e);if(0===r.length)return i();const s=H(t),h=this._addHighlightGraphics(r,s);return i(()=>!this.destroyed&&this._removeHighlightGraphics(r,h))}_onHighlightChange(){const e=this._getHighlightFilterGroups();this._highlightView?.setHighlightFilters(e)}_addHighlightGraphics(e,i){return this._highlightGraphics.addMany(e),this._addHighlightFilter(new l({objectIds:e.map(e=>e.uid)}),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlight(i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return o(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(q,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.size,this._updatingHandles.consumePromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:s=0}=i;try{return await this._fetchImage(e,t)}catch(h){if(r(h))throw h;if(!this.resampling)return u(this._tileInfoView.size);if(s<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const r=new y(t),h=await this._fetchTileWithoutTilemapCache(r,{...i,resamplingLevel:s+1});return f(this._tileInfoView,h,r,e)}}return u(this._tileInfoView.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:h,resamplingLevel:a=0}=i,o=new y(0,0,0,0);let l,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,o,{signal:h}),!this.resampling&&o.level!==e.level)return await s(i),u(this._tileInfoView.size);l=await this._fetchImage(o,h)}catch(n){if(r(n))throw n;if(this.resampling&&"unknown"===p&&a<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){o.set(t);try{l=await this._fetchTileWithTilemapCache(o,{...i,resamplingLevel:a+1})}catch{}}}}return l?this.resampling?f(this._tileInfoView,l,o,e):l:u(this._tileInfoView.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.size[0],e.bitmap.height=this._tileInfoView.size[1],e.once("attach",()=>this.requestUpdate()),e.once("isReady",()=>this.requestUpdate())}catch(i){r(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i}).then(({bitmap:e})=>e)}};e([h()],G.prototype,"resampling",null),e([h()],G.prototype,"tilemapCache",null),G=e([a("esri.views.2d.layers.TileLayerView2D")],G);const C=G;export{C as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{AFeatureContainer as s}from"../../engine/AFeatureContainer.js";import{ClipMesh as i}from"../../engine/webgl/ClipMesh.js";import{effectFlag0 as n,filterFlag0 as a}from"../../engine/webgl/definitions.js";import o from"../../engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js";import{Techniques as l}from"../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{FeatureTilePresentStrategy as h}from"./FeatureTilePresentStrategy.js";import{RenderState as d}from"./RenderState.js";import{renderHighlight as u}from"../support/util.js";import{createHittestQuery as c}from"../../support/hitTestUtils.js";import p from"../../../layers/support/Path.js";class f{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class _{constructor(e){this.level=e,this.id=performance.now(),this.messages=[]}}class v{constructor(e,t){this.id=e,this.version=t}}class g extends s{constructor(e){super(e.view.featuresTilingScheme),this.referenceScale=null,this._updatingChildren=r(!1),this._hitTestsRequests=[],this._firstDrawTime=null,this._renderState=r(null),this._renderStateNext=r(null),this._store=new o,this._subscriptions=new Map,this._presentation=new h,this._updateStatisticsRequests=[],this._lockStatisticUpdates=!1,this._supportsInstanceCleanup=!0,this._shouldUnlockAttributeView=!1,this._layerView=e,this.addTransitionable(this._layerView.featureEffectView)}destroy(){super.destroy(),this._renderState.value=e(this._renderState.value),this._renderStateNext.value=e(this._renderStateNext.value)}get batching(){return has("featurelayer-strict-draw-order")?1:has("featurelayer-force-marker-text-draw-order")?2:0}get firstDrawTime(){return this._firstDrawTime}get updating(){const e=this._updatingChildren.value,t=!this._renderState.value||this._renderState.value.updating,r=!!this._renderStateNext.value,s=this.attributeView.updating;return e||t||r||s}subscriptions(){return this._subscriptions.values()}get hasLabels(){return null!==this.labelSchema}get hasHighlight(){return this._layerView.hasHighlight}get children(){return this._renderState.value?this._renderState.value.tiles().filter(e=>e.presenting):[]}get usedMemory(){let e=0;return this._renderState.value&&(e+=this._renderState.value.usedMemory),this._renderStateNext.value&&(e+=this._renderStateNext.value.usedMemory),e+=this.attributeView.usedMemory,e}get instanceStore(){return this._store}get labelingCollisionInfos(){if(!this._deconflictionInfo)throw new Error("InternalError: DeconflictionInfo not defined. Was update called?");return this._deconflictionInfo}get labelSchema(){return this._schema?.mesh.factory.labels??null}get layerOrder(){return this._layerView.view.allLayerViews.items.indexOf(this._layerView)}get tiles(){return this._renderState.value?.tiles()}get requiresRefresh(){return!!this._renderState.value?.requiresRefresh}get _instanceStore(){return this._store}_getHeatmapInstance(e){if(null==this._instanceStore||!(e.drawPhase&l.heatmap.drawPhase))return null;for(const t of this._instanceStore.values())if(S(t))return t;return null}update(e,t){this._schema=e,this._deconflictionInfo=t}setCoverage(e){this._presentation.updateCoverage(e)}getPresenting(){const e=new Set;for(const t of this._renderState.value?.tiles()??[])t.presenting&&e.add(t.id);return e}beforeRender(e){if(super.beforeRender(e),this._renderState.value){for(const t of this._renderState.value.tiles())t.setTransform(e.state);if(!e.decluttering){this._presentation.update(this._renderState.value.tiles());for(const e of this._renderState.value.tiles())e.upload(this._instanceStore,this.batching)}this._updatingChildren.value=!this.children.every(e=>e.ended&&e.presenting)}}renderChildren(e){switch(super.renderChildren(e),e.drawPhase){case 1:return this._renderMapPhase(e);case 8:return this._renderHighlightPhase(e);case 2:return this._renderLabelPhase(e)}}afterRender(e){super.afterRender(e),e.decluttering||(this._finializeUpdate(),this._updateAttributeView(),this._handleSwapRenderState(),this._renderState.value?.update(this.attributeView.currentEpoch)),this._hitTestsRequests.length&&this.requestRender()}updateStart(e){return this.attributeView.lockTextureUploads(),this._supportsInstanceCleanup=!e&&"dictionary"!==this._schema?.mesh.factory.symbology.type,this.instanceStore.updateStart(this._supportsInstanceCleanup),this.instanceStore}async updateEnd(e,t,r){return this._updateResolver=new f({schema:e,deconflictionInfo:t,invalidateMesh:r}),this.requestRender(),e.mesh.factory.referenceScale&&(this.referenceScale=e.mesh.factory.referenceScale),this._updateResolver.resolver.promise}updateAttributeView(e){this.requestRender(),this.attributeView.requestUpdate(e)}updateSubscriptions(e){for(const{tileId:t,version:r}of e.subscribe){if(!this._subscriptions.has(t)){const e=new v(t,r);this._subscriptions.set(t,e);continue}this._subscriptions.get(t).version=r}for(const t of e.unsubscribe)this._subscriptions.delete(t),this.removeTile(t)}isFeatureFiltered(e){const t=this.attributeView.getFilterFlags(e),r=t&a,s=null==this._layerView.featureEffectView.featureEffect||this._layerView.featureEffectView.featureEffect.excludedLabelsVisible||t&n;return!(r&&s)}getDisplayStatistics(e,t){const r=this._statisticsByLevel.get(e);return r?r.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let r=this._statisticsByLevel.get(e);r||(r=new Map,this._statisticsByLevel.set(e,r));for(const s of t)r.set(s.fieldName,{minValue:s.minValue,maxValue:s.maxValue})}beginLevelMeshUpdate(e){if(null!=this._pendingLevelUpdate)throw new Error("InternalError: Pending level mesh update in progress");return this._pendingLevelUpdate=new _(e),has("esri-2d-update-debug")&&console.debug(`FeatureContainer.beginLevelMeshUpdate(level=${e}, id=${this._pendingLevelUpdate.id})`),this._pendingLevelUpdate.id}applyLevelMeshUpdate(e){if(null==this._pendingLevelUpdate)throw new Error("InternalError: No level mesh update to apply");if(this._pendingLevelUpdate.id!==e)throw new Error("InternalError: Unexpected id");if(has("esri-2d-update-debug")){const{id:e,level:t}=this._pendingLevelUpdate;console.debug(`FeatureContainer.applyLevelMeshUpdate(level=${t}, id=${e})`)}const{level:t,messages:r}=this._pendingLevelUpdate,s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.enqueueLevelReplace(t,r),this._pendingLevelUpdate=null,this.requestRender()}lockForOverrides(){this._renderState.value?.lockUploads(),this._lockStatisticUpdates=!0,this.attributeView.locked||(this.attributeView.lockTextureUploads(),this._shouldUnlockAttributeView=!0)}unlockForOverrides(){this._renderState.value?.unlockUploads(),this._shouldUnlockAttributeView&&(this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this._shouldUnlockAttributeView=!1),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this._renderState.value?.flush(this.attributeView.currentEpoch),this.requestRender()}async updateRenderState(e){if(this._renderStateNext.value)throw new Error("InternalError: renderStateNext already exists");has("esri-2d-update-debug")&&console.debug(`Version[${e}] FeatureContainer.updateRenderState`),this._renderStateNext.value=new d(()=>this._stage,e=>this._subscriptions.get(e)?.version,e,this.tilingScheme)}async swapRenderState(){if(!this._renderStateNext.value)throw new Error("InternalError: renderStateNext not yet created");if(this._renderStateSwapResolver)throw new Error("InternalError: renderState swap already in progress");this._renderStateSwapResolver=Promise.withResolvers(),await this._renderStateSwapResolver.promise}async onMessage(e,r){if(t(r),!this._pendingLevelUpdate)return this._applyMessage(e);this._pendingLevelUpdate.messages.push(e)}removeTile(e){(this._renderState.value||this._renderStateNext.value)&&(this._renderState.value&&this._renderState.value.removeTile(e),this._renderStateNext.value&&this._renderStateNext.value.removeTile(e))}async hitTest(e,t){const r=c(e,t);if(!r)return console.warn("Unexpected hittest input:",e),{trueHitIds:[],candidateHitIds:[]};const s=this._hitTestsRequests.find(({query:e})=>r.hittestType===e.hittestType&&r.input===e.input&&r.options===e.options),n=Promise.withResolvers();if(s)s.resolvers.push(n);else{if("polygon"===r.hittestType&&(r.polygonMesh=await i.create(new p({path:[r.input.map(e=>[e.x,e.y])]})),!r.polygonMesh))return n.resolve({trueHitIds:[],candidateHitIds:[]}),n.promise;this._hitTestsRequests.push({query:r,resolvers:[n]})}return this.requestRender(),n.promise}getSortKeys(e){const t=new Set(e),r=new Map;for(const s of this.children)if(s.getSortKeys(t).forEach((e,t)=>r.set(t,e)),r.size===t.size)break;return r}get hasAnimation(){return this.hasLabels}doRender(e){const{minScale:t,maxScale:r}=this._layerView.layer.effectiveScaleRange,s=e.state.scale;s<=(t||1/0)&&s>=r&&super.doRender(e)}setStencilReference(e){if(null==this._getHeatmapInstance(e))super.setStencilReference(e);else for(const t of this.children)t.stencilRef=l.heatmap.getStencilReference(t)}createRenderParams(e){const t=super.createRenderParams(e);return t.referenceScale=this.referenceScale,t}_applyMessage(e){const t=e.inner;if(!this._subscriptions.has(t.id))return;const r=this._subscriptions.get(t.id);if(r.version!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${r.version}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}const s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.version!==t.version&&console.error(`InternalError: Version mismatch. [renderState: ${s.version}, message: ${t.version}]`),s.enqueueUpdate(e),this.requestRender()}_finializeUpdate(){if(!this._updateResolver)return;const{schema:e,deconflictionInfo:t,invalidateMesh:r}=this._updateResolver.inner;this._schema=e,this._deconflictionInfo=t,this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this.instanceStore.updateEnd(this._supportsInstanceCleanup),r&&(this.restartAllAnimations(),this.swapRenderState());const s="heatmap"===e.mesh.factory.symbology.type?"target-defer":"eager";this._presentation.updateStrategy(s),this._updateResolver.resolver.resolve(),this._updateResolver=null,this.requestRender()}_handleSwapRenderState(){if(this._renderStateSwapResolver&&this._renderStateNext.value){has("esri-2d-update-debug")&&console.debug(`Version[${this._renderStateNext.value}] FeatureContainer.update.swapRenderState`);const e=this._renderState.value,t=new Set,r=new Set;for(const s of e?.tiles()??[])s.decluttering&&t.add(s.id),s.presenting&&r.add(s.id);this._renderState.value=this._renderStateNext.value,this._renderStateNext.value=null,this._renderState.value.flush(this.attributeView.currentEpoch),e?.destroy(),this._renderStateSwapResolver.resolve(),this._renderStateSwapResolver=null;for(const s of this._renderState.value.tiles())t.has(s.id)&&(s.decluttering=!0),r.has(s.id)&&(s.presenting=!0);this.requestRender(),this.hasLabels&&this.requestDeclutter()}}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,0),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&u(e,!1,e=>{this._renderFeatures(e,1)})}_renderLabelPhase(e){this._renderFeatures(e,0)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,2),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,3),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const t=e.painter.effects.hittest,r=this._hitTestsRequests.shift(),s=r.query.hittestType;t.prepareResources(e,s),t.render(e,r,e=>{const s=t.getHittestableTiles(e,this.children,r.query);for(const t of s)this._renderTile(t,e,0)}),"polygon"===s&&r.query.polygonMesh&&r.query.polygonMesh.destroy(),t.readback(e,r)}_renderFeatures(e,t){const r=this._getHeatmapInstance(e);null!=r?this._renderHeatmapFeatures(e,t,r):this._renderGeometryFeatures(e,t)}_renderGeometryFeatures(e,t){for(const r of this.children)r.visible&&this._renderTile(r,e,t)}_renderHeatmapFeatures(e,t,r){for(const s of this.children)s.visible&&this._renderTile(s,e,t,19);r.techniqueRef.renderResolvePass(e,r)}_renderTile(e,t,r,s){t.selection=r;const i=e.getDisplayList()?.render(t,s)??!1;null==this._firstDrawTime&&i&&1===t.drawPhase&&(this._firstDrawTime=performance.now(),this._layerView.emitFirstDraw(this._firstDrawTime))}}function S(e){return 19===e.techniqueRef.type}export{g as FeatureContainer};
2
+ import has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{signal as r}from"../../../../core/signal.js";import{AFeatureContainer as s}from"../../engine/AFeatureContainer.js";import{ClipMesh as i}from"../../engine/webgl/ClipMesh.js";import{effectFlag0 as n,filterFlag0 as a}from"../../engine/webgl/definitions.js";import o from"../../engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js";import{Techniques as l}from"../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{FeatureTilePresentStrategy as h}from"./FeatureTilePresentStrategy.js";import{RenderState as d}from"./RenderState.js";import{renderHighlight as u}from"../support/util.js";import{createHittestQuery as c}from"../../support/hitTestUtils.js";import p from"../../../layers/support/Path.js";class f{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class _{constructor(e){this.level=e,this.id=performance.now(),this.messages=[]}}class v{constructor(e,t){this.id=e,this.version=t}}class g extends s{constructor(e){super(e.view.featuresTilingScheme),this.referenceScale=null,this._updatingChildren=r(!1),this._hitTestsRequests=[],this._firstDrawTime=null,this._renderState=r(null),this._renderStateNext=r(null),this._store=new o,this._subscriptions=new Map,this._presentation=new h,this._updateStatisticsRequests=[],this._lockStatisticUpdates=!1,this._supportsInstanceCleanup=!0,this._shouldUnlockAttributeView=!1,this._layerView=e,this.addTransitionable(this._layerView.featureEffectView)}destroy(){super.destroy(),this._renderState.value=e(this._renderState.value),this._renderStateNext.value=e(this._renderStateNext.value)}get batching(){return has("featurelayer-strict-draw-order")?1:has("featurelayer-force-marker-text-draw-order")?2:0}get firstDrawTime(){return this._firstDrawTime}get updating(){const e=this._updatingChildren.value,t=!this._renderState.value||this._renderState.value.updating,r=!!this._renderStateNext.value,s=this.attributeView.updating;return e||t||r||s}subscriptions(){return this._subscriptions.values()}get hasLabels(){return null!==this.labelSchema}get hasHighlight(){return this._layerView.hasHighlight}get children(){return this._renderState.value?this._renderState.value.tiles().filter(e=>e.presenting):[]}get usedMemory(){let e=0;return this._renderState.value&&(e+=this._renderState.value.usedMemory),this._renderStateNext.value&&(e+=this._renderStateNext.value.usedMemory),e+=this.attributeView.usedMemory,e+=this.labelStore.usedMemory,e}get instanceStore(){return this._store}get labelingCollisionInfos(){if(!this._deconflictionInfo)throw new Error("InternalError: DeconflictionInfo not defined. Was update called?");return this._deconflictionInfo}get labelSchema(){return this._schema?.mesh.factory.labels??null}get layerOrder(){return this._layerView.view.allLayerViews.items.indexOf(this._layerView)}get tiles(){return this._renderState.value?.tiles()}get requiresRefresh(){return!!this._renderState.value?.requiresRefresh}get _instanceStore(){return this._store}_getHeatmapInstance(e){if(null==this._instanceStore||!(e.drawPhase&l.heatmap.drawPhase))return null;for(const t of this._instanceStore.values())if(S(t))return t;return null}update(e,t){this._schema=e,this._deconflictionInfo=t}setCoverage(e){this._presentation.updateCoverage(e)}getPresenting(){const e=new Set;for(const t of this._renderState.value?.tiles()??[])t.presenting&&e.add(t.id);return e}beforeRender(e){if(super.beforeRender(e),this._renderState.value){for(const t of this._renderState.value.tiles())t.setTransform(e.state);if(!e.decluttering){this._presentation.update(this._renderState.value.tiles());for(const e of this._renderState.value.tiles())e.upload(this._instanceStore,this.batching)}this.labelStore.upload(e.context),this._updatingChildren.value=!this.children.every(e=>e.ended&&e.presenting)}}renderChildren(e){switch(super.renderChildren(e),e.drawPhase){case 1:return this._renderMapPhase(e);case 8:return this._renderHighlightPhase(e);case 2:return this._renderLabelPhase(e)}}afterRender(e){super.afterRender(e),e.decluttering||(this._finializeUpdate(),this._updateAttributeView(),this._handleSwapRenderState(),this._renderState.value?.update(this.attributeView.currentEpoch)),this._hitTestsRequests.length&&this.requestRender()}updateStart(e){return this.attributeView.lockTextureUploads(),this._supportsInstanceCleanup=!e&&"dictionary"!==this._schema?.mesh.factory.symbology.type,this.instanceStore.updateStart(this._supportsInstanceCleanup),this.instanceStore}async updateEnd(e,t,r){return this._updateResolver=new f({schema:e,deconflictionInfo:t,invalidateMesh:r}),this.requestRender(),e.mesh.factory.referenceScale&&(this.referenceScale=e.mesh.factory.referenceScale),this._updateResolver.resolver.promise}updateAttributeView(e){this.requestRender(),this.attributeView.requestUpdate(e)}updateSubscriptions(e){for(const{tileId:t,version:r}of e.subscribe){if(!this._subscriptions.has(t)){const e=new v(t,r);this._subscriptions.set(t,e);continue}this._subscriptions.get(t).version=r}for(const t of e.unsubscribe)this._subscriptions.delete(t),this.removeTile(t)}isFeatureFiltered(e){const t=this.attributeView.getFilterFlags(e),r=t&a,s=null==this._layerView.featureEffectView.featureEffect||this._layerView.featureEffectView.featureEffect.excludedLabelsVisible||t&n;return!(r&&s)}getDisplayStatistics(e,t){const r=this._statisticsByLevel.get(e);return r?r.get(t):null}updateStatistics(e,t){if(this._lockStatisticUpdates)return void this._updateStatisticsRequests.push({level:e,statistics:t});let r=this._statisticsByLevel.get(e);r||(r=new Map,this._statisticsByLevel.set(e,r));for(const s of t)r.set(s.fieldName,{minValue:s.minValue,maxValue:s.maxValue})}beginLevelMeshUpdate(e){if(null!=this._pendingLevelUpdate)throw new Error("InternalError: Pending level mesh update in progress");return this._pendingLevelUpdate=new _(e),has("esri-2d-update-debug")&&console.debug(`FeatureContainer.beginLevelMeshUpdate(level=${e}, id=${this._pendingLevelUpdate.id})`),this._pendingLevelUpdate.id}applyLevelMeshUpdate(e){if(null==this._pendingLevelUpdate)throw new Error("InternalError: No level mesh update to apply");if(this._pendingLevelUpdate.id!==e)throw new Error("InternalError: Unexpected id");if(has("esri-2d-update-debug")){const{id:e,level:t}=this._pendingLevelUpdate;console.debug(`FeatureContainer.applyLevelMeshUpdate(level=${t}, id=${e})`)}const{level:t,messages:r}=this._pendingLevelUpdate,s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.enqueueLevelReplace(t,r),this._pendingLevelUpdate=null,this.requestRender()}lockForOverrides(){this._renderState.value?.lockUploads(),this._lockStatisticUpdates=!0,this.attributeView.locked||(this.attributeView.lockTextureUploads(),this._shouldUnlockAttributeView=!0)}unlockForOverrides(){this._renderState.value?.unlockUploads(),this._shouldUnlockAttributeView&&(this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this._shouldUnlockAttributeView=!1),this._lockStatisticUpdates=!1;for(const e of this._updateStatisticsRequests)this.updateStatistics(e.level,e.statistics);this._updateStatisticsRequests=[],this._renderState.value?.flush(this.attributeView.currentEpoch),this.requestRender()}async updateRenderState(e){if(this._renderStateNext.value)throw new Error("InternalError: renderStateNext already exists");has("esri-2d-update-debug")&&console.debug(`Version[${e}] FeatureContainer.updateRenderState`),this._renderStateNext.value=new d(()=>this._stage,e=>this._subscriptions.get(e)?.version,e,this.tilingScheme,this.labelStore)}async swapRenderState(){if(!this._renderStateNext.value)throw new Error("InternalError: renderStateNext not yet created");if(this._renderStateSwapResolver)throw new Error("InternalError: renderState swap already in progress");this._renderStateSwapResolver=Promise.withResolvers(),await this._renderStateSwapResolver.promise}async onMessage(e,r){if(t(r),!this._pendingLevelUpdate)return this._applyMessage(e);this._pendingLevelUpdate.messages.push(e)}removeTile(e){(this._renderState.value||this._renderStateNext.value)&&(this._renderState.value&&this._renderState.value.removeTile(e),this._renderStateNext.value&&this._renderStateNext.value.removeTile(e))}async hitTest(e,t){const r=c(e,t);if(!r)return console.warn("Unexpected hittest input:",e),{trueHitIds:[],candidateHitIds:[]};const s=this._hitTestsRequests.find(({query:e})=>r.hittestType===e.hittestType&&r.input===e.input&&r.options===e.options),n=Promise.withResolvers();if(s)s.resolvers.push(n);else{if("polygon"===r.hittestType&&(r.polygonMesh=await i.create(new p({path:[r.input.map(e=>[e.x,e.y])]})),!r.polygonMesh))return n.resolve({trueHitIds:[],candidateHitIds:[]}),n.promise;this._hitTestsRequests.push({query:r,resolvers:[n]})}return this.requestRender(),n.promise}getSortKeys(e){const t=new Set(e),r=new Map;for(const s of this.children)if(s.getSortKeys(t).forEach((e,t)=>r.set(t,e)),r.size===t.size)break;return r}get hasAnimation(){return this.hasLabels}doRender(e){const{minScale:t,maxScale:r}=this._layerView.layer.effectiveScaleRange,s=e.state.scale;s<=(t||1/0)&&s>=r&&super.doRender(e)}setStencilReference(e){if(null==this._getHeatmapInstance(e))super.setStencilReference(e);else for(const t of this.children)t.stencilRef=l.heatmap.getStencilReference(t)}createRenderParams(e){const t=super.createRenderParams(e);return t.referenceScale=this.referenceScale,t}_applyMessage(e){const t=e.inner;if(!this._subscriptions.has(t.id))return;const r=this._subscriptions.get(t.id);if(r.version!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${r.version}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}const s=this._renderStateNext.value??this._renderState.value;if(!s)throw new Error("InternalError: No renderState defined");s.version!==t.version&&console.error(`InternalError: Version mismatch. [renderState: ${s.version}, message: ${t.version}]`),s.enqueueUpdate(e),this.requestRender()}_finializeUpdate(){if(!this._updateResolver)return;const{schema:e,deconflictionInfo:t,invalidateMesh:r}=this._updateResolver.inner;this._schema=e,this._deconflictionInfo=t,this.attributeView.unlockTextureUploads()&&this.hasLabels&&this.requestDeclutter(),this.instanceStore.updateEnd(this._supportsInstanceCleanup),r&&(this.restartAllAnimations(),this.swapRenderState());const s="heatmap"===e.mesh.factory.symbology.type?"target-defer":"eager";this._presentation.updateStrategy(s),this._updateResolver.resolver.resolve(),this._updateResolver=null,this.requestRender()}_handleSwapRenderState(){if(this._renderStateSwapResolver&&this._renderStateNext.value){has("esri-2d-update-debug")&&console.debug(`Version[${this._renderStateNext.value}] FeatureContainer.update.swapRenderState`);const e=this._renderState.value,t=new Set,r=new Set;for(const s of e?.tiles()??[])s.decluttering&&t.add(s.id),s.presenting&&r.add(s.id);this._renderState.value=this._renderStateNext.value,this._renderStateNext.value=null,this._renderState.value.flush(this.attributeView.currentEpoch),e?.destroy(),this._renderStateSwapResolver.resolve(),this._renderStateSwapResolver=null;for(const s of this._renderState.value.tiles())t.has(s.id)&&(s.decluttering=!0),r.has(s.id)&&(s.presenting=!0);this.requestRender(),this.hasLabels&&this.requestDeclutter()}}_renderMapPhase(e){this._layerView.featureEffectView.hasEffects?(this._renderOutsideEffect(e),this._renderInsideEffect(e)):this._renderFeatures(e,0),this._hitTestsRequests.length>0&&this._renderHittest(e)}_renderHighlightPhase(e){this.hasHighlight&&u(e,!1,e=>{this._renderFeatures(e,1)})}_renderLabelPhase(e){this._renderFeatures(e,0)}_renderInsideEffect(e){const t=e.painter.effects.insideEffect;t.bind(e),this._renderFeatures(e,2),t.draw(e,this._layerView.featureEffectView.includedEffects),t.unbind()}_renderOutsideEffect(e){const t=e.painter.effects.outsideEffect;t.bind(e),this._renderFeatures(e,3),t.draw(e,this._layerView.featureEffectView.excludedEffects),t.unbind()}_renderHittest(e){const t=e.painter.effects.hittest,r=this._hitTestsRequests.shift(),s=r.query.hittestType;t.prepareResources(e,s),t.render(e,r,e=>{const s=t.getHittestableTiles(e,this.children,r.query);for(const t of s)this._renderTile(t,e,0)}),"polygon"===s&&r.query.polygonMesh&&r.query.polygonMesh.destroy(),t.readback(e,r)}_renderFeatures(e,t){const r=this._getHeatmapInstance(e);null!=r?this._renderHeatmapFeatures(e,t,r):this._renderGeometryFeatures(e,t)}_renderGeometryFeatures(e,t){for(const r of this.children)r.visible&&this._renderTile(r,e,t)}_renderHeatmapFeatures(e,t,r){for(const s of this.children)s.visible&&this._renderTile(s,e,t,19);r.techniqueRef.renderResolvePass(e,r)}_renderTile(e,t,r,s){t.selection=r;const i=e.getDisplayList()?.render(t,s)??!1;null==this._firstDrawTime&&i&&1===t.drawPhase&&(this._firstDrawTime=performance.now(),this._layerView.emitFirstDraw(this._firstDrawTime))}}function S(e){return 19===e.techniqueRef.type}export{g as FeatureContainer};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../../core/Error.js";import{handlesGroup as t}from"../../../../core/handleUtils.js";import has from"../../../../core/has.js";import{nextTick as s}from"../../../../core/nextTick.js";import{throwIfNotAbortError as i,ignoreAbortErrors as r}from"../../../../core/promiseUtils.js";import o from"../../../../core/RandomLCG.js";import{watch as n}from"../../../../core/reactiveUtils.js";import{pt2px as u}from"../../../../core/screenUtils.js";import{ignoreConnectionErrors as a}from"../../../../core/workers/utils.js";import d from"../../../../layers/support/TileInfo.js";import{tileSize as c}from"../../engine/webgl/definitions.js";import{PipelineConnectionHandlers as p}from"./PipelineConnectionHandlers.js";import h from"./Processor.js";import{FeatureSource as l}from"./sources/FeatureSource.js";import{FeatureTileSubscription as _}from"./sources/FeatureTileSubscription.js";import{Tile as g}from"./support/Tile.js";import f from"../../tiling/TileInfoView.js";class b{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class m{constructor(){this._aggregateAdapter={getFeatureObjectIds:e=>this._processor.getFeatureObjectIdsForAggregate(e)},this._subscriptions=new Map,this._updateRequested=!1,this._didSourceRefresh=!1,this._refreshRequested=!0,this._updateSubscriptionRequests=[]}destroy(){this._subscriptions.clear(),this._processor?.destroy(),this._source?.destroy(),this._handles?.remove(),this._updateOverridesRequest=null,this._tileInfoView=null}onAttach(e){has("esri-2d-update-debug")&&console.debug("Pipeline.onAttach");const s=this._connection,i=d.fromJSON(e.tileInfoJSON);this._tileInfoView=new f(i),this._viewExtent=e.initialViewExtent,this._source=new l(this._aggregateAdapter,this._subscriptions,s),this._processor=new h(s,this._source),this._handles=t([this._source.store.events.on("changed",()=>this._requestUpdate()),this._source.store.events.on("refresh",()=>this._requestRefresh()),n(()=>this._source.updateTracking.updating,()=>{this._requestUpdate(),r(this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0}))})])}onDetach(){has("esri-2d-update-debug")&&console.debug("Pipeline.onDetach"),this.destroy()}set remoteClient(e){this._connection=new p(e)}get features(){const t=this._source?.queryEngine;if(!t)throw new e("no-queryEngine","No query engine defined");return t}get aggregates(){const t=this._processor?.aggregateQueryEngine;if(!t)throw new e("no-queryEngine","No aggregate query engine defined");return t}get streamMessenger(){return this._source.streamMessenger}getUsedMemory(){return this._source.usedMemory+this._processor.usedMemory}getDisplayFeatures(e){return this._processor.getDisplayFeatures(e)}getDisplayIds(e){return this._processor.getDisplayIds(e)}getObjectIdsFromGlobalIds(e){return this._source.getObjectIdsFromGlobalIds(e)}updateStationaryExtent(e,t){t&&(this._refreshRequested=!0,this._requestUpdate()),this._viewExtent=e}async updateSchema(e){return has("esri-2d-update-debug")&&this._updateSchemaRequest&&console.error("InternalError: Schema already updating"),this._updateSchemaRequest=new b({version:e}),this._requestUpdate(),this._updateSchemaRequest.resolver.promise}updateSubscriptions(e){const t=new b(e);return this._updateSubscriptionRequests.push(t),this._requestUpdate(),t.resolver.promise}async onOverride(t){if(null!=this._updateOverridesRequest)throw new e("featurelayer","InternalError - Already processing an edit");this._updateOverridesRequest=new b(t);const s=this._updateOverridesRequest.resolver.promise;return this._requestUpdate(),s}queryStatistics(){return this._source.statistics.toJSON()}async queryVisibleFeatures(e,t){return this.features.executeQuery(e,t)}async queryHeatmapStatistics(e){const t=Math.round(u(e.radius));let s=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const r="string"==typeof e.fieldOffset,o=e.fieldOffset??0,n=Array.from(this._subscriptions.values()),a=this._source.chunks(),d=t**2,p=3/(Math.PI*d),h=2*t,l=Math.ceil(c/h);for(const u of n){const t=u.tile,n=new Float64Array(l*l);for(const s of a){const i=s.getTileReader(t);if(!i)continue;const u=i.getCursor();for(;u.next();){let t=1;if(null!=e.field){const s=u.readAttribute(e.field);t=r?-1*+s:+s+o}const s=u.readXForDisplay()/h,i=u.readYForDisplay()/h,a=Math.floor(s),c=Math.floor(i);if(a<0||c<0||a>=l||c>=l)continue;const _=((.5+a-s)*h)**2+((.5+c-i)*h)**2;if(_>d)continue;const g=t*(p*(1-_/d)**2);n[c+a*l]+=g}}for(let e=0;e<n.length;e++)s=Math.min(s,n[e]),i=Math.max(i,n[e])}return{max:i,min:s}}async getSampleFeatures(e){const t=this._source.chunks();if(t.reduce((e,t)=>e+t.size(),0)<=e.minFeatureCount){if(!this._source.updateTracking.updating){const e=[];return this._source.store.forEachUnsafe(t=>e.push(t.readLegacyFeatureWorldSpace())),e}return null}const s=new Set,i=[],r=t.map(e=>e.reader.getCursor()),n=new o,u=3*e.sampleSize;for(let o=0;o<u&&i.length<e.sampleSize;o++){const e=r[n.getIntRange(0,t.length-1)];if(0===e.getSize())continue;const o=n.getIntRange(0,e.getSize()-1);e.setIndex(o);const u=e.getObjectId();s.has(u)||(s.add(u),i.push(e.readLegacyFeatureWorldSpace()))}return i.length>=e.sampleSize?i:null}_requestUpdate(){this._updateRequested||(this._updateRequested=!0,s(()=>this._scheduleNextUpdate()))}_requestRefresh(){this._didSourceRefresh=!0,this._requestUpdate()}_scheduleNextUpdate(){this._updateRequested&&(this._ongoingUpdate||(this._ongoingUpdate=a(this._doUpdate()).finally(()=>{this._ongoingUpdate=null,this._scheduleNextUpdate()}),this._updateRequested=!1))}_subscribe(e){const t=e.tileId;if(this._subscriptions.has(t))return;has("esri-2d-update-debug")&&console.debug(`Tile[${t}] Pipeline.subscribe`);const s=new g(this._tileInfoView,t),i=new _(s,e.version);this._subscriptions.set(t,i),this._source.onSubscribe(i),this._processor.onSubscribe(i)}_unsubscribe(e){const t=this._subscriptions.get(e);t&&(has("esri-2d-update-debug")&&console.debug(`Tile[${e}] Pipeline.unsubscribe`),t.abort(),this._source.onUnsubscribe(t),this._processor.onUnsubscribe(t),this._subscriptions.delete(t.key.id))}async _doUpdate(){if(has("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateStart"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0}),this._updateSubscriptionRequests.length){const e=this._updateSubscriptionRequests;this._updateSubscriptionRequests=[];for(const t of e)this._doUpdateSubscriptions(t.inner),t.resolver.resolve()}const e=this._updateSchemaRequest;this._updateSchemaRequest=null;let t=!1;if(null!=e){const{version:s}=e.inner,i=await this._connection.layerView.updateSchemaStart();i&&(t=await this._doUpdateSchema(i,s))}const s=this._updateOverridesRequest;if(this._updateOverridesRequest=null,null!=s){has("esri-2d-update-debug")&&console.debug("Pipeline.applyOverride",s.inner),null!=s.inner.historicMoment&&this._source.unsafeSetQueryHistoricMoment(s.inner.historicMoment);const e=await this._source.normalizeOverrides(s.inner);await this._source.applyOverride(e),has("esri-2d-update-debug")&&console.debug("Pipeline.endOverride",s.inner)}await this._source.applyCacheUpdate();const r=this._source.chunks(),o=this._source.updateTracking.updating;this._processor.requiresInvalidation(r)&&(t=!0),this._didSourceRefresh&&(t=!0,this._didSourceRefresh=!1),this._refreshRequested&&(this._refreshRequested=!1,t=!0),t&&(this._processor.invalidate(),await this._connection.container.updateRenderState(this._processor.version));const n=this._source.cleanup();this._processor.removeChunks(n);try{const e=this._source.takeOverrideUpdate();if(null!=e&&this._subscriptions.size){has("esri-2d-update-debug")&&console.debug("Pipeline.applyOverrideChangesStart"),await this._connection.container.lockForOverrides();try{await this._processor.applyOverrideUpdate(e,this._viewExtent)}catch(u){has("esri-2d-update-debug")&&console.debug("InternalError",u)}await this._connection.container.unlockForOverrides(),has("esri-2d-update-debug")&&console.debug("Pipeline.applyOverrideChangesEnd")}this._subscriptions.size&&(has("esri-2d-update-debug")&&console.debug("Pipeline.updateChunksStart"),await this._processor.updateChunks(r,o,this._viewExtent),has("esri-2d-update-debug")&&console.debug("Pipeline.updateChunksEnd"))}catch(u){i(u)}e?await this._connection.layerView.updateSchemaEnd(t):t&&await this._connection.container.swapRenderState(),null!=s&&s.resolver.resolve(),null!=e&&e.resolver.resolve(),this._connection.onEvent({type:"performance",usedMemory:this.getUsedMemory()}),this._updateRequested?(has("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateEnd [updateRequested=true]"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0})):(has("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateEnd [updateRequested=false, After flush]"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:this._updateRequested}))}async _doUpdateSchema(e,t){has("esri-2d-update-debug")&&console.debug(`Version[${t}] Pipeline.updateStart`,{schema:e});const s={tileInfo:this._tileInfoView?.tileInfo},i=await this._source.update(e.source,e.processor.storage.filters,t),r=Array.from(this._subscriptions.values()),o=this._processor.update(e,t,s,i,r);return has("esri-2d-update-debug")&&console.debug(`Version[${t}] Pipeline.updateEnd`),o}_doUpdateSubscriptions(e){has("esri-2d-update-debug")&&console.debug("Pipeline.updateSubscriptions",e);for(const t of e.subscribe)this._subscribe(t);for(const t of e.unsubscribe)this._unsubscribe(t)}}export{m as default};
2
+ import e from"../../../../core/Error.js";import{handlesGroup as t}from"../../../../core/handleUtils.js";import has from"../../../../core/has.js";import{nextTick as s}from"../../../../core/nextTick.js";import{throwIfNotAbortError as i,ignoreAbortErrors as r}from"../../../../core/promiseUtils.js";import o from"../../../../core/RandomLCG.js";import{watch as n}from"../../../../core/reactiveUtils.js";import{pt2px as u}from"../../../../core/screenUtils.js";import{ignoreConnectionErrors as a}from"../../../../core/workers/utils.js";import d from"../../../../layers/support/TileInfo.js";import{tileSize as c}from"../../engine/webgl/definitions.js";import{PipelineConnectionHandlers as p}from"./PipelineConnectionHandlers.js";import h from"./Processor.js";import{FeatureSource as l}from"./sources/FeatureSource.js";import{FeatureTileSubscription as _}from"./sources/FeatureTileSubscription.js";import{Tile as g}from"./support/Tile.js";import f from"../../tiling/TileInfoView.js";class b{constructor(e){this.inner=e,this.resolver=Promise.withResolvers()}}class m{constructor(){this._aggregateAdapter={getFeatureObjectIds:e=>this._processor.getFeatureObjectIdsForAggregate(e)},this._subscriptions=new Map,this._updateRequested=!1,this._didSourceRefresh=!1,this._refreshRequested=!0,this._updateSubscriptionRequests=[]}destroy(){this._subscriptions.clear(),this._processor?.destroy(),this._source?.destroy(),this._handles?.remove(),this._updateOverridesRequest=null,this._tileInfoView=null}onAttach(e){has("esri-2d-update-debug")&&console.debug("Pipeline.onAttach");const s=this._connection,i=d.fromJSON(e.tileInfoJSON);this._tileInfoView=new f(i),this._viewExtent=e.initialViewExtent,this._source=new l(this._aggregateAdapter,this._subscriptions,s),this._processor=new h(s,this._source),this._handles=t([this._source.store.events.on("changed",()=>this._requestUpdate()),this._source.store.events.on("refresh",()=>this._requestRefresh()),n(()=>this._source.updateTracking.updating,()=>{this._requestUpdate(),r(this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0}))})])}onDetach(){has("esri-2d-update-debug")&&console.debug("Pipeline.onDetach"),this.destroy()}set remoteClient(e){this._connection=new p(e)}get features(){const t=this._source?.queryEngine;if(!t)throw new e("no-queryEngine","No query engine defined");return t}get aggregates(){const t=this._processor?.aggregateQueryEngine;if(!t)throw new e("no-queryEngine","No aggregate query engine defined");return t}get streamMessenger(){return this._source.streamMessenger}getUsedMemory(){return this._source.usedMemory+this._processor.usedMemory}getDisplayFeatures(e){return this._processor.getDisplayFeatures(e)}getDisplayIds(e){return this._processor.getDisplayIds(e)}getObjectIdsFromGlobalIds(e){return this._source.getObjectIdsFromGlobalIds(e)}updateViewExtent(e,t){t&&(this._refreshRequested=!0,this._requestUpdate()),this._viewExtent=e}async updateSchema(e){return has("esri-2d-update-debug")&&this._updateSchemaRequest&&console.error("InternalError: Schema already updating"),this._updateSchemaRequest=new b({version:e}),this._requestUpdate(),this._updateSchemaRequest.resolver.promise}updateSubscriptions(e){const t=new b(e);return this._updateSubscriptionRequests.push(t),this._requestUpdate(),t.resolver.promise}async onOverride(t){if(null!=this._updateOverridesRequest)throw new e("featurelayer","InternalError - Already processing an edit");this._updateOverridesRequest=new b(t);const s=this._updateOverridesRequest.resolver.promise;return this._requestUpdate(),s}queryStatistics(){return this._source.statistics.toJSON()}async queryVisibleFeatures(e,t){return this.features.executeQuery(e,t)}async queryHeatmapStatistics(e){const t=Math.round(u(e.radius));let s=Number.POSITIVE_INFINITY,i=Number.NEGATIVE_INFINITY;const r="string"==typeof e.fieldOffset,o=e.fieldOffset??0,n=Array.from(this._subscriptions.values()),a=this._source.chunks(),d=t**2,p=3/(Math.PI*d),h=2*t,l=Math.ceil(c/h);for(const u of n){const t=u.tile,n=new Float64Array(l*l);for(const s of a){const i=s.getTileReader(t);if(!i)continue;const u=i.getCursor();for(;u.next();){let t=1;if(null!=e.field){const s=u.readAttribute(e.field);t=r?-1*+s:+s+o}const s=u.readXForDisplay()/h,i=u.readYForDisplay()/h,a=Math.floor(s),c=Math.floor(i);if(a<0||c<0||a>=l||c>=l)continue;const _=((.5+a-s)*h)**2+((.5+c-i)*h)**2;if(_>d)continue;const g=t*(p*(1-_/d)**2);n[c+a*l]+=g}}for(let e=0;e<n.length;e++)s=Math.min(s,n[e]),i=Math.max(i,n[e])}return{max:i,min:s}}async getSampleFeatures(e){const t=this._source.chunks();if(t.reduce((e,t)=>e+t.size(),0)<=e.minFeatureCount){if(!this._source.updateTracking.updating){const e=[];return this._source.store.forEachUnsafe(t=>e.push(t.readLegacyFeatureWorldSpace())),e}return null}const s=new Set,i=[],r=t.map(e=>e.reader.getCursor()),n=new o,u=3*e.sampleSize;for(let o=0;o<u&&i.length<e.sampleSize;o++){const e=r[n.getIntRange(0,t.length-1)];if(0===e.getSize())continue;const o=n.getIntRange(0,e.getSize()-1);e.setIndex(o);const u=e.getObjectId();s.has(u)||(s.add(u),i.push(e.readLegacyFeatureWorldSpace()))}return i.length>=e.sampleSize?i:null}_requestUpdate(){this._updateRequested||(this._updateRequested=!0,s(()=>this._scheduleNextUpdate()))}_requestRefresh(){this._didSourceRefresh=!0,this._requestUpdate()}_scheduleNextUpdate(){this._updateRequested&&(this._ongoingUpdate||(this._ongoingUpdate=a(this._doUpdate()).finally(()=>{this._ongoingUpdate=null,this._scheduleNextUpdate()}),this._updateRequested=!1))}_subscribe(e){const t=e.tileId;if(this._subscriptions.has(t))return;has("esri-2d-update-debug")&&console.debug(`Tile[${t}] Pipeline.subscribe`);const s=new g(this._tileInfoView,t),i=new _(s,e.version);this._subscriptions.set(t,i),this._source.onSubscribe(i),this._processor.onSubscribe(i)}_unsubscribe(e){const t=this._subscriptions.get(e);t&&(has("esri-2d-update-debug")&&console.debug(`Tile[${e}] Pipeline.unsubscribe`),t.abort(),this._source.onUnsubscribe(t),this._processor.onUnsubscribe(t),this._subscriptions.delete(t.key.id))}async _doUpdate(){if(has("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateStart"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0}),this._updateSubscriptionRequests.length){const e=this._updateSubscriptionRequests;this._updateSubscriptionRequests=[];for(const t of e)this._doUpdateSubscriptions(t.inner),t.resolver.resolve()}const e=this._updateSchemaRequest;this._updateSchemaRequest=null;let t=!1;if(null!=e){const{version:s}=e.inner,i=await this._connection.layerView.updateSchemaStart();i&&(t=await this._doUpdateSchema(i,s))}const s=this._updateOverridesRequest;if(this._updateOverridesRequest=null,null!=s){has("esri-2d-update-debug")&&console.debug("Pipeline.applyOverride",s.inner),null!=s.inner.historicMoment&&this._source.unsafeSetQueryHistoricMoment(s.inner.historicMoment);const e=await this._source.normalizeOverrides(s.inner);await this._source.applyOverride(e),has("esri-2d-update-debug")&&console.debug("Pipeline.endOverride",s.inner)}await this._source.applyCacheUpdate();const r=this._source.chunks(),o=this._source.updateTracking.updating;this._processor.requiresInvalidation(r)&&(t=!0),this._didSourceRefresh&&(t=!0,this._didSourceRefresh=!1),this._refreshRequested&&(this._refreshRequested=!1,t=!0),t&&(this._processor.invalidate(),await this._connection.container.updateRenderState(this._processor.version));const n=this._source.cleanup();this._processor.removeChunks(n);try{const e=this._source.takeOverrideUpdate();if(null!=e&&this._subscriptions.size){has("esri-2d-update-debug")&&console.debug("Pipeline.applyOverrideChangesStart"),await this._connection.container.lockForOverrides();try{await this._processor.applyOverrideUpdate(e,this._viewExtent)}catch(u){has("esri-2d-update-debug")&&console.debug("InternalError",u)}await this._connection.container.unlockForOverrides(),has("esri-2d-update-debug")&&console.debug("Pipeline.applyOverrideChangesEnd")}this._subscriptions.size&&(has("esri-2d-update-debug")&&console.debug("Pipeline.updateChunksStart"),await this._processor.updateChunks(r,o,this._viewExtent),has("esri-2d-update-debug")&&console.debug("Pipeline.updateChunksEnd"))}catch(u){i(u)}e?await this._connection.layerView.updateSchemaEnd(t):t&&await this._connection.container.swapRenderState(),null!=s&&s.resolver.resolve(),null!=e&&e.resolver.resolve(),this._connection.onEvent({type:"performance",usedMemory:this.getUsedMemory()}),this._updateRequested?(has("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateEnd [updateRequested=true]"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:!0})):(has("esri-2d-update-debug")&&console.debug("Pipeline._doUpdateEnd [updateRequested=false, After flush]"),await this._connection.layerView.setUpdating({source:this._source.updateTracking.updating,pipeline:this._updateRequested}))}async _doUpdateSchema(e,t){has("esri-2d-update-debug")&&console.debug(`Version[${t}] Pipeline.updateStart`,{schema:e});const s={tileInfo:this._tileInfoView?.tileInfo},i=await this._source.update(e.source,e.processor.storage.filters,t),r=Array.from(this._subscriptions.values()),o=this._processor.update(e,t,s,i,r);return has("esri-2d-update-debug")&&console.debug(`Version[${t}] Pipeline.updateEnd`),o}_doUpdateSubscriptions(e){has("esri-2d-update-debug")&&console.debug("Pipeline.updateSubscriptions",e);for(const t of e.subscribe)this._subscribe(t);for(const t of e.unsubscribe)this._unsubscribe(t)}}export{m as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../../../core/CircularArray.js";import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{signal as s}from"../../../../core/signal.js";import{create as r}from"../../../../geometry/support/aaBoundingRect.js";import"../../tiling/TileInfoView.js";import n from"../../tiling/TileKey.js";import"../../tiling/TileQueue.js";import"../../tiling/TileStrategy.js";import{FeatureTile as o}from"../../engine/webgl/FeatureTile.js";const a=1e3;class d{constructor(t,i,r,n){this.getStage=t,this.getSubscriptionVersion=i,this.version=r,this._tileInfoView=n,this._pendingUpdates=new e(a),this._locked=!1,this._tiles=new Map,this._updating=s(!1)}destroy(){for(const e of this.tiles())this._fader?.unregisterFeatureTile(e),e.destroy();this._pendingUpdates.clear(),this._tiles.clear()}get _fader(){return this.getStage()?.labelManager.symbolFader}tiles(){return Array.from(this._tiles.values())}size(){return this._tiles.size}get usedMemory(){let e=0;for(const t of this._tiles.values())e+=t.usedMemory;for(const t of this._pendingUpdates.entries)t&&(e+=l(t)?t.messages.reduce((e,t)=>e+u(t.inner),0):u(t.inner));return e}get requiresRefresh(){for(const e of this._tiles.values())if(e.requiresRefresh)return!0;return!1}get updating(){return this._updating.value}getTile(e){return this._tiles.get(e)}setTiles(e){this._tiles.clear();for(const t of e)this._tiles.set(t.key.id,t)}lockUploads(){this._locked=!0}unlockUploads(){this._locked=!1}enqueueUpdate(e){this._pendingUpdates.enqueue(e),this._notify()}enqueueLevelReplace(e,t){this._pendingUpdates.enqueue({type:"level-replace",level:e,messages:t}),this._notify()}update(e){if(!this._locked)for(;this._pendingUpdates.size;){const t=this._pendingUpdates.peek();if(null==t||p(t)>e)break;this._applyUpdate(t),this._pendingUpdates.dequeue()}this._notify()}flush(e){for(;this._pendingUpdates.size;){const t=this._pendingUpdates.dequeue();if(null!=t){const i=p(t);i>e&&console.warn("Tried to flush RenderState, but patch more recent than current",{patchEpoch:i,currentEpoch:e}),this._applyUpdate(t)}}this._notify()}removeTile(e){const t=this._tiles.get(e);has("esri-2d-update-debug")&&console.debug(`Tile[${e}] RenderState.removeTile`),t&&(this._fader?.unregisterFeatureTile(t),t.destroy()),this._tiles.delete(e)}_clearLevelCpuState(e){for(const t of this._tiles.values())t.key.level===e&&t.clearCpuState()}_notify(){this._updating.mutate(e=>0!==this._pendingUpdates.size)}_applyUpdate(e){if(l(e)){this._clearLevelCpuState(e.level);for(const t of e.messages)this._updateTile(t)}else this._updateTile(e)}_updateTile(e){const{inner:t,objectIdMap:i}=e,s=this.getSubscriptionVersion(t.id);if(s!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${s}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}if(has("esri-2d-update-debug")){const e=t.debugInfo?.chunkId??"<EnsureEnd>";console.debug(`Version[${t.version}] Tile[${t.id}] Chunk[${e}] RenderState.updateTile [${t.type}]`,t)}const r=this._ensureTile(t.id);if("update"===t.type){const[e,...s]=t.modify;r.update({type:"update",modify:e,remove:t.remove,end:t.end,attributeEpoch:t.attributeEpoch,objectIdMap:i});for(const r of s){const e=this._tiles.get(r.tileId);e&&e.update({type:"update",modify:r,remove:t.remove,end:!1,isPixelBuffer:!0,attributeEpoch:null,objectIdMap:i})}return}if(null==t.append)return void r.update({type:"append",debugInfo:t.debugInfo,end:t.end,attributeEpoch:t.attributeEpoch,objectIdMap:i});const[n,...o]=t.append;r.update({type:"append",append:n,debugInfo:t.debugInfo,end:t.end,attributeEpoch:t.attributeEpoch,objectIdMap:i});for(const a of o){const e=this._tiles.get(a.tileId);e&&e.update({type:"update",modify:a,remove:[],sort:!1,end:!1,isPixelBuffer:!0,attributeEpoch:null,objectIdMap:i})}}_ensureTile(e){if(!this._tiles.has(e)){const t=this._createTile(e);this._copyPixelBufferedEntitiesInto(t),this._tiles.set(e,t)}return this._tiles.get(e)}_createTile(e){has("esri-2d-update-debug")&&console.debug(`Version[${this.version}] Tile[${e}] RenderState.createTile`);const s=new n(e),a=this._tileInfoView.getTileBounds(r(),s),d=a[0],u=a[3],l=this._tileInfoView.getTileResolution(s.level),p=new o(s,l,d,u,this._fader);if(this._fader?.registerFeatureTile(p),p.stage=this.getStage(),!p.stage){const e=new t("featurelayerview:webgl","Cannot create tile with empty stage");i.getLogger("esri.views.2d.layers.features.RenderState").error(e)}return p}_copyPixelBufferedEntitiesInto(e){let t=7;const i=this._tileInfoView.getLODInfoAt(e.key);for(let s=-1;s<=1;s++)for(let r=-1;r<=1;r++){if(0===s&&0===r)continue;const n=e.key.getNormalizedNeighbor(r,s,i).id,o=this._tiles.get(n);if(null!=o){const i=1<<t;e.copyPixelBufferedEntitesFrom(o,i,r,s)}t--}}}function u(e){switch(e.type){case"update":return e.modify.reduce((e,t)=>e+c(t),0);case"append":return e.append?e.append.reduce((e,t)=>e+c(t),0):0}}function l(e){return"type"in e&&"level-replace"===e.type}function p(e){if(!l(e))return e.inner.attributeEpoch;let t=-1/0;for(const i of e.messages)t=Math.max(t,i.inner.attributeEpoch);return t}function c(e){return e.entities.byteLength+e.data.reduce((e,t)=>e+f(t),0)}function f(e){return e.indices.byteLength+e.vertices.byteLength+(e.metrics?.byteLength??0)}export{d as RenderState};
2
+ import e from"../../../../core/CircularArray.js";import t from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{signal as s}from"../../../../core/signal.js";import{create as r}from"../../../../geometry/support/aaBoundingRect.js";import"../../tiling/TileInfoView.js";import n from"../../tiling/TileKey.js";import"../../tiling/TileQueue.js";import"../../tiling/TileStrategy.js";import{FeatureTile as o}from"../../engine/webgl/FeatureTile.js";const a=1e3;class d{constructor(t,i,r,n,o){this.getStage=t,this.getSubscriptionVersion=i,this.version=r,this._tileInfoView=n,this._labelStore=o,this._pendingUpdates=new e(a),this._locked=!1,this._tiles=new Map,this._updating=s(!1)}destroy(){for(const e of this.tiles())this._fader?.unregisterFeatureTile(e),e.destroy();this._pendingUpdates.clear(),this._tiles.clear()}get _fader(){return this.getStage()?.labelManager.symbolFader}tiles(){return Array.from(this._tiles.values())}size(){return this._tiles.size}get usedMemory(){let e=0;for(const t of this._tiles.values())e+=t.usedMemory;for(const t of this._pendingUpdates.entries)t&&(e+=u(t)?t.messages.reduce((e,t)=>e+l(t.inner),0):l(t.inner));return e}get requiresRefresh(){for(const e of this._tiles.values())if(e.requiresRefresh)return!0;return!1}get updating(){return this._updating.value}getTile(e){return this._tiles.get(e)}setTiles(e){this._tiles.clear();for(const t of e)this._tiles.set(t.key.id,t)}lockUploads(){this._locked=!0}unlockUploads(){this._locked=!1}enqueueUpdate(e){this._pendingUpdates.enqueue(e),this._notify()}enqueueLevelReplace(e,t){this._pendingUpdates.enqueue({type:"level-replace",level:e,messages:t}),this._notify()}update(e){if(!this._locked)for(;this._pendingUpdates.size;){const t=this._pendingUpdates.peek();if(null==t||p(t)>e)break;this._applyUpdate(t),this._pendingUpdates.dequeue()}this._notify()}flush(e){for(;this._pendingUpdates.size;){const t=this._pendingUpdates.dequeue();if(null!=t){const i=p(t);i>e&&console.warn("Tried to flush RenderState, but patch more recent than current",{patchEpoch:i,currentEpoch:e}),this._applyUpdate(t)}}this._notify()}removeTile(e){const t=this._tiles.get(e);has("esri-2d-update-debug")&&console.debug(`Tile[${e}] RenderState.removeTile`),t&&(this._fader?.unregisterFeatureTile(t),t.destroy()),this._tiles.delete(e)}_clearLevelCpuState(e){for(const t of this._tiles.values())t.key.level===e&&t.clearCpuState()}_notify(){this._updating.mutate(e=>0!==this._pendingUpdates.size)}_applyUpdate(e){if(u(e)){this._clearLevelCpuState(e.level);for(const t of e.messages)this._updateTile(t)}else this._updateTile(e)}_updateTile(e){const{inner:t,objectIdMap:i}=e,s=this.getSubscriptionVersion(t.id);if(s!==t.subscriptionVesrion){if(has("esri-2d-update-debug")){const e=`${t.subscriptionVesrion} != ${s}`;console.debug(`Version[${e}] Tile[${t.id}] FeatureContainer - Dropping message, outdated version]`,t)}return}if(has("esri-2d-update-debug")){const e=t.debugInfo?.chunkId??"<EnsureEnd>";console.debug(`Version[${t.version}] Tile[${t.id}] Chunk[${e}] RenderState.updateTile [${t.type}]`,t)}const r=this._ensureTile(t.id);if("update"===t.type){const[e,...s]=t.modify;r.update({type:"update",modify:e,remove:t.remove,end:t.end,attributeEpoch:t.attributeEpoch,objectIdMap:i});for(const r of s){const e=this._tiles.get(r.tileId);e&&e.update({type:"update",modify:r,remove:t.remove,end:!1,isPixelBuffer:!0,attributeEpoch:null,objectIdMap:i})}return}if(null==t.append)return void r.update({type:"append",debugInfo:t.debugInfo,end:t.end,attributeEpoch:t.attributeEpoch,objectIdMap:i});const[n,...o]=t.append;r.update({type:"append",append:n,debugInfo:t.debugInfo,end:t.end,attributeEpoch:t.attributeEpoch,objectIdMap:i});for(const a of o){const e=this._tiles.get(a.tileId);e&&e.update({type:"update",modify:a,remove:[],sort:!1,end:!1,isPixelBuffer:!0,attributeEpoch:null,objectIdMap:i})}}_ensureTile(e){if(!this._tiles.has(e)){const t=this._createTile(e);this._copyPixelBufferedEntitiesInto(t),this._tiles.set(e,t)}return this._tiles.get(e)}_createTile(e){has("esri-2d-update-debug")&&console.debug(`Version[${this.version}] Tile[${e}] RenderState.createTile`);const s=new n(e),a=this._tileInfoView.getTileBounds(r(),s),d=a[0],l=a[3],u=this._tileInfoView.getTileResolution(s.level),p=new o(s,u,d,l,this._labelStore,this._fader);if(this._fader?.registerFeatureTile(p),p.stage=this.getStage(),!p.stage){const e=new t("featurelayerview:webgl","Cannot create tile with empty stage");i.getLogger("esri.views.2d.layers.features.RenderState").error(e)}return p}_copyPixelBufferedEntitiesInto(e){let t=7;const i=this._tileInfoView.getLODInfoAt(e.key);for(let s=-1;s<=1;s++)for(let r=-1;r<=1;r++){if(0===s&&0===r)continue;const n=e.key.getNormalizedNeighbor(r,s,i).id,o=this._tiles.get(n);if(null!=o){const i=1<<t;e.copyPixelBufferedEntitesFrom(o,i,r,s)}t--}}}function l(e){switch(e.type){case"update":return e.modify.reduce((e,t)=>e+c(t),0);case"append":return e.append?e.append.reduce((e,t)=>e+c(t),0):0}}function u(e){return"type"in e&&"level-replace"===e.type}function p(e){if(!u(e))return e.inner.attributeEpoch;let t=-1/0;for(const i of e.messages)t=Math.max(t,i.inner.attributeEpoch);return t}function c(e){return e.entities.byteLength+e.data.reduce((e,t)=>e+h(t),0)}function h(e){return e.indices.byteLength+e.vertices.byteLength+(e.metrics?.byteLength??0)}export{d as RenderState};