@arcgis/core 5.2.0-next.5 → 5.2.0-next.7

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 (1098) hide show
  1. package/WebLinkChart.d.ts +1 -1
  2. package/WebMap.d.ts +2 -2
  3. package/WebScene.d.ts +3 -3
  4. package/analysis/SliceAnalysis.d.ts +1 -1
  5. package/applications/Components/analysisUtils.d.ts +24 -0
  6. package/applications/Components/analysisUtils.js +1 -1
  7. package/arcade/Dictionary.js +1 -1
  8. package/arcade/Feature.js +1 -1
  9. package/arcade/Pixel.js +1 -1
  10. package/arcade/Voxel.js +1 -1
  11. package/arcade/arcade.js +1 -1
  12. package/arcade/arcadeAsyncRuntime.js +1 -1
  13. package/arcade/arcadeCompiler.js +1 -1
  14. package/arcade/arcadeRuntime.js +1 -1
  15. package/arcade/containerUtils.js +1 -1
  16. package/arcade/debug.js +1 -1
  17. package/arcade/deepClone.js +1 -1
  18. package/arcade/featureSetUtils.js +1 -1
  19. package/arcade/featureset/actions/GroupBy.js +1 -1
  20. package/arcade/featureset/actions/OrderBy.js +1 -1
  21. package/arcade/functions/convertdirection.js +1 -1
  22. package/arcade/functions/date.js +1 -1
  23. package/arcade/functions/feature.js +1 -1
  24. package/arcade/functions/featuresetbase.js +1 -1
  25. package/arcade/functions/featuresetgeom.js +1 -1
  26. package/arcade/functions/featuresetstats.js +1 -1
  27. package/arcade/functions/featuresetstring.js +1 -1
  28. package/arcade/functions/fieldStats.js +1 -1
  29. package/arcade/functions/geomasync.js +1 -1
  30. package/arcade/functions/geometry.js +1 -1
  31. package/arcade/functions/geomsync.js +1 -1
  32. package/arcade/functions/knowledgegraph.js +1 -1
  33. package/arcade/functions/maths.js +1 -1
  34. package/arcade/functions/stats.js +1 -1
  35. package/arcade/functions/string.js +1 -1
  36. package/arcade/functions/track.js +1 -1
  37. package/arcade/geometry/constructors.js +1 -1
  38. package/arcade/geometry/functions.js +1 -1
  39. package/arcade/geometry/operators.js +1 -1
  40. package/arcade/languageUtils.js +1 -1
  41. package/arcade.d.ts +9 -9
  42. package/arcgisGlobal.d.ts +4 -0
  43. package/assets/components/assets/icon/orientedImageryFullSuperimpose16.json +1 -0
  44. package/assets/components/assets/icon/orientedImageryFullSuperimpose24.json +1 -0
  45. package/assets/components/assets/icon/orientedImageryFullSuperimpose32.json +1 -0
  46. package/assets/components/assets/icon/orientedImageryHalfSuperimpose16.json +1 -0
  47. package/assets/components/assets/icon/orientedImageryHalfSuperimpose24.json +1 -0
  48. package/assets/components/assets/icon/orientedImageryHalfSuperimpose32.json +1 -0
  49. package/assets/components/assets/icon/orientedImagerySceneOnly16.json +1 -0
  50. package/assets/components/assets/icon/orientedImagerySceneOnly24.json +1 -0
  51. package/assets/components/assets/icon/orientedImagerySceneOnly32.json +1 -0
  52. package/assets/components/assets/icon/parquetFeatureLayer16.json +1 -0
  53. package/assets/components/assets/icon/parquetFeatureLayer24.json +1 -0
  54. package/assets/components/assets/icon/parquetFeatureLayer32.json +1 -0
  55. package/assets/esri/core/workers/RemoteClient.js +1 -1
  56. package/assets/esri/core/workers/chunks/013708f40f811158d42c.js +1 -0
  57. package/assets/esri/core/workers/chunks/03354ad3d74d858173b4.js +1 -0
  58. package/assets/esri/core/workers/chunks/{544174c33628846284a1.js → 09a4139fc6d069ab6928.js} +1 -1
  59. package/assets/esri/core/workers/chunks/09d0e430c66788a2626f.js +640 -0
  60. package/assets/esri/core/workers/chunks/0a510acf50915e00c62b.js +1 -0
  61. package/assets/esri/core/workers/chunks/{7e0daf0864005cdd63c5.js → 0a780a883abfcdf0b900.js} +1 -1
  62. package/assets/esri/core/workers/chunks/{829a0583b8a228c65379.js → 0b169bb1969f86232a1a.js} +1 -1
  63. package/assets/esri/core/workers/chunks/0d9d33f29124d464a4cb.js +1 -0
  64. package/assets/esri/core/workers/chunks/0ded58ccb83f624f1460.js +1 -0
  65. package/assets/esri/core/workers/chunks/0f3654c8157ec8f22869.js +262 -0
  66. package/assets/esri/core/workers/chunks/119d352dd586f2bb61ec.js +1 -0
  67. package/assets/esri/core/workers/chunks/{8cbaaea72f4ca2f023be.js → 129fdd1636e67997337c.js} +1 -1
  68. package/assets/esri/core/workers/chunks/130784a27661de6b52a5.js +1 -0
  69. package/assets/esri/core/workers/chunks/{942e527b9b92999886c7.js → 145364aa20b4435294c2.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{9a3344f1dd22c425b8cc.js → 1595dc499a06b23b6a96.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{6c97b5bc408f051606d2.js → 166a0df6e37627e18976.js} +1 -1
  72. package/assets/esri/core/workers/chunks/168be2eac0fa3c67ae27.js +1 -0
  73. package/assets/esri/core/workers/chunks/{aea8e0577fb48d5c9577.js → 181e948d076a9a7aae8a.js} +1 -1
  74. package/assets/esri/core/workers/chunks/{176e676879666f784599.js → 18e7784f13a57a75585a.js} +1 -1
  75. package/assets/esri/core/workers/chunks/19dcae83be0fc0aced02.js +1 -0
  76. package/assets/esri/core/workers/chunks/{d66f68a811c90739951a.js → 1c029b03ed836f393a50.js} +1 -1
  77. package/assets/esri/core/workers/chunks/{0aaee272520c6e5bb617.js → 1c64e10f966e26af6fed.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{b5d0898406c7d6e6a717.js → 1dacc0b64bd27ce2de3a.js} +1 -1
  79. package/assets/esri/core/workers/chunks/1eabe746481e0b228498.js +1 -0
  80. package/assets/esri/core/workers/chunks/1eeb1edca0ad5db6917c.js +1 -0
  81. package/assets/esri/core/workers/chunks/{425c04b26a6ec6d04b08.js → 201007cf1a91e2b126fc.js} +1 -1
  82. package/assets/esri/core/workers/chunks/20d0adc678f11981059c.js +1 -0
  83. package/assets/esri/core/workers/chunks/{696967c8c6f53b94f851.js → 227eff8aa4a6f5f03bc2.js} +1 -1
  84. package/assets/esri/core/workers/chunks/{d21bf107698fef03125e.js → 238478cfe493fd4a6100.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{79b64a52ff57c40c7800.js → 2413b383b7f2bdcd4ced.js} +1 -1
  86. package/assets/esri/core/workers/chunks/24646a1176ce34039155.js +1 -0
  87. package/assets/esri/core/workers/chunks/24647e7424798dccdaf5.js +1 -0
  88. package/assets/esri/core/workers/chunks/{7601408e242dca1d25bd.js → 249616ea2d90d40a8299.js} +1 -1
  89. package/assets/esri/core/workers/chunks/277718031c903da2b3b9.js +1 -0
  90. package/assets/esri/core/workers/chunks/{7ed5b669010db58845f8.js → 294f2803aac000c99693.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{093f27e4e4781870b431.js → 297ae764445e6f73a5ea.js} +1 -1
  92. package/assets/esri/core/workers/chunks/2b36a54927f5a7281da3.js +1 -0
  93. package/assets/esri/core/workers/chunks/{be0eab592db0e651b023.js → 2b814bb51704a5b4fdc2.js} +6 -6
  94. package/assets/esri/core/workers/chunks/{a320c69bc7528ff0d0cf.js → 2c8584ec1c3c9fd5aba2.js} +1 -1
  95. package/assets/esri/core/workers/chunks/{6ca81e34854ce7ec6f6e.js → 2ce845c990bb4d701362.js} +1 -1
  96. package/assets/esri/core/workers/chunks/2d374cc8c54a722a7afe.js +1 -0
  97. package/assets/esri/core/workers/chunks/{0bd2b035c6ee89c725f9.js → 31442f25d550ead58fc4.js} +1 -1
  98. package/assets/esri/core/workers/chunks/3172d7fc23787a287191.js +1 -0
  99. package/assets/esri/core/workers/chunks/{8b8b63be961eb73250a0.js → 32323b0e0fcecd8f640e.js} +1 -1
  100. package/assets/esri/core/workers/chunks/33b4f5dfe1a16b59b010.js +1 -0
  101. package/assets/esri/core/workers/chunks/{86a767c2b0b1e37ff493.js → 33e0130e6a40fc768978.js} +1 -1
  102. package/assets/esri/core/workers/chunks/343ba5ea459e96ba79c6.js +1 -0
  103. package/assets/esri/core/workers/chunks/359d3acb3953e64e5a78.js +1 -0
  104. package/assets/esri/core/workers/chunks/388e71e8f2ec41bfa5a9.js +1 -0
  105. package/assets/esri/core/workers/chunks/{a2159df718a7f2f59271.js → 38a2f34661563c7c29c1.js} +1 -1
  106. package/assets/esri/core/workers/chunks/{dd58bc675b85b4d90afa.js → 39974d1e5d3820ef1680.js} +1 -1
  107. package/assets/esri/core/workers/chunks/3a5c1c501808352857bd.js +1 -0
  108. package/assets/esri/core/workers/chunks/3aacaa1be5efeac23a37.js +1 -0
  109. package/assets/esri/core/workers/chunks/{d19600336cb6023d3e34.js → 3b765a8cac9e92f644f2.js} +1 -1
  110. package/assets/esri/core/workers/chunks/{a96c7432ca97cbeef4b8.js → 3db898a38a7c5f0efb48.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{b7a0a5b895ddd2d3d038.js → 3df5394b17e9659ecb8f.js} +1 -1
  112. package/assets/esri/core/workers/chunks/3e012cd3ca4451f89f59.js +1 -0
  113. package/assets/esri/core/workers/chunks/3fbb6ff940156a981983.js +1 -0
  114. package/assets/esri/core/workers/chunks/{c06ae3a6ecc4a4fc67b2.js → 40910c69307e2d2d3f28.js} +1 -1
  115. package/assets/esri/core/workers/chunks/{55d168c13491fcdfb284.js → 40c4e14e7bb505ef10a3.js} +1 -1
  116. package/assets/esri/core/workers/chunks/4104fa1ede36bcee9be5.js +1 -0
  117. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +1 -0
  118. package/assets/esri/core/workers/chunks/{0881929a4a457f94f317.js → 4301cb9670fa7c907460.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{299b4eecd0288348c971.js → 45323491f9005629c602.js} +1 -1
  120. package/assets/esri/core/workers/chunks/46d0a25d33b5b328cfce.js +1 -0
  121. package/assets/esri/core/workers/chunks/46d3ddf62fa7a76dd57d.js +1 -0
  122. package/assets/esri/core/workers/chunks/{b002304a45856b024b46.js → 4714241189c13d0db897.js} +1 -1
  123. package/assets/esri/core/workers/chunks/{d9d716bfd0aab30b6caf.js → 47656ec12401e53f4bd3.js} +1 -1
  124. package/assets/esri/core/workers/chunks/{c0d7e4afbad0b20e2502.js → 47dd2bfecc5c4b5f10f0.js} +1 -1
  125. package/assets/esri/core/workers/chunks/{f7698c855800e0af3038.js → 4845df00f6ebcce6ea3e.js} +1 -1
  126. package/assets/esri/core/workers/chunks/485d20152495c27b8074.js +1 -0
  127. package/assets/esri/core/workers/chunks/{cf3036711bbe6095eaed.js → 4894997bfa438f66da36.js} +1 -1
  128. package/assets/esri/core/workers/chunks/4a23b27bfbcfa08fd9a7.js +1 -0
  129. package/assets/esri/core/workers/chunks/{8b5ee6be52e892fbd325.js → 4a9dd9f8aa98882218f3.js} +1 -1
  130. package/assets/esri/core/workers/chunks/4c54cb80c4dc9bbbd395.js +1 -0
  131. package/assets/esri/core/workers/chunks/{325bfac7cfa28a6d568f.js → 520e0e5307eef27becc6.js} +1 -1
  132. package/assets/esri/core/workers/chunks/{a0296e6d6c37b861c5fb.js → 5359ff9492383c5bd9b1.js} +1 -1
  133. package/assets/esri/core/workers/chunks/{728ad5bbbcbf88d6249f.js → 537c5dd4cd0a067199d1.js} +1 -1
  134. package/assets/esri/core/workers/chunks/53d165b4f30fd64e5d8a.js +1 -0
  135. package/assets/esri/core/workers/chunks/542f5469f7b42026b24f.js +1 -0
  136. package/assets/esri/core/workers/chunks/54d7f07e3348ddb6d9a2.js +1 -0
  137. package/assets/esri/core/workers/chunks/{48440a071a37590846ff.js → 54dad475dc806a38c287.js} +1 -1
  138. package/assets/esri/core/workers/chunks/5500dc39e11a0057ae16.js +1 -0
  139. package/assets/esri/core/workers/chunks/5553279998ae07b60f5f.js +1 -0
  140. package/assets/esri/core/workers/chunks/{2b2a09ce14d00b4b1187.js → 58155f24f8ed6aca7a21.js} +1 -1
  141. package/assets/esri/core/workers/chunks/{224a9f39876aa426a9bc.js → 5838f46d341d2fde42ee.js} +1 -1
  142. package/assets/esri/core/workers/chunks/592a599f514de373dead.js +1 -0
  143. package/assets/esri/core/workers/chunks/{1ff61d8a8ea060e78b83.js → 5aba23584e0b230c75f5.js} +1 -1
  144. package/assets/esri/core/workers/chunks/{7dc2c21d61ba66a3f461.js → 5b238f9c345f10c5c2fa.js} +1 -1
  145. package/assets/esri/core/workers/chunks/{8d4881c879c86b353e08.js → 5cb1b950249d651f3837.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{85bba0db8a7a5fc1be44.js → 5e3e0d7b85dfd52d1c7d.js} +1 -1
  147. package/assets/esri/core/workers/chunks/5f9bacee6fbf9ac1bca0.js +1 -0
  148. package/assets/esri/core/workers/chunks/60915a3708a34da1977e.js +1 -0
  149. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +1 -0
  150. package/assets/esri/core/workers/chunks/{6a53c8db554be55c5885.js → 62dfbdc847be4800e833.js} +44 -32
  151. package/assets/esri/core/workers/chunks/62e77e3c5ca9b4887923.js +2 -0
  152. package/assets/esri/core/workers/chunks/{7a3b05e25de2ff150f38.js → 62fc3c367f736c73b0d7.js} +1 -1
  153. package/assets/esri/core/workers/chunks/{4e97c01698ef36cc5e0e.js → 643c33a98f2d30a92001.js} +1 -1
  154. package/assets/esri/core/workers/chunks/{69a1cbf0af059548f96a.js → 64daa2a714e59d22bbd4.js} +1 -1
  155. package/assets/esri/core/workers/chunks/65520a443e3811255bea.js +1 -0
  156. package/assets/esri/core/workers/chunks/{7c86099ed17f420b0489.js → 67ebde34377f98d17cda.js} +1 -1
  157. package/assets/esri/core/workers/chunks/{e6e15e9e890b864fb395.js → 6a5356ebed70e0f8f979.js} +1 -1
  158. package/assets/esri/core/workers/chunks/{cdef9c3f80588ae45a04.js → 6c9933f948efd7923aa1.js} +1 -1
  159. package/assets/esri/core/workers/chunks/{fe2325efd0d8ad8369ed.js → 6cab67fc7044ee9b863b.js} +1 -1
  160. package/assets/esri/core/workers/chunks/{aea384f4d88121da8f54.js → 6f0341cfa4c68e6e60b3.js} +1 -1
  161. package/assets/esri/core/workers/chunks/737de87bfb9b5f5a9c6c.js +1 -0
  162. package/assets/esri/core/workers/chunks/{558606a1af22e4a0d536.js → 73c355b895fd6a34fcb8.js} +1 -1
  163. package/assets/esri/core/workers/chunks/{7f1fcddc8dd42a1b67d9.js → 75839240022b280929f7.js} +1 -1
  164. package/assets/esri/core/workers/chunks/{b09ae8eb5e97fb27382f.js → 76589434d573111a8fb4.js} +1 -1
  165. package/assets/esri/core/workers/chunks/{1f3a676e7a4eae5ad566.js → 767ea5b455b3823afd09.js} +1 -1
  166. package/assets/esri/core/workers/chunks/77a4f6f224d7ca4b69f4.js +1 -0
  167. package/assets/esri/core/workers/chunks/78aa5bc6af2758da20d0.js +1 -0
  168. package/assets/esri/core/workers/chunks/79f2d4b3af5776ec2045.js +1 -0
  169. package/assets/esri/core/workers/chunks/{c8dedc010fcc2382af24.js → 7b564226def99fcf79d8.js} +1 -1
  170. package/assets/esri/core/workers/chunks/7cadb872b9ca96eedca5.js +1 -0
  171. package/assets/esri/core/workers/chunks/7df94cb985db41815fad.js +2 -0
  172. package/assets/esri/core/workers/chunks/7ed3d6c72f23c628df3b.js +1 -0
  173. package/assets/esri/core/workers/chunks/{ed939fd5d3827a3f70e0.js → 81e3bd1a0634ddc2b833.js} +1 -1
  174. package/assets/esri/core/workers/chunks/{062aadf426fe97a76bbb.js → 8351012ceb466f01b8fd.js} +1 -1
  175. package/assets/esri/core/workers/chunks/8407c91cce31e087b41b.js +1 -0
  176. package/assets/esri/core/workers/chunks/8419934bec7723b0feef.js +1 -0
  177. package/assets/esri/core/workers/chunks/875cce0be4f6c89f80f3.js +2 -0
  178. package/assets/esri/core/workers/chunks/{c319c3b85cdec73a9f45.js → 877c848beaf9a939862c.js} +1 -1
  179. package/assets/esri/core/workers/chunks/{24acf3dd541347c2b297.js → 882ee7ed8a3a0215f9b9.js} +1 -1
  180. package/assets/esri/core/workers/chunks/{ae74f722fb385e45fcf1.js → 893c0d28a5bf3f9f29f1.js} +1 -1
  181. package/assets/esri/core/workers/chunks/{98b4408e12684e37b395.js → 8a48a6760c33ed50b650.js} +1 -1
  182. package/assets/esri/core/workers/chunks/8bdca6f06c8b5fedd917.js +1 -0
  183. package/assets/esri/core/workers/chunks/8e1865392681d390ab2e.js +1 -0
  184. package/assets/esri/core/workers/chunks/{566c36032b456ec5b5d7.js → 90953a827bc89d0e6bd5.js} +1 -1
  185. package/assets/esri/core/workers/chunks/92ab5886aa2d8b9b179f.js +1 -0
  186. package/assets/esri/core/workers/chunks/{4e676e888a935c507d90.js → 93d4bda22bde33fafa57.js} +1 -1
  187. package/assets/esri/core/workers/chunks/9482a6d7baa24bbf5693.js +1 -0
  188. package/assets/esri/core/workers/chunks/94fac056e14caed09682.js +1 -0
  189. package/assets/esri/core/workers/chunks/{fbb23db01f3cf629d32e.js → 992a90ecbab931198fd0.js} +1 -1
  190. package/assets/esri/core/workers/chunks/{1765042635084f75d2b3.js → 9b676606bf839b7aa433.js} +1 -1
  191. package/assets/esri/core/workers/chunks/{f931d560f3f14598f454.js → 9dcfaca1f4fa8c8026ac.js} +1 -1
  192. package/assets/esri/core/workers/chunks/{5570d47533efab56c732.js → 9f4681713f03365a2a53.js} +1 -1
  193. package/assets/esri/core/workers/chunks/a0fa60a24e58f7a47e41.js +1 -0
  194. package/assets/esri/core/workers/chunks/a261f4c22224511fdfff.js +1 -0
  195. package/assets/esri/core/workers/chunks/{ea8f642b1db933d2c26f.js → a2ac139d0975085279a6.js} +1 -1
  196. package/assets/esri/core/workers/chunks/{b32a13972cb3de652339.js → a320998f18922a35899f.js} +1 -1
  197. package/assets/esri/core/workers/chunks/{aa55923ca939a0d4606c.js → a3a28c4887f802e8d96d.js} +1 -1
  198. package/assets/esri/core/workers/chunks/a4d3cbc02dc1186a9a6d.js +1 -0
  199. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +1 -0
  200. package/assets/esri/core/workers/chunks/a8ec5b85c2fa6fb4f391.js +1 -0
  201. package/assets/esri/core/workers/chunks/{8795c4895df229cb471c.js → ab94c9f62462d7a98f6a.js} +1 -1
  202. package/assets/esri/core/workers/chunks/{2a8f198f6c272f92bad5.js → abdb05754c50776c3edd.js} +1 -1
  203. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +1 -0
  204. package/assets/esri/core/workers/chunks/af8ef6701631ed5e5b80.js +1 -0
  205. package/assets/esri/core/workers/chunks/{a95398214e530f896a2d.js → af96cbc4fb7bef726635.js} +1 -1
  206. package/assets/esri/core/workers/chunks/{170f8dc97614e9609443.js → b0ac4b0b7aec70cfe6eb.js} +1 -1
  207. package/assets/esri/core/workers/chunks/b23009d9f8eb7c20ce45.js +1 -0
  208. package/assets/esri/core/workers/chunks/b79428c5093614174e76.js +1 -0
  209. package/assets/esri/core/workers/chunks/{2f925a424b60b4a5e8e5.js → b803e7b0d489bb628d72.js} +1 -1
  210. package/assets/esri/core/workers/chunks/b9bdb1f05e904c3655e4.js +1 -0
  211. package/assets/esri/core/workers/chunks/bb24972603fb35dd8dcf.js +1 -0
  212. package/assets/esri/core/workers/chunks/bca6abc185dedec0f41b.js +1 -0
  213. package/assets/esri/core/workers/chunks/bfbd1ca28ed2f263e58f.js +1 -0
  214. package/assets/esri/core/workers/chunks/c1189316d24fb4cdb2a0.js +1 -0
  215. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +1 -0
  216. package/assets/esri/core/workers/chunks/c4fc85281ca83af7abaf.js +1 -0
  217. package/assets/esri/core/workers/chunks/c983e5ce0ff952b65d7f.js +1 -0
  218. package/assets/esri/core/workers/chunks/ca6907e14b1dde4d5c07.js +1 -0
  219. package/assets/esri/core/workers/chunks/ca7d4d76a6bf5a3046cd.js +1 -0
  220. package/assets/esri/core/workers/chunks/cb8c4d8334fab9bd9a04.js +1 -0
  221. package/assets/esri/core/workers/chunks/cbbd94c53e75efc99876.js +1 -0
  222. package/assets/esri/core/workers/chunks/{c1ffb879e0283fb2815f.js → cc62e5095e328bed3e01.js} +1 -1
  223. package/assets/esri/core/workers/chunks/{a53a3e5548fef65a2710.js → cf826787ab8d4b27ad80.js} +1 -1
  224. package/assets/esri/core/workers/chunks/{7a823bb1b72764897dd5.js → cfd28eba44cf5a296c6d.js} +1 -1
  225. package/assets/esri/core/workers/chunks/d1d135a54233092ad637.js +1 -0
  226. package/assets/esri/core/workers/chunks/d21480b078ec9680d4c4.js +1 -0
  227. package/assets/esri/core/workers/chunks/d56780290e0218d3e9de.js +1 -0
  228. package/assets/esri/core/workers/chunks/{bbaf8baa3ca6195467e4.js → d64613209a9eb1eafb11.js} +1 -1
  229. package/assets/esri/core/workers/chunks/{988e91cc6cf88c34c2de.js → d6bb8db22ba85ad05fd7.js} +1 -1
  230. package/assets/esri/core/workers/chunks/{cb26966cc205bd338c76.js → d81291dac1932350eccd.js} +1 -1
  231. package/assets/esri/core/workers/chunks/d9d4754062758789f186.js +2 -0
  232. package/assets/esri/core/workers/chunks/dddb57ff637643ccfc87.js +1 -0
  233. package/assets/esri/core/workers/chunks/{0ded5c114cbb7574f2f4.js → dfeddb7b17fa9eaae64c.js} +1 -1
  234. package/assets/esri/core/workers/chunks/e094364e54981c91e1b4.js +1 -0
  235. package/assets/esri/core/workers/chunks/e178cd0e9178d6716410.js +1 -0
  236. package/assets/esri/core/workers/chunks/{7f54d3835c0ce573a942.js → e25bcfdd8f20f8a08b19.js} +1 -1
  237. package/assets/esri/core/workers/chunks/e33d2ede6c9f1527d51b.js +1 -0
  238. package/assets/esri/core/workers/chunks/e3b713a590cce6245ee2.js +1 -0
  239. package/assets/esri/core/workers/chunks/e545df5ea7c0ced92cee.js +30 -0
  240. package/assets/esri/core/workers/chunks/{a40003dfe3c081d1a1d2.js → e638391801ad83fe4a68.js} +1 -1
  241. package/assets/esri/core/workers/chunks/{0b76534b60014d74ecb9.js → e7712467db46e1385cf4.js} +1 -1
  242. package/assets/esri/core/workers/chunks/e785f76c1a75cb1d1e1f.js +1 -0
  243. package/assets/esri/core/workers/chunks/{76a9b64fd573775bf6cd.js → e82488b9b3bb0c1dedb4.js} +1 -1
  244. package/assets/esri/core/workers/chunks/{15fa8b5b472131aaa68e.js → e92698f50089484c4901.js} +1 -1
  245. package/assets/esri/core/workers/chunks/ed2cb60e4f17f46fb78d.js +1 -0
  246. package/assets/esri/core/workers/chunks/edcde00495727d506c46.js +1 -0
  247. package/assets/esri/core/workers/chunks/f02fe24177e56a7e42b2.js +1 -0
  248. package/assets/esri/core/workers/chunks/{009250a7bded12099dd1.js → f1fb2f12371f4c562079.js} +1 -1
  249. package/assets/esri/core/workers/chunks/{466c250537415f12eb59.js → f31a8e76f1dde23c0900.js} +1 -1
  250. package/assets/esri/core/workers/chunks/f3dfe1bd1146a6927407.js +1 -0
  251. package/assets/esri/core/workers/chunks/{6b5d2df9123dfe7e00b3.js → f563dd6cace047108b3c.js} +1 -1
  252. package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js → f5731ad4cfbbf1cc569a.js} +2 -2
  253. package/assets/esri/core/workers/chunks/f60292d97bcdbf19165b.js +1 -0
  254. package/assets/esri/core/workers/chunks/f9e22cf59e2e2782d70f.js +1 -0
  255. package/assets/esri/core/workers/chunks/fce7995c26953bfd8d3d.js +1 -0
  256. package/assets/esri/core/workers/chunks/{e227ae2c1a63e30e62d9.js → ff48334528d2554db4fe.js} +1 -1
  257. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +18 -14
  258. package/assets/esri/themes/base/widgets/_DatePicker.scss +1 -1
  259. package/assets/esri/themes/base/widgets/_Grid.scss +3 -3
  260. package/assets/esri/themes/dark/main.css +1 -1
  261. package/assets/esri/themes/light/main.css +1 -1
  262. package/assets/esri/themes/light/view.css +1 -1
  263. package/chunks/AtmosphereCompositing.glsl.js +1 -1
  264. package/chunks/Bufferer-Dw9Qi4T1.js +1 -1
  265. package/chunks/Centroid-DZi-eb9F.js +1 -1
  266. package/chunks/Clouds.glsl.js +1 -1
  267. package/chunks/Compositing.glsl.js +1 -1
  268. package/chunks/CutFillComposition.glsl.js +1 -1
  269. package/chunks/CutFillDepth.glsl.js +1 -1
  270. package/chunks/CutFillMask.glsl.js +1 -1
  271. package/chunks/CutFillReduction.glsl.js +1 -1
  272. package/chunks/CutFillTargetDepth.glsl.js +1 -1
  273. package/chunks/Distance2DCalculator-CXhBP-8I.js +1 -1
  274. package/chunks/Envelope.js +1 -1
  275. package/chunks/Envelope2D.js +1 -1
  276. package/chunks/FlatGeometry.js +1 -1
  277. package/chunks/FocusAreaColor.glsl.js +1 -1
  278. package/chunks/FocusAreaMask.glsl.js +1 -1
  279. package/chunks/Fog.glsl.js +1 -1
  280. package/chunks/GaussianSplat.glsl.js +1 -1
  281. package/chunks/GaussianSplatShadow.glsl.js +1 -1
  282. package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +1 -1
  283. package/chunks/GeodeticUtils.js +1 -1
  284. package/chunks/Geometry.js +1 -1
  285. package/chunks/GeometryCleaner-BEJM7I4l.js +1 -1
  286. package/chunks/GlobalIllumination.glsl.js +20 -19
  287. package/chunks/GlobalIlluminationBlur.glsl.js +15 -12
  288. package/chunks/GlobalIlluminationUpscale.glsl.js +4 -3
  289. package/chunks/GlowBlur.glsl.js +1 -1
  290. package/chunks/GlowComposition.glsl.js +1 -1
  291. package/chunks/HazeCompositing.glsl.js +1 -1
  292. package/chunks/HighlightBlur.glsl.js +1 -1
  293. package/chunks/HighlightDownsample.glsl.js +1 -1
  294. package/chunks/Magnifier.glsl.js +1 -1
  295. package/chunks/MultiPathImpl.js +1 -1
  296. package/chunks/NoiseTextureAtlas.glsl.js +1 -1
  297. package/chunks/OITBlend.glsl.js +2 -2
  298. package/chunks/OITBlendEmission.glsl.js +1 -1
  299. package/chunks/OITDimOpaque.glsl.js +1 -1
  300. package/chunks/OperatorClip.js +1 -1
  301. package/chunks/OperatorCrosses.js +1 -1
  302. package/chunks/OperatorCut.js +1 -1
  303. package/chunks/OperatorDensify.js +1 -1
  304. package/chunks/OperatorGeneralize.js +1 -1
  305. package/chunks/OperatorGeodesicBuffer.js +1 -1
  306. package/chunks/OperatorGeodeticArea.js +1 -1
  307. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  308. package/chunks/OperatorGeodeticDistance.js +1 -1
  309. package/chunks/OperatorGeodeticLength.js +1 -1
  310. package/chunks/OperatorIntegrate.js +1 -1
  311. package/chunks/OperatorIntersects.js +1 -1
  312. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  313. package/chunks/OperatorOverlaps.js +1 -1
  314. package/chunks/OperatorProject.js +1 -1
  315. package/chunks/OperatorProximity.js +1 -1
  316. package/chunks/OperatorProximityGeodesic.js +1 -1
  317. package/chunks/OperatorShapePreservingDensify.js +1 -1
  318. package/chunks/OperatorShapePreservingLength.js +1 -1
  319. package/chunks/OperatorShapePreservingProject.js +1 -1
  320. package/chunks/OperatorSimplifyOGC.js +1 -1
  321. package/chunks/OperatorTouches.js +1 -1
  322. package/chunks/OperatorWithin.js +1 -1
  323. package/chunks/OverlayCompositing.glsl.js +1 -1
  324. package/chunks/Point2D.js +1 -1
  325. package/chunks/PointRenderer.glsl.js +1 -1
  326. package/chunks/ProjectionTransformation.js +1 -1
  327. package/chunks/RasterColorizer.glsl.js +1 -1
  328. package/chunks/RealisticTree.glsl.js +17 -15
  329. package/chunks/ShadowCastAccumulate.glsl.js +1 -1
  330. package/chunks/ShadowCastVisualize.glsl.js +2 -2
  331. package/chunks/SideCalculator2D-BNwb5gvz.js +1 -1
  332. package/chunks/SimpleAtmosphere.glsl.js +1 -1
  333. package/chunks/SpatialReference.js +1 -1
  334. package/chunks/Terrain.glsl.js +1 -1
  335. package/chunks/Texture.glsl.js +1 -1
  336. package/chunks/Transformation2D.js +1 -1
  337. package/chunks/Viewshed.glsl.js +1 -1
  338. package/chunks/aiServices.js +1 -1
  339. package/chunks/arcade.js +1 -1
  340. package/chunks/array.js +1 -1
  341. package/chunks/boundedPlane.js +1 -1
  342. package/chunks/bundle.js +1 -1
  343. package/chunks/bundle2.js +1 -1
  344. package/chunks/constants.js +1 -1
  345. package/chunks/containsOperator.js +1 -1
  346. package/chunks/disjointOperator.js +1 -1
  347. package/chunks/distanceOperator.js +1 -1
  348. package/chunks/equalsOperator.js +1 -1
  349. package/chunks/languageUtils.js +1 -1
  350. package/chunks/pe.js +1 -1
  351. package/chunks/persistableUrlUtils.js +1 -1
  352. package/chunks/relateOperator.js +1 -1
  353. package/chunks/symmetricDifferenceOperator.js +1 -1
  354. package/chunks/unionOperator.js +1 -1
  355. package/chunks/vec2.js +1 -1
  356. package/chunks/vec3.js +1 -1
  357. package/chunks/vec4.js +1 -1
  358. package/config.d.ts +2 -2
  359. package/config.js +1 -1
  360. package/core/Collection.d.ts +25 -25
  361. package/core/Error.d.ts +1 -1
  362. package/core/JSONSupport.d.ts +1 -1
  363. package/core/accessorSupport/decorators/persistable.js +1 -1
  364. package/core/mapCollectionUtils.js +1 -1
  365. package/core/promiseUtils.d.ts +3 -3
  366. package/core/quantityFormatUtils.js +1 -1
  367. package/core/reactiveUtils.d.ts +4 -4
  368. package/core/sql/WhereClause.d.ts +1 -1
  369. package/core/timeUtils.d.ts +1 -1
  370. package/core/unitFormatUtils.js +1 -1
  371. package/core/workers/Connection.d.ts +9 -9
  372. package/core/workers.d.ts +1 -1
  373. package/editing/sharedTemplates/templateDefinitions/FeatureTemplateDefinition.js +1 -1
  374. package/editing/sharedTemplates/templateDefinitions/GroupTemplateDefinition.js +1 -1
  375. package/editing/sharedTemplates/templateDefinitions/PresetTemplateDefinition.js +1 -1
  376. package/editing/types.d.ts +3 -3
  377. package/effects/FocusArea.js +1 -1
  378. package/geometry/Circle.js +1 -1
  379. package/geometry/Mesh.d.ts +9 -2
  380. package/geometry/Mesh.js +1 -1
  381. package/geometry/coordinateFormatter.js +1 -1
  382. package/geometry/geodesicUtils.js +1 -1
  383. package/geometry/operators/extendOperator.js +1 -1
  384. package/geometry/operators/gx/geodeticUtils.js +1 -1
  385. package/geometry/operators/gx/operatorAffineTransform.js +1 -1
  386. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  387. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  388. package/geometry/operators/gx/operatorBoundary.js +1 -1
  389. package/geometry/operators/gx/operatorBuffer.js +1 -1
  390. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  391. package/geometry/operators/gx/operatorDifference.js +1 -1
  392. package/geometry/operators/gx/operatorGeodesicBuffer.js +1 -1
  393. package/geometry/operators/gx/operatorGeodeticArea.js +1 -1
  394. package/geometry/operators/gx/operatorGeodeticDensify.js +1 -1
  395. package/geometry/operators/gx/operatorGeodeticDistance.js +1 -1
  396. package/geometry/operators/gx/operatorGeodeticLength.js +1 -1
  397. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  398. package/geometry/operators/gx/operatorIntersection.js +1 -1
  399. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  400. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  401. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  402. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  403. package/geometry/operators/gx/operatorOffset.js +1 -1
  404. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  405. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  406. package/geometry/operators/gx/operatorProject.js +1 -1
  407. package/geometry/operators/gx/operatorProximityGeodesic.js +1 -1
  408. package/geometry/operators/gx/operatorShapePreservingProject.js +1 -1
  409. package/geometry/operators/gx/operatorSimplify.js +1 -1
  410. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  411. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  412. package/geometry/operators/gx/operatorUnion.js +1 -1
  413. package/geometry/operators/isNearOperator.js +1 -1
  414. package/geometry/operators/json/containsOperator.js +1 -1
  415. package/geometry/operators/json/disjointOperator.js +1 -1
  416. package/geometry/operators/locateBetweenOperator.js +1 -1
  417. package/geometry/operators/offsetOperator.js +1 -1
  418. package/geometry/operators/reshapeOperator.js +1 -1
  419. package/geometry/operators/support/apiConverter.js +1 -1
  420. package/geometry/operators/support/geographicTransformationUtils.js +1 -1
  421. package/geometry/operators/support/initNoPeFactory.js +1 -1
  422. package/geometry/operators/support/jsonConverter.js +1 -1
  423. package/geometry/operators/support/projectionTransformation.js +1 -1
  424. package/geometry/operators/symmetricDifferenceOperator.js +1 -1
  425. package/geometry/operators/unionOperator.js +1 -1
  426. package/geometry/pe.js +1 -1
  427. package/geometry/support/MeshMaterial.d.ts +5 -5
  428. package/geometry/support/MeshTexture.d.ts +19 -19
  429. package/geometry/support/MeshTexture.js +1 -1
  430. package/geometry/support/boundedPlane.js +1 -1
  431. package/geometry/support/buffer/math/vec3.js +1 -1
  432. package/geometry/support/buffer/math/vec4.js +1 -1
  433. package/geometry/support/buffer/utils/vec2.js +1 -1
  434. package/geometry/support/coordinateSystem.js +1 -1
  435. package/geometry/support/frustum.js +1 -1
  436. package/geometry/support/jsonUtils.d.ts +1 -1
  437. package/geometry/support/meshUtils/extent.js +1 -1
  438. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  439. package/geometry/support/meshUtils/projection.js +1 -1
  440. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  441. package/geometry/support/meshUtils.d.ts +130 -2
  442. package/geometry/support/meshUtils.js +1 -1
  443. package/geometry/support/spatialReferenceUtils.js +1 -1
  444. package/identity/Credential.d.ts +1 -1
  445. package/identity/IdentityManager.d.ts +1 -1
  446. package/identity/OAuthInfo.d.ts +1 -1
  447. package/identity/ServerInfo.d.ts +2 -2
  448. package/interfaces.d.ts +13 -0
  449. package/intl/number.d.ts +3 -3
  450. package/intl/substitute.d.ts +2 -2
  451. package/intl.d.ts +28 -28
  452. package/kernel.js +1 -1
  453. package/layers/AnnotationLayer.js +1 -1
  454. package/layers/BaseDynamicLayer.d.ts +5 -5
  455. package/layers/BaseTileLayer.d.ts +4 -4
  456. package/layers/BuildingSceneLayer.d.ts +1 -1
  457. package/layers/CSVLayer.d.ts +7 -1
  458. package/layers/CatalogLayer.d.ts +6 -0
  459. package/layers/DimensionFeatureLayer.js +1 -1
  460. package/layers/FeatureLayer.d.ts +45 -8
  461. package/layers/FeatureLayer.js +1 -1
  462. package/layers/GeoJSONLayer.d.ts +7 -1
  463. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  464. package/layers/IntegratedMeshLayer.js +1 -1
  465. package/layers/KnowledgeGraphLayer.js +1 -1
  466. package/layers/LinkChartLayer.js +1 -1
  467. package/layers/MapImageLayer.d.ts +5 -5
  468. package/layers/MediaLayer.d.ts +3 -3
  469. package/layers/OrientedImageryLayer.d.ts +29 -2
  470. package/layers/ParquetLayer.d.ts +7 -1
  471. package/layers/SceneLayer.d.ts +3 -3
  472. package/layers/SceneLayer.js +1 -1
  473. package/layers/StreamLayer.d.ts +1 -1
  474. package/layers/SubtypeGroupLayer.d.ts +7 -1
  475. package/layers/TileLayer.d.ts +2 -2
  476. package/layers/UnsupportedLayer.d.ts +10 -2
  477. package/layers/VectorTileLayer.d.ts +2 -2
  478. package/layers/VideoLayer.d.ts +1 -1
  479. package/layers/VoxelLayer.d.ts +4 -4
  480. package/layers/WCSLayer.d.ts +2 -2
  481. package/layers/WFSLayer.d.ts +6 -0
  482. package/layers/WebTileLayer.d.ts +1 -1
  483. package/layers/catalog/CatalogFootprintLayer.d.ts +20 -1
  484. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  485. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  486. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +6 -0
  487. package/layers/mixins/ArcGISImageService.d.ts +7 -1
  488. package/layers/mixins/ArcGISImageService.js +1 -1
  489. package/layers/mixins/BlendLayer.d.ts +2 -2
  490. package/layers/mixins/DataSeriesLayer.d.ts +161 -0
  491. package/layers/mixins/DataSeriesLayer.js +2 -0
  492. package/layers/mixins/FeatureLayerBase.d.ts +3 -3
  493. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  494. package/layers/orientedImagery/transformations/utils.js +1 -1
  495. package/layers/raster/functions/rasterProjectionHelper.js +1 -1
  496. package/layers/save/featureLayerUtils.js +1 -1
  497. package/layers/support/DateTimeFieldFormat.d.ts +10 -10
  498. package/layers/support/FeatureEffect.d.ts +22 -22
  499. package/layers/support/FeatureFilter.d.ts +1 -1
  500. package/layers/support/FeatureReductionBinning.d.ts +12 -0
  501. package/layers/support/FeatureReductionCluster.d.ts +12 -0
  502. package/layers/support/FeatureReductionSelection.d.ts +1 -1
  503. package/layers/support/Field.d.ts +2 -2
  504. package/layers/support/ImageElement.d.ts +1 -1
  505. package/layers/support/ImageElement.js +1 -1
  506. package/layers/support/MosaicRule.d.ts +0 -2
  507. package/layers/support/NumberFieldFormat.d.ts +5 -5
  508. package/layers/support/ParquetFilesData.js +1 -1
  509. package/layers/support/RasterJobHandler.js +1 -1
  510. package/layers/support/RasterWorker.js +1 -1
  511. package/layers/support/SceneFilter.js +1 -1
  512. package/layers/support/StreamConnection.d.ts +1 -1
  513. package/layers/support/Sublayer.d.ts +2 -2
  514. package/layers/support/SubtypeSublayer.d.ts +14 -1
  515. package/layers/support/TimeSeriesFieldTimeMapping.d.ts +30 -0
  516. package/layers/support/TimeSeriesFieldTimeMapping.js +2 -0
  517. package/layers/support/TimeSeriesInfo.d.ts +149 -0
  518. package/layers/support/TimeSeriesInfo.js +2 -0
  519. package/layers/support/VideoElement.d.ts +1 -1
  520. package/layers/support/arcgisLayers.js +1 -1
  521. package/layers/support/dataSeriesUtils.d.ts +18 -0
  522. package/layers/support/dataSeriesUtils.js +2 -0
  523. package/layers/support/fetchService.js +1 -1
  524. package/layers/support/kmlUtils.js +1 -1
  525. package/layers/support/layerUtils.js +1 -1
  526. package/layers/support/layersLoader.js +1 -1
  527. package/layers/support/timeSeriesUtils.d.ts +27 -0
  528. package/layers/support/timeSeriesUtils.js +2 -0
  529. package/layers/types.d.ts +1 -1
  530. package/libs/parquet/loadParquetModule.js +1 -1
  531. package/libs/text/loadTextModule.js +1 -1
  532. package/linkChart/ChronologicalLayoutSettings.d.ts +1 -1
  533. package/linkChart/LinkChartProperties.js +1 -1
  534. package/networks/CircuitManager.d.ts +1 -1
  535. package/networks/Network.d.ts +1 -1
  536. package/networks/UnitIdentifierManager.d.ts +1 -1
  537. package/networks/support/NamedTraceConfiguration.d.ts +1 -1
  538. package/networks/support/TraceConfiguration.d.ts +2 -2
  539. package/networks/support/UNTraceConfiguration.d.ts +3 -3
  540. package/networks/support/jsonTypes.d.ts +7 -1
  541. package/networks/support/utils.js +1 -1
  542. package/package.json +4 -4
  543. package/popup/content/CustomContent.d.ts +1 -1
  544. package/portal/Portal.d.ts +2 -2
  545. package/portal/PortalItem.js +1 -1
  546. package/portal/jsonTypes.d.ts +2 -2
  547. package/renderers/FlowRenderer.d.ts +2 -2
  548. package/renderers/UniqueValueRenderer.js +1 -1
  549. package/renderers/support/AuthoringInfo.d.ts +14 -1
  550. package/renderers/support/AuthoringInfo.js +1 -1
  551. package/renderers/support/AuthoringInfoVisualVariable.d.ts +14 -1
  552. package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
  553. package/renderers/support/jsonUtils.d.ts +1 -1
  554. package/renderers/support/utils.d.ts +1 -1
  555. package/renderers/visualVariables/RotationVariable.d.ts +16 -1
  556. package/renderers/visualVariables/RotationVariable.js +1 -1
  557. package/request/types.d.ts +23 -23
  558. package/rest/geometryService.d.ts +1 -1
  559. package/rest/knowledgeGraph/CreateReplicaResponse.d.ts +1 -1
  560. package/rest/knowledgeGraph/GraphApplyEdits.d.ts +1 -1
  561. package/rest/knowledgeGraph/GraphProperty.d.ts +5 -1
  562. package/rest/knowledgeGraph/GraphQueryStreamingResult.d.ts +2 -2
  563. package/rest/knowledgeGraph/wasmInterface/wasmToDataModelFactories.js +1 -1
  564. package/rest/knowledgeGraph/wasmInterface/wasmToQueryResponseObjFactories.js +1 -1
  565. package/rest/knowledgeGraph/wasmInterface/wasmToReplicaFactories.js +1 -1
  566. package/rest/knowledgeGraphService.d.ts +13 -13
  567. package/rest/layerSources/DynamicDataLayer.d.ts +1 -1
  568. package/rest/print.d.ts +1 -1
  569. package/rest/support/AttributeBinsQuery.d.ts +16 -2
  570. package/rest/support/ClosestFacilityParameters.d.ts +6 -6
  571. package/rest/support/IdentifyParameters.js +1 -1
  572. package/rest/support/IdentifyResult.js +1 -1
  573. package/rest/support/LastMileDeliveryParameters.d.ts +4 -4
  574. package/rest/support/LocationToAddressParameters.d.ts +1 -1
  575. package/rest/support/PrintTemplate.d.ts +5 -5
  576. package/rest/support/Query.d.ts +18 -4
  577. package/rest/support/RouteParameters.d.ts +5 -5
  578. package/rest/support/ServiceAreaParameters.d.ts +6 -6
  579. package/rest/support/TopFeaturesQuery.d.ts +16 -2
  580. package/rest/support/meshFeatureSet.js +1 -1
  581. package/smartMapping/raster/renderers/flow.d.ts +2 -2
  582. package/smartMapping/renderers/color.d.ts +40 -0
  583. package/smartMapping/renderers/color.js +1 -1
  584. package/smartMapping/renderers/opacity.d.ts +8 -0
  585. package/smartMapping/renderers/opacity.js +1 -1
  586. package/smartMapping/renderers/size.d.ts +38 -0
  587. package/smartMapping/renderers/size.js +1 -1
  588. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  589. package/smartMapping/renderers/support/timeSeriesUtils.js +2 -0
  590. package/smartMapping/renderers/type.d.ts +20 -1
  591. package/smartMapping/renderers/type.js +1 -1
  592. package/smartMapping/renderers/univariateColorSize.d.ts +19 -0
  593. package/smartMapping/renderers/univariateColorSize.js +1 -1
  594. package/smartMapping/symbology/flow.d.ts +2 -2
  595. package/smartMapping/symbology/types.d.ts +2 -2
  596. package/support/arcadeUtils.js +1 -1
  597. package/support/persistableUrlUtils.js +1 -1
  598. package/support/revision.js +1 -1
  599. package/support/tests/setupServiceMocksMesh.js +1 -1
  600. package/support/timeUtils.d.ts +3 -3
  601. package/symbols/Font.d.ts +7 -7
  602. package/symbols/Symbol3D.js +1 -1
  603. package/symbols/WebStyleSymbol.d.ts +11 -11
  604. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  605. package/symbols/cim/CIMSymbolHelper.js +1 -1
  606. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  607. package/symbols/support/IconSymbol3DLayerResource.js +1 -1
  608. package/symbols/support/Symbol3DEmissive.d.ts +8 -2
  609. package/symbols/support/Symbol3DVerticalOffset.d.ts +2 -2
  610. package/symbols/support/jsonUtils.d.ts +1 -1
  611. package/symbols/support/previewSymbol2D.js +1 -1
  612. package/symbols/support/urlUtils.js +1 -1
  613. package/symbols/support/webStyleSymbolUtils.js +1 -1
  614. package/time/TimeExtent.d.ts +2 -2
  615. package/versionManagement/VersionManagementService.d.ts +8 -8
  616. package/versionManagement/VersionManager.d.ts +13 -3
  617. package/versionManagement/VersioningState.d.ts +4 -4
  618. package/views/2d/MapViewConstraints.d.ts +29 -25
  619. package/views/2d/ViewStateManager.js +1 -1
  620. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  621. package/views/2d/engine/flow/styles/Particles.js +1 -1
  622. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  623. package/views/2d/engine/vectorTiles/VectorTileFeatureIndex.js +1 -1
  624. package/views/2d/engine/vectorTiles/shaders/VTLBackgroundMaterial.js +1 -1
  625. package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
  626. package/views/2d/engine/webgl/shaderGraph/graph/glsl.js +1 -1
  627. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedPolyShader.js +1 -1
  628. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
  629. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedFillShader.js +1 -1
  630. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedLineShader.js +1 -1
  631. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  632. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPointShader.js +1 -1
  633. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  634. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  635. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
  636. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlendShader.js +1 -1
  637. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlitShader.js +1 -1
  638. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
  639. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BlurShader.js +1 -1
  640. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ClipShader.js +1 -1
  641. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ColorizeShader.js +1 -1
  642. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexFillShader.js +1 -1
  643. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  644. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/DropShadowShader.js +1 -1
  645. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
  646. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientFillShader.js +1 -1
  647. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GradientStrokeShader.js +1 -1
  648. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/GridShader.js +1 -1
  649. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  650. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapResolveShader.js +1 -1
  651. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  652. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js +1 -1
  653. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OpacityShader.js +1 -1
  654. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  655. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OverlayShader.js +1 -1
  656. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternFillShader.js +1 -1
  657. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PatternOutlineFillShader.js +1 -1
  658. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/PostProcessingShader.js +1 -1
  659. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TexturedLineShader.js +1 -1
  660. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js +1 -1
  661. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js +1 -1
  662. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js +1 -1
  663. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowImageryShader.js +1 -1
  664. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowParticlesShader.js +1 -1
  665. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowStreamlinesShader.js +1 -1
  666. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/flow/FlowUtils.js +1 -1
  667. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  668. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/raster/processor/MultiRasterMixin.js +1 -1
  669. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/utils.js +1 -1
  670. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/vvUtils.js +1 -1
  671. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  672. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  673. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  674. package/views/2d/interactive/editingTools/manipulations/ScaleManipulation.js +1 -1
  675. package/views/2d/layers/BaseLayerView2D.d.ts +1 -1
  676. package/views/2d/layers/BaseLayerViewGL2D.d.ts +3 -3
  677. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  678. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  679. package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
  680. package/views/2d/layers/features/Processor.js +1 -1
  681. package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
  682. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  683. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  684. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  685. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  686. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  687. package/views/2d/navigation/ZoomBox.js +1 -1
  688. package/views/2d/navigation/actions/Pan.js +1 -1
  689. package/views/2d/navigation/actions/Pinch.js +1 -1
  690. package/views/2d/navigation/actions/Rotate.js +1 -1
  691. package/views/3d/analysis/AnalysisView3D.js +1 -1
  692. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  693. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  694. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
  695. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  696. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  697. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  698. package/views/3d/analysis/LineOfSightAnalysisResult.js +1 -1
  699. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  700. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  701. package/views/3d/analysis/Slice/SliceController.js +1 -1
  702. package/views/3d/analysis/Slice/SliceTool.js +1 -1
  703. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  704. package/views/3d/analysis/Viewshed/ViewshedDrawToolRenderer.js +1 -1
  705. package/views/3d/analysis/Viewshed/ViewshedEditTool.js +1 -1
  706. package/views/3d/analysis/Viewshed/ViewshedFieldOfViewManipulation.js +1 -1
  707. package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
  708. package/views/3d/analysis/Viewshed/ViewshedPlacementOperation.js +1 -1
  709. package/views/3d/analysis/Viewshed/ViewshedScaleOrientManipulation.js +1 -1
  710. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  711. package/views/3d/analysis/Viewshed/ViewshedSubVisualization.js +1 -1
  712. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  713. package/views/3d/analysis/Viewshed/ViewshedTool2.js +1 -1
  714. package/views/3d/analysis/Viewshed/placementUtils.js +1 -1
  715. package/views/3d/analysis/Viewshed/viewshedToolManipulatorUtils.js +1 -1
  716. package/views/3d/analysis/Viewshed/viewshedToolUtils.js +1 -1
  717. package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
  718. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  719. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  720. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.js +1 -1
  721. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementShiftTool.js +1 -1
  722. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  723. package/views/3d/focusAreaUtils.js +1 -1
  724. package/views/3d/glTF/internal/resourceUtils.js +1 -1
  725. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentRotate.js +1 -1
  726. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  727. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  728. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  729. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  730. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  731. package/views/3d/layers/DrapedSubView3D.js +1 -1
  732. package/views/3d/layers/FlowSubView3D.js +1 -1
  733. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  734. package/views/3d/layers/I3SMeshView3D.js +1 -1
  735. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  736. package/views/3d/layers/ImagerySubView3D.js +1 -1
  737. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  738. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  739. package/views/3d/layers/PointCloudWorker.js +1 -1
  740. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  741. package/views/3d/layers/SceneLayerWorker.js +1 -1
  742. package/views/3d/layers/SubView3D.js +1 -1
  743. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  744. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  745. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  746. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  747. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  748. package/views/3d/layers/graphics/objectResourceUtils.js +1 -1
  749. package/views/3d/layers/i3s/I3SGeometryUtil.js +1 -1
  750. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  751. package/views/3d/layers/i3s/I3SQueryFeatureStore.js +1 -1
  752. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  753. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  754. package/views/3d/layers/i3s/LoDUtil.js +1 -1
  755. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  756. package/views/3d/layers/i3s/meshUtils.js +1 -1
  757. package/views/3d/layers/support/FeatureTile.js +1 -1
  758. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  759. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  760. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  761. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  762. package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
  763. package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.js +1 -1
  764. package/views/3d/layers/support/edgeUtils.js +1 -1
  765. package/views/3d/state/ScreenSizePerspective.js +1 -1
  766. package/views/3d/state/controllers/ZoomControllerGlobal.js +1 -1
  767. package/views/3d/state/controllers/ZoomStepControllerGlobal.js +1 -1
  768. package/views/3d/state/utils/navigationUtils.js +1 -1
  769. package/views/3d/support/ViewSlice.js +1 -1
  770. package/views/3d/support/dito.js +1 -1
  771. package/views/3d/support/flow/FlowSubViewExtent3D.js +1 -1
  772. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  773. package/views/3d/support/gaussianSplatting/GaussianTile.js +1 -1
  774. package/views/3d/support/orientedBoundingBox.js +1 -1
  775. package/views/3d/support/sunUtils.js +1 -1
  776. package/views/3d/terrain/OverlayRenderer.js +1 -1
  777. package/views/3d/terrain/RasterColorizer.glsl.js +1 -1
  778. package/views/3d/terrain/RasterTile.js +1 -1
  779. package/views/3d/terrain/TerrainRenderer.js +1 -1
  780. package/views/3d/webgl/RenderCamera.js +1 -1
  781. package/views/3d/webgl/RenderNode.d.ts +7 -7
  782. package/views/3d/webgl/RenderNode.js +1 -1
  783. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  784. package/views/3d/webgl-engine/collections/Component/DepthRange.js +1 -1
  785. package/views/3d/webgl-engine/effects/atmosphere/ChapmanAtmosphere.js +1 -1
  786. package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
  787. package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
  788. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  789. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  790. package/views/3d/webgl-engine/effects/clouds/Clouds.glsl.js +1 -1
  791. package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
  792. package/views/3d/webgl-engine/effects/clouds/CloudsTechnique.js +1 -1
  793. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.glsl.js +1 -1
  794. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlas.js +1 -1
  795. package/views/3d/webgl-engine/effects/clouds/NoiseTextureAtlasTechnique.js +1 -1
  796. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColor.glsl.js +1 -1
  797. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  798. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorTechnique.js +1 -1
  799. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMask.glsl.js +1 -1
  800. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  801. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskTechnique.js +1 -1
  802. package/views/3d/webgl-engine/effects/fog/Fog.glsl.js +1 -1
  803. package/views/3d/webgl-engine/effects/fog/Fog.js +1 -1
  804. package/views/3d/webgl-engine/effects/fog/FogTechnique.js +1 -1
  805. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  806. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  807. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlur.glsl.js +1 -1
  808. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationBlurTechnique.js +1 -1
  809. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationColorQuantization.glsl.js +7 -0
  810. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechnique.js +1 -1
  811. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
  812. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscale.glsl.js +1 -1
  813. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationUpscaleTechnique.js +1 -1
  814. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  815. package/views/3d/webgl-engine/effects/glow/GlowBlur.glsl.js +1 -1
  816. package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +1 -1
  817. package/views/3d/webgl-engine/effects/glow/GlowComposition.glsl.js +1 -1
  818. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  819. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  820. package/views/3d/webgl-engine/effects/haze/HazeCompositing.glsl.js +1 -1
  821. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  822. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  823. package/views/3d/webgl-engine/effects/highlight/HighlightBlur.glsl.js +1 -1
  824. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  825. package/views/3d/webgl-engine/effects/highlight/HighlightDownsample.glsl.js +1 -1
  826. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  827. package/views/3d/webgl-engine/effects/magnifier/Magnifier.glsl.js +1 -1
  828. package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
  829. package/views/3d/webgl-engine/effects/magnifier/MagnifierTechnique.js +1 -1
  830. package/views/3d/webgl-engine/effects/transparency/OITBlend.glsl.js +1 -1
  831. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  832. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  833. package/views/3d/webgl-engine/effects/transparency/OITDimOpaque.glsl.js +1 -1
  834. package/views/3d/webgl-engine/effects/transparency/OITDimOpaqueTechnique.js +1 -1
  835. package/views/3d/webgl-engine/lib/Compositor.js +1 -1
  836. package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
  837. package/views/3d/webgl-engine/lib/CutFillVisualizationRenderNode.js +1 -1
  838. package/views/3d/webgl-engine/lib/GaussianSplatRenderNode.js +1 -1
  839. package/views/3d/webgl-engine/lib/GaussianSplatShadowRenderNode.js +1 -1
  840. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  841. package/views/3d/webgl-engine/lib/ShadowCastRenderer.js +1 -1
  842. package/views/3d/webgl-engine/lib/SliceHelper.js +1 -1
  843. package/views/3d/webgl-engine/lib/Texture.glsl.js +1 -1
  844. package/views/3d/webgl-engine/lib/TextureTechnique.js +1 -1
  845. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  846. package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
  847. package/views/3d/webgl-engine/lib/intersectorUtils.js +1 -1
  848. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  849. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  850. package/views/3d/webgl-engine/shaders/AtmosphereCompositing.glsl.js +1 -1
  851. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  852. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  853. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  854. package/views/3d/webgl-engine/shaders/CutFillComposition.glsl.js +1 -1
  855. package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
  856. package/views/3d/webgl-engine/shaders/CutFillDepth.glsl.js +1 -1
  857. package/views/3d/webgl-engine/shaders/CutFillDepthTechnique.js +1 -1
  858. package/views/3d/webgl-engine/shaders/CutFillDepthTechniqueConfiguration.js +1 -1
  859. package/views/3d/webgl-engine/shaders/CutFillMask.glsl.js +1 -1
  860. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +1 -1
  861. package/views/3d/webgl-engine/shaders/CutFillReduction.glsl.js +1 -1
  862. package/views/3d/webgl-engine/shaders/CutFillReductionTechnique.js +1 -1
  863. package/views/3d/webgl-engine/shaders/CutFillReductionTechniqueConfiguration.js +1 -1
  864. package/views/3d/webgl-engine/shaders/CutFillTargetDepth.glsl.js +1 -1
  865. package/views/3d/webgl-engine/shaders/CutFillTargetDepthTechnique.js +1 -1
  866. package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
  867. package/views/3d/webgl-engine/shaders/GaussianSplatCompositionTechniqueConfiguration.js +1 -1
  868. package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +1 -1
  869. package/views/3d/webgl-engine/shaders/GaussianSplatShadowTechnique.js +1 -1
  870. package/views/3d/webgl-engine/shaders/GaussianSplatTechnique.js +1 -1
  871. package/views/3d/webgl-engine/shaders/OverlayCompositing.glsl.js +1 -1
  872. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  873. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  874. package/views/3d/webgl-engine/shaders/PointRendererTechnique.js +1 -1
  875. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  876. package/views/3d/webgl-engine/shaders/ShadowCastAccumulate.glsl.js +1 -1
  877. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  878. package/views/3d/webgl-engine/shaders/ShadowCastMaskTechnique.js +1 -1
  879. package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
  880. package/views/3d/webgl-engine/shaders/ShadowCastVisualizeTechnique.js +1 -1
  881. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  882. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  883. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  884. package/views/3d/webgl-engine/shaders/ViewshedTechnique.js +1 -1
  885. package/views/BreakpointsOwner.d.ts +1 -1
  886. package/views/DOMContainer.d.ts +6 -6
  887. package/views/Magnifier.d.ts +1 -1
  888. package/views/MapView.d.ts +1 -1
  889. package/views/SceneView.d.ts +3 -3
  890. package/views/Theme.js +1 -1
  891. package/views/View.js +1 -1
  892. package/views/View2D.d.ts +62 -54
  893. package/views/Viewport2DMixin.d.ts +1 -1
  894. package/views/analysis/ElevationProfile/ElevationProfileChart.js +1 -1
  895. package/views/analysis/LengthDimensionResult.js +1 -1
  896. package/views/draw/drawSurfaces.js +1 -1
  897. package/views/input/gamepad/GamepadInputDevice.d.ts +1 -1
  898. package/views/input/types.d.ts +15 -15
  899. package/views/interactive/Tooltip.js +1 -1
  900. package/views/interactive/editGeometry/support/editPlaneUtils.js +1 -1
  901. package/views/interactive/sketch/SketchLabelOptions.js +1 -1
  902. package/views/interactive/sketch/SketchTooltipOptions.d.ts +1 -1
  903. package/views/interactive/sketch/constraints.js +1 -1
  904. package/views/interactive/sketch/normalizedPoint.js +1 -1
  905. package/views/interactive/snapping/SnappingOptions.d.ts +3 -3
  906. package/views/interactive/snapping/featureSources/featureServiceSource/tileUtils.js +1 -1
  907. package/views/interactive/support/utils.js +1 -1
  908. package/views/interactive/tooltip/components/DrawHeaderActions.js +1 -1
  909. package/views/interactive/tooltip/content/TooltipContent.js +1 -1
  910. package/views/interactive/tooltip/fields/fields.js +1 -1
  911. package/views/interactive/tooltip/fields/parsingAndFormattingUtils.js +1 -1
  912. package/views/interactive/tooltip/tooltipCommonUtils.js +1 -1
  913. package/views/layers/BuildingComponentSublayerView.js +1 -1
  914. package/views/layers/FeatureLikeLayerView.d.ts +6 -3
  915. package/views/layers/FeatureLikeLayerView.js +1 -1
  916. package/views/layers/GraphicsLayerView.d.ts +6 -3
  917. package/views/layers/GroupLayerView.js +1 -1
  918. package/views/layers/ImageryLayerView.d.ts +4 -0
  919. package/views/layers/SceneLayerView.js +1 -1
  920. package/views/navigation/Navigation.d.ts +1 -1
  921. package/views/overlay/CrosshairOverlayItem.js +1 -1
  922. package/views/overlay/LineOverlayItem.js +1 -1
  923. package/views/support/WebAssemblyRequirements.js +1 -1
  924. package/views/support/angularMeasurementUtils.js +1 -1
  925. package/views/support/euclideanLengthMeasurementUtils.js +1 -1
  926. package/views/support/flow/dataUtils.js +1 -1
  927. package/views/support/geometry2dUtils.js +1 -1
  928. package/views/support/geometry3dUtils.js +1 -1
  929. package/views/types.d.ts +1 -1
  930. package/views/webgl/RenderingContext.js +1 -1
  931. package/webscene/Glow.d.ts +0 -4
  932. package/widgets/BasemapGallery.d.ts +1 -1
  933. package/widgets/BasemapLayerList.d.ts +1 -1
  934. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +30 -2
  935. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  936. package/widgets/BatchAttributeForm/css.js +1 -1
  937. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  938. package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -5
  939. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  940. package/widgets/BatchAttributeForm/inputs/support/inputUtils.js +1 -1
  941. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  942. package/widgets/BatchAttributeForm/types.d.ts +68 -1
  943. package/widgets/BatchAttributeForm.d.ts +1 -1
  944. package/widgets/BatchAttributeForm.js +1 -1
  945. package/widgets/Bookmarks.d.ts +1 -1
  946. package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
  947. package/widgets/BuildingExplorer/BuildingLevelPicker/constants.js +1 -1
  948. package/widgets/BuildingExplorer.d.ts +1 -1
  949. package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +2 -2
  950. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  951. package/widgets/CoordinateConversion.d.ts +2 -2
  952. package/widgets/Daylight.d.ts +2 -2
  953. package/widgets/Directions/DirectionsViewModel.js +1 -1
  954. package/widgets/Directions.d.ts +1 -1
  955. package/widgets/Editor/components/Settings.js +1 -1
  956. package/widgets/Editor.d.ts +9 -9
  957. package/widgets/ElevationProfile.d.ts +1 -1
  958. package/widgets/Feature.d.ts +1 -1
  959. package/widgets/FeatureForm.d.ts +1 -1
  960. package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
  961. package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
  962. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
  963. package/widgets/FeatureTemplates.d.ts +1 -1
  964. package/widgets/FloorFilter.d.ts +1 -1
  965. package/widgets/Fullscreen/FullscreenViewModel.d.ts +3 -3
  966. package/widgets/Fullscreen/FullscreenViewModel.js +1 -1
  967. package/widgets/Fullscreen.d.ts +3 -3
  968. package/widgets/Histogram/HistogramViewModel.js +1 -1
  969. package/widgets/LayerList/ListItemPanel.d.ts +5 -5
  970. package/widgets/Legend.d.ts +1 -1
  971. package/widgets/Locate/LocateViewModel.d.ts +2 -2
  972. package/widgets/Locate.d.ts +1 -1
  973. package/widgets/PanoramicViewer/utils.js +1 -1
  974. package/widgets/Popup.d.ts +1 -1
  975. package/widgets/Print/PrintViewModel.d.ts +2 -2
  976. package/widgets/Print/TemplateOptions.d.ts +4 -4
  977. package/widgets/Print.d.ts +6 -6
  978. package/widgets/Search/SearchViewModel.d.ts +5 -5
  979. package/widgets/Search.d.ts +4 -4
  980. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  981. package/widgets/ShadowCast.d.ts +1 -1
  982. package/widgets/Sketch/SketchViewModel.d.ts +39 -39
  983. package/widgets/Sketch.d.ts +39 -39
  984. package/widgets/Sketch.js +1 -1
  985. package/widgets/Slice.d.ts +2 -2
  986. package/widgets/TableList/ListItemPanel.d.ts +5 -5
  987. package/widgets/Track/TrackViewModel.d.ts +3 -3
  988. package/widgets/Track.d.ts +3 -3
  989. package/widgets/UtilityNetworkTrace.d.ts +2 -2
  990. package/widgets/UtilityNetworkValidateTopology.d.ts +1 -1
  991. package/widgets/VersionManagement/VersionManagementViewModel.d.ts +2 -2
  992. package/widgets/Weather.d.ts +1 -1
  993. package/widgets/Widget.d.ts +1 -1
  994. package/widgets/support/ContingentValuesManager.js +1 -1
  995. package/widgets/support/forms/formUtils.js +1 -1
  996. package/widgets/support/types.d.ts +1 -1
  997. package/widgets/support/widget.d.ts +6 -6
  998. package/assets/esri/core/workers/chunks/069459519477bb3dc91b.js +0 -1
  999. package/assets/esri/core/workers/chunks/0b445c1cf281f158c1f1.js +0 -1
  1000. package/assets/esri/core/workers/chunks/0e9804ece1fd2d59751b.js +0 -1
  1001. package/assets/esri/core/workers/chunks/115664cb7d7b22a315bb.js +0 -1
  1002. package/assets/esri/core/workers/chunks/123a67e84ed68b96ac59.js +0 -1
  1003. package/assets/esri/core/workers/chunks/163ce1be8bfe20e77f97.js +0 -1
  1004. package/assets/esri/core/workers/chunks/169c9eb6cd000e067c4b.js +0 -1
  1005. package/assets/esri/core/workers/chunks/18201119828664373165.js +0 -1
  1006. package/assets/esri/core/workers/chunks/18ebf1d3ed05c8057f7d.js +0 -1
  1007. package/assets/esri/core/workers/chunks/19f07c8d0f32ec889861.js +0 -1
  1008. package/assets/esri/core/workers/chunks/1bd8a7f92a428eedb22e.js +0 -1
  1009. package/assets/esri/core/workers/chunks/1f537c05c2f643acb5e7.js +0 -1
  1010. package/assets/esri/core/workers/chunks/241aeff6afd074ce105b.js +0 -1
  1011. package/assets/esri/core/workers/chunks/2562d8905bd05ef6fd07.js +0 -1
  1012. package/assets/esri/core/workers/chunks/2855357a2c1f2ab03fb7.js +0 -1
  1013. package/assets/esri/core/workers/chunks/2bd334f9ab89334df713.js +0 -1
  1014. package/assets/esri/core/workers/chunks/2e8db0f05df2e38a14e1.js +0 -2
  1015. package/assets/esri/core/workers/chunks/30e191d36aa95823c018.js +0 -1
  1016. package/assets/esri/core/workers/chunks/315bf08dff4757ffbed3.js +0 -1
  1017. package/assets/esri/core/workers/chunks/31c01885ee6d70a2bde2.js +0 -1
  1018. package/assets/esri/core/workers/chunks/3292b3883f203637b5a7.js +0 -1
  1019. package/assets/esri/core/workers/chunks/32f24a66f684de3c243d.js +0 -1
  1020. package/assets/esri/core/workers/chunks/35527a01d61cabbfd33e.js +0 -1
  1021. package/assets/esri/core/workers/chunks/3aebbed6d4fd1b993a35.js +0 -1
  1022. package/assets/esri/core/workers/chunks/3f1d533efe4300d19e6a.js +0 -1
  1023. package/assets/esri/core/workers/chunks/413d2fa54508e6f42c74.js +0 -1
  1024. package/assets/esri/core/workers/chunks/4325fa92dafca465ae26.js +0 -1
  1025. package/assets/esri/core/workers/chunks/4364a3e706294bb6ae41.js +0 -1
  1026. package/assets/esri/core/workers/chunks/438f35d41c6851736818.js +0 -30
  1027. package/assets/esri/core/workers/chunks/453c9e8d438d061e1736.js +0 -1
  1028. package/assets/esri/core/workers/chunks/479e34b0abc10499bd3a.js +0 -1
  1029. package/assets/esri/core/workers/chunks/47d49777a3b3cd8e18bd.js +0 -1
  1030. package/assets/esri/core/workers/chunks/49675e77a351abda2728.js +0 -1
  1031. package/assets/esri/core/workers/chunks/4cdf80e2e60501dd4756.js +0 -1
  1032. package/assets/esri/core/workers/chunks/51816d79c6be15e4bfcf.js +0 -1
  1033. package/assets/esri/core/workers/chunks/51edfe21d4c6ee22c83d.js +0 -1
  1034. package/assets/esri/core/workers/chunks/5524a71d1abc9568ce26.js +0 -1
  1035. package/assets/esri/core/workers/chunks/557e39e5156b313597f9.js +0 -1
  1036. package/assets/esri/core/workers/chunks/55b765c72d13b3b911f9.js +0 -1
  1037. package/assets/esri/core/workers/chunks/5dc86a3a40d16b576bb5.js +0 -1
  1038. package/assets/esri/core/workers/chunks/6182d39e2095d4460b88.js +0 -1
  1039. package/assets/esri/core/workers/chunks/621d71d26bd20e296138.js +0 -1
  1040. package/assets/esri/core/workers/chunks/67dffb896b6ef4b2038b.js +0 -1
  1041. package/assets/esri/core/workers/chunks/694f9571e2723d3d4b02.js +0 -1
  1042. package/assets/esri/core/workers/chunks/69ad5930ff6040c6c561.js +0 -1
  1043. package/assets/esri/core/workers/chunks/6af88bb722bbb37db198.js +0 -2
  1044. package/assets/esri/core/workers/chunks/70d8f5bdb452cee41536.js +0 -2
  1045. package/assets/esri/core/workers/chunks/728151d24334027af635.js +0 -1
  1046. package/assets/esri/core/workers/chunks/77769663cd712822d33e.js +0 -1
  1047. package/assets/esri/core/workers/chunks/78af4b7a379c40f497a7.js +0 -1
  1048. package/assets/esri/core/workers/chunks/7c292f7b181f3b93352b.js +0 -1
  1049. package/assets/esri/core/workers/chunks/86443e47ad99e555753a.js +0 -1
  1050. package/assets/esri/core/workers/chunks/86f2de7dda7992ae706c.js +0 -1
  1051. package/assets/esri/core/workers/chunks/895114ccd2603830960f.js +0 -1
  1052. package/assets/esri/core/workers/chunks/9250615c78f8570a9cda.js +0 -1
  1053. package/assets/esri/core/workers/chunks/927c8ca7fd385b28a1b7.js +0 -640
  1054. package/assets/esri/core/workers/chunks/95d82c619dcbec2e1050.js +0 -1
  1055. package/assets/esri/core/workers/chunks/979bab62cad788180770.js +0 -1
  1056. package/assets/esri/core/workers/chunks/9d70247d820085a2c190.js +0 -1
  1057. package/assets/esri/core/workers/chunks/a0aaf14c8f9a007d88ac.js +0 -1
  1058. package/assets/esri/core/workers/chunks/a0b6eef4890cc61609dc.js +0 -1
  1059. package/assets/esri/core/workers/chunks/a0fce639319d59becd01.js +0 -2
  1060. package/assets/esri/core/workers/chunks/aa03f770178693167aa0.js +0 -1
  1061. package/assets/esri/core/workers/chunks/aea439d4c2308f88b295.js +0 -1
  1062. package/assets/esri/core/workers/chunks/af45110f07e4b5162bae.js +0 -1
  1063. package/assets/esri/core/workers/chunks/b0c647af49c9d563b852.js +0 -1
  1064. package/assets/esri/core/workers/chunks/b44f1d08784f2e50c853.js +0 -1
  1065. package/assets/esri/core/workers/chunks/b640651c7d86cfe654bf.js +0 -1
  1066. package/assets/esri/core/workers/chunks/b78fb24b47d9f31f18c6.js +0 -1
  1067. package/assets/esri/core/workers/chunks/b8dda9e55caba0e2b4c2.js +0 -1
  1068. package/assets/esri/core/workers/chunks/ba693317ed3939587f30.js +0 -1
  1069. package/assets/esri/core/workers/chunks/c13c532fe38ddc5d7ca6.js +0 -1
  1070. package/assets/esri/core/workers/chunks/c4872cf3b71d00f450e1.js +0 -1
  1071. package/assets/esri/core/workers/chunks/c5b7ff8650235c464dbf.js +0 -1
  1072. package/assets/esri/core/workers/chunks/ca1b0cb14ea9ae1bf2a3.js +0 -1
  1073. package/assets/esri/core/workers/chunks/caf80facb0322be054ab.js +0 -1
  1074. package/assets/esri/core/workers/chunks/cc48354c54358777e996.js +0 -1
  1075. package/assets/esri/core/workers/chunks/d5423df247be82fa085a.js +0 -1
  1076. package/assets/esri/core/workers/chunks/d598d08dbf2796742e8c.js +0 -1
  1077. package/assets/esri/core/workers/chunks/d6d87bfa9e6d233385a9.js +0 -262
  1078. package/assets/esri/core/workers/chunks/da4f7d7099ba88f31f45.js +0 -1
  1079. package/assets/esri/core/workers/chunks/dbb1ac41fd5da4fd849b.js +0 -1
  1080. package/assets/esri/core/workers/chunks/dc259eed58fde3f5cb5c.js +0 -1
  1081. package/assets/esri/core/workers/chunks/e0036fa0324a96a88248.js +0 -1
  1082. package/assets/esri/core/workers/chunks/e0bd550b10dd402c48f1.js +0 -1
  1083. package/assets/esri/core/workers/chunks/e29d182460564c2a52ad.js +0 -1
  1084. package/assets/esri/core/workers/chunks/e645f992ec6f935ee3a5.js +0 -1
  1085. package/assets/esri/core/workers/chunks/eabd4a78221b7e733793.js +0 -1
  1086. package/assets/esri/core/workers/chunks/eda083e9d12e45da0a7b.js +0 -1
  1087. package/assets/esri/core/workers/chunks/f05932aea4eb267cba4d.js +0 -1
  1088. package/assets/esri/core/workers/chunks/f0b5c140a5ba174572b6.js +0 -1
  1089. package/assets/esri/core/workers/chunks/f239a8ecad8b692d5eaa.js +0 -1
  1090. package/assets/esri/core/workers/chunks/f286680e363eefdf27df.js +0 -1
  1091. package/assets/esri/core/workers/chunks/fa3138dd8139008b430d.js +0 -1
  1092. package/assets/esri/core/workers/chunks/fb0afb41a3d87d59f574.js +0 -1
  1093. package/assets/esri/core/workers/chunks/fc9fbc8e4e459edf4e37.js +0 -1
  1094. /package/assets/esri/core/workers/chunks/{70d8f5bdb452cee41536.js.LICENSE.txt → 62e77e3c5ca9b4887923.js.LICENSE.txt} +0 -0
  1095. /package/assets/esri/core/workers/chunks/{6af88bb722bbb37db198.js.LICENSE.txt → 7df94cb985db41815fad.js.LICENSE.txt} +0 -0
  1096. /package/assets/esri/core/workers/chunks/{a0fce639319d59becd01.js.LICENSE.txt → 875cce0be4f6c89f80f3.js.LICENSE.txt} +0 -0
  1097. /package/assets/esri/core/workers/chunks/{2e8db0f05df2e38a14e1.js.LICENSE.txt → d9d4754062758789f186.js.LICENSE.txt} +0 -0
  1098. /package/assets/esri/core/workers/chunks/{1252da05832e576d4def.js.LICENSE.txt → f5731ad4cfbbf1cc569a.js.LICENSE.txt} +0 -0
@@ -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 g,initial as f,sync as w}from"../../../core/reactiveUtils.js";import{isScreenRect as v}from"../../../core/screenUtils.js";import{sqlAnd as _}from"../../../core/sql.js";import{getMetersPerUnitForSR as b}from"../../../core/units.js";import{property as S,subclass as A}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as F}from"../../../core/support/UpdatingHandles.js";import j from"../../../geometry/Extent.js";import{fromJSON as x}from"../../../geometry/support/jsonUtils.js";import R from"../../../geometry/support/rotate.js";import{isCurvedGeometry as E}from"../../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as I}from"../../../geometry/support/curves/densifyCurvedGeometry.js";import k from"../../../layers/effects/FeatureEffectView.js";import{convertFromFeature as O}from"../../../layers/graphics/featureConversionUtils.js";import U from"../../../layers/support/FeatureFilter.js";import{checkServiceCurrentUserSupport as q}from"../../../layers/support/featureLayerUtils.js";import{packFields as C}from"../../../layers/support/fieldUtils.js";import{getEffectiveLayerCapabilities as V}from"../../../layers/support/layerUtils.js";import{combineTimeExtent as Q}from"../../../layers/support/timeSupport.js";import L from"../../../rest/support/AggregateFeatureSet.js";import M from"../../../rest/support/AttributeBinsFeatureSet.js";import H from"../../../rest/support/AttributeBinsQuery.js";import P from"../../../rest/support/FeatureSet.js";import T from"../../../rest/support/Query.js";import{HittestDrawHelper as W}from"../../../symbols/cim/CIMSymbolDrawHelper.js";import{symbolToCIM as D}from"../../../symbols/cim/CIMSymbolHelper.js";import{getDisplayedSymbol as G}from"../../../symbols/support/symbolUtils.js";import{LayerView2D as N}from"./LayerView2D.js";import{FeatureContainer as J}from"./features/FeatureContainer.js";import{createFeaturePipelineWorkerProxy as z}from"./features/FeaturePipelineWorkerProxy.js";import{FeatureSourceEventLog as B}from"./features/FeatureSourceEventLog.js";import{AnnotationLayerAdapter as Z}from"./features/layerAdapters/AnnotationLayerAdapter.js";import{CatalogFootprintLayerAdapter as K}from"./features/layerAdapters/CatalogFootprintLayerAdapter.js";import{DimensionLayerAdapter as $}from"./features/layerAdapters/DimensionLayerAdapter.js";import{FeatureLayerAdapter as X}from"./features/layerAdapters/FeatureLayerAdapter.js";import{createFeatureIdInfo as Y}from"./features/layerAdapters/featureServiceUtils.js";import{InMemoryLayerAdapter as ee}from"./features/layerAdapters/InMemoryLayerAdapter.js";import{KnowledgeGraphSublayerAdapter as te}from"./features/layerAdapters/KnowledgeGraphSublayerAdapter.js";import{OGCFeatureLayerAdapter as re}from"./features/layerAdapters/OGCFeatureLayerAdapter.js";import{OrientedImageryLayerAdapter as se}from"./features/layerAdapters/OrientedImageryLayerAdapter.js";import{ParquetLayerAdapter as ie}from"./features/layerAdapters/ParquetLayerAdapter.js";import{StreamLayerAdapter as ae}from"./features/layerAdapters/StreamLayerAdapter.js";import{SubtypeGroupLayerAdapter as oe}from"./features/layerAdapters/SubtypeGroupLayerAdapter.js";import{createComplexSymbolInstances as ne}from"./features/schema/processor/symbols/ComplexSymbolSchema.js";import{DebouncedFeatureOverride as le}from"./support/DebouncedFeatureOverride.js";import{FeatureCommandQueue as ue}from"./support/FeatureCommandQueue.js";import{handleNoEngineError as he}from"./support/handleNoEngineError.js";import{toJSONGeometryType as ce}from"./support/util.js";import{getMapPointsFromScreen 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 ge(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 fe=4294967294;function we(e,t){return l(e.map(e=>g(()=>{const t=e();return t&&"object"==typeof t?"getTime"in t&&"function"==typeof t.getTime?t.getTime():JSON.stringify(t):t},t,w)))}function ve(e){if(!e.geometry)return e;if(!E(e.geometry))return e;const t=.001/b(e.geometry.spatialReference),r=100;return{geometry:I(e.geometry,{maxSegmentsPerCurve:12e3,maxSegmentLength:r*t,maxDeviation:0}),attributes:e.attributes}}const _e=l=>{const w=ye(N(l));let b=class extends w{constructor(){super(...arguments),this._commandsQueue=new ue({process:e=>{switch(e.type){case"override-batch":return this._doOverride(e);case"update":return this._doUpdate();case"highlight":return this._updateHighlights()}}}),this._visibilityOverrides=new Set,this._lastAvailableFields=[],this._lastTargetState=null,this._lastRequiredLevel=0,this.eventLog=new B,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._editUpdatingHandles=new F,this._fields=null,this._hittestDrawHelper=null,this._sourceUpdating=!1,this.featureEffectView=new k}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 z(t)}async _attachProxy(){const e=R(this.view.extent,this.view.rotation,this.view.center),t=this.view.featuresTilingScheme.getClosestInfoForScale(this.view.scale).level;t!==this._lastRequiredLevel&&(this._lastRequiredLevel=t);const r={tileInfoJSON:this.view?.featuresTilingScheme?.tileInfo?.toJSON(),initialViewExtent:e.toJSON(),requiredLevel:t,requiredScale:this.view.scale};try{await this._workerProxy.pipeline.onAttach(r),this._workerAttached.resolve()}catch(s){this._workerAttached.reject(p()),y(s)}}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":return new Z(this.layer);case"dimension-feature":return new $(this.layer);case"feature":return"memory"===this.layer.source.type?new ee(this.layer):new X(this.layer);case"geojson":case"csv":case"wfs":return new ee(this.layer);case"parquet":return new ie(this.layer);case"subtype-group":return new oe(this.layer);case"ogc-feature":return new re(this.layer);case"stream":return new ae(this.layer);case"oriented-imagery":return new se(this.layer);case"knowledge-graph-sublayer":return new te(this.layer);case"catalog-footprint":return new K(this.layer);default:this.layer}return null}get timeExtent(){return Q(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){let s;e instanceof r?s=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?s=[e]:a.isCollection(e)&&e.length>0?s=e.map(e=>e?.getObjectId()).toArray():Array.isArray(e)&&e.length>0&&(s="number"==typeof e[0]||"string"==typeof e[0]?e:e.map(e=>e?.getObjectId()));const o=s?.filter(i);if(!o?.length)return n();const l=me(t);return this._addHighlights(o,l),n(()=>!this.destroyed&&this._removeHighlights(o,l))}async hitTest(e,i){const a=v(i),{trueHitIds:o,candidateHitIds:n}=await this.featureContainer.hitTest(i),l=await this.getWorker(),[u,h]=await Promise.all([l.pipeline.getDisplayFeatures(n),l.pipeline.getDisplayFeatures(o)]),{features:c,aggregates:p,tracks:d}=u,{features:y,aggregates:g,tracks:f}=h,w=[];if(a&&this.hasRenderer()){const e=new Map,t=new r;for(const r of c){t.attributes=r.attributes,t.geometry=x(r.geometry),t.symbol=null;const s=this.layerAdapter.getRenderer(t);if(!s){w.push(r);continue}const i=await G(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=D(i);if("web-style"===o.type)try{const e=D(await o.fetchSymbol({acceptedFormats:["cim","web"]}));a="web-style"===e.type?null:e.symbol}catch(R){m(R),0;continue}else a=o.symbol;a&&e.set(r,a)}e.size>0&&!this._hittestDrawHelper&&(this._hittestDrawHelper=new W(this.view.stage.painter.textureManager.resourceManager));const{resolution:s,rotation:a}=this.view.state,o=pe(this.view,i);for(const[r,i]of e){if(!r)continue;this._hittestDrawHelper.hitTest(o,i,r.geometry,null,a,s,0,"rect")&&w.push(r)}}else w.push(...c);const _=[...y,...w],b=[...g,...p],S=[...f,...d],A=this.featureContainer.getSortKeys(_.map(e=>e.displayId)),F=({displayId:e},{displayId:t})=>A.has(e)&&A.has(t)?A.get(e)-A.get(t):e-t;_.sort(F).reverse(),b.sort(F).reverse();const j=has("parquetlayer-hittest-max-feature-count")??1;return"parquet"===this.layer.type&&_.length>j&&(_.length=j),[...b.map(r=>this._createAggregateGraphicHit(e,t.fromJSON(r))),...S.map(t=>this._createTrackGraphicHit(e,s.fromJSON(t))),..._.map(t=>this._createFeatureGraphicHit(a?null:e,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 he(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 he(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 he(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 he(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 he(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateCount(e,t){const r=(await this.getWorker()).aggregates.executeQueryForCount(this._cleanUpAggregateQuery(e),t);return he(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 he(a,{bins:[],maxValue:null,minValue:null,normalizationTotal:null})}async queryAggregateIds(e,t){const r=(await this.getWorker()).aggregates.executeQueryForIds(this._cleanUpAggregateQuery(e),t);return he(r,[])}async queryAggregateJSON(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t);return he(r,{features:[]})}async queryAttributeBins(e,t){const r=(await this.getWorker()).features.executeAttributeBinsQuery(this._cleanUpAttributeBinsQuery(e),t),s=await he(r,{features:[]});return M.fromJSON(s)}async queryAggregates(e,t){const r=(await this.getWorker()).aggregates.executeQuery(this._cleanUpAggregateQuery(e),t),s=await he(r,{features:[]}),i=L.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 he(a,{classBreakInfos:[]})}async queryExtent(e,t){const r=(await this.getWorker()).features.executeQueryForExtent(this._cleanUpQuery(e),t),s=await he(r,{count:0,extent:null});return{count:s.count,extent:j.fromJSON(s.extent)}}async queryFeatureCount(e,t){const r=(await this.getWorker()).features.executeQueryForCount(this._cleanUpQuery(e),t);return he(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 he(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 he(r,[])}async queryStatistics(){const e=await this.getWorker();return he(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 he(a,{})}async queryVisibleFeatures(e,t){const r=(await this.getWorker()).pipeline.queryVisibleFeatures(this._cleanUpQuery(e),t),s=await he(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 J(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptions=new de(this.view.featuresTilingScheme),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()),g(()=>this.updateSuspended,e=>{e||this._subscriptions.resume(this.featureContainer.getPresenting())}),g(()=>this.view.scale,async e=>{const t=this.view.featuresTilingScheme.getClosestInfoForScale(e).level;if(t!==this._lastRequiredLevel){this._lastRequiredLevel=t;(await this.getWorker()).pipeline.updateRequiredLevel(t,e)}},f),g(()=>this.view.stationary,async e=>{if(e){const e=await this.getWorker(),t=R(this.view.extent,this.view.rotation,this.view.center);e.pipeline.updateStationaryExtent(t.toJSON(),this.featureContainer.requiresRefresh)}})]),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))))}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")},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("subtype-group"===this.layer.type)throw new Error("InternalError: SubtypeGroupLayer does not support dictionary renderer");const t=this.layer.renderer;if(!t||"dictionary"!==t.type)throw new Error("InternalError: Expected layer to have a DictionaryRenderer");const 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};this._fields||(this._fields=this.layer.fields.map(e=>e.toJSON()));const i=r.visualVariableUniforms,a=ce(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 ne({...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};this._fields||(this._fields=t.fields.map(e=>e.toJSON()));return{type:"mesh-response",meshes:await ne({...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=T.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=H.from(e);return t.outSpatialReference||(t.outSpatialReference=this.view.spatialReference),t.toJSON()}_cleanUpAggregateQuery(e){const t=T.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)%fe+1}incrementDisplayRefreshVersion(){this._displayRefreshVersion=(this._displayRefreshVersion+1)%fe+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=ce(this.layer.geometryType),i=Y(this.layer),a=[];for(const n of e.added){const e=O(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=O(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(),q(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},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 le;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 le,r.tryAdd(await this._resolveEdit(s.event)));break;case"override":r.tryAdd(this._resolveOverrides(s.options))||(await t.pipeline.onOverride(r.toMessage()),r=new le,r.tryAdd(this._resolveOverrides(s.options)));break}await t.pipeline.onOverride(r.toMessage())}catch(r){m(r),0}}_getEffectiveAvailableFields(e){const t=ge(this._lastAvailableFields,e);return this._lastAvailableFields=t,C(this.layer.fieldsIndex,t)}async _createViewSchemaConfig(){const e=this.requiresCurrentUser?await this.signedInUser:null,t=[E(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter,this.effectiveDisplayFilterClause),this.featureEffect?.filter?.toJSON()??null];return{availableFields:this._getEffectiveAvailableFields(this.availableFields),displayFilterEnabled:this.displayFilterEnabled,filters:t,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}}_processHighlight(){this._commandsQueue.push({type:"highlight"})}async _updateHighlights(){const e=this._getHighlights(),t=await this.getWorker();if(this.destroyed)return;const r=t.pipeline.updateHighlight({highlights:e}).catch(e=>{m(e)||u.getLogger(this).error(e)});this._updatingHandles.consumePromise(r)}_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 E(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 U,i.timeExtent=n),i=t.addFilters?.(i,e)??i,a&&(i??=new U,i.where=_(i.where,a));let l=i?.toJSON()??null;return s.size&&(l??=(new U).toJSON(),l.hiddenIds=Array.from(s)),l}return e([S()],b.prototype,"_commandsQueue",void 0),e([S()],b.prototype,"_sourceRefreshVersion",void 0),e([S()],b.prototype,"_displayRefreshVersion",void 0),e([S({readOnly:!0})],b.prototype,"_pipelineUpdating",void 0),e([S()],b.prototype,"_sourceUpdating",void 0),e([S({readOnly:!0})],b.prototype,"dataUpdating",null),e([S({readOnly:!0})],b.prototype,"hasAllFeatures",null),e([S({readOnly:!0})],b.prototype,"hasAllFeaturesInView",null),e([S({readOnly:!0})],b.prototype,"hasFullGeometries",null),e([S()],b.prototype,"featureEffectView",void 0),e([S()],b.prototype,"layerAdapter",null),e([S({readOnly:!0})],b.prototype,"timeExtent",null),b=e([A("esri.views.2d.layers.FeatureLikeLayerView2D")],b),b};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 g,sync as f}from"../../../core/reactiveUtils.js";import{isScreenRect as w}from"../../../core/screenUtils.js";import{sqlAnd as v}from"../../../core/sql.js";import{getMetersPerUnitForSR as _}from"../../../core/units.js";import{property as b,subclass as S}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as A}from"../../../core/support/UpdatingHandles.js";import F from"../../../geometry/Extent.js";import{fromJSON as j}from"../../../geometry/support/jsonUtils.js";import x from"../../../geometry/support/rotate.js";import{isCurvedGeometry as E}from"../../../geometry/support/curves/curveUtils.js";import{densifyCurvedGeometry as I}from"../../../geometry/support/curves/densifyCurvedGeometry.js";import k from"../../../layers/effects/FeatureEffectView.js";import{convertFromFeature as O}from"../../../layers/graphics/featureConversionUtils.js";import U from"../../../layers/support/FeatureFilter.js";import{checkServiceCurrentUserSupport as R}from"../../../layers/support/featureLayerUtils.js";import{packFields as V}from"../../../layers/support/fieldUtils.js";import{getEffectiveLayerCapabilities as C}from"../../../layers/support/layerUtils.js";import{combineTimeExtent as Q}from"../../../layers/support/timeSupport.js";import q from"../../../rest/support/AggregateFeatureSet.js";import M from"../../../rest/support/AttributeBinsFeatureSet.js";import H from"../../../rest/support/AttributeBinsQuery.js";import P from"../../../rest/support/FeatureSet.js";import L from"../../../rest/support/Query.js";import{HittestDrawHelper as T}from"../../../symbols/cim/CIMSymbolDrawHelper.js";import{symbolToCIM as W}from"../../../symbols/cim/CIMSymbolHelper.js";import{getDisplayedSymbol as D}from"../../../symbols/support/symbolUtils.js";import{LayerView2D as G}from"./LayerView2D.js";import{FeatureContainer as N}from"./features/FeatureContainer.js";import{createFeaturePipelineWorkerProxy as J}from"./features/FeaturePipelineWorkerProxy.js";import{FeatureSourceEventLog as z}from"./features/FeatureSourceEventLog.js";import{AnnotationLayerAdapter as B}from"./features/layerAdapters/AnnotationLayerAdapter.js";import{CatalogFootprintLayerAdapter as Z}from"./features/layerAdapters/CatalogFootprintLayerAdapter.js";import{DimensionLayerAdapter as K}from"./features/layerAdapters/DimensionLayerAdapter.js";import{FeatureLayerAdapter as $}from"./features/layerAdapters/FeatureLayerAdapter.js";import{createFeatureIdInfo as X}from"./features/layerAdapters/featureServiceUtils.js";import{InMemoryLayerAdapter as Y}from"./features/layerAdapters/InMemoryLayerAdapter.js";import{KnowledgeGraphSublayerAdapter as ee}from"./features/layerAdapters/KnowledgeGraphSublayerAdapter.js";import{OGCFeatureLayerAdapter as te}from"./features/layerAdapters/OGCFeatureLayerAdapter.js";import{OrientedImageryLayerAdapter as re}from"./features/layerAdapters/OrientedImageryLayerAdapter.js";import{ParquetLayerAdapter as se}from"./features/layerAdapters/ParquetLayerAdapter.js";import{StreamLayerAdapter as ie}from"./features/layerAdapters/StreamLayerAdapter.js";import{SubtypeGroupLayerAdapter as ae}from"./features/layerAdapters/SubtypeGroupLayerAdapter.js";import{createComplexSymbolInstances as oe}from"./features/schema/processor/symbols/ComplexSymbolSchema.js";import{DebouncedFeatureOverride as ne}from"./support/DebouncedFeatureOverride.js";import{FeatureCommandQueue as le}from"./support/FeatureCommandQueue.js";import{handleNoEngineError as ue}from"./support/handleNoEngineError.js";import{toJSONGeometryType as he}from"./support/util.js";import{getMapPointsFromScreen as ce}from"../support/hitTestUtils.js";import{FeatureTileSubscriptionManager as pe}from"../tiling/FeatureTileSubscriptionManager.js";import{RefreshableLayerView as de}from"../../layers/RefreshableLayerView.js";import{getHighlightName as ye}from"../../support/highlightOptionsUtils.js";function me(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 fe(e,t){return l(e.map(e=>g(()=>{const t=e();return t&&"object"==typeof t?"getTime"in t&&"function"==typeof t.getTime?t.getTime():JSON.stringify(t):t},t,f)))}function we(e){if(!e.geometry)return e;if(!E(e.geometry))return e;const t=.001/_(e.geometry.spatialReference),r=100;return{geometry:I(e.geometry,{maxSegmentsPerCurve:12e3,maxSegmentLength:r*t,maxDeviation:0}),attributes:e.attributes}}const ve=l=>{const f=de(G(l));let _=class extends f{constructor(){super(...arguments),this._commandsQueue=new le({process:e=>{switch(e.type){case"override-batch":return this._doOverride(e);case"update":return this._doUpdate();case"highlight":return this._updateHighlights()}}}),this._visibilityOverrides=new Set,this._lastAvailableFields=[],this._lastTargetState=null,this.eventLog=new z,this._sourceRefreshVersion=1,this._displayRefreshVersion=1,this._pipelineUpdating=!1,this._editUpdatingHandles=new A,this._fields=null,this._hittestDrawHelper=null,this._sourceUpdating=!1,this.featureEffectView=new k}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 J(t)}async _attachProxy(){const e=x(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":return new B(this.layer);case"dimension-feature":return new K(this.layer);case"feature":return"memory"===this.layer.source.type?new Y(this.layer):new $(this.layer);case"geojson":case"csv":case"wfs":return new Y(this.layer);case"parquet":return new se(this.layer);case"subtype-group":return new ae(this.layer);case"ogc-feature":return new te(this.layer);case"stream":return new ie(this.layer);case"oriented-imagery":return new re(this.layer);case"knowledge-graph-sublayer":return new ee(this.layer);case"catalog-footprint":return new Z(this.layer);default:this.layer}return null}get timeExtent(){return Q(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){let s;e instanceof r?s=[e.getObjectId()]:"number"==typeof e||"string"==typeof e?s=[e]:a.isCollection(e)&&e.length>0?s=e.map(e=>e?.getObjectId()).toArray():Array.isArray(e)&&e.length>0&&(s="number"==typeof e[0]||"string"==typeof e[0]?e:e.map(e=>e?.getObjectId()));const o=s?.filter(i);if(!o?.length)return n();const l=ye(t);return this._addHighlights(o,l),n(()=>!this.destroyed&&this._removeHighlights(o,l))}async hitTest(e,i){const a=w(i),{trueHitIds:o,candidateHitIds:n}=await this.featureContainer.hitTest(i),l=await this.getWorker(),[u,h]=await Promise.all([l.pipeline.getDisplayFeatures(n),l.pipeline.getDisplayFeatures(o)]),{features:c,aggregates:p,tracks:d}=u,{features:y,aggregates:g,tracks:f}=h,v=[];if(a&&this.hasRenderer()){const e=new Map,t=new r;for(const r of c){t.attributes=r.attributes,t.geometry=j(r.geometry),t.symbol=null;const s=this.layerAdapter.getRenderer(t);if(!s){v.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=W(i);if("web-style"===o.type)try{const e=W(await o.fetchSymbol({acceptedFormats:["cim","web"]}));a="web-style"===e.type?null:e.symbol}catch(E){m(E),0;continue}else a=o.symbol;a&&e.set(r,a)}e.size>0&&!this._hittestDrawHelper&&(this._hittestDrawHelper=new T(this.view.stage.painter.textureManager.resourceManager));const{resolution:s,rotation:a}=this.view.state,o=ce(this.view,i);for(const[r,i]of e){if(!r)continue;this._hittestDrawHelper.hitTest(o,i,r.geometry,null,a,s,0,"rect")&&v.push(r)}}else v.push(...c);const _=[...y,...v],b=[...g,...p],S=[...f,...d],A=this.featureContainer.getSortKeys(_.map(e=>e.displayId)),F=({displayId:e},{displayId:t})=>A.has(e)&&A.has(t)?A.get(e)-A.get(t):e-t;_.sort(F).reverse(),b.sort(F).reverse();const x=has("parquetlayer-hittest-max-feature-count")??1;return"parquet"===this.layer.type&&_.length>x&&(_.length=x),[...b.map(r=>this._createAggregateGraphicHit(e,t.fromJSON(r))),...S.map(t=>this._createTrackGraphicHit(e,s.fromJSON(t))),..._.map(t=>this._createFeatureGraphicHit(a?null:e,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 M.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:F.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 N(this),this.container.addChild(this.featureContainer),this.view.timeline.record(`${this.layer.title} (FeatureLayer) Attach`),this._subscriptions=new pe(this.view.featuresTilingScheme),this.requestUpdate(),this.addAttachHandles([fe([()=>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()),g(()=>this.updateSuspended,e=>{e||this._subscriptions.resume(this.featureContainer.getPresenting())}),g(()=>this.view.stationary,async e=>{if(e){const e=await this.getWorker(),t=x(this.view.extent,this.view.rotation,this.view.center);e.pipeline.updateStationaryExtent(t.toJSON(),this.featureContainer.requiresRefresh)}})]),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))))}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")},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("subtype-group"===this.layer.type)throw new Error("InternalError: SubtypeGroupLayer does not support dictionary renderer");const t=this.layer.renderer;if(!t||"dictionary"!==t.type)throw new Error("InternalError: Expected layer to have a DictionaryRenderer");const 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};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 oe({...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};this._fields||(this._fields=t.fields.map(e=>e.toJSON()));return{type:"mesh-response",meshes:await oe({...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=H.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=X(this.layer),a=[];for(const n of e.added){const e=O(we(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=O(we(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(),R(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},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 ne;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 ne,r.tryAdd(await this._resolveEdit(s.event)));break;case"override":r.tryAdd(this._resolveOverrides(s.options))||(await t.pipeline.onOverride(r.toMessage()),r=new ne,r.tryAdd(this._resolveOverrides(s.options)));break}await t.pipeline.onOverride(r.toMessage())}catch(r){m(r),0}}_getEffectiveAvailableFields(e){const t=me(this._lastAvailableFields,e);return this._lastAvailableFields=t,V(this.layer.fieldsIndex,t)}async _createViewSchemaConfig(){const e=this.requiresCurrentUser?await this.signedInUser:null,t=[E(this.view,this.layerAdapter,this.timeExtent,this._visibilityOverrides,this.filter,this.effectiveDisplayFilterClause),this.featureEffect?.filter?.toJSON()??null];return{availableFields:this._getEffectiveAvailableFields(this.availableFields),displayFilterEnabled:this.displayFilterEnabled,filters:t,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}}_processHighlight(){this._commandsQueue.push({type:"highlight"})}async _updateHighlights(){const e=this._getHighlights(),t=await this.getWorker();if(this.destroyed)return;const r=t.pipeline.updateHighlight({highlights:e}).catch(e=>{m(e)||u.getLogger(this).error(e)});this._updatingHandles.consumePromise(r)}_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 E(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 U,i.timeExtent=n),i=t.addFilters?.(i,e)??i,a&&(i??=new U,i.where=v(i.where,a));let l=i?.toJSON()??null;return s.size&&(l??=(new U).toJSON(),l.hiddenIds=Array.from(s)),l}return e([b()],_.prototype,"_commandsQueue",void 0),e([b()],_.prototype,"_sourceRefreshVersion",void 0),e([b()],_.prototype,"_displayRefreshVersion",void 0),e([b({readOnly:!0})],_.prototype,"_pipelineUpdating",void 0),e([b()],_.prototype,"_sourceUpdating",void 0),e([b({readOnly:!0})],_.prototype,"dataUpdating",null),e([b({readOnly:!0})],_.prototype,"hasAllFeatures",null),e([b({readOnly:!0})],_.prototype,"hasAllFeaturesInView",null),e([b({readOnly:!0})],_.prototype,"hasFullGeometries",null),e([b()],_.prototype,"featureEffectView",void 0),e([b()],_.prototype,"layerAdapter",null),e([b({readOnly:!0})],_.prototype,"timeExtent",null),_=e([S("esri.views.2d.layers.FeatureLikeLayerView2D")],_),_};export{ve as FeatureLikeLayerView2D};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import has from"../../../core/has.js";import{clone as t}from"../../../core/lang.js";import i from"../../../core/Logger.js";import{destroyMaybe as s}from"../../../core/maybe.js";import{isAbortError as r}from"../../../core/promiseUtils.js";import{createScreenPoint as a,isScreenRect as l,pt2px as n}from"../../../core/screenUtils.js";import{property as o,subclass as h}from"../../../core/accessorSupport/decorators.js";import{diff as y,hasDiff as u}from"../../../core/accessorSupport/diffUtils.js";import c from"../../../geometry/Point.js";import{create as d}from"../../../geometry/support/aaBoundingRect.js";import{equals as p}from"../../../geometry/support/spatialReferenceUtils.js";import{isVectorTileGraphicOrigin as _}from"../../../graphic/isVectorTileGraphicOrigin.js";import{tileSizeInTileUnits as f,tileSizeInPixels as g}from"../engine/vectorTiles/constants.js";import{TileHandler as m}from"../engine/vectorTiles/TileHandler.js";import{TileManager as T}from"../engine/vectorTiles/TileManager.js";import{VectorTile as C}from"../engine/vectorTiles/VectorTile.js";import{VectorTileContainer as v}from"../engine/vectorTiles/VectorTileContainer.js";import w from"../engine/vectorTiles/VectorTileFeatureIndex.js";import R from"../engine/vectorTiles/style/StyleRepository.js";import{LayerView2D as H}from"./LayerView2D.js";import I from"../tiling/TileInfoViewPOT.js";import Q from"../tiling/TileQueue.js";import S from"../../layers/VectorTileLayerView.js";import{TaskPriority as P}from"../../support/Scheduler.js";const b=2.5;let V=class extends(H(S)){constructor(){super(...arguments),this._styleChanges=[],this._fetchQueue=null,this._parseQueue=null,this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._styeChanged=!1,this._spriteSourceChanged=!1}get fading(){return(this._vectorTileContainer?.fading||this._tileManager?.isFading())??!1}get hasVisibleFeatures(){const e=this._vectorTileContainer.children;for(const t of e)if(t.hasFeatures())return!0;return!1}get spriteSourceChanged(){return this._spriteSourceChanged}get styleChanged(){return this._styeChanged}async hitTest(e,t){const i=this._tileHandlerPromise,s=this._vectorTileContainer?.symbolFader;if(!i||!this._isTileHandlerReady||!s)return;await i;let r=[];if(l(t)){const e=t;r=[a(e.x,e.y+e.height),a(e.x+e.width,e.y+e.height),a(e.x+e.width,e.y),a(e.x,e.y)]}else r=[t];const o=has("esri-vtl-search-tolerance")??0,h=o>0?o:b,y=this.view.state,{rotation:u,pixelRatio:c}=this.view.state,d=n(h)*c;let p=null;const _=this._vectorTileContainer?.symbolRepository;_&&(p=_.querySymbols(r[0],d,s.decluttererOffset,{}));const f=this._tileManager.getIntersectingTiles(r[0].x,r[0].y,d,y,p);if(p=p?.filter(e=>this._styleRepository.getStyleLayerVisibility(e.styleLayerUID)),(!f||0===f.length)&&0===p?.length)return null;e=e.clone().normalize();const g=[],m=[];for(const a of f)g.push(this._queryTile(m,e,d,u,a,p?.filter(e=>e.tileKey.id===a.id)));return await Promise.all(g),m}update(e){if(this._tileHandlerPromise&&this._isTileHandlerReady)return e.pixelRatio!==this._tileHandler.devicePixelRatio?(this._tileHandler.devicePixelRatio=e.pixelRatio,void this._loadStyle()):void(this._styleChanges.length>0?this._tileHandlerPromise=this._applyStyleChanges():(this._pauseQueues(),this._fetchQueue.state=e.state,this._parseQueue.state=e.state,this._tileManager.update(e)||this.requestUpdate(),this._resumeQueues()))}attach(){const{style:e}=this.layer.currentStyleInfo;this._styleRepository=new R(e),this._tileInfoView=new I(this.layer.tileInfo,this.layer.fullExtent),this._vectorTileContainer=new v(this._tileInfoView),this._tileHandler=new m(this.layer,this._styleRepository,window.devicePixelRatio||1,this.layer.tileInfo.lods.length-1),this.container.addChild(this._vectorTileContainer),this._start(),this.addAttachHandles([this.layer.on("paint-change",e=>{if(this._styeChanged=!0,e.isDataDriven)this._styleChanges.push({type:0,data:e}),this.requestUpdate();else{const t=this._styleRepository,i=t.getLayerById(e.layer);if(!i)return;const s=3===i.type;t.setPaintProperties(e.layer,e.paint),s&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()}}),this.layer.on("layout-change",e=>{const t=this._styleRepository,i=t.getLayerById(e.layer);if(!i)return;this._styeChanged=!0;const s=y(i.layout,e.layout);if(null!=s){if(u(s,"visibility")&&1===D(s))return t.setLayoutProperties(e.layer,e.layout),3===i.type&&this._vectorTileContainer?.restartDeclutter(),void this._vectorTileContainer?.requestRender();this._styleChanges.push({type:1,data:e}),this.requestUpdate()}}),this.layer.on("style-layer-visibility-change",e=>{const t=this._styleRepository,i=t.getLayerById(e.layer);i&&(this._styeChanged=!0,t.setStyleLayerVisibility(e.layer,e.visibility),3===i.type&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender())}),this.layer.on("style-layer-change",e=>{this._styleChanges.push({type:2,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on("delete-style-layer",e=>{this._styleChanges.push({type:3,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on("load-style",()=>this._loadStyle()),this.layer.on("spriteSource-change",e=>{this._spriteSourceChanged=!0,this._styleChanges.push({type:4,data:e});const t=this._styleRepository.layers;for(const i of t)switch(i.type){case 3:i.getLayoutProperty("icon-image")&&this._styleChanges.push({type:1,data:{layer:i.id,layout:i.layout}});break;case 2:i.getPaintProperty("line-pattern")&&this._styleChanges.push({type:0,data:{layer:i.id,paint:i.paint,isDataDriven:i.isPainterDataDriven()}});break;case 1:i.getLayoutProperty("fill-pattern")&&this._styleChanges.push({type:0,data:{layer:i.id,paint:i.paint,isDataDriven:i.isPainterDataDriven()}})}this.requestUpdate()})])}detach(){this._stop(),this.container.removeAllChildren(),this._vectorTileContainer=s(this._vectorTileContainer),this._tileHandler=s(this._tileHandler)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return p(this.layer.tileInfo?.spatialReference,e)}canResume(){let e=super.canResume();const{currentStyleInfo:t}=this.layer;if(e&&t?.layerDefinition){const i=this.view.scale,{minScale:s,maxScale:r}=t.layerDefinition;t?.layerDefinition&&(s&&s<i&&(e=!1),r&&r>i&&(e=!1))}return e}isUpdating(){return this.fading}acquireTile(e){const t=this._createVectorTile(e);return this._updatingHandles.consumePromise(this._fetchQueue.push(t.key).then(e=>this._parseQueue.push({key:t.key,data:e})).then(e=>{t.once("attach",()=>this.requestUpdate()),t.setData(e),this.requestUpdate()}).catch(e=>{r(e)||i.getLogger(this).error(e)})),t}releaseTile(e){const t=e.key.id;this._fetchQueue.abort(t),this._parseQueue.abort(t),this.requestUpdate()}async doRefresh(){if(!this.attached)return;if(this.suspended)return this._tileManager.clear(),void this.requestUpdate();this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache(),this._resumeQueues();const e=this._vectorTileContainer.children,t=[];try{for(const i of e){const e=this._updatingHandles.addPromise(this._fetchQueue.push(i.key).then(e=>this._parseQueue.push({key:i.key,data:e})).then(e=>i.setData(e)).finally(()=>i.featureIndex=null));t.push(e)}await Promise.all(t)}catch(s){i.getLogger(this).error("error refreshing vector-tiles layer-view",s),this._resumeQueues(),this._isTileHandlerReady=!0}this._isTileHandlerReady=!0,this.requestUpdate()}_start(){if(this._stop(),this._tileManager=new T({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),!this.layer.currentStyleInfo)return;const e=new AbortController,t=this._tileHandler.start({signal:e.signal}).then(()=>{this._fetchQueue=new Q({tileInfoView:this._tileInfoView,process:(e,t)=>this._getTileData(e,t),concurrency:15,scheduler:this.scheduler,priority:P.MAPVIEW_FETCH_QUEUE}),this._parseQueue=new Q({tileInfoView:this._tileInfoView,process:(e,t)=>this._parseTileData(e,t),concurrency:8,scheduler:this.scheduler,priority:P.MAPVIEW_VECTOR_TILE_PARSING_QUEUE}),this.requestUpdate(),this._isTileHandlerReady=!0});this._tileHandler.spriteMosaic.then(e=>{this._vectorTileContainer.setStyleResources(e,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this.requestUpdate()}),this._tileHandlerAbortController=e,this._tileHandlerPromise=t}_stop(){if(!this._tileHandlerAbortController||!this._vectorTileContainer)return;const e=this._tileHandlerAbortController;e&&e.abort(),this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._fetchQueue=s(this._fetchQueue),this._parseQueue=s(this._parseQueue),this._tileManager=s(this._tileManager),this._vectorTileContainer.removeAllChildren()}async _getTileData(e,t){return this._tileHandler.fetchTileData(e,t)}async _parseTileData(e,t){return this._tileHandler.parseTileData(e,t)}async _applyStyleChanges(){this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache();const e=this._styleChanges;try{await this._tileHandler.updateStyle(e)}catch(o){i.getLogger(this).error("error applying vector-tiles style update",o.message),this._resumeQueues(),this._isTileHandlerReady=!0}const t=this._styleRepository,s=new Set,r=new Set;for(const i of e){if(3!==i.type&&2!==i.type)continue;const e=2===i.type?i.data.layer.id:i.data.layer,a=t.getLayerById(e);a&&(s.add(a.uid),3===a.type&&r.add(a.uid))}const a=this._vectorTileContainer.children,l=this._vectorTileContainer?.symbolFader?.symbolRepository;l&&r.size>0&&l.deleteStyleLayers(Array.from(r));const n=new Set;if(e.forEach(e=>{let i;switch(e.type){case 0:t.setPaintProperties(e.data.layer,e.data.paint),i=e.data.layer;break;case 1:t.setLayoutProperties(e.data.layer,e.data.layout),i=e.data.layer;break;case 3:return void t.deleteStyleLayer(e.data.layer);case 2:t.setStyleLayer(e.data.layer,e.data.index),i=e.data.layer.id;break;case 4:this._vectorTileContainer.setSpriteMosaic(this._tileHandler.setSpriteSource(e.data.spriteSource))}if(i){const e=t.getLayerById(i);e&&n.add(e.uid)}}),s.size>0){const e=Array.from(s);this._vectorTileContainer.deleteStyleLayers(e);for(const t of a)t.deleteLayerData(e)}if(this._resumeQueues(),n.size>0){const e=Array.from(n),t=[];for(const i of a){const s=this._updatingHandles.addPromise(this._fetchQueue.push(i.key).then(t=>this._parseQueue.push({key:i.key,data:t,styleLayerUIDs:e})).then(e=>i.setData(e)).finally(()=>i.featureIndex=null));t.push(s)}await Promise.all(t)}this._styleChanges=[],this._isTileHandlerReady=!0,this.requestUpdate()}async _loadStyle(){const{style:e}=this.layer.currentStyleInfo,i=t(e);this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._styleRepository=new R(i),this._vectorTileContainer.destroy(),this._tileManager.clear(),this._tileHandlerAbortController.abort(),this._tileHandlerAbortController=new AbortController;const{signal:s}=this._tileHandlerAbortController;try{this._tileHandlerPromise=this._tileHandler.setStyle(this._styleRepository,i,this.layer.tileInfo.lods.length-1),await this._tileHandlerPromise}catch(n){if(!r(n))throw n}if(s.aborted)return this._resumeQueues(),this._isTileHandlerReady=!0,this._styeChanged=!1,this._spriteSourceChanged=!1,void this.requestUpdate();const a=await this._tileHandler.spriteMosaic,l=this._vectorTileContainer;this._tileInfoView=new I(this.layer.tileInfo,this.layer.fullExtent),l.setStyleResources(a,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this._tileManager=new T({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),this._resumeQueues(),this._isTileHandlerReady=!0,this.requestUpdate(),this._styeChanged=!1,this._spriteSourceChanged=!1}_createVectorTile(e){const t=this._tileInfoView.getTileBounds(d(),e),i=this._tileInfoView.getTileResolution(e.level);return new C(e,i,t[0],t[3],512,512,this._styleRepository)}async _queryTile(e,t,i,s,r,a){if(0===r.layerData.size)return;const l=this._ensureTileIndex(r),[n,o,h,y]=this._tileInfoView.getTileBounds(d(),r.key,!0),u=f*((t.x-n)/(h-n)),c=f*(1-(t.y-o)/(y-o)),p=i*(f/g),m=await l.queryAttributes(u,c,p,s,a);for(const d of m)d.graphic.geometry=this._tileToMapPoint(d.tilePoint,r.transforms.tileUnitsToPixels),e.push({type:"graphic",layer:this.layer,graphic:d.graphic,mapPoint:t.clone()});e.sort((e,t)=>(_(t.graphic.origin)?t.graphic.origin.layerIndex:0)-(_(e.graphic.origin)?e.graphic.origin.layerIndex:0))}_tileToMapPoint(e,t){if(!e)return null;const i=e[0]*t[0]+e[1]*t[3]+t[6],s=e[0]*t[1]+e[1]*t[4]+t[7],r=this.view.state,a=[0,0];return r.toMap(a,[i,s]),new c({x:a[0],y:a[1],spatialReference:r.spatialReference})}_ensureTileIndex(e){let t=e.featureIndex;return t||(t=w.create(e.key,e.layerData,this._styleRepository,this._tileHandler,this.layer),e.featureIndex=t),t}_pauseQueues(){this._fetchQueue.pause(),this._parseQueue.pause()}_resumeQueues(){this._fetchQueue.resume(),this._parseQueue.resume()}_clearQueues(){this._fetchQueue.clear(),this._parseQueue.clear()}};function D(e){if(null==e)return 0;switch(e.type){case"partial":return Object.keys(e.diff).length;case"complete":return Math.max(Object.keys(e.oldValue).length,Object.keys(e.newValue).length);case"collection":return Object.keys(e.added).length+Object.keys(e.changed).length+Object.keys(e.removed).length}}e([o()],V.prototype,"_isTileHandlerReady",void 0),V=e([h("esri.views.2d.layers.VectorTileLayerView2D")],V);const j=V;export{j as default};
2
+ import{__decorate as e}from"tslib";import has from"../../../core/has.js";import{clone as t}from"../../../core/lang.js";import i from"../../../core/Logger.js";import{destroyMaybe as s}from"../../../core/maybe.js";import{isAbortError as r}from"../../../core/promiseUtils.js";import{createScreenPoint as a,isScreenRect as l,pt2px as n}from"../../../core/screenUtils.js";import{property as o,subclass as h}from"../../../core/accessorSupport/decorators.js";import{diff as y,hasDiff as u}from"../../../core/accessorSupport/diffUtils.js";import c from"../../../geometry/Point.js";import{create as d}from"../../../geometry/support/aaBoundingRect.js";import{equals as p}from"../../../geometry/support/spatialReferenceUtils.js";import{isVectorTileGraphicOrigin as _}from"../../../graphic/isVectorTileGraphicOrigin.js";import{tileSizeInTileUnits as f,tileSizeInPixels as g}from"../engine/vectorTiles/constants.js";import{TileHandler as m}from"../engine/vectorTiles/TileHandler.js";import{TileManager as T}from"../engine/vectorTiles/TileManager.js";import{VectorTile as C}from"../engine/vectorTiles/VectorTile.js";import{VectorTileContainer as v}from"../engine/vectorTiles/VectorTileContainer.js";import w from"../engine/vectorTiles/VectorTileFeatureIndex.js";import R from"../engine/vectorTiles/style/StyleRepository.js";import{LayerView2D as H}from"./LayerView2D.js";import I from"../tiling/TileInfoViewPOT.js";import Q from"../tiling/TileQueue.js";import S from"../../layers/VectorTileLayerView.js";import{TaskPriority as P}from"../../support/Scheduler.js";const b=2.5;let V=class extends(H(S)){constructor(){super(...arguments),this._styleChanges=[],this._fetchQueue=null,this._parseQueue=null,this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._styeChanged=!1,this._spriteSourceChanged=!1}get fading(){return(this._vectorTileContainer?.fading||this._tileManager?.isFading())??!1}get hasVisibleFeatures(){const e=this._vectorTileContainer.children;for(const t of e)if(t.hasFeatures())return!0;return!1}get spriteSourceChanged(){return this._spriteSourceChanged}get styleChanged(){return this._styeChanged}async hitTest(e,t){const i=this._tileHandlerPromise,s=this._vectorTileContainer?.symbolFader;if(!i||!this._isTileHandlerReady||!s)return;await i;let r=[];if(l(t)){const e=t;r=[a(e.x,e.y+e.height),a(e.x+e.width,e.y+e.height),a(e.x+e.width,e.y),a(e.x,e.y)]}else r=[t];const o=has("esri-vtl-search-tolerance")??0,h=o>0?o:b,y=this.view.state,{rotation:u,pixelRatio:c}=this.view.state,d=n(h)*c;let p=null;const _=this._vectorTileContainer?.symbolRepository;_&&(p=_.querySymbols(r[0],d,s.decluttererOffset,{}));const f=this._tileManager.getIntersectingTiles(r[0].x,r[0].y,d,y,p);if(p=p?.filter(e=>this._styleRepository.getStyleLayerVisibility(e.styleLayerUID)),(!f||0===f.length)&&0===p?.length)return null;e=e.clone().normalize();const g=[],m=[];for(const a of f)g.push(this._queryTile(m,e,d,u,a,p?.filter(e=>e.tileKey.id===a.id)));return await Promise.all(g),m}update(e){if(this._tileHandlerPromise&&this._isTileHandlerReady)return e.pixelRatio!==this._tileHandler.devicePixelRatio?(this._tileHandler.devicePixelRatio=e.pixelRatio,void this._loadStyle()):void(this._styleChanges.length>0?this._tileHandlerPromise=this._applyStyleChanges():(this._pauseQueues(),this._fetchQueue.state=e.state,this._parseQueue.state=e.state,this._tileManager.update(e)||this.requestUpdate(),this._resumeQueues()))}attach(){const{style:e}=this.layer.currentStyleInfo;this._styleRepository=new R(e),this._tileInfoView=new I(this.layer.tileInfo,this.layer.fullExtent),this._vectorTileContainer=new v(this._tileInfoView),this._tileHandler=new m(this.layer,this._styleRepository,window.devicePixelRatio||1,this.layer.tileInfo.lods.length-1),this.container.addChild(this._vectorTileContainer),this._start(),this.addAttachHandles([this.layer.on("paint-change",e=>{if(this._styeChanged=!0,e.isDataDriven)this._styleChanges.push({type:0,data:e}),this.requestUpdate();else{const t=this._styleRepository,i=t.getLayerById(e.layer);if(!i)return;const s=3===i.type;t.setPaintProperties(e.layer,e.paint),s&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender()}}),this.layer.on("layout-change",e=>{const t=this._styleRepository,i=t.getLayerById(e.layer);if(!i)return;this._styeChanged=!0;const s=y(i.layout,e.layout);if(null!=s){if(u(s,"visibility")&&1===D(s))return t.setLayoutProperties(e.layer,e.layout),3===i.type&&this._vectorTileContainer?.restartDeclutter(),void this._vectorTileContainer?.requestRender();this._styleChanges.push({type:1,data:e}),this.requestUpdate()}}),this.layer.on("style-layer-visibility-change",e=>{const t=this._styleRepository,i=t.getLayerById(e.layer);i&&(this._styeChanged=!0,t.setStyleLayerVisibility(e.layer,e.visibility),3===i.type&&this._vectorTileContainer?.restartDeclutter(),this._vectorTileContainer?.requestRender())}),this.layer.on("style-layer-change",e=>{this._styleChanges.push({type:2,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on("delete-style-layer",e=>{this._styleChanges.push({type:3,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on("load-style",()=>this._loadStyle()),this.layer.on("spriteSource-change",e=>{this._spriteSourceChanged=!0,this._styleChanges.push({type:4,data:e});const t=this._styleRepository.layers;for(const i of t)switch(i.type){case 3:i.getLayoutProperty("icon-image")&&this._styleChanges.push({type:1,data:{layer:i.id,layout:i.layout}});break;case 2:i.getPaintProperty("line-pattern")&&this._styleChanges.push({type:0,data:{layer:i.id,paint:i.paint,isDataDriven:i.isPainterDataDriven()}});break;case 1:i.getLayoutProperty("fill-pattern")&&this._styleChanges.push({type:0,data:{layer:i.id,paint:i.paint,isDataDriven:i.isPainterDataDriven()}})}this.requestUpdate()})])}detach(){this._stop(),this.container.removeAllChildren(),this._vectorTileContainer=s(this._vectorTileContainer),this._tileHandler=s(this._tileHandler)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return p(this.layer.tileInfo?.spatialReference,e)}canResume(){let e=super.canResume();const{currentStyleInfo:t}=this.layer;if(e&&t?.layerDefinition){const i=this.view.scale,{minScale:s,maxScale:r}=t.layerDefinition;t?.layerDefinition&&(s&&s<i&&(e=!1),r&&r>i&&(e=!1))}return e}isUpdating(){return this.fading}acquireTile(e){const t=this._createVectorTile(e);return this._updatingHandles.consumePromise(this._fetchQueue.push(t.key).then(e=>this._parseQueue.push({key:t.key,data:e})).then(e=>{t.once("attach",()=>this.requestUpdate()),t.setData(e),this.requestUpdate()}).catch(e=>{r(e)||i.getLogger(this).error(e)})),t}releaseTile(e){const t=e.key.id;this._fetchQueue.abort(t),this._parseQueue.abort(t),this.requestUpdate()}async doRefresh(){if(!this.attached)return;if(this.suspended)return this._tileManager.clear(),void this.requestUpdate();this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache(),this._resumeQueues();const e=this._vectorTileContainer.children,t=[];try{for(const i of e){const e=this._updatingHandles.addPromise(this._fetchQueue.push(i.key).then(e=>this._parseQueue.push({key:i.key,data:e})).then(e=>i.setData(e)).finally(()=>i.featureIndex=null));t.push(e)}await Promise.all(t)}catch(s){i.getLogger(this).error("error refreshing vector-tiles layer-view",s),this._resumeQueues(),this._isTileHandlerReady=!0}this._isTileHandlerReady=!0,this.requestUpdate()}_start(){if(this._stop(),this._tileManager=new T({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),!this.layer.currentStyleInfo)return;const e=new AbortController,t=this._tileHandler.start({signal:e.signal}).then(()=>{this._fetchQueue=new Q({tileInfoView:this._tileInfoView,process:(e,t)=>this._getTileData(e,t),concurrency:15,scheduler:this.scheduler,priority:P.MAPVIEW_FETCH_QUEUE}),this._parseQueue=new Q({tileInfoView:this._tileInfoView,process:(e,t)=>this._parseTileData(e,t),concurrency:8,scheduler:this.scheduler,priority:P.MAPVIEW_VECTOR_TILE_PARSING_QUEUE}),this.requestUpdate(),this._isTileHandlerReady=!0});this._tileHandler.spriteMosaic.then(e=>{this._vectorTileContainer.setStyleResources(e,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this.requestUpdate()}),this._tileHandlerAbortController=e,this._tileHandlerPromise=t}_stop(){if(!this._tileHandlerAbortController||!this._vectorTileContainer)return;const e=this._tileHandlerAbortController;e&&e.abort(),this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._fetchQueue=s(this._fetchQueue),this._parseQueue=s(this._parseQueue),this._tileManager=s(this._tileManager),this._vectorTileContainer.removeAllChildren()}async _getTileData(e,t){return this._tileHandler.fetchTileData(e,t)}async _parseTileData(e,t){return this._tileHandler.parseTileData(e,t)}async _applyStyleChanges(){this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache();const e=this._styleChanges;try{await this._tileHandler.updateStyle(e)}catch(o){i.getLogger(this).error("error applying vector-tiles style update",o.message),this._resumeQueues(),this._isTileHandlerReady=!0}const t=this._styleRepository,s=new Set,r=new Set;for(const i of e){if(3!==i.type&&2!==i.type)continue;const e=2===i.type?i.data.layer.id:i.data.layer,a=t.getLayerById(e);a&&(s.add(a.uid),3===a.type&&r.add(a.uid))}const a=this._vectorTileContainer.children,l=this._vectorTileContainer?.symbolFader?.symbolRepository;l&&r.size>0&&l.deleteStyleLayers(Array.from(r));const n=new Set;if(e.forEach(e=>{let i;switch(e.type){case 0:t.setPaintProperties(e.data.layer,e.data.paint),i=e.data.layer;break;case 1:t.setLayoutProperties(e.data.layer,e.data.layout),i=e.data.layer;break;case 3:return void t.deleteStyleLayer(e.data.layer);case 2:t.setStyleLayer(e.data.layer,e.data.index),i=e.data.layer.id;break;case 4:this._vectorTileContainer.setSpriteMosaic(this._tileHandler.setSpriteSource(e.data.spriteSource))}if(i){const e=t.getLayerById(i);e&&n.add(e.uid)}}),s.size>0){const e=Array.from(s);this._vectorTileContainer.deleteStyleLayers(e);for(const t of a)t.deleteLayerData(e)}if(this._resumeQueues(),n.size>0){const e=Array.from(n),t=[];for(const i of a){const s=this._updatingHandles.addPromise(this._fetchQueue.push(i.key).then(t=>this._parseQueue.push({key:i.key,data:t,styleLayerUIDs:e})).then(e=>i.setData(e)).finally(()=>i.featureIndex=null));t.push(s)}await Promise.all(t)}this._styleChanges=[],this._isTileHandlerReady=!0,this.requestUpdate()}async _loadStyle(){const{style:e}=this.layer.currentStyleInfo,i=t(e);this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._styleRepository=new R(i),this._vectorTileContainer.destroy(),this._tileManager.clear(),this._tileHandlerAbortController.abort(),this._tileHandlerAbortController=new AbortController;const{signal:s}=this._tileHandlerAbortController;try{this._tileHandlerPromise=this._tileHandler.setStyle(this._styleRepository,i,this.layer.tileInfo.lods.length-1),await this._tileHandlerPromise}catch(n){if(!r(n))throw n}if(s.aborted)return this._resumeQueues(),this._isTileHandlerReady=!0,this._styeChanged=!1,this._spriteSourceChanged=!1,void this.requestUpdate();const a=await this._tileHandler.spriteMosaic,l=this._vectorTileContainer;this._tileInfoView=new I(this.layer.tileInfo,this.layer.fullExtent),l.setStyleResources(a,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this._tileManager=new T({acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView},this._vectorTileContainer),this._resumeQueues(),this._isTileHandlerReady=!0,this.requestUpdate(),this._styeChanged=!1,this._spriteSourceChanged=!1}_createVectorTile(e){const t=this._tileInfoView.getTileBounds(d(),e),i=this._tileInfoView.getTileResolution(e.level);return new C(e,i,t[0],t[3],512,512,this._styleRepository)}async _queryTile(e,t,i,s,r,a){if(0===r.layerData.size)return;const l=this._ensureTileIndex(r),[n,o,h,y]=this._tileInfoView.getTileBounds(d(),r.key,!0),u=f*((t.x-n)/(h-n)),c=f*(1-(t.y-o)/(y-o)),p=this.view.featuresTilingScheme.tileInfo.scaleToZoom(this.view.state.scale)-r.key.level,m=p>0?2**p:1,T=i/m*(f/g),C=await l.queryAttributes(u,c,T,s,a,m);for(const d of C)d.graphic.geometry=this._tileToMapPoint(d.tilePoint,r.transforms.tileUnitsToPixels),e.push({type:"graphic",layer:this.layer,graphic:d.graphic,mapPoint:t.clone()});e.sort((e,t)=>(_(t.graphic.origin)?t.graphic.origin.layerIndex:0)-(_(e.graphic.origin)?e.graphic.origin.layerIndex:0))}_tileToMapPoint(e,t){if(!e)return null;const i=e[0]*t[0]+e[1]*t[3]+t[6],s=e[0]*t[1]+e[1]*t[4]+t[7],r=this.view.state,a=[0,0];return r.toMap(a,[i,s]),new c({x:a[0],y:a[1],spatialReference:r.spatialReference})}_ensureTileIndex(e){let t=e.featureIndex;return t||(t=w.create(e.key,e.layerData,this._styleRepository,this._tileHandler,this.layer),e.featureIndex=t),t}_pauseQueues(){this._fetchQueue.pause(),this._parseQueue.pause()}_resumeQueues(){this._fetchQueue.resume(),this._parseQueue.resume()}_clearQueues(){this._fetchQueue.clear(),this._parseQueue.clear()}};function D(e){if(null==e)return 0;switch(e.type){case"partial":return Object.keys(e.diff).length;case"complete":return Math.max(Object.keys(e.oldValue).length,Object.keys(e.newValue).length);case"collection":return Object.keys(e.added).length+Object.keys(e.changed).length+Object.keys(e.removed).length}}e([o()],V.prototype,"_isTileHandlerReady",void 0),V=e([h("esri.views.2d.layers.VectorTileLayerView2D")],V);const j=V;export{j as default};
@@ -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 h}from"./PipelineConnectionHandlers.js";import p 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._cachedObjectIds=new Set,this._updateRequested=!1,this._didSourceRefresh=!1,this._refreshRequested=!0,this._updateSubscriptionRequests=[],this._updateHighlightRequests=[]}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._cachedObjectIds),this._processor=new p(s,this._source,e.requiredLevel,e.requiredScale),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 h(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}updateRequiredLevel(e,t){this._processor.updateRequiredLevel(e,t),this._processor.hasClusters&&this._requestUpdate()}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}updateHighlight(e){const t=new b(e);return this._updateHighlightRequests.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,h=3/(Math.PI*d),p=2*t,l=Math.ceil(c/p);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()/p,i=u.readYForDisplay()/p,a=Math.floor(s),c=Math.floor(i);if(a<0||c<0||a>=l||c>=l)continue;const _=((.5+a-s)*p)**2+((.5+c-i)*p)**2;if(_>d)continue;const g=t*(h*(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()}if(this._updateHighlightRequests.length){const e=this._updateHighlightRequests,t=new Set,s=new Set;for(const i of e)for(const{objectId:e,highlightFlags:r}of i.inner.highlights)r?(t.add(e),s.delete(e)):(s.add(e),t.delete(e));this._source.prepareCacheUpdate(t,s)}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;if(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)),this._updateHighlightRequests.length){const e=this._updateHighlightRequests;this._updateHighlightRequests=[];for(const t of e)this._processor.updateHighlight(t.inner),t.resolver.resolve()}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,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 h}from"./PipelineConnectionHandlers.js";import p 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._cachedObjectIds=new Set,this._updateRequested=!1,this._didSourceRefresh=!1,this._refreshRequested=!0,this._updateSubscriptionRequests=[],this._updateHighlightRequests=[]}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._cachedObjectIds),this._processor=new p(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 h(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}updateHighlight(e){const t=new b(e);return this._updateHighlightRequests.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,h=3/(Math.PI*d),p=2*t,l=Math.ceil(c/p);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()/p,i=u.readYForDisplay()/p,a=Math.floor(s),c=Math.floor(i);if(a<0||c<0||a>=l||c>=l)continue;const _=((.5+a-s)*p)**2+((.5+c-i)*p)**2;if(_>d)continue;const g=t*(h*(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()}if(this._updateHighlightRequests.length){const e=this._updateHighlightRequests,t=new Set,s=new Set;for(const i of e)for(const{objectId:e,highlightFlags:r}of i.inner.highlights)r?(t.add(e),s.delete(e)):(s.add(e),t.delete(e));this._source.prepareCacheUpdate(t,s)}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;if(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)),this._updateHighlightRequests.length){const e=this._updateHighlightRequests;this._updateHighlightRequests=[];for(const t of e)this._processor.updateHighlight(t.inner),t.resolver.resolve()}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,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 has from"../../../../core/has.js";import{destroyMaybe as e}from"../../../../core/maybe.js";import{notDeepEqual as t}from"../../../../core/object.js";import{throwIfNotAbortError as s,throwIfAborted as r,after as i}from"../../../../core/promiseUtils.js";import{diff as a}from"../../../../core/accessorSupport/diffUtils.js";import{ignoreConnectionErrors as o}from"../../../../core/workers/utils.js";import{normalizeTransform as n,quantizeX as c,quantizeY as h}from"../../../../geometry/support/quantizationUtils.js";import{MultiTileMeshData as u}from"../../engine/webgl/mesh/MultiTileMeshData.js";import{FeatureMeshFactory as p}from"../../engine/webgl/mesh/factories/FeatureMeshFactory.js";import{ResourceProxy as g}from"../../engine/webgl/mesh/factories/ResourceProxy.js";import{MeshWriterRegistry as d}from"../../engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js";import{MatcherContext as y}from"../../engine/webgl/util/MatcherContext.js";import{ProcessorTileMessageQueue as _}from"./ProcessorTileMessageQueue.js";import{BinningStrategy as l}from"./processor/BinningStrategy.js";import{ClusterStrategy as m}from"./processor/ClusterStrategy.js";import{FeatureUpdateStrategy as f}from"./processor/FeatureUpdateStrategy.js";import{TrackStrategy as b}from"./processor/TrackStrategy.js";import{AttributeStore as w}from"./support/AttributeStore.js";import{ComputedAttributeStorage as S}from"./support/ComputedAttributeStorage.js";class j{constructor(e,t,s,r){this._connection=e,this._source=t,this._requiredLevel=s,this._requiredScale=r,this._version=1,this._registry=new d,this._proxy=new g({fetch:(e,t)=>this._connection.layerView.fetch(e,t),fetchDictionary:(e,t)=>this._connection.layerView.fetchDictionary(e,t),fetchMesh:(e,t)=>this._connection.layerView.fetchMesh(e,t)}),this._attributeStore=new w({isLocal:!1,update:e=>o(this._connection.container.updateAttributeView(e))})}destroy(){this._proxy.destroy(),this._strategy?.destroy(),this._attributeStore.destroy()}get hasClusters(){return"cluster"===this._schema?.mesh.strategy.type}get aggregateQueryEngine(){return this._strategy?.aggregateQueryEngine}get usedMemory(){let e=0;return e+=this._attributeStore.usedMemory,this._strategy&&(e+=this._strategy.usedMemory),e}get version(){return this._version}getDisplayFeatures(e){return this._strategy?this._strategy.getDisplayFeatures(e):{features:[],aggregates:[],tracks:[]}}getDisplayIds(e){const t={};return this._strategy?(this._strategy.displayMap(e,e=>e,(e,s,r)=>{t[r]=e}),t):t}getFeatureObjectIdsForAggregate(e){return this._strategy?this._strategy.getFeatureObjectIdsForAggregate(e):[]}onSubscribe(e){this._strategy?.onSubscribe(e)}onUnsubscribe(e){this._strategy?.onUnsubscribe(e)}requiresInvalidation(e){return this._strategy?.requiresInvalidation(e)??!1}updateRequiredLevel(e,t){this._strategy?.updateRequiredLevel(e,t),this._requiredLevel=e,this._requiredScale=t}async update(e,s,r,i,o){const n=e.processor,c=t(this._schema?.storage,n.storage),h=t(this._schema?.mesh.properties,n.mesh.properties),u=t(this._schema?.mesh.factory,n.mesh.factory),g=t(this._schema?.mesh.strategy,n.mesh.strategy),d=v(this._schema?.expressionProperties,n.expressionProperties),_=d.some(e=>this._attributeStore.hasArcadeDependency(e)),l=d.some(e=>this._factory?.hasArcadeDependency(e)??!1),m=d.some(e=>this._strategy?.hasArcadeDependency(e))||this._strategy?.isAggregate&&_,f=l||m,b=h||u||g;if(!(c||b||(l||_||m))&&!i)return!1;has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] SymbolProcessor.update`,{changes:a(this._schema,n),schema:n}),this._schema=n;const w=new S({fields:this._source.metadata.fieldsIndex,spatialReference:this._source.metadata.outSpatialReference}),j={currentUser:n.mesh.properties.currentUser};if((c||b||_)&&(await this._attributeStore.update(n.storage,w,this._source.metadata,s),this._strategy?.invalidateAttributeData(I(n))),!i&&!b&&!f)return!1;(g||h||f)&&await this._updateStrategy(n.mesh.strategy,o,I(n),j),this._updateSortKey(w,"sortKey"in n.mesh.properties?n.mesh.properties.sortKey:null);const M="dictionary"===n.mesh.factory.symbology.type?n.mesh.factory.symbology.fieldMap:null,x=new y(w,this._proxy,r,this._registry,M);return(u||"dictionary"===n.mesh.factory.symbology.type)&&(this._factory=await p.create(x,n.mesh.factory)),this._version=s,!0}async applyOverrideUpdate(e,t){if(!this._strategy)return;const s=this._strategy.applyOverrideUpdate(e);for await(const i of s)try{await this._process(i,t)}catch(r){}}async updateChunks(e,t,s){await this._doUpdateChunks(e,t,s),this._strategy?.afterUpdateChunks()}async removeChunks(e){this._strategy?.removeChunks(e),this._attributeStore.incrementDisplayIdGeneration()}updateHighlight({highlights:e}){if(!this._strategy||!this._strategy.hasSubscribers)return void this._attributeStore.setHighlight(e.map(({objectId:e,highlightFlags:t})=>({objectId:e,highlightFlags:t,displayId:-1})),e);const t=this._strategy.displayMap(e,({objectId:e})=>e,(e,{highlightFlags:t},s)=>({objectId:s,displayId:e,highlightFlags:t}));this._attributeStore.setHighlight(t,e)}invalidate(){this._strategy&&this._strategy.invalidate()}async _doUpdateChunks(e,t,r){if(!this._strategy)return;const i=this._strategy.updateChunks(e,t),a=[],o=new Map;for await(const c of i){let e=o.get(c.id);null==e&&(e=new _({concurrency:16,process:e=>this._process(e,r)}),o.set(c.id,e));const t=e.push(c).catch(e=>s(e));a.push(t)}try{await Promise.all(a)}catch(n){}has("esri-2d-update-debug")&&console.log("SendUpdates"),this._attributeStore.sendUpdates(),has("esri-2d-update-debug")&&console.log("SendUpdates.await")}async _updateStrategy(e,t,s,r){switch(this._strategy?.destroy(),e.type){case"feature":this._strategy=new f(this._source,this._attributeStore,s,r);break;case"binning":this._strategy=await l.create(e,this._source,this._attributeStore,s,r);break;case"cluster":this._strategy=await m.create(this._connection,e,this._source,this._attributeStore,s,r,this._requiredLevel,this._requiredScale);break;case"track":this._strategy=await b.create(e,this._source,this._attributeStore,s,r)}for(const i of t)this._strategy.onSubscribe(i)}async _updateSortKey(t,s){if(this._sortInfo=e(this._sortInfo?.computed),null!=s){const e=s.byRenderer?null:await t.createComputedField(s);this._sortInfo={...s,computed:e}}}async _process(e,t){const s=e.subscription;if(has("esri-2d-update-debug")){const t=s.tile;console.debug(`Version[${this._version}] Tile[${t.key.id}, end=${e.end}] Processor._process`)}const i={currentUser:this._schema?.mesh.properties.currentUser};await this._fetchResources(e,i),r(s.signal);const a=await this._write(e,s.tile.createArcadeEvaluationOptions(I(this._schema)),i,t),o=s.tile.tileInfoView.getLODInfoAt(s.tile.key);r(s.signal);const{message:n,transferList:c}=a.serialize(o),h={objectIdMap:null,inner:e.createMessage(n,this._version,this._attributeStore.epoch)};if(this._schema?.mesh.properties.returnMeshObjectId){h.objectIdMap={};const t=e.reader?.getCursor();if(t)for(;t.next();)h.objectIdMap[t.getDisplayId()]=t.getObjectId()}if(r(s.signal),await this._connection.container.onMessage(h,{signal:s.signal,transferList:c}),this._attributeStore.sendUpdates(),has("esri-2d-update-debug")){const t=s.tile;console.debug(`Version[${this._version}] Tile[${t.key.id}, end=${e.end}] Processor._process.await`)}}async _fetchResources(e,t){await this._fetchMatcherResources(e),await this._fetchWriterResources(e,t)}async _fetchMatcherResources(e){if(!e.reader)return;const t=e.subscription.tile.createArcadeEvaluationOptions(I(this._schema));return this._factory.enqueueMatcherRequests(this._proxy,e.reader,{scale:t.$view.scale,viewingMode:"2d"},e.id)}async _fetchWriterResources(e,t){if(!e.reader)return;const s=e.reader.getCursor(),r=e.subscription.tile.createArcadeEvaluationOptions(I(this._schema));for(;s.next();)this._factory.enqueueWriterRequests(this._proxy,s,r,t);await this._proxy.fetchEnqueuedResources()}async _write(e,t,s,a){const o=e.subscription.tile,n=e.reader?.getCursor(),c=n?.getSize()??0,h=o.tileInfoView.tileInfo.isWrappable,p=o.tileInfoView.spatialReference.isWGS84,g=this._schema?.mesh.factory.referenceScale,d=new u(o.key,this._strategy.enablePixelBuffering,h,p,c);if(!n)return d;const y=M(o.transform,a),_=o.createArcadeEvaluationOptions(I(this._schema));let l=0;for(;n.next();){++l%1e3||(await i(0),r(e.subscription));const a=this._getSortKeyValue(n,t);d.entityStart(n.getDisplayId(),a);try{this._factory.write(d,this._proxy,n,_,s,o.level,y,g)}catch(m){}d.entityEnd()}return d}_getSortKeyValue(e,t){if(!this._sortInfo)return 0;const{computed:s,order:r,byRenderer:i}=this._sortInfo,a=i?this._factory.getSortKey(e,t):s?.read(e,t);return null==a||isNaN(a)?0:a*("asc"===r?-1:1)}}function v(e,t){const s=[];return e?.timeExtent?.start===t.timeExtent?.start&&e?.timeExtent?.end===t.timeExtent?.end||s.push("timeProperties"),s}function I(e){const{timeZone:t}=e?.mesh.properties??{},{timeExtent:s}=e?.expressionProperties??{};return{timeZone:t,timeExtent:s}}function M(e,t){const s=n(e),r=[];for(const i of t.rings){const e=[];for(const t of i)e.push([c(s,t[0]),h(s,t[1])]);r.push(e)}return{rings:r}}export{j as default};
2
+ import has from"../../../../core/has.js";import{destroyMaybe as t}from"../../../../core/maybe.js";import{notDeepEqual as e}from"../../../../core/object.js";import{throwIfNotAbortError as s,throwIfAborted as r,after as i}from"../../../../core/promiseUtils.js";import{diff as a}from"../../../../core/accessorSupport/diffUtils.js";import{ignoreConnectionErrors as o}from"../../../../core/workers/utils.js";import{normalizeTransform as n,quantizeX as c,quantizeY as h}from"../../../../geometry/support/quantizationUtils.js";import{MultiTileMeshData as u}from"../../engine/webgl/mesh/MultiTileMeshData.js";import{FeatureMeshFactory as g}from"../../engine/webgl/mesh/factories/FeatureMeshFactory.js";import{ResourceProxy as p}from"../../engine/webgl/mesh/factories/ResourceProxy.js";import{MeshWriterRegistry as y}from"../../engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js";import{MatcherContext as d}from"../../engine/webgl/util/MatcherContext.js";import{ProcessorTileMessageQueue as _}from"./ProcessorTileMessageQueue.js";import{BinningStrategy as l}from"./processor/BinningStrategy.js";import{ClusterStrategy as m}from"./processor/ClusterStrategy.js";import{FeatureUpdateStrategy as f}from"./processor/FeatureUpdateStrategy.js";import{TrackStrategy as b}from"./processor/TrackStrategy.js";import{AttributeStore as w}from"./support/AttributeStore.js";import{ComputedAttributeStorage as S}from"./support/ComputedAttributeStorage.js";class j{constructor(t,e){this._connection=t,this._source=e,this._version=1,this._registry=new y,this._proxy=new p({fetch:(t,e)=>this._connection.layerView.fetch(t,e),fetchDictionary:(t,e)=>this._connection.layerView.fetchDictionary(t,e),fetchMesh:(t,e)=>this._connection.layerView.fetchMesh(t,e)}),this._attributeStore=new w({isLocal:!1,update:t=>o(this._connection.container.updateAttributeView(t))})}destroy(){this._proxy.destroy(),this._strategy?.destroy(),this._attributeStore.destroy()}get hasClusters(){return"cluster"===this._schema?.mesh.strategy.type}get aggregateQueryEngine(){return this._strategy?.aggregateQueryEngine}get usedMemory(){let t=0;return t+=this._attributeStore.usedMemory,this._strategy&&(t+=this._strategy.usedMemory),t}get version(){return this._version}getDisplayFeatures(t){return this._strategy?this._strategy.getDisplayFeatures(t):{features:[],aggregates:[],tracks:[]}}getDisplayIds(t){const e={};return this._strategy?(this._strategy.displayMap(t,t=>t,(t,s,r)=>{e[r]=t}),e):e}getFeatureObjectIdsForAggregate(t){return this._strategy?this._strategy.getFeatureObjectIdsForAggregate(t):[]}onSubscribe(t){this._strategy?.onSubscribe(t)}onUnsubscribe(t){this._strategy?.onUnsubscribe(t)}requiresInvalidation(t){return this._strategy?.requiresInvalidation(t)??!1}async update(t,s,r,i,o){const n=t.processor,c=e(this._schema?.storage,n.storage),h=e(this._schema?.mesh.properties,n.mesh.properties),u=e(this._schema?.mesh.factory,n.mesh.factory),p=e(this._schema?.mesh.strategy,n.mesh.strategy),y=I(this._schema?.expressionProperties,n.expressionProperties),_=y.some(t=>this._attributeStore.hasArcadeDependency(t)),l=y.some(t=>this._factory?.hasArcadeDependency(t)??!1),m=y.some(t=>this._strategy?.hasArcadeDependency(t))||this._strategy?.isAggregate&&_,f=l||m,b=h||u||p;if(!(c||b||(l||_||m))&&!i)return!1;has("esri-2d-update-debug")&&console.debug(`Version[${this._version}] SymbolProcessor.update`,{changes:a(this._schema,n),schema:n}),this._schema=n;const w=new S({fields:this._source.metadata.fieldsIndex,spatialReference:this._source.metadata.outSpatialReference}),j={currentUser:n.mesh.properties.currentUser};if((c||b||_)&&(await this._attributeStore.update(n.storage,w,this._source.metadata,s),this._strategy?.invalidateAttributeData(v(n))),!i&&!b&&!f)return!1;(p||h||f)&&await this._updateStrategy(n.mesh.strategy,o,v(n),j),this._updateSortKey(w,"sortKey"in n.mesh.properties?n.mesh.properties.sortKey:null);const M="dictionary"===n.mesh.factory.symbology.type?n.mesh.factory.symbology.fieldMap:null,x=new d(w,this._proxy,r,this._registry,M);return(u||"dictionary"===n.mesh.factory.symbology.type)&&(this._factory=await g.create(x,n.mesh.factory)),this._version=s,!0}async applyOverrideUpdate(t,e){if(!this._strategy)return;const s=this._strategy.applyOverrideUpdate(t);for await(const i of s)try{await this._process(i,e)}catch(r){}}async updateChunks(t,e,s){await this._doUpdateChunks(t,e,s),this._strategy?.afterUpdateChunks()}async removeChunks(t){this._strategy?.removeChunks(t),this._attributeStore.incrementDisplayIdGeneration()}updateHighlight({highlights:t}){if(!this._strategy||!this._strategy.hasSubscribers)return void this._attributeStore.setHighlight(t.map(({objectId:t,highlightFlags:e})=>({objectId:t,highlightFlags:e,displayId:-1})),t);const e=this._strategy.displayMap(t,({objectId:t})=>t,(t,{highlightFlags:e},s)=>({objectId:s,displayId:t,highlightFlags:e}));this._attributeStore.setHighlight(e,t)}invalidate(){this._strategy&&this._strategy.invalidate()}async _doUpdateChunks(t,e,r){if(!this._strategy)return;const i=this._strategy.updateChunks(t,e),a=[],o=new Map;for await(const c of i){let t=o.get(c.id);null==t&&(t=new _({concurrency:16,process:t=>this._process(t,r)}),o.set(c.id,t));const e=t.push(c).catch(t=>s(t));a.push(e)}try{await Promise.all(a)}catch(n){}has("esri-2d-update-debug")&&console.log("SendUpdates"),this._attributeStore.sendUpdates(),has("esri-2d-update-debug")&&console.log("SendUpdates.await")}async _updateStrategy(t,e,s,r){switch(this._strategy?.destroy(),t.type){case"feature":this._strategy=new f(this._source,this._attributeStore,s,r);break;case"binning":this._strategy=await l.create(t,this._source,this._attributeStore,s,r);break;case"cluster":this._strategy=await m.create(this._connection,t,this._source,this._attributeStore,s,r);break;case"track":this._strategy=await b.create(t,this._source,this._attributeStore,s,r)}for(const i of e)this._strategy.onSubscribe(i)}async _updateSortKey(e,s){if(this._sortInfo=t(this._sortInfo?.computed),null!=s){const t=s.byRenderer?null:await e.createComputedField(s);this._sortInfo={...s,computed:t}}}async _process(t,e){const s=t.subscription;if(has("esri-2d-update-debug")){const e=s.tile;console.debug(`Version[${this._version}] Tile[${e.key.id}, end=${t.end}] Processor._process`)}const i={currentUser:this._schema?.mesh.properties.currentUser};await this._fetchResources(t,i),r(s.signal);const a=await this._write(t,s.tile.createArcadeEvaluationOptions(v(this._schema)),i,e),o=s.tile.tileInfoView.getLODInfoAt(s.tile.key);r(s.signal);const{message:n,transferList:c}=a.serialize(o),h={objectIdMap:null,inner:t.createMessage(n,this._version,this._attributeStore.epoch)};if(this._schema?.mesh.properties.returnMeshObjectId){h.objectIdMap={};const e=t.reader?.getCursor();if(e)for(;e.next();)h.objectIdMap[e.getDisplayId()]=e.getObjectId()}if(r(s.signal),await this._connection.container.onMessage(h,{signal:s.signal,transferList:c}),this._attributeStore.sendUpdates(),has("esri-2d-update-debug")){const e=s.tile;console.debug(`Version[${this._version}] Tile[${e.key.id}, end=${t.end}] Processor._process.await`)}}async _fetchResources(t,e){await this._fetchMatcherResources(t),await this._fetchWriterResources(t,e)}async _fetchMatcherResources(t){if(!t.reader)return;const e=t.subscription.tile.createArcadeEvaluationOptions(v(this._schema));return this._factory.enqueueMatcherRequests(this._proxy,t.reader,{scale:e.$view.scale,viewingMode:"2d"},t.id)}async _fetchWriterResources(t,e){if(!t.reader)return;const s=t.reader.getCursor(),r=t.subscription.tile.createArcadeEvaluationOptions(v(this._schema));for(;s.next();)this._factory.enqueueWriterRequests(this._proxy,s,r,e);await this._proxy.fetchEnqueuedResources()}async _write(t,e,s,a){const o=t.subscription.tile,n=t.reader?.getCursor(),c=n?.getSize()??0,h=o.tileInfoView.tileInfo.isWrappable,g=o.tileInfoView.spatialReference.isWGS84,p=this._schema?.mesh.factory.referenceScale,y=new u(o.key,this._strategy.enablePixelBuffering,h,g,c);if(!n)return y;const d=M(o.transform,a),_=o.createArcadeEvaluationOptions(v(this._schema));let l=0;for(;n.next();){++l%1e3||(await i(0),r(t.subscription));const a=this._getSortKeyValue(n,e);y.entityStart(n.getDisplayId(),a);try{this._factory.write(y,this._proxy,n,_,s,o.level,d,p)}catch(m){}y.entityEnd()}return y}_getSortKeyValue(t,e){if(!this._sortInfo)return 0;const{computed:s,order:r,byRenderer:i}=this._sortInfo,a=i?this._factory.getSortKey(t,e):s?.read(t,e);return null==a||isNaN(a)?0:a*("asc"===r?-1:1)}}function I(t,e){const s=[];return t?.timeExtent?.start===e.timeExtent?.start&&t?.timeExtent?.end===e.timeExtent?.end||s.push("timeProperties"),s}function v(t){const{timeZone:e}=t?.mesh.properties??{},{timeExtent:s}=t?.expressionProperties??{};return{timeZone:e,timeExtent:s}}function M(t,e){const s=n(t),r=[];for(const i of e.rings){const t=[];for(const e of i)t.push([c(s,e[0]),h(s,e[1])]);r.push(t)}return{rings:r}}export{j 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";class e{constructor(e){this.subscription=e,this.handledChunks=new Set,has("esri-2d-update-debug")&&console.debug(`Tile[${e.tile.id}] ASendState.create`)}destroy(){}}class t{constructor(e,t,s){this._source=e,this._attributeStore=t,this._sqlOptions=s,this._sendStates=new Map}destroy(){}get enablePixelBuffering(){return!0}get isAggregate(){return!1}get usedMemory(){return 0}updateRequiredLevel(e,t){}onSubscribe(e){const t=this.createState(e);this._sendStates.set(e.key.id,t)}onUnsubscribe(e){this._sendStates.get(e.key.id)?.destroy(),this._sendStates.delete(e.key.id)}get hasSubscribers(){return this._sendStates.size>0}requiresInvalidation(e){return!1}invalidate(){const e=Array.from(this._sendStates.values());this._sendStates.clear();for(const t of e)t.destroy(),this.onSubscribe(t.subscription)}invalidateAttributeData(e){}hasArcadeDependency(e){return!1}getFeatureObjectIdsForAggregate(e){throw new Error("InternalError: AggregateId lookup not supported")}getDisplayIds(e){return this.displayMap(e,e=>e,e=>e)}getDisplayAndObjectIds(e){return this.displayMap(e,e=>e,(e,t,s)=>[e,s])}afterUpdateChunks(){}}export{t as AProcessorStrategy,e as ASendState};
2
+ import has from"../../../../../core/has.js";class e{constructor(e){this.subscription=e,this.handledChunks=new Set,has("esri-2d-update-debug")&&console.debug(`Tile[${e.tile.id}] ASendState.create`)}destroy(){}}class t{constructor(e,t,s){this._source=e,this._attributeStore=t,this._sqlOptions=s,this._sendStates=new Map}destroy(){}get enablePixelBuffering(){return!0}get isAggregate(){return!1}get usedMemory(){return 0}onSubscribe(e){const t=this.createState(e);this._sendStates.set(e.key.id,t)}onUnsubscribe(e){this._sendStates.get(e.key.id)?.destroy(),this._sendStates.delete(e.key.id)}get hasSubscribers(){return this._sendStates.size>0}requiresInvalidation(e){return!1}invalidate(){const e=Array.from(this._sendStates.values());this._sendStates.clear();for(const t of e)t.destroy(),this.onSubscribe(t.subscription)}invalidateAttributeData(e){}hasArcadeDependency(e){return!1}getFeatureObjectIdsForAggregate(e){throw new Error("InternalError: AggregateId lookup not supported")}getDisplayIds(e){return this.displayMap(e,e=>e,e=>e)}getDisplayAndObjectIds(e){return this.displayMap(e,e=>e,(e,t,s)=>[e,s])}afterUpdateChunks(){}}export{t as AProcessorStrategy,e as ASendState};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import has from"../../../../../core/has.js";import{getOrCreateMapValue as e}from"../../../../../core/MapUtils.js";import{equals as t}from"../../../../../core/SetUtils.js";import{convertToFeature as s}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as i}from"../../../../../layers/graphics/OptimizedFeature.js";import r from"../../../../../layers/graphics/OptimizedGeometry.js";import a from"../../../../../layers/support/FieldsIndex.js";import{tileSize as n}from"../../../engine/webgl/definitions.js";import{ComputedAggregateField as l}from"../aggregation/ComputedAggregateField.js";import{GridCell as o}from"../aggregation/GridCell.js";import{GridIndexCell as d}from"../aggregation/GridIndexCell.js";import{pixelsPerMapUnit as c}from"../aggregation/GridSpatialIndex.js";import{AAggregateStrategy as u}from"./AAggregateStrategy.js";import{ASendState as p}from"./AProcessorStrategy.js";import{WithDisplayId as h}from"./support/WithDisplayId.js";import{FeatureTileAppendMessage as f}from"../sources/FeatureSourceMessage.js";import{createArcadeEvaluationOptions as g}from"../support/arcadeUtils.js";import{ComputedAttributeStorage as m}from"../support/ComputedAttributeStorage.js";import _ from"../support/FeatureFilterEvaluator.js";import{FeatureMetadata as y}from"../support/FeatureMetadata.js";import{FeatureSetReaderJSON as S}from"../support/FeatureSetReaderJSON.js";import{Hashed as x}from"../support/Hashed.js";const I=128;class M extends p{constructor(e){super(e),this.didSend=!1,this.done=!1}}class C{constructor(e,t,s,i,r){this._level=e,this._scale=t,this._indexOptions=s,this._clusterRadius=i,this._store=r,this._statistics=new Map,this._clusters=new Map}destroy(){this._clearClusters()}_clearClusters(){for(const e of this._clusters.values())this._store.releaseDisplayIdForObjectId(e.inner.id);this._clusters.clear()}*aggregatesWorldSpace(){for(const e of this._clusters.values()){const t=e.inner.getCentroid(null),s=new i(t,e.inner.getAttributes(),null,e.inner.id,e.displayId);yield s}}clusters(){return this._clusters.values()}updateChunks(e,t){const s={xMin:1/0,yMin:1/0,xMax:-1/0,yMax:-1/0},i=c(this._indexOptions.spatialReference,this._scale),r=this._indexOptions.cellSize;for(const{subscription:a}of t){const e=a.tile.bounds,t=Math.floor(e[0]*i/r),n=Math.floor(e[1]*i/r),l=Math.ceil(e[2]*i/r),o=Math.ceil(e[3]*i/r);s.xMin=Math.min(s.xMin,t),s.yMin=Math.min(s.yMin,n),s.xMax=Math.max(s.xMax,l),s.yMax=Math.max(s.yMax,o)}null!=this._lastCellBounds&&s.xMin===this._lastCellBounds.xMin&&s.yMin===this._lastCellBounds.yMin&&s.yMin===this._lastCellBounds.yMin&&s.yMax===this._lastCellBounds.yMax||(this._lastCellBounds=s),this._clusterCells(e,s)}async updateStatistics(e){let t=!1;for(const s of this._clusters.values())s.inner.count>1&&(t=this._updateAggregateStatistics(this._statistics,s.inner)||t);if(t){const t=Array.from(this._statistics.entries()).map(([e,t])=>({fieldName:e,minValue:t.minValue,maxValue:t.maxValue}));await e.container.updateStatistics(this._level,t)}}createAggregateFeatures(e,t){const s=e.subscription,a=[],l=s.tile.transform,o=Array.from(this._clusters.values()),d=o.length;for(const u of o){const e=u.inner.getCentroidX(l),t=u.inner.getCentroidY(l),s=1===u.inner.count?u.inner.firstObjectId:u.inner.id,o=u.displayId;if(e<n+I&&e>=-I&&t<n+I&&t>=-I){const n=new r([],[e,t]),l=new i(n,u.inner.getAttributes(),null,s,o);a.push(l)}}const c=S.fromOptimizedFeatures(a,t,s.tile.transform);return has("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] ClusterStrategy.createAggregateFeatures`,{clusters:c,levelClusterCount:d}),c}_clusterCells(t,s){this._clearClusters();const i=this._clusterRadius*(1/c(this._indexOptions.spatialReference,this._scale)),{arcadeContextInfo:r}=this._indexOptions,a=g(this._scale,r),n=new x({...this._indexOptions,scale:this._scale}),l=new Set,u=new Map;for(let c=s.yMin;c<=s.yMax;c++)for(let i=s.xMin;i<=s.xMax;i++){const s=d.createId(i,c),r=o.createId(i,c);for(const d of t){const t=d.getGridIndex(n);t.forEachInCell(s,s=>{const n=s.getObjectId();if(l.has(n))return;l.add(n);e(u,r,()=>o.create(i,c,this._indexOptions.fields,t.worldUnitsPerCell)).insert(s,a)})}}let p=Array.from(u.values());p=p.sort((e,t)=>t.count-e.count);const f=new Set;for(const e of p){if(f.has(e.id))continue;if(e.gridX<s.xMin||e.gridX>s.xMax||e.gridY<s.yMin||e.gridY>s.yMax)continue;const t=1+this._clusterRadius/this._indexOptions.cellSize,r=this._store.createDisplayIdForObjectId(e.id),a=new h(e.clone(),r);f.add(e.id),this._clusters.set(e.id,a);const n=e.centroidXWorld,l=e.centroidYWorld;for(let s=e.gridY-t;s<=e.gridY+t;s++)for(let r=e.gridX-t;r<=e.gridX+t;r++){if(s===e.gridY&&r===e.gridX)continue;const t=u.get(o.createId(r,s));if(!t||f.has(t.id))continue;const d=Math.abs(t.centroidXWorld-n),c=Math.abs(t.centroidYWorld-l);d<i&&c<i&&(a.inner.merge(t),f.add(t.id))}}}_updateAggregateStatistics(e,t){let s=!1;for(const i of t.statistics.values()){if("esriFieldTypeString"===i.field.type)continue;const t=i.value,r=i.field,a=e.get(r.name);if(a){const{minValue:e,maxValue:i}=a,r=Math.min(a.minValue,t),n=Math.max(a.maxValue,t);e===r&&i===n||(a.minValue=r,a.maxValue=n,s=!0);continue}e.set(r.name,{minValue:t,maxValue:t}),s=!0}return s}}class v extends u{static async create(e,t,s,i,r,a,n,o){const d=s.metadata.outSpatialReference,c=new m({spatialReference:d}),u={type:"grid",fields:await Promise.all(t.fields.map(async e=>l.create(c,e))),spatialReference:d,featureFilter:t.featureFilter?await _.create({geometryType:s.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:s.metadata.timeInfo,fieldsIndex:s.metadata.fieldsIndex,spatialReference:d,filterJSON:t.featureFilter}):null,cellSize:t.clusterRadius/4,arcadeContextInfo:r,sqlOptions:a};return new v(e,t.clusterRadius,u,t.fields,s,i,a,n,o)}constructor(e,t,s,i,r,n,l,o,d){super(r,n,s.spatialReference,s.fields,l),this._connection=e,this._clusterRadius=t,this._indexOptions=s,this._requiredLevel=o,this._requiredScale=d,this._cellsPerScale=new Map,this._handled=new Set,this._invalidated=!1,this._metadata=y.createFeature({geometryType:"esriGeometryPoint",hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"aggregateId"},fieldsIndex:new a([...i,...this._source.metadata.fieldsIndex.fields,{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"}]).toJSON(),globalIdField:null,spatialReference:r.metadata.spatialReference,outSpatialReference:r.metadata.outSpatialReference,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null})}get enablePixelBuffering(){return!0}requiresInvalidation(e){for(const t of this._sendStates.values())if(!t.done)return!0;const s=new Set;for(const t of e)s.add(t.chunkId);return!t(s,this._handled)&&(this._handled=s,!0)}invalidate(){this._invalidated=!0;for(const e of this._cellsPerScale.values())e.destroy();this._cellsPerScale.clear()}updateRequiredLevel(e,t){this._requiredLevel=e,this._requiredScale=t}createState(e){return new M(e)}async*applyOverrideUpdate(e){for(const t of this._cellsPerScale.values())t.destroy();this._cellsPerScale.clear();for(const t of this._sendStates.values())t.done=!1}displayMap(e,t,s){const i=new Map(e.map(e=>[t(e),e])),r=[],a=this._getClusterState(this._requiredLevel,this._requiredScale);for(const n of a.clusters()){const e=i.get(n.inner.id);if(null!=e){const t=s(n.displayId,e,n.inner.id);r.push(t),i.delete(n.inner.id);continue}if(1===n.inner.count){const{firstObjectId:e}=n.inner,t=e?i.get(e):null;if(null!=t){const a=s(n.displayId,t,e);r.push(a),i.delete(e)}}}return r}getDisplayFeatures(e){const t=new Set(e),i=new Set,r=[],a=[],n=this._getClusterState(this._requiredLevel,this._requiredScale);for(const l of n.aggregatesWorldSpace())if(t.has(l.displayId)&&!i.has(l.displayId)){const e=s(l,this._metadata.geometryType,!1,!1);if(i.add(l.displayId),1===e.attributes.cluster_count){r.push({...e,displayId:l.displayId});continue}a.push({...e,displayId:l.displayId})}return{features:r,aggregates:a,tracks:[]}}getFeatureObjectIdsForAggregate(e){const t=this._getClusterState(this._requiredLevel,this._requiredScale);for(const s of t.clusters())if(s.inner.id===e)return Array.from(s.inner.containedObjectIds);return[]}async*updateChunks(e,t){if(!this._invalidated)return;this._invalidated=!1;const s=this._getClusterState(this._requiredLevel,this._requiredScale);s.updateChunks(e,Array.from(this._sendStates.values()));for(const i of this._sendStates.values())yield*this._update(i,s,t);await s.updateStatistics(this._connection)}forEachAggregateWorldSpace(e){if(null==this._requiredLevel||null==this._requiredScale)return;const t=this._getClusterState(this._requiredLevel,this._requiredScale);for(const s of t.aggregatesWorldSpace())e(s)}_getClusterState(e,t){if(null==e||null==t)throw new Error("InternalError: Level and scale must be defined");let s=this._cellsPerScale.get(t);return s||(s=new C(e,t,this._indexOptions,this._clusterRadius,this._attributeStore),this._cellsPerScale.set(t,s)),s}async*_update(e,t,s){const i=t.createAggregateFeatures(e,this._metadata);this.events.emit("changed"),e.done=e.done||!s;const r=i.getCursor(),a=e.subscription.tile.createArcadeEvaluationOptions(this._indexOptions.arcadeContextInfo);for(;r.next();)this._attributeStore.setAttributeData(r.getDisplayId(),r,a,this._sqlOptions);has("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] ClusterStrategy._update`,{done:e.done});const n=new f(e.subscription,i,e.done,{});yield n}}export{M as ClusterState,v as ClusterStrategy};
2
+ import has from"../../../../../core/has.js";import{getOrCreateMapValue as e}from"../../../../../core/MapUtils.js";import{equals as t}from"../../../../../core/SetUtils.js";import{convertToFeature as s}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as i}from"../../../../../layers/graphics/OptimizedFeature.js";import r from"../../../../../layers/graphics/OptimizedGeometry.js";import a from"../../../../../layers/support/FieldsIndex.js";import{tileSize as n}from"../../../engine/webgl/definitions.js";import{ComputedAggregateField as l}from"../aggregation/ComputedAggregateField.js";import{GridCell as o}from"../aggregation/GridCell.js";import{GridIndexCell as d}from"../aggregation/GridIndexCell.js";import{pixelsPerMapUnit as c}from"../aggregation/GridSpatialIndex.js";import{AAggregateStrategy as u}from"./AAggregateStrategy.js";import{ASendState as p}from"./AProcessorStrategy.js";import{WithDisplayId as f}from"./support/WithDisplayId.js";import{FeatureTileAppendMessage as h}from"../sources/FeatureSourceMessage.js";import{createArcadeEvaluationOptions as g}from"../support/arcadeUtils.js";import{ComputedAttributeStorage as m}from"../support/ComputedAttributeStorage.js";import _ from"../support/FeatureFilterEvaluator.js";import{FeatureMetadata as y}from"../support/FeatureMetadata.js";import{FeatureSetReaderJSON as x}from"../support/FeatureSetReaderJSON.js";import{Hashed as S}from"../support/Hashed.js";const I=128;class M extends p{constructor(e){super(e),this.didSend=!1,this.done=!1}}class v{constructor(e,t,s,i,r){this.level=e,this._scale=t,this._indexOptions=s,this._clusterRadius=i,this._store=r,this._statistics=new Map,this._clusters=new Map}destroy(){this._clearClusters()}_clearClusters(){for(const e of this._clusters.values())this._store.releaseDisplayIdForObjectId(e.inner.id);this._clusters.clear()}*aggregatesWorldSpace(){for(const e of this._clusters.values()){const t=e.inner.getCentroid(null),s=new i(t,e.inner.getAttributes(),null,e.inner.id,e.displayId);yield s}}clusters(){return this._clusters.values()}updateChunks(e,t){const s={xMin:1/0,yMin:1/0,xMax:-1/0,yMax:-1/0},i=c(this._indexOptions.spatialReference,this._scale),r=this._indexOptions.cellSize;for(const{subscription:a}of t){const e=a.tile.bounds,t=Math.floor(e[0]*i/r),n=Math.floor(e[1]*i/r),l=Math.ceil(e[2]*i/r),o=Math.ceil(e[3]*i/r);s.xMin=Math.min(s.xMin,t),s.yMin=Math.min(s.yMin,n),s.xMax=Math.max(s.xMax,l),s.yMax=Math.max(s.yMax,o)}null!=this._lastCellBounds&&s.xMin===this._lastCellBounds.xMin&&s.yMin===this._lastCellBounds.yMin&&s.yMin===this._lastCellBounds.yMin&&s.yMax===this._lastCellBounds.yMax||(this._lastCellBounds=s),this._clusterCells(e,s)}async updateStatistics(e){let t=!1;for(const s of this._clusters.values())s.inner.count>1&&(t=this._updateAggregateStatistics(this._statistics,s.inner)||t);if(t){const t=Array.from(this._statistics.entries()).map(([e,t])=>({fieldName:e,minValue:t.minValue,maxValue:t.maxValue}));await e.container.updateStatistics(this.level,t)}}createAggregateFeatures(e,t){const s=e.subscription,a=[],l=s.tile.transform,o=Array.from(this._clusters.values()),d=o.length;for(const u of o){const e=u.inner.getCentroidX(l),t=u.inner.getCentroidY(l),s=1===u.inner.count?u.inner.firstObjectId:u.inner.id,o=u.displayId;if(e<n+I&&e>=-I&&t<n+I&&t>=-I){const n=new r([],[e,t]),l=new i(n,u.inner.getAttributes(),null,s,o);a.push(l)}}const c=x.fromOptimizedFeatures(a,t,s.tile.transform);return has("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] ClusterStrategy.createAggregateFeatures`,{clusters:c,levelClusterCount:d}),c}_clusterCells(t,s){this._clearClusters();const i=this._clusterRadius*(1/c(this._indexOptions.spatialReference,this._scale)),{arcadeContextInfo:r}=this._indexOptions,a=g(this._scale,r),n=new S({...this._indexOptions,scale:this._scale}),l=new Set,u=new Map;for(let c=s.yMin;c<=s.yMax;c++)for(let i=s.xMin;i<=s.xMax;i++){const s=d.createId(i,c),r=o.createId(i,c);for(const d of t){const t=d.getGridIndex(n);t.forEachInCell(s,s=>{const n=s.getObjectId();if(l.has(n))return;l.add(n);e(u,r,()=>o.create(i,c,this._indexOptions.fields,t.worldUnitsPerCell)).insert(s,a)})}}let p=Array.from(u.values());p=p.sort((e,t)=>t.count-e.count);const h=new Set;for(const e of p){if(h.has(e.id))continue;if(e.gridX<s.xMin||e.gridX>s.xMax||e.gridY<s.yMin||e.gridY>s.yMax)continue;const t=1+this._clusterRadius/this._indexOptions.cellSize,r=this._store.createDisplayIdForObjectId(e.id),a=new f(e.clone(),r);h.add(e.id),this._clusters.set(e.id,a);const n=e.centroidXWorld,l=e.centroidYWorld;for(let s=e.gridY-t;s<=e.gridY+t;s++)for(let r=e.gridX-t;r<=e.gridX+t;r++){if(s===e.gridY&&r===e.gridX)continue;const t=u.get(o.createId(r,s));if(!t||h.has(t.id))continue;const d=Math.abs(t.centroidXWorld-n),c=Math.abs(t.centroidYWorld-l);d<i&&c<i&&(a.inner.merge(t),h.add(t.id))}}}_updateAggregateStatistics(e,t){let s=!1;for(const i of t.statistics.values()){if("esriFieldTypeString"===i.field.type)continue;const t=i.value,r=i.field,a=e.get(r.name);if(a){const{minValue:e,maxValue:i}=a,r=Math.min(a.minValue,t),n=Math.max(a.maxValue,t);e===r&&i===n||(a.minValue=r,a.maxValue=n,s=!0);continue}e.set(r.name,{minValue:t,maxValue:t}),s=!0}return s}}class b extends u{static async create(e,t,s,i,r,a){const n=s.metadata.outSpatialReference,o=new m({spatialReference:n}),d={type:"grid",fields:await Promise.all(t.fields.map(async e=>l.create(o,e))),spatialReference:n,featureFilter:t.featureFilter?await _.create({geometryType:s.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:s.metadata.timeInfo,fieldsIndex:s.metadata.fieldsIndex,spatialReference:n,filterJSON:t.featureFilter}):null,cellSize:t.clusterRadius/4,arcadeContextInfo:r,sqlOptions:a};return new b(e,t.clusterRadius,d,t.fields,s,i,a)}constructor(e,t,s,i,r,n,l){super(r,n,s.spatialReference,s.fields,l),this._connection=e,this._clusterRadius=t,this._indexOptions=s,this._cellsPerLevel=new Map,this._handled=new Set,this._invalidated=!1,this._metadata=y.createFeature({geometryType:"esriGeometryPoint",hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"aggregateId"},fieldsIndex:new a([...i,...this._source.metadata.fieldsIndex.fields,{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"}]).toJSON(),globalIdField:null,spatialReference:r.metadata.spatialReference,outSpatialReference:r.metadata.outSpatialReference,subtypeField:null,subtypes:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null})}get enablePixelBuffering(){return!0}onSubscribe(e){super.onSubscribe(e),this._lastSubscribedLevel=e.tile.level}requiresInvalidation(e){for(const t of this._sendStates.values())if(!t.done)return!0;const s=new Set;for(const t of e)s.add(t.chunkId);return!t(s,this._handled)&&(this._handled=s,!0)}invalidate(){this._invalidated=!0;for(const e of this._cellsPerLevel.values())e.destroy();this._cellsPerLevel.clear()}createState(e){return new M(e)}async*applyOverrideUpdate(e){for(const t of this._cellsPerLevel.values())t.destroy();this._cellsPerLevel.clear();for(const t of this._sendStates.values())t.done=!1}displayMap(e,t,s){const i=new Map(e.map(e=>[t(e),e])),r=[];for(const a of this._getRequiredClusterStates())for(const e of a.clusters()){const t=i.get(e.inner.id);if(null!=t){const a=s(e.displayId,t,e.inner.id);r.push(a),i.delete(e.inner.id);continue}if(1===e.inner.count){const{firstObjectId:t}=e.inner,a=t?i.get(t):null;if(null!=a){const n=s(e.displayId,a,t);r.push(n),i.delete(t)}}}return r}getDisplayFeatures(e){const t=new Set(e),i=new Set,r=[],a=[];for(const n of this._getRequiredClusterStates())for(const e of n.aggregatesWorldSpace())if(t.has(e.displayId)&&!i.has(e.displayId)){const t=s(e,this._metadata.geometryType,!1,!1);if(i.add(e.displayId),1===t.attributes.cluster_count){r.push({...t,displayId:e.displayId});continue}a.push({...t,displayId:e.displayId})}return{features:r,aggregates:a,tracks:[]}}getFeatureObjectIdsForAggregate(e){for(const t of this._getRequiredClusterStates())for(const s of t.clusters())if(s.inner.id===e)return Array.from(s.inner.containedObjectIds);return[]}async*updateChunks(e,t){if(this._invalidated){this._invalidated=!1;for(const s of this._getRequiredClusterStates()){s.updateChunks(e,Array.from(this._sendStates.values()));for(const e of this._sendStates.values())e.subscription.tile.level===s.level&&(yield*this._update(e,s,t));await s.updateStatistics(this._connection)}}}forEachAggregateWorldSpace(e){if(!this._lastSubscribedLevel)return;const t=this._cellsPerLevel.get(this._lastSubscribedLevel);if(t)for(const s of t.aggregatesWorldSpace())e(s)}_getRequiredClusterStates(){return this._getRequiredLevels().map(({level:e,scale:t})=>this._getClusterState(e,t))}_getRequiredLevels(){const e=[],t=new Set;for(const{subscription:s}of this._sendStates.values()){const{level:i,scale:r}=s.tile;t.has(i)||(t.add(i),e.push({level:i,scale:r}))}return e}_getClusterState(e,t){if(null==e)throw new Error("InternalError: Level and scale must be defined");let s=this._cellsPerLevel.get(e);return s||(s=new v(e,t,this._indexOptions,this._clusterRadius,this._attributeStore),this._cellsPerLevel.set(e,s)),s}async*_update(e,t,s){const i=t.createAggregateFeatures(e,this._metadata);this.events.emit("changed"),e.done=e.done||!s;const r=i.getCursor(),a=e.subscription.tile.createArcadeEvaluationOptions(this._indexOptions.arcadeContextInfo);for(;r.next();)this._attributeStore.setAttributeData(r.getDisplayId(),r,a,this._sqlOptions);has("esri-2d-update-debug")&&console.debug(`Tile[${e.subscription.tile.id}] ClusterStrategy._update`,{done:e.done});const n=new h(e.subscription,i,e.done,{});yield n}}export{M as ClusterState,b as ClusterStrategy};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import t from"../../../../../../core/Error.js";import{handlesGroup as e}from"../../../../../../core/handleUtils.js";import"../../../../../../core/has.js";import{getOrCreateMapValue as s}from"../../../../../../core/MapUtils.js";import{notDeepEqual as i}from"../../../../../../core/object.js";import{throwIfAborted as r,onAbort as a}from"../../../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../../../core/QueueProcessor.js";import{equals as l,difference as n}from"../../../../../../core/SetUtils.js";import{openWithPorts as d}from"../../../../../../core/workers/workers.js";import{loadParquetModule as h}from"../../../../../../libs/parquet/loadParquetModule.js";import{ALoadStrategy as c}from"./ALoadStrategy.js";import{fetchQueueConcurrency as u}from"./constants.js";import{ParquetSourceChunk as p}from"./chunks/ParquetSourceChunk.js";import{FeatureSetReaderParquet as m}from"../../support/FeatureSetReaderParquet.js";const _=2,f=4;class y{constructor(t,s){this.subscription=t,this.chunks=[],this.ids=[],this._controller=new AbortController,this._handles=e([a(t.signal,()=>this._controller.abort()),a(s,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get options(){return{signal:this._controller.signal}}addBinaryData(t){this.chunks.push(t)}addSourceChunkId(t){this.ids.push(t)}}class w extends c{constructor(t,e,s,i){if(super(t.metadata,e,s),this._service=t,this._loadStates=new Map,this._fileIds=new Set,this._queue=new o({concurrency:u,process:t=>this._loadTile(t)}),!t.geometryInfo.displayOptimization)throw new Error("InternalError: ParquetTileLoadStrategy only supports XZ-enabled parquet files");this._loaded=this._load(i)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(const t of this._ports)t.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,s){await this._loaded;let r=!0;if(i(this.availableFields,s.availableFields)&&await this._updateFields(s.availableFields),this._schema.partial.dataSourceHash!==s.dataSourceHash){const e=new Set(await this._proxy.getFilesIds());if(!l(e,this._fileIds)){for(const t of e)this._fileIds.has(t)||(r=!1,this._insert(t));for(const s of this._fileIds.keys())if(!e.has(s))throw new t("unsupported","Removing parquet files is not supported",{previous:this._fileIds,next:e})}}return this._schema.partial=s,r}async load(t){return await this._loaded,s(this._loadStates,t.key.id,()=>new y(t,this._options)),this._queue.push(t)}unload(t){const e=this._loadStates.get(t.tile.id);if(null!=e){for(const t of e.ids)this.store.removeById(t);e.destroy(),this._loadStates.delete(t.tile.id)}}async _load(t){this._ports=await t.layerView.openMemoryPorts(),this._client=await d(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap();const e=await this._proxy.getFilesIds();for(const s of e)this._insert(s)}_insert(t){this._fileIds.add(t)}_onOverride(){}async _updateFields(t){const e=new Set(t),s=n(e,new Set(this.availableFields));if(null!=this._service.metadata.fieldsIndex&&s.size){const t=Array.from(this.store.insertedChunks()).map(t=>t.updateFields(this._proxy,Array.from(s),this._options));await Promise.all(t)}}async _loadTile(t){const e=t.tile,s=t.signal,i=this._loadStates.get(e.id),a=new o({process:async e=>this._downloadFileData(t,e),concurrency:_});await Promise.allSettled(Array.from(this._fileIds.keys()).map(t=>a.push(t))),r(s);const l=new p(this.metadata,null,e,null,0,!0);i.addSourceChunkId(l.chunkId),this.store.insert(l)}async _downloadFileData(t,e){const s=await h(),i=t.tile,a=t.signal,o=this._loadStates.get(i.id),l=await this._proxy.queryStream(e,{type:"tile",extent:i.extent,transform:i.normalizedTransform,outFields:Array.from(this.availableFields),returnGeometry:!0,outSpatialReference:this.metadata.outSpatialReference.toJSON(),scale:i.scale,where:this.definitionExpression},{signal:a});let n=0;const d=[],c=async(t=0)=>{const d=await this._proxy.getStreamNext(e,l,{signal:a});if(r(a),null==d)return;const h=s.ParquetChunk.deserialize(new Uint8Array(d)),u=new m(this.metadata,this._indexMap,h,e),_=new p(this.metadata,u,i,e,n++,!1);return o.addBinaryData({data:h,fileId:e}),o.addSourceChunkId(_.chunkId),this.store.insert(_),c(t+1)};for(let r=0;r<f;r++)d.push(c());await Promise.all(d)}}export{w as ParquetTileLoadStrategy};
2
+ import t from"../../../../../../core/Error.js";import{handlesGroup as e}from"../../../../../../core/handleUtils.js";import"../../../../../../core/has.js";import{getOrCreateMapValue as s}from"../../../../../../core/MapUtils.js";import{notDeepEqual as i}from"../../../../../../core/object.js";import{throwIfAborted as r,onAbort as a}from"../../../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../../../core/QueueProcessor.js";import{equals as l,difference as n}from"../../../../../../core/SetUtils.js";import{openWithPorts as d}from"../../../../../../core/workers/workers.js";import{loadParquetModule as h}from"../../../../../../libs/parquet/loadParquetModule.js";import{ALoadStrategy as c}from"./ALoadStrategy.js";import{fetchQueueConcurrency as u}from"./constants.js";import{ParquetSourceChunk as p}from"./chunks/ParquetSourceChunk.js";import{FeatureSetReaderParquet as m}from"../../support/FeatureSetReaderParquet.js";const _=2,f=4;class y{constructor(t,s){this.subscription=t,this.chunks=[],this.ids=[],this._controller=new AbortController,this._handles=e([a(t.signal,()=>this._controller.abort()),a(s,()=>this._controller.abort())])}destroy(){this._controller.abort(),this._handles.remove()}get options(){return{signal:this._controller.signal}}addBinaryData(t){this.chunks.push(t)}addSourceChunkId(t){this.ids.push(t)}}class w extends c{constructor(t,e,s,i){if(super(t.metadata,e,s),this._service=t,this._loadStates=new Map,this._fileIds=new Set,this._queue=new o({concurrency:u,process:t=>this._loadTile(t)}),!t.geometryInfo.displayOptimization)throw new Error("InternalError: ParquetTileLoadStrategy only supports XZ-enabled parquet files");this._loaded=this._load(i)}destroy(){super.destroy(),this._loaded.finally(()=>{this._client.close(),this._client=null;for(const t of this._ports)t.close()}).catch(()=>{})}get about(){return{willQueryAllFeatures:!0,willQueryFullResolutionGeometry:!0}}get availableFields(){return this._schema.partial.availableFields}get definitionExpression(){return this._schema.full.definitionExpression}async tryUpdate(e,s){await this._loaded;let r=!0;if(i(this.availableFields,s.availableFields)&&await this._updateFields(s.availableFields),this._schema.partial.dataSourceHash!==s.dataSourceHash){const e=new Set(await this._proxy.getFilesIds());if(!l(e,this._fileIds)){for(const t of e)this._fileIds.has(t)||(r=!1,this._insert(t));for(const s of this._fileIds.keys())if(!e.has(s))throw new t("unsupported","Removing parquet files is not supported",{previous:this._fileIds,next:e})}}return this._schema.partial=s,r}async load(t){return await this._loaded,s(this._loadStates,t.key.id,()=>new y(t,this._options)),this._queue.push(t)}unload(t){const e=this._loadStates.get(t.tile.id);if(null!=e){for(const t of e.ids)this.store.removeById(t);e.destroy(),this._loadStates.delete(t.tile.id)}}async _load(t){this._ports=await t.layerView.openMemoryPorts(),this._client=await d(this._ports,{maxNumberOfConcurrentJobs:20}),this._proxy=this._client.createInvokeProxy(),this._indexMap=await this._proxy.getIndexMap();const e=await this._proxy.getFilesIds();for(const s of e)this._insert(s)}_insert(t){this._fileIds.add(t)}_onOverride(){}async _updateFields(t){const e=new Set(t),s=n(e,new Set(this.availableFields));if(null!=this._service.metadata.fieldsIndex&&s.size){const t=Array.from(this.store.insertedChunks()).map(t=>t.updateFields(this._proxy,Array.from(s),this._options));await Promise.all(t)}}async _loadTile(t){const e=t.tile,s=t.signal,i=this._loadStates.get(e.id),a=new o({process:async e=>this._downloadFileData(t,e),concurrency:_});await Promise.allSettled(Array.from(this._fileIds.keys()).map(t=>a.push(t))),r(s);const l=new p(this.metadata,null,e,null,0,!0);i.addSourceChunkId(l.chunkId),this.store.insert(l)}async _downloadFileData(t,e){const s=await h(),i=t.tile,a=t.signal,o=this._loadStates.get(i.id),l=await this._proxy.queryStream(e,{type:"tile",extent:i.extent,transform:i.normalizedTransform,outFields:Array.from(this.availableFields),returnGeometry:!0,outSpatialReference:this.metadata.outSpatialReference.toJSON(),scale:i.scale,where:this.definitionExpression},{signal:a});let n=0;const d=[],c=async(t=0)=>{const d=await this._proxy.getStreamNext(e,l,{signal:a});if(r(a),null==d)return;const h=s.ParquetChunk.deserialize(new Uint8Array(d)),u=new m(this.metadata,this._indexMap,h,e,i.transform),_=new p(this.metadata,u,i,e,n++,!1);return o.addBinaryData({data:h,fileId:e}),o.addSourceChunkId(_.chunkId),this.store.insert(_),c(t+1)};for(let r=0;r<f;r++)d.push(c());await Promise.all(d)}}export{w as ParquetTileLoadStrategy};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ArcadeDate as e}from"../../../../../arcade/ArcadeDate.js";import has from"../../../../../core/has.js";import{estimateNumberArrayMemory as t}from"../../../../../core/memoryEstimations.js";import{DateOnly as r}from"../../../../../core/sql/DateOnly.js";import{TimeOnly as s}from"../../../../../core/sql/TimeOnly.js";import{GeometryCursor as i}from"../../../../../geometry/GeometryCursor.js";import{fromRectValues as o}from"../../../../../geometry/support/aaBoundingBox.js";import{fromJSON as a}from"../../../../../geometry/support/jsonUtils.js";import{getLabelPoint as n}from"../../../../../geometry/support/labelPoint.js";import{quantizeX as d,quantizeY as u}from"../../../../../geometry/support/quantizationUtils.js";import{zScale as c}from"../../../../../geometry/support/zscale.js";import{getCentroidOptimizedGeometry as h}from"../../../../../layers/graphics/centroid.js";import{convertToGeometry as l,generalizeOptimizedGeometry as m,quantizeOptimizedGeometry as y,unquantizeOptimizedGeometryInPlace as f}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as p}from"../../../../../layers/graphics/OptimizedFeature.js";import g from"../../../../../layers/graphics/OptimizedGeometry.js";import{system as _,unknown as b}from"../../../../../time/constants.js";import{FeatureSetCache as x}from"./FeatureSetCache.js";const T=has("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],D=T[0],F=T[1],I=T[2],S=T[3],A=has("featurelayer-simplify-payload-size-factors")??[1,2,4],j=A[0],B=A[1],C=A[2],G=has("featurelayer-simplify-mobile-factor")??2,M=has("esri-mobile"),v=4294967295;function O(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class w{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._overrides=null,this._postQueryFilteredIds=new Set,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._deleted=new Set,this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}destroy(){}[Symbol.dispose](){this.destroy()}getAreaSimplificationThreshold(e,t){let r=1;const s=M?G:1;t>4e6?r=C*s:t>1e6?r=B*s:t>5e5?r=j*s:t>1e5&&(r=s);let i=0;return e>4e3?i=S*r:e>2e3?i=I*r:e>100?i=F:e>15&&(i=D),i}getBounds(e){O(this._boundsBuffer,4*this.getIndex()+4,0);const t=this.getBoundsXMin();if(t===v||!isFinite(t))return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(t?.isPoint&&0===t.coords[0]&&0===t.coords[1])return o(e,0,0,0,0),!0;if(!t)return this.setBoundsXMin(v),!1;let r=1/0,s=1/0,i=-1/0,a=-1/0;return t.forEachVertex((e,t)=>{r=Math.min(r,e),s=Math.min(s,t),i=Math.max(i,e),a=Math.max(a,t)}),this.setBoundsXMin(r),this.setBoundsYMin(s),this.setBoundsXMax(i),this.setBoundsYMax(a),o(e,r,s,i,a),!0}const r=this.getBoundsXMin(),s=this.getBoundsYMin(),i=this.getBoundsXMax(),a=this.getBoundsYMax();return o(e,r,s,i,a),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const s of this._joined){s.setIndex(this.getIndex());const r=s._readAttribute(e,t);if(void 0!==r)return r}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}registerOverrides(e){this._overrides=e}withoutOverrides(){const e=this.copy();return e._overrides=null,e}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace();return new p(e,t,r,this.getObjectId(),this.getDisplayId())}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return l(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createDeltaQuantizedGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryForDisplayTransformed(e){let t=this.readGeometryForDisplay();if(t&&"esriGeometryPolyline"===this.metadata.geometryType&&(t=m(t,this.metadata.geometryType,e.scale[0])),t&&(t=y(t,this.metadata.geometryType,e,t.hasZ,t.hasM,!0)),!t){const t=this.readCentroidForDisplay();if(!t)return null;const r=d(e,t.coords[0]),s=u(e,t.coords[1]);return this._createDeltaQuantizedExtrudedGeometry(r,s).deltaDecode()}return t}_transformToWorldSpace(e){if(!e)return null;e=e.clone();const t=this.getInTransform();t&&f(e,t);const r=c(this.metadata.spatialReference,this.metadata.outSpatialReference);if(e.hasZ&&1!==r){const{stride:t,coords:s}=e;for(let e=2;e<s.length;e+=t)s[e]*=r}return e}readGeometryWorldSpace(){let e=this._readGeometry();return e||(e=this._createDeltaQuantizedGeometryFromServerCentroid()),this._transformToWorldSpace(e)}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();return this._transformToWorldSpace(t)}setCache(e){let t=this._caches.get(e);null==t&&(t=new x(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}delete(){this._deleted.add(this.getObjectId())}getByReferenceVertexCount(){return null}get underlyingMemory(){let e=0;e+=t(this._boundsBuffer);for(const t of this._caches.values())e+=t.usedMemory;return e}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);if("esriGeometryPoint"===this.geometryType||!t)return t;const r=this.getInTransform();if(!t||!r)return t;const s=r.scale[2]??1,i=r.translate[2]??0,o=r.scale[3]??1,a=r.translate[3]??0,{hasZ:n,hasM:d,stride:u,size:c,coords:h}=t,l=n&&(1!==s||0!==i),m=d&&(1!==o||0!==a);if(l||m){const e=2,t=n?3:2;for(let r=0,n=u*c;r<n;r+=u)l&&(h[r+e]=s*h[r+e]+i),m&&(h[r+t]=o*h[r+t]+a)}return t.deltaDecode()}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some(t=>t.hasField(e))}geometry(){const e=this.readGeometryWorldSpace(),t=l(e,this.geometryType,this.hasZ,this.hasM),r=a(t);if(r){if(!this.metadata.outSpatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.outSpatialReference}return r}autocastArcadeDate(t,r){return r&&r instanceof Date?this.isUnknownDateTimeField(t)?e.unknownDateJSToArcadeDate(r):e.dateJSAndZoneToArcadeDate(r,this.contextTimeZone??_):r}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===b}field(t){let i=this.fields.get(t);if(i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(this.readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(this.readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(this.readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,this.readAttribute(t,!0));default:return this.readAttribute(t,!1)}for(const o of this._joined)if(o.setIndex(this.getIndex()),i=o.fields.get(t),i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(o._readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(o._readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(o._readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,o._readAttribute(t,!0));default:return this.readAttribute(t,!1)}throw new Error(`Field ${t} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map(e=>e.name)}isEmpty(){return this.fields.fields.length<=0&&null==this.geometry()}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes}};for(const s in r.attributes){const e=r.attributes[s];e instanceof Date&&(r.attributes[s]=e.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}applyPostQueryFilter(e){if(this._postQueryFilteredIds.clear(),!e)return;const t=this.getCursor();for(;t.next();){e.check(t,{currentUser:null})||this._postQueryFilteredIds.add(t.getObjectId())}}_getExists(){if(this._overrides){const e=this.getObjectId();return!this._overrides.hasOverride(e)}const e=this.getObjectId();return this._deleted.has(e)||!this._postQueryFilteredIds.has(e)}_computeDisplayCentroid(e){if(null==this.getInTransform())return h(e);const t=i.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=n(t);return r?isNaN(r[0])||isNaN(r[1])?h(e):(r[1]*=-1,new g([],r)):null}copyInto(e){e._joined=this._joined,e._overrides=this._overrides,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone,e._postQueryFilteredIds=this._postQueryFilteredIds,e._deleted=this._deleted}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return l(e,this.geometryType,!1,!1)}_createDeltaQuantizedGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createDeltaQuantizedExtrudedGeometry(t,r)}_createDeltaQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createDeltaQuantizedExtrudedLine(e,t):this._createDeltaQuantizedExtrudedQuad(e,t)}_createDeltaQuantizedExtrudedQuad(e,t){return new g([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createDeltaQuantizedExtrudedLine(e,t){return new g([2],[e-1,t+1,1,-1])}}export{w as FeatureSetReader};
2
+ import{ArcadeDate as e}from"../../../../../arcade/ArcadeDate.js";import has from"../../../../../core/has.js";import{estimateNumberArrayMemory as t}from"../../../../../core/memoryEstimations.js";import{DateOnly as r}from"../../../../../core/sql/DateOnly.js";import{TimeOnly as s}from"../../../../../core/sql/TimeOnly.js";import{GeometryCursor as i}from"../../../../../geometry/GeometryCursor.js";import{fromRectValues as o}from"../../../../../geometry/support/aaBoundingBox.js";import{fromJSON as a}from"../../../../../geometry/support/jsonUtils.js";import{getLabelPoint as n}from"../../../../../geometry/support/labelPoint.js";import{quantizeX as d,quantizeY as u}from"../../../../../geometry/support/quantizationUtils.js";import{zScale as c}from"../../../../../geometry/support/zscale.js";import{getCentroidOptimizedGeometry as h}from"../../../../../layers/graphics/centroid.js";import{convertToGeometry as l,generalizeOptimizedGeometry as m,quantizeOptimizedGeometry as y,unquantizeOptimizedGeometryInPlace as f}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as p}from"../../../../../layers/graphics/OptimizedFeature.js";import g from"../../../../../layers/graphics/OptimizedGeometry.js";import{system as _,unknown as b}from"../../../../../time/constants.js";import{FeatureSetCache as x}from"./FeatureSetCache.js";const D=has("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],T=D[0],F=D[1],I=D[2],S=D[3],A=has("featurelayer-simplify-payload-size-factors")??[1,2,4],j=A[0],B=A[1],C=A[2],G=has("featurelayer-simplify-mobile-factor")??2,M=has("esri-mobile"),v=4294967295;function O(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class w{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._overrides=null,this._postQueryFilteredIds=new Set,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._deleted=new Set,this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}destroy(){}[Symbol.dispose](){this.destroy()}getAreaSimplificationThreshold(e,t){let r=1;const s=M?G:1;t>4e6?r=C*s:t>1e6?r=B*s:t>5e5?r=j*s:t>1e5&&(r=s);let i=0;return e>4e3?i=S*r:e>2e3?i=I*r:e>100?i=F:e>15&&(i=T),i}getBounds(e){O(this._boundsBuffer,4*this.getIndex()+4,0);const t=this.getBoundsXMin();if(t===v||!isFinite(t))return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(t?.isPoint&&0===t.coords[0]&&0===t.coords[1])return o(e,0,0,0,0),!0;if(!t)return this.setBoundsXMin(v),!1;let r=1/0,s=1/0,i=-1/0,a=-1/0;return t.forEachVertex((e,t)=>{r=Math.min(r,e),s=Math.min(s,t),i=Math.max(i,e),a=Math.max(a,t)}),this.setBoundsXMin(r),this.setBoundsYMin(s),this.setBoundsXMax(i),this.setBoundsYMax(a),o(e,r,s,i,a),!0}const r=this.getBoundsXMin(),s=this.getBoundsYMin(),i=this.getBoundsXMax(),a=this.getBoundsYMax();return o(e,r,s,i,a),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const s of this._joined){s.setIndex(this.getIndex());const r=s._readAttribute(e,t);if(void 0!==r)return r}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}registerOverrides(e){this._overrides=e}withoutOverrides(){const e=this.copy();return e._overrides=null,e}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace();return new p(e,t,r,this.getObjectId(),this.getDisplayId())}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return l(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createDeltaQuantizedGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryForDisplayTransformed(e){let t=this.readGeometryForDisplay();if(t&&"esriGeometryPolyline"===this.metadata.geometryType&&(t=m(t,this.metadata.geometryType,e.scale[0])),t&&(t=y(t,this.metadata.geometryType,e,t.hasZ,t.hasM,!0)),!t){const t=this.readCentroidForDisplay();if(!t)return null;const r=d(e,t.coords[0]),s=u(e,t.coords[1]);return this._createDeltaQuantizedExtrudedGeometry(r,s).deltaDecode()}return t}_transformToWorldSpace(e){if(!e)return null;e=e.clone();const t=this.getInTransform();t&&f(e,t);const r=c(this.metadata.spatialReference,this.metadata.outSpatialReference);if(e.hasZ&&1!==r){const{stride:t,coords:s}=e;for(let e=2;e<s.length;e+=t)s[e]*=r}return e}readGeometryWorldSpace(){let e=this._readGeometry();return e||(e=this._createDeltaQuantizedGeometryFromServerCentroid()),this._transformToWorldSpace(e)}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();return this._transformToWorldSpace(t)}setCache(e){let t=this._caches.get(e);null==t&&(t=new x(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}delete(){this._deleted.add(this.getObjectId())}getByReferenceVertexCount(){return null}get underlyingMemory(){let e=0;e+=t(this._boundsBuffer);for(const t of this._caches.values())e+=t.usedMemory;return e}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);if("esriGeometryPoint"===this.geometryType||!t)return t;const r=this.getInTransform();if(!t||!r)return t;const s=r.scale[2]??1,i=r.translate[2]??0,o=r.scale[3]??1,a=r.translate[3]??0,{hasZ:n,hasM:d,stride:u,size:c,coords:h}=t,l=n&&(1!==s||0!==i),m=d&&(1!==o||0!==a);if(l||m){const e=2,t=n?3:2;for(let r=0,n=u*c;r<n;r+=u)l&&(h[r+e]=s*h[r+e]+i),m&&(h[r+t]=o*h[r+t]+a)}return this.supportsDeltaEncoding()?t.deltaDecode():t}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some(t=>t.hasField(e))}geometry(){const e=this.readGeometryWorldSpace(),t=l(e,this.geometryType,this.hasZ,this.hasM),r=a(t);if(r){if(!this.metadata.outSpatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.outSpatialReference}return r}autocastArcadeDate(t,r){return r&&r instanceof Date?this.isUnknownDateTimeField(t)?e.unknownDateJSToArcadeDate(r):e.dateJSAndZoneToArcadeDate(r,this.contextTimeZone??_):r}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===b}field(t){let i=this.fields.get(t);if(i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(this.readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(this.readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(this.readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,this.readAttribute(t,!0));default:return this.readAttribute(t,!1)}for(const o of this._joined)if(o.setIndex(this.getIndex()),i=o.fields.get(t),i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return r.fromReader(o._readAttribute(t,!1));case"time-only":case"esriFieldTypeTimeOnly":return s.fromReader(o._readAttribute(t,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(o._readAttribute(t,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(t,o._readAttribute(t,!0));default:return this.readAttribute(t,!1)}throw new Error(`Field ${t} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map(e=>e.name)}isEmpty(){return this.fields.fields.length<=0&&null==this.geometry()}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes}};for(const s in r.attributes){const e=r.attributes[s];e instanceof Date&&(r.attributes[s]=e.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}applyPostQueryFilter(e){if(this._postQueryFilteredIds.clear(),!e)return;const t=this.getCursor();for(;t.next();){e.check(t,{currentUser:null})||this._postQueryFilteredIds.add(t.getObjectId())}}_getExists(){if(this._overrides){const e=this.getObjectId();return!this._overrides.hasOverride(e)}const e=this.getObjectId();return this._deleted.has(e)||!this._postQueryFilteredIds.has(e)}_computeDisplayCentroid(e){if(null==this.getInTransform())return h(e);const t=i.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=n(t);return r?isNaN(r[0])||isNaN(r[1])?h(e):(r[1]*=-1,new g([],r)):null}copyInto(e){e._joined=this._joined,e._overrides=this._overrides,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone,e._postQueryFilteredIds=this._postQueryFilteredIds,e._deleted=this._deleted}supportsDeltaEncoding(){return!0}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return l(e,this.geometryType,!1,!1)}_createDeltaQuantizedGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createDeltaQuantizedExtrudedGeometry(t,r)}_createDeltaQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createDeltaQuantizedExtrudedLine(e,t):this._createDeltaQuantizedExtrudedQuad(e,t)}_createDeltaQuantizedExtrudedQuad(e,t){return new g([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createDeltaQuantizedExtrudedLine(e,t){return new g([2],[e-1,t+1,1,-1])}}export{w as FeatureSetReader};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/has.js";import{baseObjectMemory as e}from"../../../../../core/memoryEstimations.js";import t from"../../../../../layers/graphics/OptimizedGeometry.js";import{getParquetObjectId as r}from"../../../../../layers/graphics/sources/support/parquetIdUtils.js";import{QuantizedGeometryBuffer as n}from"../../../../../chunks/bundle.js";import{FeatureSetReader as s}from"./FeatureSetReader.js";let i;const d=new TextDecoder;class o extends s{constructor(t,r,n,s,i=new Uint32Array(n.size())){super(t),this._indexMap=r,this._inner=n,this._fileId=s,this._displayIds=i,this._index=-1,this.usedMemory=e,this._size=this._inner.size();t.featureIdInfo.type}destroy(){super.destroy(),this._inner.free()}get fields(){return this.metadata.fieldsIndex}get geometryType(){return this.metadata.geometryType}get hasFeatures(){return!0}get hasNext(){throw new Error("Method not implemented.")}get exceededTransferLimit(){return!1}get hasZ(){return!1}get hasM(){return!1}async updateFields(e,t,r,n){const s=this._inner.rowGroup(),i=new Uint32Array(this._inner.readIdsUnsafe()),d=await e.createPatch(t,s,i,r,n);this._inner.insertPatchBytes(new Uint8Array(d))}getInTransform(){return null}getSize(){return this._size}getCursor(){return this.copy()}getAttributeHash(){let e="";for(const t of this.fields.fields)e+=this._readAttribute(t.name,!1)+".";return e}getObjectId(){return r(this._fileId,this._inner.rowId(this._index))}getDisplayId(){return this._displayIds[this._index]}setDisplayId(e){this._displayIds[this._index]=e}setIndex(e){this._index=e}getBoundsXMin(){return this._inner.boundsXMin(this._index)}getBoundsYMin(){return this._inner.boundsYMin(this._index)}getBoundsXMax(){return this._inner.boundsXMax(this._index)}getBoundsYMax(){return this._inner.boundsYMax(this._index)}setBoundsXMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsXMax(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMax(e){throw new Error("InternalError: Setting bounds is unsupported")}getIndex(){return this._index}next(){for(;++this._index<this._size&&!this._getExists(););return this._index<this._size}readGeometryArea(){return this.readGeometryForDisplay()?.area()??0}copy(){const e=new o(this.metadata,this._indexMap,this._inner,this._fileId,this._displayIds);return this.copyInto(e),e}copyInto(e){super.copyInto(e),e._index=this._index}readGeometryForDisplayTransformed(e){const[r,s]=e.translate,[d,o]=e.scale;i||(i=n.new());return this._inner.transformGeometry(i,r,s,d,o,this._index)?new t(i.readLengthsUnsafe(),i.readCoordsUnsafe(),this.hasZ,this.hasM):null}_readGeometry(e){const r=this._inner.readCoordsUnsafe(this._index),n=this._inner.readLengthsUnsafe(this._index);return r&&n?new t(n,r,this.hasZ,this.hasM):null}_readX(){return this._inner.readX(this._index)}_readY(){return this._inner.readY(this._index)}_readServerCentroid(){return null}_readAttribute(e,t){const r=this.fields.get(e);if(!r)return;const n=this._indexMap[r.name];if(null==n)return this.getObjectId();const s=this._inner.readAttribute(this._index,n);if(null==s)return s;if("esriFieldTypeString"===r.type||"esriFieldTypeDateOnly"===r.type||"esriFieldTypeTimeOnly"===r.type||"esriFieldTypeTimestampOffset"===r.type){const e=this._inner.readAttribute(this._index,n);return d.decode(e)}const i=this.fields.isDateField(r.name);return t?null==s?s:i?new Date(s):s:s}_readAttributes(){const e={};for(const t of this.metadata.fieldsIndex.fields){if(null==this._indexMap[t.name])continue;const r=this._readAttribute(t.name,!1);void 0!==r&&(e[t.name]=r)}return e.__OBJECTID=this.getObjectId(),e}}export{o as FeatureSetReaderParquet};
2
+ import"../../../../../core/has.js";import{baseObjectMemory as e}from"../../../../../core/memoryEstimations.js";import t from"../../../../../layers/graphics/OptimizedGeometry.js";import{getParquetObjectId as r}from"../../../../../layers/graphics/sources/support/parquetIdUtils.js";import{QuantizedGeometryBuffer as s}from"../../../../../chunks/bundle2.js";import{FeatureSetReader as n}from"./FeatureSetReader.js";let i;const d=new TextDecoder;class o extends n{constructor(t,r,s,n,i,d=new Uint32Array(s.size())){super(t),this._indexMap=r,this._inner=s,this._fileId=n,this._transform=i,this._displayIds=d,this._index=-1,this.usedMemory=e,this._size=this._inner.size();t.featureIdInfo.type}destroy(){super.destroy(),this._inner.free()}get fields(){return this.metadata.fieldsIndex}get geometryType(){return this.metadata.geometryType}get hasFeatures(){return!0}get hasNext(){throw new Error("Method not implemented.")}get exceededTransferLimit(){return!1}get hasZ(){return!1}get hasM(){return!1}async updateFields(e,t,r,s){const n=this._inner.rowGroup(),i=new Uint32Array(this._inner.readIdsUnsafe()),d=await e.createPatch(t,n,i,r,s);this._inner.insertPatchBytes(new Uint8Array(d))}getInTransform(){return this._transform}getSize(){return this._size}getCursor(){return this.copy()}getAttributeHash(){let e="";for(const t of this.fields.fields)e+=this._readAttribute(t.name,!1)+".";return e}getObjectId(){return r(this._fileId,this._inner.rowId(this._index))}getDisplayId(){return this._displayIds[this._index]}setDisplayId(e){this._displayIds[this._index]=e}setIndex(e){this._index=e}getBoundsXMin(){return this._inner.boundsXMin(this._index)}getBoundsYMin(){return this._inner.boundsYMin(this._index)}getBoundsXMax(){return this._inner.boundsXMax(this._index)}getBoundsYMax(){return this._inner.boundsYMax(this._index)}setBoundsXMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMin(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsXMax(e){throw new Error("InternalError: Setting bounds is unsupported")}setBoundsYMax(e){throw new Error("InternalError: Setting bounds is unsupported")}getIndex(){return this._index}next(){for(;++this._index<this._size&&!this._getExists(););return this._index<this._size}readGeometryArea(){return this.readGeometryForDisplay()?.area()??0}copy(){const e=new o(this.metadata,this._indexMap,this._inner,this._fileId,this._transform,this._displayIds);return this.copyInto(e),e}copyInto(e){super.copyInto(e),e._index=this._index}readGeometryForDisplayTransformed(e){const[r,n]=e.translate,[d,o]=e.scale;i||(i=s.new());return this._inner.transformGeometry(i,r,n,d,o,this._index)?new t(i.readLengthsUnsafe(),i.readCoordsUnsafe(),this.hasZ,this.hasM):null}_readGeometry(e){const r=this._inner.readCoordsUnsafe(this._index),s=this._inner.readLengthsUnsafe(this._index);return r&&s?new t(s,r,this.hasZ,this.hasM):null}_readX(){return this._inner.readX(this._index)}_readY(){return this._inner.readY(this._index)}_readServerCentroid(){return null}supportsDeltaEncoding(){return!1}_readAttribute(e,t){const r=this.fields.get(e);if(!r)return;const s=this._indexMap[r.name];if(null==s)return this.getObjectId();const n=this._inner.readAttribute(this._index,s);if(null==n)return n;if("esriFieldTypeString"===r.type||"esriFieldTypeDateOnly"===r.type||"esriFieldTypeTimeOnly"===r.type||"esriFieldTypeTimestampOffset"===r.type){const e=this._inner.readAttribute(this._index,s);return d.decode(e)}const i=this.fields.isDateField(r.name);return t?null==n?n:i?new Date(n):n:n}_readAttributes(){const e={};for(const t of this.metadata.fieldsIndex.fields){if(null==this._indexMap[t.name])continue;const r=this._readAttribute(t.name,!1);void 0!==r&&(e[t.name]=r)}return e.__OBJECTID=this.getObjectId(),e}}export{o as FeatureSetReaderParquet};