@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"../../../Graphic.js";import i from"../../../request.js";import{isSome as r}from"../../../core/arrayUtils.js";import{result as s,forEach as o}from"../../../core/asyncUtils.js";import"../../../core/has.js";import n from"../../../core/Logger.js";import{destroyMaybe as a,abortMaybe as d}from"../../../core/maybe.js";import{estimateNumberArrayMemory as l,baseObjectMemory as u,estimateNumberMemory as h,estimateFixedArrayMemory as p,baseArrayMemory as c}from"../../../core/memoryEstimations.js";import{isAbortError as _,allSettledValues as m,throwIfAborted as g}from"../../../core/promiseUtils.js";import{initial as f,watch as y,sync as b,syncAndInitial as w}from"../../../core/reactiveUtils.js";import{pt2px as P}from"../../../core/screenUtils.js";import{isArrayBuffer as N}from"../../../core/typedArrayUtil.js";import{property as v,subclass as x}from"../../../core/accessorSupport/decorators.js";import{length as C,add as S,dot as I,copy as A}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as R}from"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import{fromValues as j}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import Q from"../../../geometry/Extent.js";import V from"../../../geometry/Point.js";import{projectBoundingSphere as k}from"../../../geometry/projection/projectBoundingSphere.js";import{projectVectorToVector as F}from"../../../geometry/projection/projectVectorToVector.js";import{create as E,fromMinMax as O}from"../../../geometry/support/aaBoundingBox.js";import{fromNormalAndOffset as L,create as D}from"../../../geometry/support/plane.js";import{Sphere as U}from"../../../geometry/support/sphere.js";import W from"../../../layers/graphics/OptimizedGeometry.js";import{QueryEngine as G}from"../../../layers/graphics/data/QueryEngine.js";import M from"../../../layers/support/CodedValue.js";import z from"../../../layers/support/CodedValueDomain.js";import{unpackFieldNames as q}from"../../../layers/support/fieldUtils.js";import H from"../../../rest/support/FeatureSet.js";import T from"../../../rest/support/Query.js";import{getElevationOffset as B}from"../../../support/elevationInfoUtils.js";import{LayerView3D as $}from"./LayerView3D.js";import{PointCloudLayerViewPerformanceInfo as J,QueuePerformanceInfo as K}from"./PointCloudLayerViewPerformanceInfo.js";import{PointCloudWorkerHandle as Z}from"./PointCloudWorkerHandle.js";import{I3SQueryFeatureStore as Y}from"./i3s/I3SQueryFeatureStore.js";import{checkPointCloudLayerValid as X,checkPointCloudLayerCompatibleWithView as ee}from"./i3s/I3SUtil.js";import{nodeDiff as te,sortFrontToBack as ie,splitWorkEntries as re}from"./i3s/LoDUtil.js";import{PagedNodeIndex as se}from"./i3s/PagedNodeIndex.js";import{PointCloudGraphic as oe}from"./i3s/PointCloudGraphic.js";import{PointCloudRenderer as ne}from"./i3s/PointCloudRenderer.js";import{isPointRendererNode as ae,PointCloudRendererNode as de}from"./i3s/PointCloudRendererNode.js";import{getSplatSizeAlgorithm as le,getFixedSizeAlgorithm as ue,getRendererInfo as he,getFilterInfo as pe,rendererUsesFixedSizes as ce,getAttributeInfo as _e}from"./i3s/PointCloudRendererUtil.js";import{getAttributeValues as me,readGeometry as ge,elevationFromPositions as fe}from"./i3s/PointCloudWorkerUtil.js";import{normalizeHighlightTarget as ye,emptyHighlightHandle as be}from"./support/highlightUtils.js";import{PopupSceneLayerView as we}from"./support/PopupSceneLayerView.js";import{projectToBoundingBox as Pe}from"../support/extentUtils.js";import{computeMapPointFromVec3d as Ne}from"../support/hitTest.js";import{Obb as ve}from"../support/orientedBoundingBox.js";import{updatingProgress as xe}from"../support/updatingProperties.js";import Ce from"../../layers/LayerView.js";import{PointCloudLayerViewMixin as Se}from"../../layers/PointCloudLayerView.js";import{getHighlightName as Ie}from"../../support/highlightOptionsUtils.js";import{isInEffectiveScaleRange as Ae}from"../../support/layerViewUtils.js";import{PromiseQueue as Re}from"../../support/PromiseQueue.js";import{TaskPriority as je}from"../../support/Scheduler.js";const Qe=8,Ve=D();let ke=class extends(Se(we($(Ce)))){constructor(){super(...arguments),this.type="point-cloud-3d",this.maximumPointCount=4e6,this.slicePlaneEnabled=!1,this._renderer=null,this._rendererAdded=!1,this._renderedNodes=new Set,this._updateViewNeeded=!0,this._lodFactor=1,this._maxLoggedBoxWarnings=5,this._pageMultiplier=1,this._nodeLoadEpoch=0,this._indexQueue=[],this._workQueue=new Array,this._idleQueue=new Re,this._loadingPages=new Map,this._loadingNodes=new Map,this._recalcWork=!0,this._layerIsVisible=!1,this._codedDomainPopulationPromise=null,this._codedDomainPopulationAbortController=null,this._totalWork=0,this._index=null,this._loadingInitNodePage=!1,this._nodeIdArray=[],this.ignoresMemoryFactor=!1}get baseUrl(){return this.layer.parsedUrl?.path??""}get pointScale(){const e=le(this.layer?.renderer),t=1;return null!=e?.scaleFactor?e.scaleFactor:t}get useRealWorldSymbolSizes(){const e=ue(this.layer?.renderer),t=!1;return null!=e?.useRealWorldSymbolSizes?e.useRealWorldSymbolSizes:t}get pointSize(){const e=ue(this.layer?.renderer),t=0;return null!=e?.size?e.size:t}get inverseDensity(){const e=96;return this.layer?.renderer?1*e/this.layer.renderer.pointsPerInch:5}get availableFields(){const e=he(this.layer),t=new Set;e.primaryAttribute&&t.add(e.primaryAttribute.name),e.modulationAttribute&&t.add(e.modulationAttribute.name);const i=pe(this.layer);if(i)for(const r of i)r.attributeInfo&&t.add(r.attributeInfo.name);if(this.layer.outFields)for(const r of q(this.layer.fieldsIndex,this.layer.outFields))t.add(r);return Array.from(t)}get _clippingBox(){if(!this.view||!this.view.clippingArea)return null;const e=E(),t=this.view.renderSpatialReference;return Pe(this.view.clippingArea,e,t)?e:null}get _elevationOffset(){const e=this.layer&&this.layer.elevationInfo;return"absolute-height"===e?.mode?B(e,this.layer.spatialReference):0}get _graphicOrigin(){return this.layer.graphicOrigin}initialize(){const e=this.view.resourceController,t=De(e);this._worker=new Z(t),this.addResolvingPromise(this._worker.promise),this.addResolvingPromise(this.layer.rootPagePromise),X(this.layer),ee(this.layer,this.view),this._initRenderer();const i=this._initNodePages(),r=this.view.resourceController.memoryController;this._memCache=r.newCache(`pcl-${this.layer.uid}`),this._queryFeaturesCache=r.newCache(`pcl-query-features-${this.layer.uid};`),this._updatingHandles.add(()=>this._clippingBox,()=>this._setUpdateViewNeeded(),f),this._updatingHandles.add(()=>this._elevationOffset,()=>this._elevationOffsetChanged(),f),this._updatingHandles.add(()=>this.layer.renderer,()=>this._rendererChanged(),f),this._updatingHandles.add(()=>this.layer.filters,()=>this._reload(),f),this._updatingHandles.add(()=>this.layer.outFields,()=>this._reload(),f),this._updatingHandles.add(()=>this.layer.effectiveScaleRange,()=>this._setUpdateViewNeeded()),this._updatingHandles.add(()=>this.view.state.contentCamera,()=>this._setUpdateViewNeeded()),this.addHandles([y(()=>this.view.quality,()=>this._setUpdateViewNeeded(),b)]),this.addResolvingPromise(i),this.when(()=>{this.addHandles([e.scheduler.registerTask(je.POINT_CLOUD_LAYER,this),y(()=>2===this.view.state.mode,()=>this._setUpdateViewNeeded(),w),this._updatingHandles.add(()=>this.suspended,e=>{e?this._clearNodeState():this._setUpdateViewNeeded()},f)])},()=>{this._updatingHandles.removeAll(),this.removeAllHandles()})}_setUpdateViewNeeded(){this._updateViewNeeded=!0,this._updateLoading()}destroy(){this.cancelLoading(),this._worker=a(this._worker),this._destroyRenderer(),this._memCache=a(this._memCache),this._queryFeaturesCache=a(this._queryFeaturesCache),this._queryEngine=a(this._queryEngine),this._codedDomainPopulationAbortController=d(this._codedDomainPopulationAbortController),this._codedDomainPopulationPromise=null}_initRenderer(){this._renderer=new ne({createGraphic:(e,t,i)=>this._createGraphic(e,t,i)}),this._renderer.layerViewUid=this.uid,this._updatingHandles.add(()=>this._clippingBox,e=>this._renderer.clippingBox=e,f),this._updatingHandles.add(()=>this.suspended,e=>this._setPointsVisible(!e),f),this._updatingHandles.add(()=>this.pointScale,e=>this._renderer.scaleFactor=e,f),this._renderer.minSizePx=Math.sqrt(2),this._updatingHandles.add(()=>this.useRealWorldSymbolSizes,e=>this._renderer.useRealWorldSymbolSizes=e,f),this._updatingHandles.add(()=>this.pointSize,e=>{const t=P(e);this._renderer.size=e,this._renderer.sizePx=t},f),this._updatingHandles.add(()=>this.slicePlaneEnabled,e=>this._renderer.slicePlaneEnabled=e,f),this._updatingHandles.add(()=>this.inverseDensity,()=>this._setUpdateViewNeeded(),f),this._updatingHandles.add(()=>this.maximumPointCount,()=>this._setUpdateViewNeeded(),f),this._updatingHandles.add(()=>this.view.qualitySettings.sceneService.pointCloudLoDFactor,e=>{this._lodFactor=e,this._setUpdateViewNeeded()},f)}_destroyRenderer(){this._renderer.removeAll(),this._setPointsVisible(!1)}_createGraphic(e,t,i,r){const s=null!=e.pointIdFilterMap?e.pointIdFilterMap[t]:t,o=i?"declaredClass"in i?i:Ne(this.view,i):null;return r??=this._createGraphicAttributes(e,s),new oe({pointCloudMetadata:{nodeId:e.id,pointIndexInNode:t,attributePointIndexInNode:s,epoch:this._nodeLoadEpoch},geometry:o,attributes:r,layer:this.layer,sourceLayer:this.layer,origin:this._graphicOrigin})}_createGraphicAttributes(e,t){const i={};for(const r of e.attributes)this._encodeGraphicAttribute(r.attributeInfo,r.values,t,i);return i}_getGraphicAttribute(e,t,i){const r=e.storageInfo?.attributeValues,s=r?.valuesPerElement??1;if(1===s)return t[i];if("UInt8"===r?.valueType&&s<=4){let e=0;const r=i*s;for(let i=r;i<r+s;i++)e=(e<<8)+t[i];return e}}_encodeGraphicAttribute(e,t,i,r){r[e.name]=this._getGraphicAttribute(e,t,i)}_setPointsVisible(e){e&&!this._rendererAdded?(this.view.stage.addRenderPlugin(this._renderer),this._rendererAdded=!0):!e&&this._rendererAdded&&(this.view.stage.removeRenderPlugin(this._renderer),this._rendererAdded=!1)}_rendererChanged(){this._renderer.useFixedSizes=ce(this.layer.renderer),this._reload()}_reload(){this._clearNodeState(),this._memCache.clear(),this._setUpdateViewNeeded()}_elevationOffsetChanged(){this._clearNodeState(),this._memCache.clear(),this._initNodePages()}_displayNodes(e){this._workQueue=te([...this._renderedNodes],e,this._index),ie(this._workQueue,this.view.state.contentCamera.viewForward,this._index),re(this._workQueue,Qe,this._index),this._updateQueues(),this._totalWork=this._computeWork(),this._updateLoading(),this._layerIsVisible=e.length>0||this._loadingInitNodePage,this.notifyChange("suspended")}cancelLoading(){this._cancelNodeLoading(),this._cancelIndexLoading()}_cancelNodeLoading(){[...this._loadingNodes.values()].forEach(e=>e.abort()),this._workQueue=[],this._idleQueue.cancelAll(),this._totalWork=this._computeWork(),this._updateLoading()}_updateQueues(){const e=new Set;this._workQueue.forEach(t=>t.load.forEach(t=>e.add(t)));const t=new Array;this._loadingNodes.forEach((i,r)=>{e.has(r)||(this._loadingNodes.delete(r),t.push(i))}),t.forEach(e=>e.abort()),this._workQueue=this._workQueue.filter(e=>{for(const t of e.load)if(this._loadingNodes.has(t))return this._recalcWork=!0,!1;return!0}),this._totalWork=this._computeWork(),this._updateLoading()}_cancelIndexLoading(){this._indexQueue=[],this._loadingPages.forEach(e=>e.abort()),this._loadingPages.clear(),this._totalWork=this._computeWork(),this._updateLoading()}_clearNodeState(){this._nodeLoadEpoch++,this._renderedNodes.forEach(e=>this._removeFromRenderer(e)),this._cancelNodeLoading()}get readyToRun(){return this.suspended?this._updateViewNeeded:this._updateViewNeeded||this._indexQueue.length>0||this._workQueue.length>0||this._idleQueue.readyToRun}runTask(e){if(this.suspended){if(this._updateViewNeeded){this._updateViewNeeded=!1;const e=this._isRootNodeVisible();e!==this._layerIsVisible&&(this._layerIsVisible=e,this.notifyChange("suspended")),this._updateLoading()}}else{for(e.run(()=>this._updateWorkQueues());this._indexQueue.length>0&&!e.done;)this._processIndexQueue(),e.madeProgress();this._processWorkQueue(e),this._idleQueue.runTask(e)}}async _processIndexQueue(){const e=this._indexQueue.shift(),t=new AbortController;this._loadingPages.set(e,t);try{const i=await this._loadNodePage(e,t.signal);this._index.addPage(e,i,this._elevationOffset),this._setUpdateViewNeeded(),this._loadingPages.delete(e)}catch(i){this._loadingPages.get(e)===t&&this._loadingPages.delete(e)}}_processWorkQueue(e){for(;!e.done;){const t=this._scheduleWorkEntry();if(null==t)return void e.madeProgress();this._processWorkEntry(t),e.madeProgress()}}_scheduleWorkEntry(){let e=this._workQueue.length;for(;e--;){const e=this._workQueue.shift();if(!e.remove.find(e=>!this._renderedNodes.has(e)))return e;this._workQueue.push(e)}return null}async _processWorkEntry(e){if(0===e.load.length){for(const t of e.remove)this._removeFromRenderer(t);return}const t=e.load.map(e=>{const t=new AbortController;return this._loadingNodes.set(e,t),t});this._updateLoading();try{const i=await Promise.all(e.load.map((e,i)=>this._memCache.pop(`${e}`)??this._loadNode(e,t[i].signal)));for(let t=0;t<e.load.length;t++)if(i[t]){const r=this._setupRendererData(e.load[t],i[t]);this._addToRenderer(r)}for(const t of e.remove)this._removeFromRenderer(t);for(const t of e.load)this._loadingNodes.delete(t)}catch(i){e.load.forEach((e,i)=>{this._loadingNodes.get(e)===t[i]&&this._loadingNodes.delete(e)})}this._updateLoading(),this._recalcWork&&!this._idleQueue.updating&&0===this._indexQueue.length&&0===this._loadingNodes.size&&(this._recalcWork=!1,this._setUpdateViewNeeded())}async _populateClassCodeCodedDomain(e,t){const i="CLASS_CODE",r=this.layer.fieldsIndex.get(i);if(!r||r.domain)return;if(!e.includes(r.name))return;const o=await s(this.layer.queryCachedStatistics(i,{signal:t}));if(!1===o.ok)return;const n=o.value?.stats?.labels?.labels;n&&Array.isArray(n)&&(r.domain=new z({name:"CLASS_CODE",codedValues:n.map(e=>new M({code:e.value,name:e.label}))}))}async prepareFetchPopupFeatures(e){return this._codedDomainPopulationPromise||(this._codedDomainPopulationAbortController=new AbortController,this._codedDomainPopulationPromise=this._populateClassCodeCodedDomain(e,this._codedDomainPopulationAbortController.signal).then(()=>{this._codedDomainPopulationAbortController=null})),this._codedDomainPopulationPromise}async whenGraphicAttributes(e,t){const i=this._splitGraphicsPerNode(e),s=this.layer.attributeStorageInfo,n=t.map(e=>_e(s,e)).filter(r),a=async(e,t)=>{const i=this._index.getNode(t);await o(n,async t=>{const r=t.useElevation?await this._loadElevationAttributeFromGeometry(i.resourceId):await this._loadAndParseAttribute(i,t);if(r)for(const i of e)if(this._isValidPointGraphic(i)){const e=i.pointCloudMetadata.attributePointIndexInNode;this._encodeGraphicAttribute(t,r,e,i.attributes)}})},d=[];return i.forEach((e,t)=>{d.push(a(e,t))}),await Promise.allSettled(d),e}_isValidPointGraphic(e){return e instanceof oe&&e.pointCloudMetadata?.epoch===this._nodeLoadEpoch}_splitGraphicsPerNode(e){const t=new Map;for(const i of e){if(!this._isValidPointGraphic(i))continue;const e=i.pointCloudMetadata,r=t.get(e.nodeId);r?r.push(i):t.set(e.nodeId,[i])}return t}async _loadAndParseAttribute(e,t){const i=await this._loadAttribute(e.resourceId,t,null);return i?me({attributeInfo:t,buffer:i},null,e.vertexCount):null}async _loadElevationAttributeFromGeometry(e){const t=this.layer.store.defaultGeometrySchema,i=ge(t,await this._loadGeometry(e,null));return fe(i,i.length/3)}highlight(e,i){const r=ye(e);if(0===r.length)return be;if(!(r[0]instanceof t))return be;const s=r;return this._renderer.highlight(s.map(e=>this._graphicToPointDefinition(e)),Ie(i))}_graphicToPointDefinition(e){if(!this._isValidPointGraphic(e))return null;const{nodeId:t,pointIndexInNode:i}=e.pointCloudMetadata;return null!=t&&null!=i?{nodeId:t,pointId:i}:null}_computeWork(){let e=0;for(const t of this._workQueue)e+=t.load.length+t.remove.length;return e+=this._loadingNodes.size,e+=(this._indexQueue.length+this._loadingPages.size)*this._index.pageSize,e+=this._loadingInitNodePage?100:0,e+=this._updateViewNeeded?100:0,e}get updatingProgressValue(){if(this.suspended)return this._updateViewNeeded?0:1;const e=this._computeWork();return 1-Math.min(this._totalWork,e)/this._totalWork}_updateLoading(){this.notifyChange("updating"),this.notifyChange("updatingProgressValue")}canResume(){return super.canResume()&&this._layerIsVisible}isUpdating(){return this.suspended?this._updateViewNeeded:this._computeWork()>0}get visibleAtCurrentScale(){return Ae(this.layer.effectiveScaleRange,this.view.scale)}async queryFeatures(e,i){const r=await this._ensureQueryEngine().executeQuery(this._ensureQueryJSON(e),i?.signal),s=r.features;r.features=[];const o=H.fromJSON(r),n=this.view.spatialReference;return o.features=s.map(e=>{const{attributes:i,metadata:r}=e;if(!r){const i=t.fromJSON(e);return i.geometry&&(i.geometry.spatialReference=o.spatialReference??n),i.layer=this.layer,i.sourceLayer=this.layer,i.origin=this._graphicOrigin,i}const s=e.geometry?V.fromJSON(e.geometry):void 0;return s&&(s.spatialReference=o.spatialReference??n),this._createGraphic(r.node,r.pointId,s,i)}),o}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference,returnZ:!0};return new T(e)}async queryFeatureCount(e,t){return await this._ensureQueryEngine().executeQueryForCount(this._ensureQueryJSON(e),t?.signal)}async queryExtent(e,t){const{count:i,extent:r}=await this._ensureQueryEngine().executeQueryForExtent(this._ensureQueryJSON(e),t?.signal);return{count:i,extent:Q.fromJSON(r)}}_ensureQueryJSON(e){return null==e?new T({outSpatialReference:this.view.spatialReference}).toJSON():T.from(e).toJSON()}_ensureQueryEngine(){if(this._queryEngine)return this._queryEngine;const{spatialReference:e}=this.view;return this._queryEngine=new G({fieldsIndex:this.layer.fieldsIndex.toJSON(),geometryType:"esriGeometryPoint",spatialReference:e,featureIdInfo:{type:"object-id",fieldName:"objectId"},hasZ:!0,featureStore:new Y({sourceSpatialReference:e,viewSpatialReference:e,forAllFeatures:(e,t)=>{this._renderer.forEachNode(i=>{if(t){const e=i.obb,r=new U(e.center,C(e.halfSize));k(r,this.view.renderSpatialReference,r,this.view.spatialReference);if(1===t(r))return}let r=this._queryFeaturesCache.get(`${i.id}`);r||(r=this._createQueryPointFeatures(i),this._queryFeaturesCache.put(`${i.id}`,r)),r.features.forEach(e)})},getFeatureExtent:({point:e},t)=>O(e,e,t),featureAdapter:{cloneWithGeometry:(e,t,i)=>new Ee(e.node,e.pointId,t.coords),getAttribute:({node:e,attributePointId:t},i)=>{for(const r of e.attributes)if(r.attributeInfo.name===i)return this._getGraphicAttribute(r.attributeInfo,r.values,t)},getAttributes:({node:e,attributePointId:t})=>this._createGraphicAttributes(e,t),getCentroid:e=>e.getGeometry(),getGeometry:e=>e.getGeometry(),getObjectId:()=>{},getMetadata:e=>e}})}),this._queryEngine}_createQueryPointFeatures(e){const t=e.coordinates,i=new Array;for(let r=0;r<t.length/3;r++){const s=3*r,o=j(t[s+0],t[s+1],t[s+2]);S(o,o,e.origin),F(o,this.view.renderSpatialReference,o,this.view.spatialReference);const n=new Ee(e,r,o);i.push(n)}return new Oe(i)}async _initNodePages(){const e=this.layer.store.index,t=e.nodesPerPage||e.nodePerIndexBlock;this._index=new se(this.layer.spatialReference,this.view.renderCoordsHelper.spatialReference,t),this._cancelIndexLoading(),this._traverseVisible=this._index.createVisibilityTraverse(),this._loadingInitNodePage=!0,this._layerIsVisible=!0,this.notifyChange("suspended"),this._updateLoading(),this._pageMultiplier=null!=e.nodesPerPage?1:e.nodePerIndexBlock;const i=await this.layer.rootPagePromise;this._loadingInitNodePage=!1,i?(this._index.addPage(0,this._processJSONNodes(i,0),this._elevationOffset),this._setUpdateViewNeeded()):n.getLogger(this).error("Point cloud layer root page not loaded")}_loadNodePage(e,t){const i=`${this.baseUrl}/nodepages/${e*this._pageMultiplier}`;return this._requestNodePage(i,t).then(t=>this._processJSONNodes(t,e))}_processJSONNodes(e,t){const i=t*this._index.pageSize;return e.nodes.map((e,t)=>({resourceId:e.resourceId??i+t,obb:ve.fromJSON(e.obb),obbInRenderSR:new ve,firstChild:e.firstChild,childCount:e.childCount,vertexCount:e.vertexCount??e.pointCount,lodThreshold:e.lodThreshold??e.effectiveArea}))}_updateWorkQueues(){if(!this._updateViewNeeded)return!1;const e=this.view.quality;let t=this.inverseDensity/this._lodFactor*e;const i=this.maximumPointCount*this._lodFactor*e;let r=this._computeNodesForMinimumDensity(t),s=this._computePointCount(r),o=Math.sqrt(s/(.75*i));for(;s>i;)t*=o,r=this._computeNodesForMinimumDensity(t),s=this._computePointCount(r),o=Math.sqrt(2);return this._displayNodes(r),this._updateViewNeeded=!1,this._updateLoading(),!0}_computePointCount(e){let t=0;for(let i=0;i<e.length;i++){const r=this._index.getNode(e[i]);r&&(t+=r.vertexCount)}return t}_isRootNodeVisible(){let e=!1;return this._traverseVisible({frustum:this.view.state.contentCamera.frustum,clippingBox:this._clippingBox},{predicate:(t,i,r)=>(e=r,!1),pageMiss:()=>{}}),e}_computeNodesForMinimumDensity(e){const t=this.view.state.contentCamera,i=t.frustum,r=this._clippingBox,s=t.viewForward,o=I(s,t.eye),n=L(s,-o,Ve),a=t.perScreenPixelRatio/2,d=e*e,l=this._nodeIdArray;l.length=0;const u=e=>l.push(e);return this._traverseVisible({frustum:i,clippingBox:r},{predicate:(e,t,i)=>{if(!i)return!1;if(0===t.childCount)return u(e),!1;const r=this._index.getRenderObb(e);return!(this._computeAveragePixelArea(r,t.lodThreshold,t.vertexCount,n,a)<=d)||(u(e),!1)},pageMiss:(e,t)=>{u(e),this._indexQueue.includes(t)||this._indexQueue.push(t)}}),l}_computeAveragePixelArea(e,t,i,r,s){const o=1e-7,n=Math.max(o,e.signedDistanceRangePlane(r).min);return t/(n*n)/(4*s*s)/i}_loadNode(e,t){try{return this._loadNodeAsync(e,t)}catch(i){throw _(i)||n.getLogger(this).error(i),i}}async _loadAdditionalUserAttributes(e,t,i){const s=this.layer.outFields;if(!s)return[];const o=q(this.layer.fieldsIndex,s),n=new Set(e.map(e=>null!=e?e.name:null)),a=this.layer.attributeStorageInfo,d=[];for(const r of o){if(n.has(r))continue;const e=_e(a,r);e&&d.push(t(e))}const l=await m(d);return g(i),l.filter(r)}async _loadNodeAsync(e,t){const i=this._index.getNode(e),r=he(this.layer),s=pe(this.layer),o=i.resourceId,n=async e=>{if(!e)return null;if(e.useElevation)return{attributeInfo:e,buffer:null};const i=await this._loadAttribute(o,e,t);return null!=i?{attributeInfo:e,buffer:i}:null};return this._idleQueue.push(async()=>{const i=this._loadGeometry(o,t),{primaryAttribute:a,modulationAttribute:d}=r,l=n(a),u=n(d),h=s.map(e=>e.attributeInfo),p=h.map(e=>n(e)),c=this._loadAdditionalUserAttributes([a,d,...h],n,t),[_,m,f,y,b]=await Promise.all([i,l,u,Promise.all(p),c]);g(t);const w={geometryBuffer:_,primaryAttributeData:m,modulationAttributeData:f,filterAttributesData:y,userAttributesData:b,schema:this.layer.store.defaultGeometrySchema,rendererInfo:r,filterInfo:s,obbData:this._index.getRenderObb(e).data,elevationOffset:this._elevationOffset,inSR:this.layer.spatialReference.toJSON(),outSR:this.view.renderCoordsHelper.spatialReference.toJSON()};return this._worker.invoke(w,t)},t)}async _loadGeometry(e,t){return this._requestData(`${this.baseUrl}/nodes/${e}/geometries/0`,t)}async _loadAttribute(e,t,i){if(!t?.storageInfo)return null;const r=t.storageInfo.key;return this._requestData(`${this.baseUrl}/nodes/${e}/attributes/${r}`,i)}async _requestNodePage(e,t){const r={useQueue:!1,query:{f:"json",...this.layer.customParameters,token:this.layer.apiKey},responseType:"json",signal:t};return(await i(e,r)).data}async _requestData(e,t){const r={useQueue:!1,query:{...this.layer.customParameters,token:this.layer.apiKey},responseType:"array-buffer",signal:t};return(await i(e,r)).data}_removeFromRenderer(e){if(this._renderedNodes.has(e)){const t=this._renderer.removeNode(e);this._renderedNodes.delete(e),this._memCache.put(`${t.id}`,t)}}_addToRenderer(e){this._renderedNodes.has(e.id)||(this._renderedNodes.add(e.id),this._renderer.addNode(e))}_setupRendererData(e,t){const i=this._index.getNode(e),r=Math.sqrt(i.lodThreshold/i.vertexCount),s=this._index.getRenderObb(e);if(ae(t))return t.splatSize=r,t.obb=s,A(t.origin,t.obb.center),t;const o=ve.fromData(t.obbData),a=o.halfSize,d=s.halfSize,l=.01*Math.max(d[0],d[1],d[2]);if(a[0]>d[0]+l||a[1]>d[1]+l||a[2]>d[2]+l){if(this._maxLoggedBoxWarnings>0){const t=e=>`[${e.halfSize[0]}, ${e.halfSize[1]}, ${e.halfSize[2]}]`;n.getLogger(this).warn(`Node ${e} reported bounding box too small. got ${t(s)} but points cover ${t(o)}`),0===--this._maxLoggedBoxWarnings&&n.getLogger(this).warn(" Too many bounding box errors, stopping reporting for this layer.")}this._index.setRenderObb(e,o)}return new de(e,r,R(s.center),s,0===i.childCount,t.points,t.rgb,t.attributes,t.pointIdFilterMap)}get usedMemory(){let e=0;return this._renderer.forEachNode(t=>{e+=Le,e+=l(t.coordinates);for(const i of t.attributes){const t=i.values;N(t.buffer)&&(e+=l(t))}}),e}get unloadedMemory(){const e=this._renderedNodes.size;if(e<4)return 0;const t=[...this._renderedNodes].reduce((e,t)=>e+this._index.getNode(t).vertexCount);let i=this._loadingNodes.size;for(let r=0;r<this._workQueue.length;r++)i+=this._workQueue[r].load.length,i-=this._workQueue[r].remove.length;if(i<0)return 0;return i*t/e*((this.usedMemory-e*Le)/t)+i*Le}get performanceInfo(){return new J(this.usedMemory,this._renderedNodes.size,[...this._renderedNodes].reduce((e,t)=>e+this._index.getNode(t).vertexCount,0),this.maximumPointCount,new K(this._loadingNodes.size,this._indexQueue.length,this._workQueue.length,this._idleQueue.length))}get test(){}};e([v()],ke.prototype,"layer",void 0),e([v()],ke.prototype,"baseUrl",null),e([v()],ke.prototype,"pointScale",null),e([v()],ke.prototype,"useRealWorldSymbolSizes",null),e([v()],ke.prototype,"pointSize",null),e([v()],ke.prototype,"inverseDensity",null),e([v()],ke.prototype,"maximumPointCount",void 0),e([v({readOnly:!0})],ke.prototype,"availableFields",null),e([v({readOnly:!0})],ke.prototype,"_clippingBox",null),e([v({readOnly:!0})],ke.prototype,"_elevationOffset",null),e([v({type:Boolean})],ke.prototype,"slicePlaneEnabled",void 0),e([v()],ke.prototype,"_graphicOrigin",null),e([v()],ke.prototype,"updating",void 0),e([v(xe)],ke.prototype,"updatingProgress",void 0),e([v({readOnly:!0})],ke.prototype,"updatingProgressValue",null),e([v({readOnly:!0})],ke.prototype,"visibleAtCurrentScale",null),ke=e([x("esri.views.3d.layers.PointCloudLayerView3D")],ke);const Fe=ke;class Ee{constructor(e,t,i){this.node=e,this.pointId=t,this.point=i}getGeometry(){return new W([],Array.from(this.point),!0,!1)}get attributePointId(){const{node:e,pointId:t}=this;return null!=e.pointIdFilterMap?e.pointIdFilterMap[t]:t}get usedMemory(){return u+u+h+p(this.point,h)}}class Oe{constructor(e){this.features=e}get usedMemory(){return this.features.reduce((e,t)=>e+t.usedMemory,u+c)}}const Le=160;function De(e){return t=>e.immediate.schedule(t)}export{Fe as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../Graphic.js";import i from"../../../request.js";import{isSome as r}from"../../../core/arrayUtils.js";import{result as s,forEach as o}from"../../../core/asyncUtils.js";import"../../../core/has.js";import n from"../../../core/Logger.js";import{destroyMaybe as a,abortMaybe as d}from"../../../core/maybe.js";import{estimateNumberArrayMemory as l,baseObjectMemory as u,estimateNumberMemory as h,estimateFixedArrayMemory as p,baseArrayMemory as c}from"../../../core/memoryEstimations.js";import{isAbortError as _,allSettledValues as m,throwIfAborted as g}from"../../../core/promiseUtils.js";import{initial as f,watch as y,sync as b,syncAndInitial as w}from"../../../core/reactiveUtils.js";import{pt2px as P}from"../../../core/screenUtils.js";import{isArrayBuffer as N}from"../../../core/typedArrayUtil.js";import{property as v,subclass as x}from"../../../core/accessorSupport/decorators.js";import{add as C,dot as S,copy as I}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as A}from"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import{create as R,fromValues as j}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import Q from"../../../geometry/Extent.js";import V from"../../../geometry/Point.js";import{projectBoundingSphere as k}from"../../../geometry/projection/projectBoundingSphere.js";import{projectVectorToVector as F}from"../../../geometry/projection/projectVectorToVector.js";import{create as E,fromMinMax as O}from"../../../geometry/support/aaBoundingBox.js";import{create as L,fromNormalAndOffset as D}from"../../../geometry/support/plane.js";import{Sphere as U}from"../../../geometry/support/sphere.js";import W from"../../../layers/graphics/OptimizedGeometry.js";import{QueryEngine as G}from"../../../layers/graphics/data/QueryEngine.js";import M from"../../../layers/support/CodedValue.js";import z from"../../../layers/support/CodedValueDomain.js";import{unpackFieldNames as q}from"../../../layers/support/fieldUtils.js";import H from"../../../rest/support/FeatureSet.js";import T from"../../../rest/support/Query.js";import{getElevationOffset as B}from"../../../support/elevationInfoUtils.js";import{LayerView3D as $}from"./LayerView3D.js";import{PointCloudLayerViewPerformanceInfo as J,QueuePerformanceInfo as Z}from"./PointCloudLayerViewPerformanceInfo.js";import{PointCloudWorkerHandle as Y}from"./PointCloudWorkerHandle.js";import{I3SQueryFeatureStore as X}from"./i3s/I3SQueryFeatureStore.js";import{checkPointCloudLayerValid as K,checkPointCloudLayerCompatibleWithView as ee}from"./i3s/I3SUtil.js";import{nodeDiff as te,sortFrontToBack as ie,splitWorkEntries as re}from"./i3s/LoDUtil.js";import{PagedNodeIndex as se}from"./i3s/PagedNodeIndex.js";import{PointCloudGraphic as oe}from"./i3s/PointCloudGraphic.js";import{PointCloudRenderer as ne}from"./i3s/PointCloudRenderer.js";import{isPointRendererNode as ae,PointCloudRendererNode as de}from"./i3s/PointCloudRendererNode.js";import{getSplatSizeAlgorithm as le,getFixedSizeAlgorithm as ue,getRendererInfo as he,getFilterInfo as pe,rendererUsesFixedSizes as ce,getAttributeInfo as _e}from"./i3s/PointCloudRendererUtil.js";import{getAttributeValues as me,readGeometry as ge,elevationFromPositions as fe}from"./i3s/PointCloudWorkerUtil.js";import{normalizeHighlightTarget as ye,emptyHighlightHandle as be}from"./support/highlightUtils.js";import{PopupSceneLayerView as we}from"./support/PopupSceneLayerView.js";import{projectToBoundingBox as Pe}from"../support/extentUtils.js";import{computeMapPointFromVec3d as Ne}from"../support/hitTest.js";import{Obb as ve}from"../support/orientedBoundingBox.js";import{updatingProgress as xe}from"../support/updatingProperties.js";import Ce from"../../layers/LayerView.js";import{PointCloudLayerViewMixin as Se}from"../../layers/PointCloudLayerView.js";import{getHighlightName as Ie}from"../../support/highlightOptionsUtils.js";import{isInEffectiveScaleRange as Ae}from"../../support/layerViewUtils.js";import{PromiseQueue as Re}from"../../support/PromiseQueue.js";import{TaskPriority as je}from"../../support/Scheduler.js";const Qe=8,Ve=L();let ke=class extends(Se(we($(Ce)))){constructor(){super(...arguments),this.type="point-cloud-3d",this.maximumPointCount=4e6,this.slicePlaneEnabled=!1,this._renderer=null,this._rendererAdded=!1,this._renderedNodes=new Set,this._updateViewNeeded=!0,this._lodFactor=1,this._maxLoggedBoxWarnings=5,this._pageMultiplier=1,this._nodeLoadEpoch=0,this._indexQueue=[],this._workQueue=new Array,this._idleQueue=new Re,this._loadingPages=new Map,this._loadingNodes=new Map,this._recalcWork=!0,this._layerIsVisible=!1,this._codedDomainPopulationPromise=null,this._codedDomainPopulationAbortController=null,this._totalWork=0,this._index=null,this._loadingInitNodePage=!1,this._nodeIdArray=[],this.ignoresMemoryFactor=!1}get baseUrl(){return this.layer.parsedUrl?.path??""}get pointScale(){const e=le(this.layer?.renderer),t=1;return null!=e?.scaleFactor?e.scaleFactor:t}get useRealWorldSymbolSizes(){const e=ue(this.layer?.renderer),t=!1;return null!=e?.useRealWorldSymbolSizes?e.useRealWorldSymbolSizes:t}get pointSize(){const e=ue(this.layer?.renderer),t=0;return null!=e?.size?e.size:t}get inverseDensity(){const e=96;return this.layer?.renderer?1*e/this.layer.renderer.pointsPerInch:5}get availableFields(){const e=he(this.layer),t=new Set;e.primaryAttribute&&t.add(e.primaryAttribute.name),e.modulationAttribute&&t.add(e.modulationAttribute.name);const i=pe(this.layer);if(i)for(const r of i)r.attributeInfo&&t.add(r.attributeInfo.name);if(this.layer.outFields)for(const r of q(this.layer.fieldsIndex,this.layer.outFields))t.add(r);return Array.from(t)}get _clippingBox(){if(!this.view||!this.view.clippingArea)return null;const e=E(),t=this.view.renderSpatialReference;return Pe(this.view.clippingArea,e,t)?e:null}get _elevationOffset(){const e=this.layer&&this.layer.elevationInfo;return"absolute-height"===e?.mode?B(e,this.layer.spatialReference):0}get _graphicOrigin(){return this.layer.graphicOrigin}initialize(){const e=this.view.resourceController,t=De(e);this._worker=new Y(t),this.addResolvingPromise(this._worker.promise),this.addResolvingPromise(this.layer.rootPagePromise),K(this.layer),ee(this.layer,this.view),this._initRenderer();const i=this._initNodePages(),r=this.view.resourceController.memoryController;this._memCache=r.newCache(`pcl-${this.layer.uid}`),this._queryFeaturesCache=r.newCache(`pcl-query-features-${this.layer.uid};`),this._updatingHandles.add(()=>this._clippingBox,()=>this._setUpdateViewNeeded(),f),this._updatingHandles.add(()=>this._elevationOffset,()=>this._elevationOffsetChanged(),f),this._updatingHandles.add(()=>this.layer.renderer,()=>this._rendererChanged(),f),this._updatingHandles.add(()=>this.layer.filters,()=>this._reload(),f),this._updatingHandles.add(()=>this.layer.outFields,()=>this._reload(),f),this._updatingHandles.add(()=>this.layer.effectiveScaleRange,()=>this._setUpdateViewNeeded()),this._updatingHandles.add(()=>this.view.state.contentCamera,()=>this._setUpdateViewNeeded()),this.addHandles([y(()=>this.view.quality,()=>this._setUpdateViewNeeded(),b)]),this.addResolvingPromise(i),this.when(()=>{this.addHandles([e.scheduler.registerTask(je.POINT_CLOUD_LAYER,this),y(()=>2===this.view.state.mode,()=>this._setUpdateViewNeeded(),w),this._updatingHandles.add(()=>this.suspended,e=>{e?this._clearNodeState():this._setUpdateViewNeeded()},f)])},()=>{this._updatingHandles.removeAll(),this.removeAllHandles()})}_setUpdateViewNeeded(){this._updateViewNeeded=!0,this._updateLoading()}destroy(){this.cancelLoading(),this._worker=a(this._worker),this._destroyRenderer(),this._memCache=a(this._memCache),this._queryFeaturesCache=a(this._queryFeaturesCache),this._queryEngine=a(this._queryEngine),this._codedDomainPopulationAbortController=d(this._codedDomainPopulationAbortController),this._codedDomainPopulationPromise=null}_initRenderer(){this._renderer=new ne({createGraphic:(e,t,i)=>this._createGraphic(e,t,i)}),this._renderer.layerViewUid=this.uid,this._updatingHandles.add(()=>this._clippingBox,e=>this._renderer.clippingBox=e,f),this._updatingHandles.add(()=>this.suspended,e=>this._setPointsVisible(!e),f),this._updatingHandles.add(()=>this.pointScale,e=>this._renderer.scaleFactor=e,f),this._renderer.minSizePx=Math.sqrt(2),this._updatingHandles.add(()=>this.useRealWorldSymbolSizes,e=>this._renderer.useRealWorldSymbolSizes=e,f),this._updatingHandles.add(()=>this.pointSize,e=>{const t=P(e);this._renderer.size=e,this._renderer.sizePx=t},f),this._updatingHandles.add(()=>this.slicePlaneEnabled,e=>this._renderer.slicePlaneEnabled=e,f),this._updatingHandles.add(()=>this.inverseDensity,()=>this._setUpdateViewNeeded(),f),this._updatingHandles.add(()=>this.maximumPointCount,()=>this._setUpdateViewNeeded(),f),this._updatingHandles.add(()=>this.view.qualitySettings.sceneService.pointCloudLoDFactor,e=>{this._lodFactor=e,this._setUpdateViewNeeded()},f)}_destroyRenderer(){this._renderer.removeAll(),this._setPointsVisible(!1)}_createGraphic(e,t,i,r){const s=null!=e.pointIdFilterMap?e.pointIdFilterMap[t]:t,o=i?"declaredClass"in i?i:Ne(this.view,i):null;return r??=this._createGraphicAttributes(e,s),new oe({pointCloudMetadata:{nodeId:e.id,pointIndexInNode:t,attributePointIndexInNode:s,epoch:this._nodeLoadEpoch},geometry:o,attributes:r,layer:this.layer,sourceLayer:this.layer,origin:this._graphicOrigin})}_createGraphicAttributes(e,t){const i={};for(const r of e.attributes)this._encodeGraphicAttribute(r.attributeInfo,r.values,t,i);return i}_getGraphicAttribute(e,t,i){const r=e.storageInfo?.attributeValues,s=r?.valuesPerElement??1;if(1===s)return t[i];if("UInt8"===r?.valueType&&s<=4){let e=0;const r=i*s;for(let i=r;i<r+s;i++)e=(e<<8)+t[i];return e}}_encodeGraphicAttribute(e,t,i,r){r[e.name]=this._getGraphicAttribute(e,t,i)}_setPointsVisible(e){e&&!this._rendererAdded?(this.view.stage.addRenderPlugin(this._renderer),this._rendererAdded=!0):!e&&this._rendererAdded&&(this.view.stage.removeRenderPlugin(this._renderer),this._rendererAdded=!1)}_rendererChanged(){this._renderer.useFixedSizes=ce(this.layer.renderer),this._reload()}_reload(){this._clearNodeState(),this._memCache.clear(),this._setUpdateViewNeeded()}_elevationOffsetChanged(){this._clearNodeState(),this._memCache.clear(),this._initNodePages()}_displayNodes(e){this._workQueue=te([...this._renderedNodes],e,this._index),ie(this._workQueue,this.view.state.contentCamera.viewForward,this._index),re(this._workQueue,Qe,this._index),this._updateQueues(),this._totalWork=this._computeWork(),this._updateLoading(),this._layerIsVisible=e.length>0||this._loadingInitNodePage,this.notifyChange("suspended")}cancelLoading(){this._cancelNodeLoading(),this._cancelIndexLoading()}_cancelNodeLoading(){[...this._loadingNodes.values()].forEach(e=>e.abort()),this._workQueue=[],this._idleQueue.cancelAll(),this._totalWork=this._computeWork(),this._updateLoading()}_updateQueues(){const e=new Set;this._workQueue.forEach(t=>t.load.forEach(t=>e.add(t)));const t=new Array;this._loadingNodes.forEach((i,r)=>{e.has(r)||(this._loadingNodes.delete(r),t.push(i))}),t.forEach(e=>e.abort()),this._workQueue=this._workQueue.filter(e=>{for(const t of e.load)if(this._loadingNodes.has(t))return this._recalcWork=!0,!1;return!0}),this._totalWork=this._computeWork(),this._updateLoading()}_cancelIndexLoading(){this._indexQueue=[],this._loadingPages.forEach(e=>e.abort()),this._loadingPages.clear(),this._totalWork=this._computeWork(),this._updateLoading()}_clearNodeState(){this._nodeLoadEpoch++,this._renderedNodes.forEach(e=>this._removeFromRenderer(e)),this._cancelNodeLoading()}get readyToRun(){return this.suspended?this._updateViewNeeded:this._updateViewNeeded||this._indexQueue.length>0||this._workQueue.length>0||this._idleQueue.readyToRun}runTask(e){if(this.suspended){if(this._updateViewNeeded){this._updateViewNeeded=!1;const e=this._isRootNodeVisible();e!==this._layerIsVisible&&(this._layerIsVisible=e,this.notifyChange("suspended")),this._updateLoading()}}else{for(e.run(()=>this._updateWorkQueues());this._indexQueue.length>0&&!e.done;)this._processIndexQueue(),e.madeProgress();this._processWorkQueue(e),this._idleQueue.runTask(e)}}async _processIndexQueue(){const e=this._indexQueue.shift(),t=new AbortController;this._loadingPages.set(e,t);try{const i=await this._loadNodePage(e,t.signal);this._index.addPage(e,i,this._elevationOffset),this._setUpdateViewNeeded(),this._loadingPages.delete(e)}catch(i){this._loadingPages.get(e)===t&&this._loadingPages.delete(e)}}_processWorkQueue(e){for(;!e.done;){const t=this._scheduleWorkEntry();if(null==t)return void e.madeProgress();this._processWorkEntry(t),e.madeProgress()}}_scheduleWorkEntry(){let e=this._workQueue.length;for(;e--;){const e=this._workQueue.shift();if(!e.remove.find(e=>!this._renderedNodes.has(e)))return e;this._workQueue.push(e)}return null}async _processWorkEntry(e){if(0===e.load.length){for(const t of e.remove)this._removeFromRenderer(t);return}const t=e.load.map(e=>{const t=new AbortController;return this._loadingNodes.set(e,t),t});this._updateLoading();try{const i=await Promise.all(e.load.map((e,i)=>this._memCache.pop(`${e}`)??this._loadNode(e,t[i].signal)));for(let t=0;t<e.load.length;t++)if(i[t]){const r=this._setupRendererData(e.load[t],i[t]);this._addToRenderer(r)}for(const t of e.remove)this._removeFromRenderer(t);for(const t of e.load)this._loadingNodes.delete(t)}catch(i){e.load.forEach((e,i)=>{this._loadingNodes.get(e)===t[i]&&this._loadingNodes.delete(e)})}this._updateLoading(),this._recalcWork&&!this._idleQueue.updating&&0===this._indexQueue.length&&0===this._loadingNodes.size&&(this._recalcWork=!1,this._setUpdateViewNeeded())}async _populateClassCodeCodedDomain(e,t){const i="CLASS_CODE",r=this.layer.fieldsIndex.get(i);if(!r||r.domain)return;if(!e.includes(r.name))return;const o=await s(this.layer.queryCachedStatistics(i,{signal:t}));if(!1===o.ok)return;const n=o.value?.stats?.labels?.labels;n&&Array.isArray(n)&&(r.domain=new z({name:"CLASS_CODE",codedValues:n.map(e=>new M({code:e.value,name:e.label}))}))}async prepareFetchPopupFeatures(e){return this._codedDomainPopulationPromise||(this._codedDomainPopulationAbortController=new AbortController,this._codedDomainPopulationPromise=this._populateClassCodeCodedDomain(e,this._codedDomainPopulationAbortController.signal).then(()=>{this._codedDomainPopulationAbortController=null})),this._codedDomainPopulationPromise}async whenGraphicAttributes(e,t){const i=this._splitGraphicsPerNode(e),s=this.layer.attributeStorageInfo,n=t.map(e=>_e(s,e)).filter(r),a=async(e,t)=>{const i=this._index.getNode(t);await o(n,async t=>{const r=t.useElevation?await this._loadElevationAttributeFromGeometry(i.resourceId):await this._loadAndParseAttribute(i,t);if(r)for(const i of e)if(this._isValidPointGraphic(i)){const e=i.pointCloudMetadata.attributePointIndexInNode;this._encodeGraphicAttribute(t,r,e,i.attributes)}})},d=[];return i.forEach((e,t)=>{d.push(a(e,t))}),await Promise.allSettled(d),e}_isValidPointGraphic(e){return e instanceof oe&&e.pointCloudMetadata?.epoch===this._nodeLoadEpoch}_splitGraphicsPerNode(e){const t=new Map;for(const i of e){if(!this._isValidPointGraphic(i))continue;const e=i.pointCloudMetadata,r=t.get(e.nodeId);r?r.push(i):t.set(e.nodeId,[i])}return t}async _loadAndParseAttribute(e,t){const i=await this._loadAttribute(e.resourceId,t,null);return i?me({attributeInfo:t,buffer:i},null,e.vertexCount):null}async _loadElevationAttributeFromGeometry(e){const t=this.layer.store.defaultGeometrySchema,i=ge(t,await this._loadGeometry(e,null));return fe(i,i.length/3)}highlight(e,i){const r=ye(e);if(0===r.length)return be;if(!(r[0]instanceof t))return be;const s=r;return this._renderer.highlight(s.map(e=>this._graphicToPointDefinition(e)),Ie(i))}_graphicToPointDefinition(e){if(!this._isValidPointGraphic(e))return null;const{nodeId:t,pointIndexInNode:i}=e.pointCloudMetadata;return null!=t&&null!=i?{nodeId:t,pointId:i}:null}_computeWork(){let e=0;for(const t of this._workQueue)e+=t.load.length+t.remove.length;return e+=this._loadingNodes.size,e+=(this._indexQueue.length+this._loadingPages.size)*this._index.pageSize,e+=this._loadingInitNodePage?100:0,e+=this._updateViewNeeded?100:0,e}get updatingProgressValue(){if(this.suspended)return this._updateViewNeeded?0:1;const e=this._computeWork();return 1-Math.min(this._totalWork,e)/this._totalWork}_updateLoading(){this.notifyChange("updating"),this.notifyChange("updatingProgressValue")}canResume(){return super.canResume()&&this._layerIsVisible}isUpdating(){return this.suspended?this._updateViewNeeded:this._computeWork()>0}get visibleAtCurrentScale(){return Ae(this.layer.effectiveScaleRange,this.view.scale)}async queryFeatures(e,i){const r=await this._ensureQueryEngine().executeQuery(this._ensureQueryJSON(e),i?.signal),s=r.features;r.features=[];const o=H.fromJSON(r),n=this.view.spatialReference;return o.features=s.map(e=>{const{attributes:i,metadata:r}=e;if(!r){const i=t.fromJSON(e);return i.geometry&&(i.geometry.spatialReference=o.spatialReference??n),i.layer=this.layer,i.sourceLayer=this.layer,i.origin=this._graphicOrigin,i}const s=e.geometry?V.fromJSON(e.geometry):void 0;return s&&(s.spatialReference=o.spatialReference??n),this._createGraphic(r.node,r.pointId,s,i)}),o}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference,returnZ:!0};return new T(e)}async queryFeatureCount(e,t){return await this._ensureQueryEngine().executeQueryForCount(this._ensureQueryJSON(e),t?.signal)}async queryExtent(e,t){const{count:i,extent:r}=await this._ensureQueryEngine().executeQueryForExtent(this._ensureQueryJSON(e),t?.signal);return{count:i,extent:Q.fromJSON(r)}}_ensureQueryJSON(e){return null==e?new T({outSpatialReference:this.view.spatialReference}).toJSON():T.from(e).toJSON()}_ensureQueryEngine(){if(this._queryEngine)return this._queryEngine;const{spatialReference:e}=this.view;return this._queryEngine=new G({fieldsIndex:this.layer.fieldsIndex.toJSON(),geometryType:"esriGeometryPoint",spatialReference:e,featureIdInfo:{type:"object-id",fieldName:"objectId"},hasZ:!0,featureStore:new X({sourceSpatialReference:e,viewSpatialReference:e,forAllFeatures:(e,t)=>{this._renderer.forEachNode(i=>{if(t){const e=i.obb,r=new U(e.getCenter(R()),e.radius);k(r,this.view.renderSpatialReference,r,this.view.spatialReference);if(1===t(r))return}let r=this._queryFeaturesCache.get(`${i.id}`);r||(r=this._createQueryPointFeatures(i),this._queryFeaturesCache.put(`${i.id}`,r)),r.features.forEach(e)})},getFeatureExtent:({point:e},t)=>O(e,e,t),featureAdapter:{cloneWithGeometry:(e,t,i)=>new Ee(e.node,e.pointId,t.coords),getAttribute:({node:e,attributePointId:t},i)=>{for(const r of e.attributes)if(r.attributeInfo.name===i)return this._getGraphicAttribute(r.attributeInfo,r.values,t)},getAttributes:({node:e,attributePointId:t})=>this._createGraphicAttributes(e,t),getCentroid:e=>e.getGeometry(),getGeometry:e=>e.getGeometry(),getObjectId:()=>{},getMetadata:e=>e}})}),this._queryEngine}_createQueryPointFeatures(e){const t=e.coordinates,i=new Array;for(let r=0;r<t.length/3;r++){const s=3*r,o=j(t[s+0],t[s+1],t[s+2]);C(o,o,e.origin),F(o,this.view.renderSpatialReference,o,this.view.spatialReference);const n=new Ee(e,r,o);i.push(n)}return new Oe(i)}async _initNodePages(){const e=this.layer.store.index,t=e.nodesPerPage||e.nodePerIndexBlock;this._index=new se(this.layer.spatialReference,this.view.renderCoordsHelper.spatialReference,t),this._cancelIndexLoading(),this._traverseVisible=this._index.createVisibilityTraverse(),this._loadingInitNodePage=!0,this._layerIsVisible=!0,this.notifyChange("suspended"),this._updateLoading(),this._pageMultiplier=null!=e.nodesPerPage?1:e.nodePerIndexBlock;const i=await this.layer.rootPagePromise;this._loadingInitNodePage=!1,i?(this._index.addPage(0,this._processJSONNodes(i,0),this._elevationOffset),this._setUpdateViewNeeded()):n.getLogger(this).error("Point cloud layer root page not loaded")}_loadNodePage(e,t){const i=`${this.baseUrl}/nodepages/${e*this._pageMultiplier}`;return this._requestNodePage(i,t).then(t=>this._processJSONNodes(t,e))}_processJSONNodes(e,t){const i=t*this._index.pageSize;return e.nodes.map((e,t)=>({resourceId:e.resourceId??i+t,obb:ve.fromJSON(e.obb),obbInRenderSR:new ve,firstChild:e.firstChild,childCount:e.childCount,vertexCount:e.vertexCount??e.pointCount,lodThreshold:e.lodThreshold??e.effectiveArea}))}_updateWorkQueues(){if(!this._updateViewNeeded)return!1;const e=this.view.quality;let t=this.inverseDensity/this._lodFactor*e;const i=this.maximumPointCount*this._lodFactor*e;let r=this._computeNodesForMinimumDensity(t),s=this._computePointCount(r),o=Math.sqrt(s/(.75*i));for(;s>i;)t*=o,r=this._computeNodesForMinimumDensity(t),s=this._computePointCount(r),o=Math.sqrt(2);return this._displayNodes(r),this._updateViewNeeded=!1,this._updateLoading(),!0}_computePointCount(e){let t=0;for(let i=0;i<e.length;i++){const r=this._index.getNode(e[i]);r&&(t+=r.vertexCount)}return t}_isRootNodeVisible(){let e=!1;return this._traverseVisible({frustum:this.view.state.contentCamera.frustum,clippingBox:this._clippingBox},{predicate:(t,i,r)=>(e=r,!1),pageMiss:()=>{}}),e}_computeNodesForMinimumDensity(e){const t=this.view.state.contentCamera,i=t.frustum,r=this._clippingBox,s=t.viewForward,o=S(s,t.eye),n=D(s,-o,Ve),a=t.perScreenPixelRatio/2,d=e*e,l=this._nodeIdArray;l.length=0;const u=e=>l.push(e);return this._traverseVisible({frustum:i,clippingBox:r},{predicate:(e,t,i)=>{if(!i)return!1;if(0===t.childCount)return u(e),!1;const r=this._index.getRenderObb(e);return!(this._computeAveragePixelArea(r,t.lodThreshold,t.vertexCount,n,a)<=d)||(u(e),!1)},pageMiss:(e,t)=>{u(e),this._indexQueue.includes(t)||this._indexQueue.push(t)}}),l}_computeAveragePixelArea(e,t,i,r,s){const o=1e-7,n=Math.max(o,e.signedDistanceRangePlane(r).min);return t/(n*n)/(4*s*s)/i}_loadNode(e,t){try{return this._loadNodeAsync(e,t)}catch(i){throw _(i)||n.getLogger(this).error(i),i}}async _loadAdditionalUserAttributes(e,t,i){const s=this.layer.outFields;if(!s)return[];const o=q(this.layer.fieldsIndex,s),n=new Set(e.map(e=>null!=e?e.name:null)),a=this.layer.attributeStorageInfo,d=[];for(const r of o){if(n.has(r))continue;const e=_e(a,r);e&&d.push(t(e))}const l=await m(d);return g(i),l.filter(r)}async _loadNodeAsync(e,t){const i=this._index.getNode(e),r=he(this.layer),s=pe(this.layer),o=i.resourceId,n=async e=>{if(!e)return null;if(e.useElevation)return{attributeInfo:e,buffer:null};const i=await this._loadAttribute(o,e,t);return null!=i?{attributeInfo:e,buffer:i}:null};return this._idleQueue.push(async()=>{const i=this._loadGeometry(o,t),{primaryAttribute:a,modulationAttribute:d}=r,l=n(a),u=n(d),h=s.map(e=>e.attributeInfo),p=h.map(e=>n(e)),c=this._loadAdditionalUserAttributes([a,d,...h],n,t),[_,m,f,y,b]=await Promise.all([i,l,u,Promise.all(p),c]);g(t);const w={geometryBuffer:_,primaryAttributeData:m,modulationAttributeData:f,filterAttributesData:y,userAttributesData:b,schema:this.layer.store.defaultGeometrySchema,rendererInfo:r,filterInfo:s,obbData:this._index.getRenderObb(e).data,elevationOffset:this._elevationOffset,inSR:this.layer.spatialReference.toJSON(),outSR:this.view.renderCoordsHelper.spatialReference.toJSON()};return this._worker.invoke(w,t)},t)}async _loadGeometry(e,t){return this._requestData(`${this.baseUrl}/nodes/${e}/geometries/0`,t)}async _loadAttribute(e,t,i){if(!t?.storageInfo)return null;const r=t.storageInfo.key;return this._requestData(`${this.baseUrl}/nodes/${e}/attributes/${r}`,i)}async _requestNodePage(e,t){const r={useQueue:!1,query:{f:"json",...this.layer.customParameters,token:this.layer.apiKey},responseType:"json",signal:t};return(await i(e,r)).data}async _requestData(e,t){const r={useQueue:!1,query:{...this.layer.customParameters,token:this.layer.apiKey},responseType:"array-buffer",signal:t};return(await i(e,r)).data}_removeFromRenderer(e){if(this._renderedNodes.has(e)){const t=this._renderer.removeNode(e);this._renderedNodes.delete(e),this._memCache.put(`${t.id}`,t)}}_addToRenderer(e){this._renderedNodes.has(e.id)||(this._renderedNodes.add(e.id),this._renderer.addNode(e))}_setupRendererData(e,t){const i=this._index.getNode(e),r=Math.sqrt(i.lodThreshold/i.vertexCount),s=this._index.getRenderObb(e);if(ae(t))return t.splatSize=r,t.obb=s,I(t.origin,t.obb.getCenter(R())),t;const o=ve.fromData(t.obbData),{halfSizeX:a,halfSizeY:d,halfSizeZ:l}=o,{halfSizeX:u,halfSizeY:h,halfSizeZ:p}=s,c=.01*Math.max(u,h,p);if(a>u+c||d>h+c||l>p+c){if(this._maxLoggedBoxWarnings>0){const t=e=>`[${e.halfSizeX}, ${e.halfSizeY}, ${e.halfSizeZ}]`;n.getLogger(this).warn(`Node ${e} reported bounding box too small. got ${t(s)} but points cover ${t(o)}`),0===--this._maxLoggedBoxWarnings&&n.getLogger(this).warn(" Too many bounding box errors, stopping reporting for this layer.")}this._index.setRenderObb(e,o)}return new de(e,r,A(s.getCenter(R())),s,0===i.childCount,t.points,t.rgb,t.attributes,t.pointIdFilterMap)}get usedMemory(){let e=0;return this._renderer.forEachNode(t=>{e+=Le,e+=l(t.coordinates);for(const i of t.attributes){const t=i.values;N(t.buffer)&&(e+=l(t))}}),e}get unloadedMemory(){const e=this._renderedNodes.size;if(e<4)return 0;const t=[...this._renderedNodes].reduce((e,t)=>e+this._index.getNode(t).vertexCount);let i=this._loadingNodes.size;for(let r=0;r<this._workQueue.length;r++)i+=this._workQueue[r].load.length,i-=this._workQueue[r].remove.length;if(i<0)return 0;return i*t/e*((this.usedMemory-e*Le)/t)+i*Le}get performanceInfo(){return new J(this.usedMemory,this._renderedNodes.size,[...this._renderedNodes].reduce((e,t)=>e+this._index.getNode(t).vertexCount,0),this.maximumPointCount,new Z(this._loadingNodes.size,this._indexQueue.length,this._workQueue.length,this._idleQueue.length))}get test(){}};e([v()],ke.prototype,"layer",void 0),e([v()],ke.prototype,"baseUrl",null),e([v()],ke.prototype,"pointScale",null),e([v()],ke.prototype,"useRealWorldSymbolSizes",null),e([v()],ke.prototype,"pointSize",null),e([v()],ke.prototype,"inverseDensity",null),e([v()],ke.prototype,"maximumPointCount",void 0),e([v({readOnly:!0})],ke.prototype,"availableFields",null),e([v({readOnly:!0})],ke.prototype,"_clippingBox",null),e([v({readOnly:!0})],ke.prototype,"_elevationOffset",null),e([v({type:Boolean})],ke.prototype,"slicePlaneEnabled",void 0),e([v()],ke.prototype,"_graphicOrigin",null),e([v()],ke.prototype,"updating",void 0),e([v(xe)],ke.prototype,"updatingProgress",void 0),e([v({readOnly:!0})],ke.prototype,"updatingProgressValue",null),e([v({readOnly:!0})],ke.prototype,"visibleAtCurrentScale",null),ke=e([x("esri.views.3d.layers.PointCloudLayerView3D")],ke);const Fe=ke;class Ee{constructor(e,t,i){this.node=e,this.pointId=t,this.point=i}getGeometry(){return new W([],Array.from(this.point),!0,!1)}get attributePointId(){const{node:e,pointId:t}=this;return null!=e.pointIdFilterMap?e.pointIdFilterMap[t]:t}get usedMemory(){return u+u+h+p(this.point,h)}}class Oe{constructor(e){this.features=e}get usedMemory(){return this.features.reduce((e,t)=>e+t.usedMemory,u+c)}}const Le=160;function De(e){return t=>e.immediate.schedule(t)}export{Fe as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{isSome as t}from"../../../core/arrayUtils.js";import{isArrayBuffer as r}from"../../../core/typedArrayUtil.js";import{conjugate as e}from"../../../core/libs/gl-matrix-2/math/quat.js";import{create as o}from"../../../core/libs/gl-matrix-2/factories/quatf64.js";import{transformQuat as a}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as i,create as f}from"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import n from"../../../geometry/SpatialReference.js";import{projectBuffer as s}from"../../../geometry/projection/projectBuffer.js";import{readGeometry as u,getAttributeValues as l,evaluateRenderer as m,filterInPlace as b}from"./i3s/PointCloudWorkerUtil.js";import{Obb as p}from"../support/orientedBoundingBox.js";class c{transform(t){const e=this._transform(t),o=[e.points.buffer,e.rgb.buffer];null!=e.pointIdFilterMap&&o.push(e.pointIdFilterMap.buffer);for(const a of e.attributes)"buffer"in a.values&&r(a.values.buffer)&&a.values.buffer!==e.rgb.buffer&&o.push(a.values.buffer);return Promise.resolve({result:e,transferList:o})}_transform(r){const e=u(r.schema,r.geometryBuffer);let o=e.length/3,a=null;const i=new Array,f=l(r.primaryAttributeData,e,o);null!=r.primaryAttributeData&&f&&i.push({attributeInfo:r.primaryAttributeData.attributeInfo,values:f});const s=l(r.modulationAttributeData,e,o);null!=r.modulationAttributeData&&s&&i.push({attributeInfo:r.modulationAttributeData.attributeInfo,values:s});let c=m(r.rendererInfo,f,s,o);if(r.filterInfo&&r.filterInfo.length>0&&null!=r.filterAttributesData){const f=r.filterAttributesData.filter(t).map(t=>{const r=l(t,e,o),a={attributeInfo:t.attributeInfo,values:r};return i.push(a),a});a=new Uint32Array(o),o=b(e,c,a,r.filterInfo,f)}for(const t of r.userAttributesData){const r=l(t,e,o);i.push({attributeInfo:t.attributeInfo,values:r})}3*o<c.length&&(c=c.slice(0,3*o)),I(e,o,r.elevationOffset);const g=h(e,o,p.fromData(r.obbData),n.fromJSON(r.inSR),n.fromJSON(r.outSR));return{obbData:r.obbData,points:g,rgb:c,attributes:i,pointIdFilterMap:a}}}function h(t,r,o,n,u){if(!s(t,n,0,t,u,0,r))throw new Error("Can't reproject");const l=i(o.center),m=f(),b=f(),p=i(o.halfSize);e(g,o.quaternion);const c=new Float32Array(3*r);for(let e=0;e<r;e++){let r=3*e;m[0]=t[r]-l[0],m[1]=t[r+1]-l[1],m[2]=t[r+2]-l[2],a(b,m,g),p[0]=Math.max(p[0],Math.abs(b[0])),p[1]=Math.max(p[1],Math.abs(b[1])),p[2]=Math.max(p[2],Math.abs(b[2])),c[r++]=m[0],c[r++]=m[1],c[r]=m[2]}return o.halfSize=p,c}function I(t,r,e){if(0!==e)for(let o=0;o<r;o++)t[3*o+2]+=e}const g=o();function j(){return new c}export{j as default};
2
+ import{isSome as t}from"../../../core/arrayUtils.js";import{isArrayBuffer as r}from"../../../core/typedArrayUtil.js";import{create as e}from"../../../core/libs/gl-matrix-2/factories/quatf64.js";import{transformQuat as o}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{clone as a,fromValues as i,create as f}from"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import{create as n}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import s from"../../../geometry/SpatialReference.js";import{projectBuffer as u}from"../../../geometry/projection/projectBuffer.js";import{readGeometry as l,getAttributeValues as m,evaluateRenderer as b,filterInPlace as c}from"./i3s/PointCloudWorkerUtil.js";import{Obb as p}from"../support/orientedBoundingBox.js";class h{transform(t){const e=this._transform(t),o=[e.points.buffer,e.rgb.buffer];null!=e.pointIdFilterMap&&o.push(e.pointIdFilterMap.buffer);for(const a of e.attributes)"buffer"in a.values&&r(a.values.buffer)&&a.values.buffer!==e.rgb.buffer&&o.push(a.values.buffer);return Promise.resolve({result:e,transferList:o})}_transform(r){const e=l(r.schema,r.geometryBuffer);let o=e.length/3,a=null;const i=new Array,f=m(r.primaryAttributeData,e,o);null!=r.primaryAttributeData&&f&&i.push({attributeInfo:r.primaryAttributeData.attributeInfo,values:f});const n=m(r.modulationAttributeData,e,o);null!=r.modulationAttributeData&&n&&i.push({attributeInfo:r.modulationAttributeData.attributeInfo,values:n});let u=b(r.rendererInfo,f,n,o);if(r.filterInfo&&r.filterInfo.length>0&&null!=r.filterAttributesData){const f=r.filterAttributesData.filter(t).map(t=>{const r=m(t,e,o),a={attributeInfo:t.attributeInfo,values:r};return i.push(a),a});a=new Uint32Array(o),o=c(e,u,a,r.filterInfo,f)}for(const t of r.userAttributesData){const r=m(t,e,o);i.push({attributeInfo:t.attributeInfo,values:r})}3*o<u.length&&(u=u.slice(0,3*o)),I(e,o,r.elevationOffset);const h=g(e,o,p.fromData(r.obbData),s.fromJSON(r.inSR),s.fromJSON(r.outSR));return{obbData:r.obbData,points:h,rgb:u,attributes:i,pointIdFilterMap:a}}}function g(t,r,e,s,l){if(!u(t,s,0,t,l,0,r))throw new Error("Can't reproject");const m=a(e.getCenter(n())),b=f(),c=f(),p=i(e.halfSizeX,e.halfSizeY,e.halfSizeZ);e.getQuaternionConjugate(j);const h=new Float32Array(3*r);for(let a=0;a<r;a++){let r=3*a;b[0]=t[r]-m[0],b[1]=t[r+1]-m[1],b[2]=t[r+2]-m[2],o(c,b,j),p[0]=Math.max(p[0],Math.abs(c[0])),p[1]=Math.max(p[1],Math.abs(c[1])),p[2]=Math.max(p[2],Math.abs(c[2])),h[r++]=b[0],h[r++]=b[1],h[r]=b[2]}return e.setHalfSize(p),h}function I(t,r,e){if(0!==e)for(let o=0;o<r;o++)t[3*o+2]+=e}const j=e();function v(){return new h}export{v as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"../../../core/has.js";import t from"../../../core/Logger.js";import{destroyMaybe as r}from"../../../core/maybe.js";import{estimateNumberArrayMemory as i}from"../../../core/memoryEstimations.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{initial as o,watch as a,sync as n}from"../../../core/reactiveUtils.js";import{generateUID as l}from"../../../core/uid.js";import{property as d,subclass as u}from"../../../core/accessorSupport/decorators.js";import{set as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as p,create as c}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projectBuffer as g}from"../../../geometry/projection/projectBuffer.js";import{projectVectorToVector as m}from"../../../geometry/projection/projectVectorToVector.js";import{extentContainsCoords3D as y,extentContainsCoords2D as f}from"../../../geometry/support/contains.js";import{newDoubleArray as _,doubleArrayFrom as b}from"../../../geometry/support/DoubleArray.js";import{getGeometryZScaler as v}from"../../../geometry/support/zscale.js";import{fallbackObjectIDAttribute as I}from"../../../layers/LayerConstants.js";import{estimateSize as x}from"../../../layers/graphics/dehydratedFeatures.js";import{ImmutableDehydratedPoint as E}from"../../../layers/graphics/dehydratedPoint.js";import{hydrateGraphic as w}from"../../../layers/graphics/hydratedFeatures.js";import O from"../../../layers/graphics/controllers/I3SOnDemandController.js";import j from"../../../layers/support/FeatureFilter.js";import N from"../../../rest/support/Query.js";import{isBasemapLayerView as C}from"../../../support/basemapUtils.js";import{isGraphic as D}from"../../../support/graphicInstanceUtils.js";import{I3SPointsWorkerHandle as F}from"./I3SPointsWorkerHandle.js";import{LayerView3D as S}from"./LayerView3D.js";import{Graphics3DFeatureProcessor as G}from"./graphics/Graphics3DFeatureProcessor.js";import{QueryEngine as A}from"./graphics/QueryEngine.js";import{QueryEngineContext as V}from"./graphics/QueryEngineContext.js";import{createInteractiveEditSession as P,normalizeEditResultsEvent as L,processAttributeEdits as R}from"./i3s/featureEditing.js";import{getCachedAttributeValue as H}from"./i3s/I3SBinaryReader.js";import{I3SGraphicsMap as M}from"./i3s/I3SGraphicsMap.js";import{I3SOverrides as U}from"./i3s/I3SOverrides.js";import{checkRecyclable as Q,checkSpatialReferences as q,containsDraco as T,whenGraphicAttributes as B}from"./i3s/I3SUtil.js";import{attributeLookup as k}from"./support/attributeUtils.js";import{DefinitionExpressionSceneLayerView as z}from"./support/DefinitionExpressionSceneLayerView.js";import{defineFieldProperties as W}from"./support/fieldProperties.js";import{normalizeHighlightTarget as K,emptyHighlightHandle as Z,isObjectId as $}from"./support/highlightUtils.js";import{LayerViewPerformanceInfo as Y}from"./support/LayerViewPerformanceInfo.js";import{PopupSceneLayerView as J}from"./support/PopupSceneLayerView.js";import{SceneLayerViewRequiredFields as X}from"./support/SceneLayerViewRequiredFields.js";import{TemporalSceneLayerView as ee}from"./support/TemporalSceneLayerView.js";import{debugFlags as te}from"../support/debugFlags.js";import{compute as re}from"../support/orientedBoundingBox.js";import{updatingProgress as ie}from"../support/updatingProperties.js";import{Vertices as se}from"../webgl-engine/lib/Attribute.js";import oe from"../../layers/SceneLayerView.js";import{hasPopupTemplate as ae}from"../../layers/support/popupUtils.js";import{getHighlightName as ne}from"../../support/highlightOptionsUtils.js";import{hasLayerBasedScaleVisibility as le,isInEffectiveScaleRange as de}from"../../support/layerViewUtils.js";import{TaskPriority as ue}from"../../support/Scheduler.js";const he=W();class pe{constructor(e,t,r,i){this.graphics=e,this.featureIds=t,this.attributeInfo=r,this.node=i}get usedMemory(){return this.graphics.reduce((e,t)=>x(t)+e,i(this.featureIds)+1024)}}let ce=class extends(ee(z(J(S(oe))))){constructor(){super(...arguments),this.type="scene-layer-graphics-3d",this._queryEngine=null,this._memCache=null,this._interactiveEditingSessions=new Map,this._pendingEditsQueue=Promise.resolve(),this.loadedGraphics=new M((e,t,r)=>fe(e,t,r),e=>this.processor.graphicsCore.recreateGraphics(e),this.logError),this.holeFilling="always",this.progressiveLoadFactor=1,this.supportsHeightUnitConversion=!0,this._coordinatesOutsideExtentErrors=0,this._maxCoordinatesOutsideExtentErrors=20}tryRecycleWith(e,t){return e.url===this.layer.url&&this._i3sOverrides.isEmpty?e.load(t).then(()=>{s(t),Q(this.layer,e,this._i3sOverrides),this.layer=e,this._i3sOverrides.destroy();const i=this.view.resourceController?.memoryController;this._i3sOverrides=new U({view:this.view,layer:e,memoryController:i}),r(this._queryEngine),this._setupQueryEngine(),this.processor.resetObjectStates()}):null}initialize(){this.addResolvingPromise(this.layer.indexInfo);const e=this.view.resourceController?.memoryController;this._i3sOverrides=new U({view:this.view,layer:this.layer,memoryController:e}),q(this.layer,this.view.spatialReference,this.view.viewingMode),this._fieldsHelper=new X({layerView:this}),this._updatingHandles.add(()=>this.layer.rangeInfos,e=>this._rangeInfosChanged(e),o),this._updatingHandles.add(()=>this.layer.renderer,(e,t)=>this._rendererChange(e,t)),this._updatingHandles.add(()=>[this.parsedDefinitionExpression,this.layer.excludeObjectIds],()=>this._filterChange()),this._set("processor",new G({owner:this,preferredUpdatePolicy:0,scaleVisibilityEnabled:!le(),filterVisibilityEnabled:!0,timeExtentEnabled:!1,frustumVisibilityEnabled:!1,elevationAlignmentEnabled:!0,elevationFeatureExpressionEnabled:!1,setUidToIdOnAdd:!1,dataExtent:this.layer.fullExtent,updateClippingExtent:e=>this._updateClippingExtent(e)})),this.processor.elevationAlignment?.events.on("invalidate-elevation",({extent:e,spatialReference:t})=>this._controller.updateElevationChanged(e,t)),this.supportsHeightUnitConversion&&(this._verticalScale=v("point",this.layer.spatialReference,this.view.spatialReference)),this.addResolvingPromise(this.processor.when()),this._memCache=this.view.resourceController.memoryController.newCache(`psl-${this.uid}`),this._controller=new O({layerView:this}),T(this.layer.geometryDefinitions)&&(this._workerHandle=new F(e=>this.view.resourceController.immediate.schedule(e))),this.addHandles(this.layer.on("apply-edits",e=>this._updatingHandles.addPromise(e.result))),this.addHandles([this.layer.on("edits",e=>{const t=this._pendingEditsQueue.then(()=>this._handleEdits(e)).then();this._pendingEditsQueue=t,this._updatingHandles.consumePromise(t)}),a(()=>te.I3S_TREE_SHOW_TILES,e=>{if(e&&!this._treeDebugger){const e=this._controller.crsIndex;import("./support/I3STreeDebugger.js").then(({I3STreeDebugger:t})=>{!this._treeDebugger&&te.I3S_TREE_SHOW_TILES&&(this._treeDebugger=new t({lv:this,view:this.view,nodeSR:e}))})}else e||!this._treeDebugger||te.I3S_TREE_SHOW_TILES||(this._treeDebugger.destroy(),this._treeDebugger=null)},o)]),this.when(()=>{this._setupQueryEngine(),this._updatingHandles.add(()=>this.availableFields,()=>this._queryEngine?.clear(),n),this._updatingHandles.add(()=>this.maximumNumberOfFeatures,e=>this._controller.featureTarget=e,o),this._updatingHandles.add(()=>this.suspended,e=>{e&&this._removeAllNodeData()})})}destroy(){this._treeDebugger=r(this._treeDebugger),this._i3sOverrides=r(this._i3sOverrides),this._set("processor",r(this.processor)),this._controller=r(this._controller),this._queryEngine=r(this._queryEngine),this._workerHandle=r(this._workerHandle),this._memCache=r(this._memCache),this.loadedGraphics.clear(),this._fieldsHelper=r(this._fieldsHelper)}get layerViewUid(){return this.uid}get updatingProgressValue(){return this._controller?.updatingProgress??1}get visibleAtCurrentScale(){return le()?de(this.layer.effectiveScaleRange,this.view.scale):!this.processor?.scaleVisibilitySuspended}get requiredFields(){return this._fieldsHelper?.requiredFields??[]}get maximumNumberOfFeatures(){const e=this.processor?.graphicsCore?.displayFeatureLimit;return e?.maximumNumberOfFeatures??0}set maximumNumberOfFeatures(e){null!=e?(this._override("maximumNumberOfFeatures",e),this._controller.fixedFeatureTarget=!0):(this._clearOverride("maximumNumberOfFeatures"),this._controller.fixedFeatureTarget=!1)}get maximumNumberOfFeaturesExceeded(){return!this.suspended&&(!!this._controller?.useMaximumNumberOfFeatures&&!this._controller.leavesReached)}get _excludeObjectIds(){return new Set(this.layer.excludeObjectIds)}get lodFactor(){return"Labels"===this.layer.semantic?1:this.view.qualitySettings.sceneService.pointLoDFactor}get hasM(){return!1}get hasZ(){return!0}get contentVisible(){return!this.suspended&&!!this._controller?.rootNodeVisible}get legendEnabled(){return this.contentVisible&&!0===this.layer?.legendEnabled}get _graphicOrigin(){return this.layer.graphicOrigin}async whenGraphicAttributes(e,t){return B(this.layer,e,this._getObjectIdField(),t,()=>[...this.loadedGraphics.nodes()])}getHit(e){if(!this.loadedGraphics)return null;const t=w(this.loadedGraphics.find(t=>t.uid===e),this.layer,this._graphicOrigin),r=this._getObjectIdField();return null==t?.attributes?.[r]?null:{type:"graphic",graphic:t,layer:t.layer}}whenGraphicBounds(e,t){return this.processor.whenGraphicBounds(e,t)}computeAttachmentOrigin(e,t){return this.processor.computeAttachmentOrigin(e,t)}isUpdating(){return!!(this._controller?.updating||this.processor?.updating||this._fieldsHelper?.updating||this.layerFilterUpdating)}highlight(e,t){const r=ne(t),i=this.layer.objectIdField,s=K(e);if(0===s.length)return Z;if(D(s[0])){const e=s;if(null!=k(this.layer.fieldsIndex,e[0].attributes,i)){const t=e.map(e=>k(this.layer.fieldsIndex,e.attributes,i));return this.processor.highlightByObjectIds(t,i,r)}return this.processor.highlightByGraphics(e,r)}return $(s[0])?this.processor.highlightByObjectIds(s,i,r):Z}get updatePolicy(){return this.processor.graphicsCore.effectiveUpdatePolicy}createInteractiveEditSession(e){return P(this._attributeEditingContext,e)}async _decompressBinaryPointData(e,t){const r={geometryBuffer:e.geometryBuffer};null==this._workerHandle&&(this._workerHandle=new F(e=>this.view.resourceController.immediate.schedule(e)));const i=await this._workerHandle.invoke(r,t);if(null==i)throw new Error("Failed to decompress Draco point data");return{positionData:i.positions,featureIds:i.featureIds}}async addNode(e,r,i){if(!ye(r)&&!me(r))throw new Error;if(this.loadedGraphics.hasNode(e.index))return void t.getLogger(this).error("I3S node "+e.id+" already added");const s=null!=this.layer.fullExtent?be(this.layer.fullExtent.clone(),.5):null,{featureIds:o,pointPositions:a}=ye(r)?await this._extractBinaryPointPositions(e,r,i):this._extractLegacyPointPositions(r),n=new Array;this._validatePositions(e,o,a,s,n);const l=this._controller.crsVertex,d=this.view.spatialReference;g(a,l,0,a,d,0,o.length);const u=ye(r)?e.level:0,h=this._createGraphics(o,a,e.index,u),p=new pe(h,o,r.attributeDataInfo,e);if(await this._i3sOverrides.applyAttributeOverrides(p.featureIds,r.attributeDataInfo,i),e.numFeatures=p.graphics.length,this._updateNodeMemory(e),_e(p),n.length>0&&(this._computeObb(e,n,l),this._controller.updateVisibility(e.index)),!this._controller.isGeometryVisible(e))return void this._cacheNodeData(p);if(null!=this._verticalScale)for(const t of p.graphics)this._verticalScale(t.geometry);const c=this.view.stage.renderView.olidRenderHelper;if(c){const e=C(this.view,this.uid);for(let t=0;t<p.featureIds.length;t++){const r=p.featureIds[t];c.setUidToObjectAndLayerId(r,p.graphics[t].uid,this.layer.id,this.uid,this.layer.popupEnabled&&!e&&ae(this.layer,this.view.popup?.defaultPopupTemplateEnabled),p.node.resources.attributes,t)}}this.loadedGraphics.addNode(e.index,p),this._controller.updateLoadStatus(e.index,!0),this._filterNode(p),this._treeDebugger&&this._treeDebugger.update()}_computeObb(e,t,r){const i=this._controller.crsIndex,s=i.isGeographic?this.view.renderSpatialReference:i;g(t,r,0,t,s,0),e.serviceObbInIndexSR=re(new se(t,3)),i.isGeographic&&(m(e.serviceObbInIndexSR.center,s,Ie,i),e.serviceObbInIndexSR.center=Ie)}isNodeLoaded(e){return this.loadedGraphics.hasNode(e)}isNodeReloading(){return!1}updateNodeState(){}getNodeComponentHandle(){}async _extractBinaryPointPositions(e,t,r){const i=await this._decompressBinaryPointData(t,r),s=i.positionData,o=3,a=s.length/o,n=_(3*a),l=null!=e.serviceObbInIndexSR?e.serviceObbInIndexSR.center:p,d=Math.abs(l[2])*2**-20;for(let u=0;u<a;u++){const e=u*o;n[e]=s[e]+l[0],n[e+1]=s[e+1]+l[1],n[e+2]=s[e+2]+l[2],Math.abs(n[e+2])<d&&(n[e+2]=0)}return{featureIds:i.featureIds?b(i.featureIds):[],pointPositions:n}}_extractLegacyPointPositions(e){const t=e.pointData.length,r=_(3*t),i=new Array;for(let s=0;s<t;s++){const t=e.pointData[s],o=t.featureDataPosition,a=o.length,n=t.geometries?.[0]??ve[a],l=t.featureIds[0];if("Embedded"!==n.type||"points"!==n.params.type||a<2||a>3)continue;const d=n.params.vertexAttributes?.position??[0,0,0],u=3*i.length;r[u]=o[0]+d[0],r[u+1]=o[1]+d[1],r[u+2]=3===a?o[2]+d[2]:NaN,i.push(l)}return{featureIds:i,pointPositions:r}}_validatePositions(e,r,i,s,o){if(null==s&&e.serviceObbInIndexSR)return;const a=r.length,n=3;for(let l=0;l<a;l++){const r=l*n;h(Ie,i[r],i[r+1],i[r+2]);const a=!Number.isNaN(i[2]);null==s||(a?y(s,Ie):f(s,Ie))||(this._coordinatesOutsideExtentErrors<this._maxCoordinatesOutsideExtentErrors&&t.getLogger(this).error("Service Error: Coordinates outside of layer extent"),this._coordinatesOutsideExtentErrors+1===this._maxCoordinatesOutsideExtentErrors&&t.getLogger(this).error("Maximum number of errors reached. Further errors are ignored."),this._coordinatesOutsideExtentErrors++),e.serviceObbInIndexSR||o.push(Ie[0],Ie[1],Ie[2])}}_createGraphics(e,t,r,i){const s=e.length,o=3,a=this._getObjectIdField(),n=this.processor.graphicsCore,d=new Array,u=this.view.spatialReference;for(let h=0;h<s;h++){const s=e[h],p={};null!=s&&(p[a]=s);const c=s??l(),g=h*o,m=isNaN(t[g+2])?void 0:t[g+2],y=new E(u,t[g],t[g+1],m),f=this.loadedGraphics.get(c);if(null!=f)(null==f.level||f.level<i)&&(xe.property="geometry",xe.graphic=f,xe.oldValue=f.geometry,xe.newValue=y,f.geometry=y,f.level=i,n.graphicUpdateHandler(xe),Ee()),d.push(f);else{const e=l();d.push({objectId:c,uid:e,geometry:y,attributes:p,visible:!0,nodeIndex:r,level:i})}}return d}_updateNodeMemory(e){e.memory=4096+(e.numFeatures??0)*this.processor.graphicsCore.usedMemoryPerGraphic}_cacheNodeData(e){this._memCache.put(this._getMemCacheKey(e.node),e)}_getMemCacheKey(e){return`${e.index}`}_removeAllNodeData(){this.loadedGraphics.forEachNode((e,t)=>{if(e){const t=e.node;this._updateNodeMemory(t),this._cacheNodeData(e)}this._controller.updateLoadStatus(t,!1)}),this._treeDebugger&&this._treeDebugger.update(),this.loadedGraphics.clear()}removeNode(e){const t=this._removeNodeStageData(e);t&&(this._updateNodeMemory(t.node),this._cacheNodeData(t))}_removeNodeStageData(e){const t=this.loadedGraphics.getNode(e);return null==t?null:(this._controller.updateLoadStatus(e,!1),this.loadedGraphics.removeNode(e),this._treeDebugger&&this._treeDebugger.update(),t)}async loadCachedNodeData(e){return this._memCache?.pop(this._getMemCacheKey(e))}async addCachedNodeData(e,r,i,s){this.loadedGraphics.hasNode(e.index)?t.getLogger(this).error("I3S node "+e.id+" already added"):(await this._i3sOverrides.applyAttributeOverrides(r.featureIds,i,s),r.attributeInfo=i,this.loadedGraphics.addNode(e.index,r),this._controller.updateLoadStatus(e.index,!0),this._updateNodeMemory(e),_e(r),this._filterNode(r),this._treeDebugger&&this._treeDebugger.update())}getLoadedNodeIds(){const e=[];return this.loadedGraphics.forEachNode(t=>e.push(t.node.id)),e.sort()}getVisibleNodes(){const e=new Array;return this.loadedGraphics.forEachNode(t=>e.push(t.node)),e}getLoadedNodeIndices(e){this.loadedGraphics.forEachNode((t,r)=>e.push(r))}getLoadedAttributes(e){const t=this.loadedGraphics.getNode(e);if(null!=t?.attributeInfo)return t.attributeInfo.loadedAttributes}getAttributeData(e){const t=this.loadedGraphics.getNode(e);if(null!=t?.attributeInfo)return t.attributeInfo.attributeData}_setAttributeData(e,t){const r=this.loadedGraphics.getNode(e);null!=r?.attributeInfo&&(r.attributeInfo.attributeData=t,this._attributeValuesChanged(r))}async updateAttributes(e,t,r){const i=this.loadedGraphics.getNode(e);null!=i&&(await this._i3sOverrides.applyAttributeOverrides(i.featureIds,t,r),i.attributeInfo=t,this._attributeValuesChanged(i))}_attributeValuesChanged(e){_e(e),this._filterNode(e);const{processor:t}=this,{graphicsCore:r}=t;if(r.labelsEnabled){const t=e.node.index,i=new Array;e.graphics.forEach(e=>e.nodeIndex===t&&i.push(e.uid)),r.updateLabelingInfo(i)}t.refreshFilter()}_updateClippingExtent(e){return this._controller&&this._controller.updateClippingArea(e),!1}_getObjectIdField(){return this.layer.objectIdField||I}_getGlobalIdField(){return this.layer.globalIdField}async _rendererChange(e,t){const{layer:{fieldsIndex:r}}=this,i=new Set;let s,o;e?(await e.collectRequiredFields(i,r),s=Array.from(i).sort()):s=[],i.clear(),t?(await t.collectRequiredFields(i,r),o=Array.from(i).sort()):o=[],s.length===o.length&&s.every((e,t)=>s[t]===o[t])||this._reloadAllNodes()}_rangeInfosChanged(e){null!=e&&e.length>0&&t.getLogger(this).warn("Unsupported property: rangeInfos are currently only serialized to and from web scenes but do not affect rendering.")}_filterChange(){this.loadedGraphics.forEachNode(e=>this._filterNode(e))}_reloadAllNodes(){this._removeAllNodeData(),this._controller&&this._controller.restartNodeLoading()}_filterNode(e){const t=this.parsedDefinitionExpression,r=this._excludeObjectIds,i=this._getObjectIdField();for(const s of e.graphics){const e=s.visible,o=this._evaluateClause(t,s),a=!r.has(s.attributes[i]);s.visible=o&&a,e!==s.visible&&(xe.graphic=s,xe.property="visible",xe.oldValue=e,xe.newValue=s.visible,this.processor.graphicsCore.graphicUpdateHandler(xe),Ee())}}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference};return this.filter?.createQuery(e)??new N(e)}queryFeatures(e,t){return this._queryEngine.executeQuery(this._ensureQuery(e),t?.signal)}queryObjectIds(e,t){return this._queryEngine.executeQueryForIds(this._ensureQuery(e),t?.signal)}queryFeatureCount(e,t){return this._queryEngine.executeQueryForCount(this._ensureQuery(e),t?.signal)}queryExtent(e,t){return this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t?.signal)}_ensureQuery(e){return this._addDefinitionExpressionToQuery(null==e?this.createQuery():N.from(e))}_setupQueryEngine(){const{layer:e,view:t,hasM:r,hasZ:i}=this,{spatialReference:s,resourceController:o}=t,a=new V(s,e,o,()=>this.processor.featureStore,i,r,()=>this.availableFields);this._queryEngine=new A({context:a,priority:ue.FEATURE_QUERY_ENGINE})}get usedMemory(){return this.processor?.graphicsCore?.usedMemory??0}get unloadedMemory(){return.8*((this._controller?.unloadedMemoryEstimate??0)+(this.processor?.graphicsCore?.unprocessedMemoryEstimate??0))}get ignoresMemoryFactor(){return this._controller&&this._controller.fixedFeatureTarget}async _handleEdits(e){const t=this._attributeEditingContext,r=await L(t,e);R(t,r)}get _attributeEditingContext(){const e=this._getObjectIdField(),t=this._getGlobalIdField();return{sessions:this._interactiveEditingSessions,fieldsIndex:this.layer.fieldsIndex,objectIdField:e,globalIdField:t,forEachNode:e=>this.loadedGraphics.forEachNode(t=>e(t.node,t.featureIds)),attributeStorageInfo:this.layer.attributeStorageInfo??[],i3sOverrides:this._i3sOverrides,getAttributeData:e=>this.getAttributeData(e),setAttributeData:(t,r,i)=>{this._setAttributeData(t,r);const s=this.loadedGraphics.getNode(t);if(null!=i){const t=this.loadedGraphics.get(i.attributes[e]);null!=t&&this.processor.graphicsCore.recreateGraphics([t])}else null!=s&&this.processor.graphicsCore.recreateGraphics(s.graphics)},clearMemCache:()=>{}}}get performanceInfo(){return new Y(this.usedMemory,this.loadedGraphics.length,-1,this.maximumNumberOfFeatures,this.loadedGraphics.nodeCount,this.processor.graphicsCore.performanceInfo)}get test(){}};e([d()],ce.prototype,"processor",void 0),e([d({type:j})],ce.prototype,"filter",void 0),e([d()],ce.prototype,"loadedGraphics",void 0),e([d()],ce.prototype,"layerViewUid",null),e([d()],ce.prototype,"_controller",void 0),e([d()],ce.prototype,"updating",void 0),e([d()],ce.prototype,"suspended",void 0),e([d(ie)],ce.prototype,"updatingProgress",void 0),e([d()],ce.prototype,"updatingProgressValue",null),e([d({readOnly:!0})],ce.prototype,"visibleAtCurrentScale",null),e([d(he.requiredFields)],ce.prototype,"requiredFields",null),e([d(he.availableFields)],ce.prototype,"availableFields",void 0),e([d()],ce.prototype,"_fieldsHelper",void 0),e([d({type:Number})],ce.prototype,"maximumNumberOfFeatures",null),e([d({readOnly:!0})],ce.prototype,"maximumNumberOfFeaturesExceeded",null),e([d()],ce.prototype,"_excludeObjectIds",null),e([d({readOnly:!0})],ce.prototype,"lodFactor",null),e([d({readOnly:!0})],ce.prototype,"hasM",null),e([d({readOnly:!0})],ce.prototype,"hasZ",null),e([d()],ce.prototype,"contentVisible",null),e([d({readOnly:!0})],ce.prototype,"legendEnabled",null),e([d()],ce.prototype,"_graphicOrigin",null),ce=e([u("esri.views.3d.layers.SceneLayerGraphicsView3D")],ce);const ge=ce;function me(e){return"pointData"in e}function ye(e){return"geometryBuffer"in e&&null!==e.geometryBuffer}function fe(e,t,r){const i=t.attributeInfo;if(null==i?.loadedAttributes||null==i.attributeData)return!1;let s=!1;for(const{name:o}of i.loadedAttributes)if(i.attributeData[o]){const t=H(i.attributeData[o],r);t!==e.attributes[o]&&(e.attributes[o]=t,s=!0)}return s}function _e(e){const t=e.attributeInfo;if(null==t?.loadedAttributes||null==t.attributeData)return;const r=e.node.index;for(let i=0;i<e.graphics.length;i++){const s=e.graphics[i];if(s.nodeIndex===r){s.attributes||(s.attributes={});for(const{name:e}of t.loadedAttributes)t.attributeData[e]&&(s.attributes[e]=H(t.attributeData[e],i))}}}function be(e,t){return e.xmin-=t,e.ymin-=t,e.xmax+=t,e.ymax+=t,null!=e.zmin&&null!=e.zmax&&(e.zmin-=t,e.zmax+=t),null!=e.mmin&&null!=e.mmax&&(e.mmin-=t,e.mmax+=t),e}const ve={2:{type:"Embedded",params:{type:"points",vertexAttributes:{position:[0,0]}}},3:{type:"Embedded",params:{type:"points",vertexAttributes:{position:[0,0,0]}}}},Ie=c(),xe={graphic:null,property:null,oldValue:null,newValue:null};function Ee(){xe.graphic=null,xe.property=null,xe.oldValue=null,xe.newValue=null}export{ge as default};
2
+ import{__decorate as e}from"tslib";import"../../../core/has.js";import t from"../../../core/Logger.js";import{destroyMaybe as r}from"../../../core/maybe.js";import{estimateNumberArrayMemory as i}from"../../../core/memoryEstimations.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{initial as o,watch as a,sync as n}from"../../../core/reactiveUtils.js";import{generateUID as l}from"../../../core/uid.js";import{property as d,subclass as u}from"../../../core/accessorSupport/decorators.js";import{set as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as p,create as c}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projectBuffer as g}from"../../../geometry/projection/projectBuffer.js";import{projectVectorToVector as m}from"../../../geometry/projection/projectVectorToVector.js";import{extentContainsCoords3D as y,extentContainsCoords2D as f}from"../../../geometry/support/contains.js";import{newDoubleArray as _,doubleArrayFrom as b}from"../../../geometry/support/DoubleArray.js";import{getGeometryZScaler as v}from"../../../geometry/support/zscale.js";import{fallbackObjectIDAttribute as I}from"../../../layers/LayerConstants.js";import{estimateSize as x}from"../../../layers/graphics/dehydratedFeatures.js";import{ImmutableDehydratedPoint as E}from"../../../layers/graphics/dehydratedPoint.js";import{hydrateGraphic as w}from"../../../layers/graphics/hydratedFeatures.js";import O from"../../../layers/graphics/controllers/I3SOnDemandController.js";import j from"../../../layers/support/FeatureFilter.js";import N from"../../../rest/support/Query.js";import{isBasemapLayerView as C}from"../../../support/basemapUtils.js";import{isGraphic as D}from"../../../support/graphicInstanceUtils.js";import{I3SPointsWorkerHandle as F}from"./I3SPointsWorkerHandle.js";import{LayerView3D as S}from"./LayerView3D.js";import{Graphics3DFeatureProcessor as G}from"./graphics/Graphics3DFeatureProcessor.js";import{QueryEngine as A}from"./graphics/QueryEngine.js";import{QueryEngineContext as V}from"./graphics/QueryEngineContext.js";import{createInteractiveEditSession as P,normalizeEditResultsEvent as L,processAttributeEdits as R}from"./i3s/featureEditing.js";import{getCachedAttributeValue as H}from"./i3s/I3SBinaryReader.js";import{I3SGraphicsMap as M}from"./i3s/I3SGraphicsMap.js";import{I3SOverrides as U}from"./i3s/I3SOverrides.js";import{checkRecyclable as Q,checkSpatialReferences as q,containsDraco as T,whenGraphicAttributes as B}from"./i3s/I3SUtil.js";import{attributeLookup as k}from"./support/attributeUtils.js";import{DefinitionExpressionSceneLayerView as z}from"./support/DefinitionExpressionSceneLayerView.js";import{defineFieldProperties as W}from"./support/fieldProperties.js";import{normalizeHighlightTarget as K,emptyHighlightHandle as Z,isObjectId as $}from"./support/highlightUtils.js";import{LayerViewPerformanceInfo as Y}from"./support/LayerViewPerformanceInfo.js";import{PopupSceneLayerView as J}from"./support/PopupSceneLayerView.js";import{SceneLayerViewRequiredFields as X}from"./support/SceneLayerViewRequiredFields.js";import{TemporalSceneLayerView as ee}from"./support/TemporalSceneLayerView.js";import{debugFlags as te}from"../support/debugFlags.js";import{compute as re}from"../support/orientedBoundingBox.js";import{updatingProgress as ie}from"../support/updatingProperties.js";import{Vertices as se}from"../webgl-engine/lib/Attribute.js";import oe from"../../layers/SceneLayerView.js";import{hasPopupTemplate as ae}from"../../layers/support/popupUtils.js";import{getHighlightName as ne}from"../../support/highlightOptionsUtils.js";import{hasLayerBasedScaleVisibility as le,isInEffectiveScaleRange as de}from"../../support/layerViewUtils.js";import{TaskPriority as ue}from"../../support/Scheduler.js";const he=W();class pe{constructor(e,t,r,i){this.graphics=e,this.featureIds=t,this.attributeInfo=r,this.node=i}get usedMemory(){return this.graphics.reduce((e,t)=>x(t)+e,i(this.featureIds)+1024)}}let ce=class extends(ee(z(J(S(oe))))){constructor(){super(...arguments),this.type="scene-layer-graphics-3d",this._queryEngine=null,this._memCache=null,this._interactiveEditingSessions=new Map,this._pendingEditsQueue=Promise.resolve(),this.loadedGraphics=new M((e,t,r)=>fe(e,t,r),e=>this.processor.graphicsCore.recreateGraphics(e),this.logError),this.holeFilling="always",this.progressiveLoadFactor=1,this.supportsHeightUnitConversion=!0,this._coordinatesOutsideExtentErrors=0,this._maxCoordinatesOutsideExtentErrors=20}tryRecycleWith(e,t){return e.url===this.layer.url&&this._i3sOverrides.isEmpty?e.load(t).then(()=>{s(t),Q(this.layer,e,this._i3sOverrides),this.layer=e,this._i3sOverrides.destroy();const i=this.view.resourceController?.memoryController;this._i3sOverrides=new U({view:this.view,layer:e,memoryController:i}),r(this._queryEngine),this._setupQueryEngine(),this.processor.resetObjectStates()}):null}initialize(){this.addResolvingPromise(this.layer.indexInfo);const e=this.view.resourceController?.memoryController;this._i3sOverrides=new U({view:this.view,layer:this.layer,memoryController:e}),q(this.layer,this.view.spatialReference,this.view.viewingMode),this._fieldsHelper=new X({layerView:this}),this._updatingHandles.add(()=>this.layer.rangeInfos,e=>this._rangeInfosChanged(e),o),this._updatingHandles.add(()=>this.layer.renderer,(e,t)=>this._rendererChange(e,t)),this._updatingHandles.add(()=>[this.parsedDefinitionExpression,this.layer.excludeObjectIds],()=>this._filterChange()),this._set("processor",new G({owner:this,preferredUpdatePolicy:0,scaleVisibilityEnabled:!le(),filterVisibilityEnabled:!0,timeExtentEnabled:!1,frustumVisibilityEnabled:!1,elevationAlignmentEnabled:!0,elevationFeatureExpressionEnabled:!1,setUidToIdOnAdd:!1,dataExtent:this.layer.fullExtent,updateClippingExtent:e=>this._updateClippingExtent(e)})),this.processor.elevationAlignment?.events.on("invalidate-elevation",({extent:e,spatialReference:t})=>this._controller.updateElevationChanged(e,t)),this.supportsHeightUnitConversion&&(this._verticalScale=v("point",this.layer.spatialReference,this.view.spatialReference)),this.addResolvingPromise(this.processor.when()),this._memCache=this.view.resourceController.memoryController.newCache(`psl-${this.uid}`),this._controller=new O({layerView:this}),T(this.layer.geometryDefinitions)&&(this._workerHandle=new F(e=>this.view.resourceController.immediate.schedule(e))),this.addHandles(this.layer.on("apply-edits",e=>this._updatingHandles.addPromise(e.result))),this.addHandles([this.layer.on("edits",e=>{const t=this._pendingEditsQueue.then(()=>this._handleEdits(e)).then();this._pendingEditsQueue=t,this._updatingHandles.consumePromise(t)}),a(()=>te.I3S_TREE_SHOW_TILES,e=>{if(e&&!this._treeDebugger){const e=this._controller.crsIndex;import("./support/I3STreeDebugger.js").then(({I3STreeDebugger:t})=>{!this._treeDebugger&&te.I3S_TREE_SHOW_TILES&&(this._treeDebugger=new t({lv:this,view:this.view,nodeSR:e}))})}else e||!this._treeDebugger||te.I3S_TREE_SHOW_TILES||(this._treeDebugger.destroy(),this._treeDebugger=null)},o)]),this.when(()=>{this._setupQueryEngine(),this._updatingHandles.add(()=>this.availableFields,()=>this._queryEngine?.clear(),n),this._updatingHandles.add(()=>this.maximumNumberOfFeatures,e=>this._controller.featureTarget=e,o),this._updatingHandles.add(()=>this.suspended,e=>{e&&this._removeAllNodeData()})})}destroy(){this._treeDebugger=r(this._treeDebugger),this._i3sOverrides=r(this._i3sOverrides),this._set("processor",r(this.processor)),this._controller=r(this._controller),this._queryEngine=r(this._queryEngine),this._workerHandle=r(this._workerHandle),this._memCache=r(this._memCache),this.loadedGraphics.clear(),this._fieldsHelper=r(this._fieldsHelper)}get layerViewUid(){return this.uid}get updatingProgressValue(){return this._controller?.updatingProgress??1}get visibleAtCurrentScale(){return le()?de(this.layer.effectiveScaleRange,this.view.scale):!this.processor?.scaleVisibilitySuspended}get requiredFields(){return this._fieldsHelper?.requiredFields??[]}get maximumNumberOfFeatures(){const e=this.processor?.graphicsCore?.displayFeatureLimit;return e?.maximumNumberOfFeatures??0}set maximumNumberOfFeatures(e){null!=e?(this._override("maximumNumberOfFeatures",e),this._controller.fixedFeatureTarget=!0):(this._clearOverride("maximumNumberOfFeatures"),this._controller.fixedFeatureTarget=!1)}get maximumNumberOfFeaturesExceeded(){return!this.suspended&&(!!this._controller?.useMaximumNumberOfFeatures&&!this._controller.leavesReached)}get _excludeObjectIds(){return new Set(this.layer.excludeObjectIds)}get lodFactor(){return"Labels"===this.layer.semantic?1:this.view.qualitySettings.sceneService.pointLoDFactor}get hasM(){return!1}get hasZ(){return!0}get contentVisible(){return!this.suspended&&!!this._controller?.rootNodeVisible}get legendEnabled(){return this.contentVisible&&!0===this.layer?.legendEnabled}get _graphicOrigin(){return this.layer.graphicOrigin}async whenGraphicAttributes(e,t){return B(this.layer,e,this._getObjectIdField(),t,()=>[...this.loadedGraphics.nodes()])}getHit(e){if(!this.loadedGraphics)return null;const t=w(this.loadedGraphics.find(t=>t.uid===e),this.layer,this._graphicOrigin),r=this._getObjectIdField();return null==t?.attributes?.[r]?null:{type:"graphic",graphic:t,layer:t.layer}}whenGraphicBounds(e,t){return this.processor.whenGraphicBounds(e,t)}computeAttachmentOrigin(e,t){return this.processor.computeAttachmentOrigin(e,t)}isUpdating(){return!!(this._controller?.updating||this.processor?.updating||this._fieldsHelper?.updating||this.layerFilterUpdating)}highlight(e,t){const r=ne(t),i=this.layer.objectIdField,s=K(e);if(0===s.length)return Z;if(D(s[0])){const e=s;if(null!=k(this.layer.fieldsIndex,e[0].attributes,i)){const t=e.map(e=>k(this.layer.fieldsIndex,e.attributes,i));return this.processor.highlightByObjectIds(t,i,r)}return this.processor.highlightByGraphics(e,r)}return $(s[0])?this.processor.highlightByObjectIds(s,i,r):Z}get updatePolicy(){return this.processor.graphicsCore.effectiveUpdatePolicy}createInteractiveEditSession(e){return P(this._attributeEditingContext,e)}async _decompressBinaryPointData(e,t){const r={geometryBuffer:e.geometryBuffer};null==this._workerHandle&&(this._workerHandle=new F(e=>this.view.resourceController.immediate.schedule(e)));const i=await this._workerHandle.invoke(r,t);if(null==i)throw new Error("Failed to decompress Draco point data");return{positionData:i.positions,featureIds:i.featureIds}}async addNode(e,r,i){if(!ye(r)&&!me(r))throw new Error;if(this.loadedGraphics.hasNode(e.index))return void t.getLogger(this).error("I3S node "+e.id+" already added");const s=null!=this.layer.fullExtent?be(this.layer.fullExtent.clone(),.5):null,{featureIds:o,pointPositions:a}=ye(r)?await this._extractBinaryPointPositions(e,r,i):this._extractLegacyPointPositions(r),n=new Array;this._validatePositions(e,o,a,s,n);const l=this._controller.crsVertex,d=this.view.spatialReference;g(a,l,0,a,d,0,o.length);const u=ye(r)?e.level:0,h=this._createGraphics(o,a,e.index,u),p=new pe(h,o,r.attributeDataInfo,e);if(await this._i3sOverrides.applyAttributeOverrides(p.featureIds,r.attributeDataInfo,i),e.numFeatures=p.graphics.length,this._updateNodeMemory(e),_e(p),n.length>0&&(this._computeObb(e,n,l),this._controller.updateVisibility(e.index)),!this._controller.isGeometryVisible(e))return void this._cacheNodeData(p);if(null!=this._verticalScale)for(const t of p.graphics)this._verticalScale(t.geometry);const c=this.view.stage.renderView.olidRenderHelper;if(c){const e=C(this.view,this.uid);for(let t=0;t<p.featureIds.length;t++){const r=p.featureIds[t];c.setUidToObjectAndLayerId(r,p.graphics[t].uid,this.layer.id,this.uid,this.layer.popupEnabled&&!e&&ae(this.layer,this.view.popup?.defaultPopupTemplateEnabled),p.node.resources.attributes,t)}}this.loadedGraphics.addNode(e.index,p),this._controller.updateLoadStatus(e.index,!0),this._filterNode(p),this._treeDebugger&&this._treeDebugger.update()}_computeObb(e,t,r){const i=this._controller.crsIndex,s=i.isGeographic?this.view.renderSpatialReference:i;g(t,r,0,t,s,0),e.serviceObbInIndexSR=re(new se(t,3)),i.isGeographic&&(m(e.serviceObbInIndexSR.getCenter(Ie),s,Ie,i),e.serviceObbInIndexSR.setCenter(Ie))}isNodeLoaded(e){return this.loadedGraphics.hasNode(e)}isNodeReloading(){return!1}updateNodeState(){}getNodeComponentHandle(){}async _extractBinaryPointPositions(e,t,r){const i=await this._decompressBinaryPointData(t,r),s=i.positionData,o=3,a=s.length/o,n=_(3*a),l=null!=e.serviceObbInIndexSR?e.serviceObbInIndexSR.getCenter(Ee):p,d=Math.abs(l[2])*2**-20;for(let u=0;u<a;u++){const e=u*o;n[e]=s[e]+l[0],n[e+1]=s[e+1]+l[1],n[e+2]=s[e+2]+l[2],Math.abs(n[e+2])<d&&(n[e+2]=0)}return{featureIds:i.featureIds?b(i.featureIds):[],pointPositions:n}}_extractLegacyPointPositions(e){const t=e.pointData.length,r=_(3*t),i=new Array;for(let s=0;s<t;s++){const t=e.pointData[s],o=t.featureDataPosition,a=o.length,n=t.geometries?.[0]??ve[a],l=t.featureIds[0];if("Embedded"!==n.type||"points"!==n.params.type||a<2||a>3)continue;const d=n.params.vertexAttributes?.position??[0,0,0],u=3*i.length;r[u]=o[0]+d[0],r[u+1]=o[1]+d[1],r[u+2]=3===a?o[2]+d[2]:NaN,i.push(l)}return{featureIds:i,pointPositions:r}}_validatePositions(e,r,i,s,o){if(null==s&&e.serviceObbInIndexSR)return;const a=r.length,n=3;for(let l=0;l<a;l++){const r=l*n;h(Ie,i[r],i[r+1],i[r+2]);const a=!Number.isNaN(i[2]);null==s||(a?y(s,Ie):f(s,Ie))||(this._coordinatesOutsideExtentErrors<this._maxCoordinatesOutsideExtentErrors&&t.getLogger(this).error("Service Error: Coordinates outside of layer extent"),this._coordinatesOutsideExtentErrors+1===this._maxCoordinatesOutsideExtentErrors&&t.getLogger(this).error("Maximum number of errors reached. Further errors are ignored."),this._coordinatesOutsideExtentErrors++),e.serviceObbInIndexSR||o.push(Ie[0],Ie[1],Ie[2])}}_createGraphics(e,t,r,i){const s=e.length,o=3,a=this._getObjectIdField(),n=this.processor.graphicsCore,d=new Array,u=this.view.spatialReference;for(let h=0;h<s;h++){const s=e[h],p={};null!=s&&(p[a]=s);const c=s??l(),g=h*o,m=isNaN(t[g+2])?void 0:t[g+2],y=new E(u,t[g],t[g+1],m),f=this.loadedGraphics.get(c);if(null!=f)(null==f.level||f.level<i)&&(xe.property="geometry",xe.graphic=f,xe.oldValue=f.geometry,xe.newValue=y,f.geometry=y,f.level=i,n.graphicUpdateHandler(xe),we()),d.push(f);else{const e=l();d.push({objectId:c,uid:e,geometry:y,attributes:p,visible:!0,nodeIndex:r,level:i})}}return d}_updateNodeMemory(e){e.memory=4096+(e.numFeatures??0)*this.processor.graphicsCore.usedMemoryPerGraphic}_cacheNodeData(e){this._memCache.put(this._getMemCacheKey(e.node),e)}_getMemCacheKey(e){return`${e.index}`}_removeAllNodeData(){this.loadedGraphics.forEachNode((e,t)=>{if(e){const t=e.node;this._updateNodeMemory(t),this._cacheNodeData(e)}this._controller.updateLoadStatus(t,!1)}),this._treeDebugger&&this._treeDebugger.update(),this.loadedGraphics.clear()}removeNode(e){const t=this._removeNodeStageData(e);t&&(this._updateNodeMemory(t.node),this._cacheNodeData(t))}_removeNodeStageData(e){const t=this.loadedGraphics.getNode(e);return null==t?null:(this._controller.updateLoadStatus(e,!1),this.loadedGraphics.removeNode(e),this._treeDebugger&&this._treeDebugger.update(),t)}async loadCachedNodeData(e){return this._memCache?.pop(this._getMemCacheKey(e))}async addCachedNodeData(e,r,i,s){this.loadedGraphics.hasNode(e.index)?t.getLogger(this).error("I3S node "+e.id+" already added"):(await this._i3sOverrides.applyAttributeOverrides(r.featureIds,i,s),r.attributeInfo=i,this.loadedGraphics.addNode(e.index,r),this._controller.updateLoadStatus(e.index,!0),this._updateNodeMemory(e),_e(r),this._filterNode(r),this._treeDebugger&&this._treeDebugger.update())}getLoadedNodeIds(){const e=[];return this.loadedGraphics.forEachNode(t=>e.push(t.node.id)),e.sort()}getVisibleNodes(){const e=new Array;return this.loadedGraphics.forEachNode(t=>e.push(t.node)),e}getLoadedNodeIndices(e){this.loadedGraphics.forEachNode((t,r)=>e.push(r))}getLoadedAttributes(e){const t=this.loadedGraphics.getNode(e);if(null!=t?.attributeInfo)return t.attributeInfo.loadedAttributes}getAttributeData(e){const t=this.loadedGraphics.getNode(e);if(null!=t?.attributeInfo)return t.attributeInfo.attributeData}_setAttributeData(e,t){const r=this.loadedGraphics.getNode(e);null!=r?.attributeInfo&&(r.attributeInfo.attributeData=t,this._attributeValuesChanged(r))}async updateAttributes(e,t,r){const i=this.loadedGraphics.getNode(e);null!=i&&(await this._i3sOverrides.applyAttributeOverrides(i.featureIds,t,r),i.attributeInfo=t,this._attributeValuesChanged(i))}_attributeValuesChanged(e){_e(e),this._filterNode(e);const{processor:t}=this,{graphicsCore:r}=t;if(r.labelsEnabled){const t=e.node.index,i=new Array;e.graphics.forEach(e=>e.nodeIndex===t&&i.push(e.uid)),r.updateLabelingInfo(i)}t.refreshFilter()}_updateClippingExtent(e){return this._controller&&this._controller.updateClippingArea(e),!1}_getObjectIdField(){return this.layer.objectIdField||I}_getGlobalIdField(){return this.layer.globalIdField}async _rendererChange(e,t){const{layer:{fieldsIndex:r}}=this,i=new Set;let s,o;e?(await e.collectRequiredFields(i,r),s=Array.from(i).sort()):s=[],i.clear(),t?(await t.collectRequiredFields(i,r),o=Array.from(i).sort()):o=[],s.length===o.length&&s.every((e,t)=>s[t]===o[t])||this._reloadAllNodes()}_rangeInfosChanged(e){null!=e&&e.length>0&&t.getLogger(this).warn("Unsupported property: rangeInfos are currently only serialized to and from web scenes but do not affect rendering.")}_filterChange(){this.loadedGraphics.forEachNode(e=>this._filterNode(e))}_reloadAllNodes(){this._removeAllNodeData(),this._controller&&this._controller.restartNodeLoading()}_filterNode(e){const t=this.parsedDefinitionExpression,r=this._excludeObjectIds,i=this._getObjectIdField();for(const s of e.graphics){const e=s.visible,o=this._evaluateClause(t,s),a=!r.has(s.attributes[i]);s.visible=o&&a,e!==s.visible&&(xe.graphic=s,xe.property="visible",xe.oldValue=e,xe.newValue=s.visible,this.processor.graphicsCore.graphicUpdateHandler(xe),we())}}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference};return this.filter?.createQuery(e)??new N(e)}queryFeatures(e,t){return this._queryEngine.executeQuery(this._ensureQuery(e),t?.signal)}queryObjectIds(e,t){return this._queryEngine.executeQueryForIds(this._ensureQuery(e),t?.signal)}queryFeatureCount(e,t){return this._queryEngine.executeQueryForCount(this._ensureQuery(e),t?.signal)}queryExtent(e,t){return this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t?.signal)}_ensureQuery(e){return this._addDefinitionExpressionToQuery(null==e?this.createQuery():N.from(e))}_setupQueryEngine(){const{layer:e,view:t,hasM:r,hasZ:i}=this,{spatialReference:s,resourceController:o}=t,a=new V(s,e,o,()=>this.processor.featureStore,i,r,()=>this.availableFields);this._queryEngine=new A({context:a,priority:ue.FEATURE_QUERY_ENGINE})}get usedMemory(){return this.processor?.graphicsCore?.usedMemory??0}get unloadedMemory(){return.8*((this._controller?.unloadedMemoryEstimate??0)+(this.processor?.graphicsCore?.unprocessedMemoryEstimate??0))}get ignoresMemoryFactor(){return this._controller&&this._controller.fixedFeatureTarget}async _handleEdits(e){const t=this._attributeEditingContext,r=await L(t,e);R(t,r)}get _attributeEditingContext(){const e=this._getObjectIdField(),t=this._getGlobalIdField();return{sessions:this._interactiveEditingSessions,fieldsIndex:this.layer.fieldsIndex,objectIdField:e,globalIdField:t,forEachNode:e=>this.loadedGraphics.forEachNode(t=>e(t.node,t.featureIds)),attributeStorageInfo:this.layer.attributeStorageInfo??[],i3sOverrides:this._i3sOverrides,getAttributeData:e=>this.getAttributeData(e),setAttributeData:(t,r,i)=>{this._setAttributeData(t,r);const s=this.loadedGraphics.getNode(t);if(null!=i){const t=this.loadedGraphics.get(i.attributes[e]);null!=t&&this.processor.graphicsCore.recreateGraphics([t])}else null!=s&&this.processor.graphicsCore.recreateGraphics(s.graphics)},clearMemCache:()=>{}}}get performanceInfo(){return new Y(this.usedMemory,this.loadedGraphics.length,-1,this.maximumNumberOfFeatures,this.loadedGraphics.nodeCount,this.processor.graphicsCore.performanceInfo)}get test(){}};e([d()],ce.prototype,"processor",void 0),e([d({type:j})],ce.prototype,"filter",void 0),e([d()],ce.prototype,"loadedGraphics",void 0),e([d()],ce.prototype,"layerViewUid",null),e([d()],ce.prototype,"_controller",void 0),e([d()],ce.prototype,"updating",void 0),e([d()],ce.prototype,"suspended",void 0),e([d(ie)],ce.prototype,"updatingProgress",void 0),e([d()],ce.prototype,"updatingProgressValue",null),e([d({readOnly:!0})],ce.prototype,"visibleAtCurrentScale",null),e([d(he.requiredFields)],ce.prototype,"requiredFields",null),e([d(he.availableFields)],ce.prototype,"availableFields",void 0),e([d()],ce.prototype,"_fieldsHelper",void 0),e([d({type:Number})],ce.prototype,"maximumNumberOfFeatures",null),e([d({readOnly:!0})],ce.prototype,"maximumNumberOfFeaturesExceeded",null),e([d()],ce.prototype,"_excludeObjectIds",null),e([d({readOnly:!0})],ce.prototype,"lodFactor",null),e([d({readOnly:!0})],ce.prototype,"hasM",null),e([d({readOnly:!0})],ce.prototype,"hasZ",null),e([d()],ce.prototype,"contentVisible",null),e([d({readOnly:!0})],ce.prototype,"legendEnabled",null),e([d()],ce.prototype,"_graphicOrigin",null),ce=e([u("esri.views.3d.layers.SceneLayerGraphicsView3D")],ce);const ge=ce;function me(e){return"pointData"in e}function ye(e){return"geometryBuffer"in e&&null!==e.geometryBuffer}function fe(e,t,r){const i=t.attributeInfo;if(null==i?.loadedAttributes||null==i.attributeData)return!1;let s=!1;for(const{name:o}of i.loadedAttributes)if(i.attributeData[o]){const t=H(i.attributeData[o],r);t!==e.attributes[o]&&(e.attributes[o]=t,s=!0)}return s}function _e(e){const t=e.attributeInfo;if(null==t?.loadedAttributes||null==t.attributeData)return;const r=e.node.index;for(let i=0;i<e.graphics.length;i++){const s=e.graphics[i];if(s.nodeIndex===r){s.attributes||(s.attributes={});for(const{name:e}of t.loadedAttributes)t.attributeData[e]&&(s.attributes[e]=H(t.attributeData[e],i))}}}function be(e,t){return e.xmin-=t,e.ymin-=t,e.xmax+=t,e.ymax+=t,null!=e.zmin&&null!=e.zmax&&(e.zmin-=t,e.zmax+=t),null!=e.mmin&&null!=e.mmax&&(e.mmin-=t,e.mmax+=t),e}const ve={2:{type:"Embedded",params:{type:"points",vertexAttributes:{position:[0,0]}}},3:{type:"Embedded",params:{type:"points",vertexAttributes:{position:[0,0,0]}}}},Ie=c(),xe={graphic:null,property:null,oldValue:null,newValue:null},Ee=c();function we(){xe.graphic=null,xe.property=null,xe.oldValue=null,xe.newValue=null}export{ge as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{hasScaling as e}from"../../../core/mathUtils.js";import{fromMat4 as r}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as t}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import o from"../../../geometry/SpatialReference.js";import{ensurePackedMat4f64 as n,ensurePackedArray as s}from"../../../geometry/support/DoubleArray.js";import i from"../../../geometry/support/MeshGeoreferencedVertexSpace.js";import a from"../../../geometry/support/MeshLocalVertexSpace.js";import{t as f,n as c}from"../../../chunks/vec3.js";import{get as l,cleanup as u}from"../../../libs/i3s/I3SModule.js";import{processNormals as m}from"./IntegratedMeshNormals.js";import{TransformedGeometry as p,TransformedData as y}from"./SceneLayerWorkerHandle.js";async function d(e){E=await M();const r=[e.geometryBuffer];return{result:U(E,e,r),transferList:r}}async function h(e){E=await M();const r=[e.geometryBuffer],{geometryBuffer:t}=e,o=t.byteLength,n=E._malloc(o),s=new Uint8Array(E.HEAPU8.buffer,n,o);s.set(new Uint8Array(t));const i=E.dracoDecompressPointCloudData(n,s.byteLength);if(E._free(n),i.error.length>0)throw new Error(`i3s.wasm: ${i.error}`);const a=i.featureIds?.length>0?i.featureIds.slice():null,f=i.positions.slice();return a&&r.push(a.buffer),r.push(f.buffer),{result:{positions:f,featureIds:a},transferList:r}}async function g(e){await M(),P(e);const r={buffer:e.buffer};return{result:r,transferList:[r.buffer]}}async function b(e){await M(),S(e)}async function w(e){E=await M(),E.setLegacySchema(e.context,e.jsonSchema)}async function j(e){const{localMatrix:r,origin:t,positions:f,vertexSpace:c}=e,l=o.fromJSON(e.inSpatialReference),u=o.fromJSON(e.outSpatialReference),m=r?n(r):void 0,p=s(t);let y;const[{projectBuffer:d},{initializeProjection:h}]=await Promise.all([import("../../../geometry/projection/projectBuffer.js"),import("../../../geometry/projectionUtils.js")]);await h(l,u);const g=[0,0,0];if(!d(p,l,0,g,u,0))throw new Error("Failed to project");if("georeferenced"===c.type&&null==c.origin){if(y=new Float64Array(f.length),!d(f,l,0,y,u,0,y.length/3))throw new Error("Failed to project")}else{const e="georeferenced"===c.type?i.fromJSON(c):a.fromJSON(c),{projectMeshVertexPositions:r}=await import("../../../geometry/support/meshUtils/projectMeshVertexPositions.js"),t=r({vertexAttributes:{position:f},transform:m?{localMatrix:m}:void 0,vertexSpace:e,spatialReference:l},u);if(!t)throw new Error("Failed to project");y=t}const b=y.length,[w,j,A]=g;for(let o=0;o<b;o+=3)y[o]-=w,y[o+1]-=j,y[o+2]-=A;return{result:{projected:y,original:f,projectedOrigin:g},transferList:[y.buffer,f.buffer]}}async function A({normalMatrix:r,normals:t}){const o=new Float32Array(t.length);return f(o,t,r),e(r)&&c(o,o),{result:{transformed:o,original:t},transferList:[o.buffer,t.buffer]}}function x(e){_(e)}let L,E;function S(e){if(!E)return;const r=e.modifications,t=E._malloc(8*r.length),o=new Float64Array(E.HEAPU8.buffer,t,r.length);for(let n=0;n<r.length;++n)o[n]=r[n];E.setModifications(e.context,t,r.length,e.isGeodetic),E._free(t)}function U(e,o,n){const{context:s,globalTrafo:i,mbs:a,obbData:f,layouts:c,needNormals:l,computeNormals:u,elevationOffset:d,geometryBuffer:h,geometryDescriptor:g,indexToVertexProjector:b,vertexToRenderProjector:w,normalReferenceFrame:j}=o,A=e._malloc(h.byteLength),x=33,L=e._malloc(x*Float64Array.BYTES_PER_ELEMENT),E=new Uint8Array(e.HEAPU8.buffer,A,h.byteLength);E.set(new Uint8Array(h));const S=new Float64Array(e.HEAPU8.buffer,L,x);v(S,[NaN,NaN,NaN],0);let U=3;v(S,i,U),U+=16,v(S,a.center,U),U+=3,S[U++]=a.radius,f&&v(S,f,U++);const N={isDraco:!1,isLegacy:!1,color:c.some(e=>e.some(e=>"color"===e.name)),normal:l&&c.some(e=>e.some(e=>"normalCompressed"===e.name)),uv0:c.some(e=>e.some(e=>"uv0"===e.name)),uvRegion:c.some(e=>e.some(e=>"uvRegion"===e.name)),featureIndex:g.featureIndex},P=e.process(s,!!f,A,E.byteLength,g,N,L,d,b,w,j);if(e._free(L),e._free(A),P.error.length>0)throw new Error(`i3s.wasm: ${P.error}`);if(P.discarded)return null;const _=P.componentOffsets.length>0?P.componentOffsets.slice():null,I=P.featureIds.length>0?P.featureIds.slice():null,M=P.anchorIds.length>0?Array.from(P.anchorIds):null,F=P.anchors.length>0?Array.from(P.anchors):null,O=1===P.indicesType?new Uint16Array(P.indices.buffer,P.indices.byteOffset,P.indices.byteLength/2).slice():new Uint32Array(P.indices.buffer,P.indices.byteOffset,P.indices.byteLength/4).slice(),B=c[0].slice(),R=r(t(),i),T=m(P.interleavedVertedData,O,B,u&&!N.normal,R),D=P.positions.slice(),{buffer:H,byteOffset:V,byteLength:J}=P.positionIndices,C=1===P.positionIndicesType?new Uint16Array(H,V,J/2).slice():new Uint32Array(H,V,J/4).slice(),k=new p(B,T.data,T.indices,P.hasColors,P.hasModifications,{data:D,indices:C});return I&&n.push(I.buffer),_&&n.push(_.buffer),n.push(T.data),n.push(T.indices.buffer),n.push(D.buffer),n.push(C.buffer),new y(_,I,M,F,k,i,P.obb)}function N(e){return 0===e?0:1===e?1:2===e?2:3}function P(e){if(!E)return;const{context:r,buffer:t}=e,o=E._malloc(t.byteLength),n=t.byteLength/Float64Array.BYTES_PER_ELEMENT,s=new Float64Array(E.HEAPU8.buffer,o,n),i=new Float64Array(t);s.set(i),E.filterOBBs(r,o,n),i.set(s),E._free(o)}function _(e){0===E?.destroy(e)&&(E=null,L=null,u())}function v(e,r,t){for(let o=0;o<r.length;++o)e[o+t]=r[o]}async function I(){E||await M()}async function M(){return E||(E=await(L??=l())),E}const F={transform:(e,r)=>E&&U(E,e,r),destroy:_};export{x as destroyContext,h as dracoDecompressPointCloudData,g as filterObbsForModifications,P as filterObbsForModificationsSync,I as initialize,N as interpretObbModificationResults,d as process,j as project,w as setLegacySchema,b as setModifications,S as setModificationsSync,F as test,A as transformNormals};
2
+ import{hasScaling as e}from"../../../core/mathUtils.js";import{fromMat4 as r}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as t}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import o from"../../../geometry/SpatialReference.js";import{ensurePackedMat4f64 as n,ensurePackedArray as s}from"../../../geometry/support/DoubleArray.js";import i from"../../../geometry/support/MeshGeoreferencedVertexSpace.js";import a from"../../../geometry/support/MeshLocalVertexSpace.js";import{b as f,n as c}from"../../../chunks/vec3.js";import{get as l,cleanup as u}from"../../../libs/i3s/I3SModule.js";import{processNormals as m}from"./IntegratedMeshNormals.js";import{TransformedGeometry as p,TransformedData as y}from"./SceneLayerWorkerHandle.js";async function d(e){E=await M();const r=[e.geometryBuffer];return{result:U(E,e,r),transferList:r}}async function h(e){E=await M();const r=[e.geometryBuffer],{geometryBuffer:t}=e,o=t.byteLength,n=E._malloc(o),s=new Uint8Array(E.HEAPU8.buffer,n,o);s.set(new Uint8Array(t));const i=E.dracoDecompressPointCloudData(n,s.byteLength);if(E._free(n),i.error.length>0)throw new Error(`i3s.wasm: ${i.error}`);const a=i.featureIds?.length>0?i.featureIds.slice():null,f=i.positions.slice();return a&&r.push(a.buffer),r.push(f.buffer),{result:{positions:f,featureIds:a},transferList:r}}async function g(e){await M(),P(e);const r={buffer:e.buffer};return{result:r,transferList:[r.buffer]}}async function b(e){await M(),S(e)}async function w(e){E=await M(),E.setLegacySchema(e.context,e.jsonSchema)}async function j(e){const{localMatrix:r,origin:t,positions:f,vertexSpace:c}=e,l=o.fromJSON(e.inSpatialReference),u=o.fromJSON(e.outSpatialReference),m=r?n(r):void 0,p=s(t);let y;const[{projectBuffer:d},{initializeProjection:h}]=await Promise.all([import("../../../geometry/projection/projectBuffer.js"),import("../../../geometry/projectionUtils.js")]);await h(l,u);const g=[0,0,0];if(!d(p,l,0,g,u,0))throw new Error("Failed to project");if("georeferenced"===c.type&&null==c.origin){if(y=new Float64Array(f.length),!d(f,l,0,y,u,0,y.length/3))throw new Error("Failed to project")}else{const e="georeferenced"===c.type?i.fromJSON(c):a.fromJSON(c),{projectMeshVertexPositions:r}=await import("../../../geometry/support/meshUtils/projectMeshVertexPositions.js"),t=r({vertexAttributes:{position:f},transform:m?{localMatrix:m}:void 0,vertexSpace:e,spatialReference:l},u);if(!t)throw new Error("Failed to project");y=t}const b=y.length,[w,j,A]=g;for(let o=0;o<b;o+=3)y[o]-=w,y[o+1]-=j,y[o+2]-=A;return{result:{projected:y,original:f,projectedOrigin:g},transferList:[y.buffer,f.buffer]}}async function A({normalMatrix:r,normals:t}){const o=new Float32Array(t.length);return f(o,t,r),e(r)&&c(o,o),{result:{transformed:o,original:t},transferList:[o.buffer,t.buffer]}}function x(e){_(e)}let L,E;function S(e){if(!E)return;const r=e.modifications,t=E._malloc(8*r.length),o=new Float64Array(E.HEAPU8.buffer,t,r.length);for(let n=0;n<r.length;++n)o[n]=r[n];E.setModifications(e.context,t,r.length,e.isGeodetic),E._free(t)}function U(e,o,n){const{context:s,globalTrafo:i,mbs:a,obbData:f,layouts:c,needNormals:l,computeNormals:u,elevationOffset:d,geometryBuffer:h,geometryDescriptor:g,indexToVertexProjector:b,vertexToRenderProjector:w,normalReferenceFrame:j}=o,A=e._malloc(h.byteLength),x=33,L=e._malloc(x*Float64Array.BYTES_PER_ELEMENT),E=new Uint8Array(e.HEAPU8.buffer,A,h.byteLength);E.set(new Uint8Array(h));const S=new Float64Array(e.HEAPU8.buffer,L,x);v(S,[NaN,NaN,NaN],0);let U=3;v(S,i,U),U+=16,v(S,a.center,U),U+=3,S[U++]=a.radius,f&&v(S,f,U++);const N={isDraco:!1,isLegacy:!1,color:c.some(e=>e.some(e=>"color"===e.name)),normal:l&&c.some(e=>e.some(e=>"normalCompressed"===e.name)),uv0:c.some(e=>e.some(e=>"uv0"===e.name)),uvRegion:c.some(e=>e.some(e=>"uvRegion"===e.name)),featureIndex:g.featureIndex},P=e.process(s,!!f,A,E.byteLength,g,N,L,d,b,w,j);if(e._free(L),e._free(A),P.error.length>0)throw new Error(`i3s.wasm: ${P.error}`);if(P.discarded)return null;const _=P.componentOffsets.length>0?P.componentOffsets.slice():null,I=P.featureIds.length>0?P.featureIds.slice():null,M=P.anchorIds.length>0?Array.from(P.anchorIds):null,F=P.anchors.length>0?Array.from(P.anchors):null,O=1===P.indicesType?new Uint16Array(P.indices.buffer,P.indices.byteOffset,P.indices.byteLength/2).slice():new Uint32Array(P.indices.buffer,P.indices.byteOffset,P.indices.byteLength/4).slice(),B=c[0].slice(),R=r(t(),i),T=m(P.interleavedVertedData,O,B,u&&!N.normal,R),D=P.positions.slice(),{buffer:H,byteOffset:V,byteLength:J}=P.positionIndices,C=1===P.positionIndicesType?new Uint16Array(H,V,J/2).slice():new Uint32Array(H,V,J/4).slice(),k=new p(B,T.data,T.indices,P.hasColors,P.hasModifications,{data:D,indices:C});return I&&n.push(I.buffer),_&&n.push(_.buffer),n.push(T.data),n.push(T.indices.buffer),n.push(D.buffer),n.push(C.buffer),new y(_,I,M,F,k,i,P.obb)}function N(e){return 0===e?0:1===e?1:2===e?2:3}function P(e){if(!E)return;const{context:r,buffer:t}=e,o=E._malloc(t.byteLength),n=t.byteLength/Float64Array.BYTES_PER_ELEMENT,s=new Float64Array(E.HEAPU8.buffer,o,n),i=new Float64Array(t);s.set(i),E.filterOBBs(r,o,n),i.set(s),E._free(o)}function _(e){0===E?.destroy(e)&&(E=null,L=null,u())}function v(e,r,t){for(let o=0;o<r.length;++o)e[o+t]=r[o]}async function I(){E||await M()}async function M(){return E||(E=await(L??=l())),E}const F={transform:(e,r)=>E&&U(E,e,r),destroy:_};export{x as destroyContext,h as dracoDecompressPointCloudData,g as filterObbsForModifications,P as filterObbsForModificationsSync,I as initialize,N as interpretObbModificationResults,d as process,j as project,w as setLegacySchema,b as setModifications,S as setModificationsSync,F as test,A as transformNormals};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{property as r,subclass as s}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as o}from"../../../core/support/UpdatingHandles.js";let p=class extends t{constructor(e){super(e),this.updatingHandles=new o}destroy(){this.updatingHandles.destroy()}get updating(){return this.updatingHandles.updating}get layer(){return this.layerView.layer}get view(){return this.layerView.view}get suspended(){return this.layerView.suspended}get fullOpacity(){return this.layerView.fullOpacity}get usedMemory(){return 0}};e([r({constructOnly:!0})],p.prototype,"layerView",void 0),e([r({readOnly:!0})],p.prototype,"updatingHandles",void 0),e([r()],p.prototype,"updating",null),e([r()],p.prototype,"layer",null),e([r()],p.prototype,"view",null),e([r()],p.prototype,"suspended",null),e([r()],p.prototype,"fullOpacity",null),p=e([s("esri.views.3d.layers.SubView3D")],p);export{p as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import{property as r,subclass as s}from"../../../core/accessorSupport/decorators.js";import{UpdatingHandles as o}from"../../../core/support/UpdatingHandles.js";let p=class extends t{constructor(e){super(e),this.updatingHandles=new o}destroy(){this.updatingHandles.destroy()}get updating(){return this.updatingHandles.updating}get layer(){return this.layerView.layer}get view(){return this.layerView.view}get suspended(){return this.layerView.suspended}get fullOpacity(){return this.layerView.fullOpacity}get usedMemory(){return 0}};e([r({constructOnly:!0})],p.prototype,"layerView",void 0),e([r({readOnly:!0})],p.prototype,"updatingHandles",void 0),e([r()],p.prototype,"updating",null),e([r()],p.prototype,"layer",null),e([r()],p.prototype,"view",null),e([r()],p.prototype,"suspended",null),e([r()],p.prototype,"fullOpacity",null),p=e([s("esri.views.3d.layers.SubView3D")],p);const i=p;export{i as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as i}from"tslib";import t from"../../../../core/Accessor.js";import{lerp as e}from"../../../../core/mathUtils.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{transpose as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{transformMat4 as l,scale as u,round as h,copy as d,set as p}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as _,create as y}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f,transformMat4 as g,scale as m}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{UpdatingHandles as b}from"../../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as O}from"../../../../geometry/ellipsoidUtils.js";import{create as w,empty as Q,copy as D,offset as G,width as I,height as j,expand as k}from"../../../../geometry/support/aaBoundingRect.js";import{o as P,i as C,g as S}from"../../../../chunks/boundedPlane.js";import{create as T}from"../../../../geometry/support/ray.js";import{Sphere as x,sphereCSO as M}from"../../../../geometry/support/sphere.js";import{InternalRenderCategory as U}from"../../webgl.js";import{DeconflictAABR as V}from"./DeconflictAABR.js";import{prepare as R,drawPoly as A}from"./deconflictorDebug.js";import{isSymbolLayerWithTransparencyMode as E}from"./transparencyUtils.js";import N from"../../webgl/RenderCamera.js";import{GPUPointOcclusionQuery as q}from"../../webgl-engine/lib/GPUPointOcclusionQuery.js";import{SeparateScreenSizePerspectiveEvaluators as H}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{HUDMaterial as W}from"../../webgl-engine/materials/HUDMaterial.js";import{Yield as z}from"../../../support/Yield.js";const F=y(),B=y(),L=v(),Y=v(),J=y(),K=n(),X=new x,Z=T(),$=y(),ii=w();class ti{constructor(i){this.id=i,this.aabr=w(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.culled=!1,this.visible=!1,this.priority=0}}function ei(i,t){const e=0!==i.distanceToOccluder&&i.distance>i.distanceToOccluder,s=0!==t.distanceToOccluder&&t.distance>t.distanceToOccluder;return e!==s?+e-+s:i.priority!==t.priority?t.priority-i.priority:i.distance!==t.distance?i.distance-t.distance:i.visible!==t.visible?+t.visible-+i.visible:i.id-t.id}class si{constructor(i,t){this.graphics3DGraphic=i,this.slicePlaneEnabled=t,this._info=null,this._labelInfo=null}ensureInfo(i){let t=this.getInfo(i);return t||(t=new ti(this.graphics3DGraphic.graphic.uid),this._setInfo(i,t)),t}getInfo(i){return 16===i?this._labelInfo:this._info}removeInfo(i){this._setInfo(i,null)}_setInfo(i,t){16===i?this._labelInfo=t:this._info=t}}class ri{constructor(){this.camera=new N,this.slicePlane=C(),this.slicePlaneEnabled=!1}copyFrom(i){this.camera.equals(i.camera)||this.camera.copyFrom(i.camera),S(i.slicePlane,this.slicePlane),this.slicePlaneEnabled=i.slicePlaneEnabled}}let oi=class extends t{get dirty(){return this._dirty}get state(){return this._state}constructor(i){super(i),this._dirty=!1,this._viewState=new ri,this._state=0,this._checkOcclusion=new Map,this._active=new Map,this._checkOcclusionIterator=null,this._activeIterator=null,this._occlusionQueryUids=new Array,this._updatingHandles=new b,this._deconflictor=new V((i,t)=>{i.visible=t,this._setGraphicVisibility(this._active.get(i.id),t)},(i,t)=>i.id!==t.id,ei),this._baseOccludedVisibility=10,this._altitudeFactor=2,this._minAltitudeDifference=100}initialize(){this._updatingHandles.add(()=>(this.view?.map?.ground?.opacity??0)>0,()=>this.setDirty()),this._updatingHandles.add(()=>this.view.ready,()=>{this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this.setDirty()})}destroy(){this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this._updatingHandles.destroy(),this._deconflictor.destroy(),this._checkOcclusion.clear(),this._active.clear()}setDirty(){!this._dirty&&(this._active.size>0||this._checkOcclusion.size>0)&&(this._dirty=!0,this.notifyChange("_readyToRun"))}setPriority(i,t){const e=this._active.get(i.graphic.uid)?.getInfo(this.visibilityGroup);e&&(e.priority=t)}get _readyToRun(){return 0!==this._state||this._dirty}get updating(){return this._readyToRun||this._updatingHandles.updating}get updatingProgress(){if(!this.updating)return 1;const i=this._state/5;return this._dirty?.5*i:i}get readyToRun(){return this.view.ready&&null!=this.view.state&&this._readyToRun}get usedMemory(){return this._occlusionQuery?.usedMemory??0+4*(this._occlusionQueryUids?.length??0)}runTask(i){switch(this._state){case 0:this._startUpdate(),i.madeProgress();case 1:if(this._state=1,!this._processCheckOcclusion(i))return;case 2:if(this._state=2,!(this._occlusionQuery?.done??1)||!(this._opaqueOcclusionQuery?.done??1))return z;this._readOcclusionQueryResult(),i.madeProgress();case 3:if(this._state=3,!this._collectActiveGraphics(i))return;case 4:if(this._state=4,this._deconflictor.run(i),!this._deconflictor.done)return;default:this._state=0,this.notifyChange("_readyToRun")}}setGraphicsActive(i,t){t?i.forEach(i=>this.addToActiveGraphics(i)):i.forEach(i=>this.removeFromActiveGraphics(i))}isSupportedLayer(i){if(null==i||!("hiddenIfDeconflicted"in i)||!i.hiddenIfDeconflicted)return!1;const t=i.stageObject;if(1!==(t?.geometries.length??0))return!1;const e=t?.geometries[0],s=e?.material;return s instanceof W}_startUpdate(){R(this.view),this._dirty=!1,this._viewState.copyFrom(this.viewState);const{fullWidth:i,fullHeight:t}=this._viewState.camera;if(this._deconflictor.reset(i,t),this._resetIterators(),this._occlusionQueryUids.length=0,!this._checkOcclusion.size)return this._occlusionQuery=s(this._occlusionQuery),void(this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery))}addToActiveGraphics(i){i.ensureInfo(this.visibilityGroup),this._active.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromActiveGraphics(i){this._active.get(i.graphics3DGraphic.graphic.uid)===i&&(ci(i,this.visibilityGroup),i.removeInfo(this.visibilityGroup),this._active.delete(i.graphics3DGraphic.graphic.uid),this.setDirty())}addToCheckOcclusion(i){this._checkOcclusion.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromCheckOcclusion(i){this._checkOcclusion.get(i.graphics3DGraphic.graphic.uid)===i&&this._checkOcclusion.delete(i.graphics3DGraphic.graphic.uid)}_processCheckOcclusion(i){if(0===this._checkOcclusion.size)return!0;const t=this._ensureCheckOcclusionIterator(),e=this._viewState.camera,r=c(K,e.viewInverseTransposeMatrix),o=this.view.map.ground.opacity>0,n="global"===this.view.viewingMode&&o&&e.relativeElevation>0?X:null;let a=0;null!=n&&(l(n.center,_,e.viewMatrix),n.radius=O(this.view.spatialReference).radius,a=M.distanceToSilhouette(n,_));const u=w();for(;;){if(i.done)return!1;i.madeProgress();const s=t.next();if(!0===s.done)break;const o=s.value,c=o.graphics3DGraphic;if(c.destroyed)continue;if(!c.isVisible(1,8))continue;const h=ui(c,this.visibilityGroup);let d=null,p=!0,_=!1;for(const i of h){if(!this.isSupportedLayer(i))continue;d=hi,this._projectHudLayer(i,e,d),Q(u);const t=i.stageObject.geometries[0].material;if(this._expandBoundingRect(u,e,i,t,d),d.isOutsideScreen){p=!1;break}if(this._isCulledBySlice(o,d.positionWorld)){p=!1;break}if(null!=n&&li(d,n,a)){p=!1;break}d.altitude=this.view.renderCoordsHelper.getAltitude(d.positionWorld);const s=o.ensureInfo(this.visibilityGroup);if(s.altitude=d.altitude,s.distance=d.distance,s.distanceToOccluder=d.distanceToOccluder,s.culled=!1,D(s.aabr,u),!i.occlusionCheck)break;l(B,d.positionView,r);const h=this._ensureOcclusionQuery(),y=this._ensureOpaqueOcclusionQuery();0===this._occlusionQueryUids.length&&(this._initOcclusionQuery(h),this._initOcclusionQuery(y));const f=h.addPosition(B),g=y.addPosition(B);if(f===this._occlusionQueryUids.length&&g===f){const t=i.adaptiveOcclusion;this._occlusionQueryUids.push(t?-c.graphic.uid:c.graphic.uid),_=!0}break}const y=this._active.has(c.graphic.uid);if(y||_){if(y&&(!p||!d)){const i=o.ensureInfo(this.visibilityGroup);i.visible=!d,i.culled=!0}}else this._setGraphicVisibility(o,p)}return this._checkOcclusionIterator=null,this._occlusionQueryUids.length||(this._occlusionQuery=s(this._occlusionQuery),this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery)),this._occlusionQuery?.start(),this._opaqueOcclusionQuery?.start(),!0}_readOcclusionQueryResult(){if(!this._occlusionQuery||!this._occlusionQueryUids.length)return;const i=this._viewState.camera,t=this.view.renderCoordsHelper.getAltitude(i.eye);for(let e=0;e<this._occlusionQueryUids.length;e++){const i=this._occlusionQueryUids[e],s=Math.abs(i),r=i<0,o=this._checkOcclusion.get(s);if(!o)continue;const c=this._occlusionQuery.getOcclusion(e)??-1,n=this._opaqueOcclusionQuery?.getOcclusion(e)??-1,a=o.getInfo(this.visibilityGroup);a&&(a.distanceToOccluder=c>0?a.distance-c:0);const l=0===n||n>0&&this._occludedVisibility(a?a.distance-n:0,a?.distance??n,a?.altitude??0,t,r),u=0===c||c>0&&this._occludedVisibility(a?.distanceToOccluder??0,a?.distance??c,a?.altitude??0,t,r),h=l||u;h&&this._setTransparentMode(o,l&&!u),this._active.has(s)?a&&(a.culled=!h,a.visible=h):this._setGraphicVisibility(o,h)}this._occlusionQueryUids.length=0}_collectActiveGraphics(i){const t=this._ensureActiveGraphicsIterator(),e=16===this.visibilityGroup;for(;!i.done;){i.madeProgress();const s=t.next();if(!0===s.done)return this._activeIterator=null,!0;const r=s.value,o=r.getInfo(this.visibilityGroup);if(!o)continue;const c=!e||r.graphics3DGraphic.isVisible();!c||o.culled?(A(o.aabr,!1,!0),this._setGraphicVisibility(r,c&&o.visible)):this._deconflictor.add(o)}return!1}_occludedVisibility(i,t,e,s,r=!0){const o=Math.max(this._minAltitudeDifference,Math.abs(e-s))-this._minAltitudeDifference,c=r?this._baseOccludedVisibility+this._altitudeFactor*o:0;return 0===i||t-i<=c}_resetIterators(){this._checkOcclusionIterator=null,this._activeIterator=null}_ensureCheckOcclusionIterator(){return this._checkOcclusionIterator??=this._checkOcclusion.values(),this._checkOcclusionIterator}_ensureActiveGraphicsIterator(){return this._activeIterator??=this._active.values(),this._activeIterator}_initOcclusionQuery(i){if(!i)return;const{camera:t}=this._viewState,e=2,s=Math.max(e,e+Math.round(Math.log2(Math.abs(t.relativeElevation))));u(F,this._viewState.camera.eye,2**-s),u(F,h(F,F),2**s),i.init(this._checkOcclusion.size,F)}_ensureOcclusionQuery(){return this._occlusionQuery??=new q({view:this.view}),this._occlusionQuery}_ensureOpaqueOcclusionQuery(){return this._opaqueOcclusionQuery??=new q({view:this.view,category:U.OPAQUE_OCCLUSION_QUERY}),this._opaqueOcclusionQuery}_getNumVisible(i){return[...this._checkOcclusion.values()].reduce((t,e)=>t+(e.getInfo(i)?.visible?1:0),0)}_projectHudLayer(i,t,e){const s=i.stageObject,r=s.geometries[0],o=r.material;d(B,s.boundingVolumeWorldSpace.bounds.center),l(F,B,t.viewMatrix);const c=r.attributes,n=c.get("normal").data,a=c.get("centerOffset")?.data??_,[h]=c.get("groundDistance").data;o.applyShaderOffsets(B,F,n,s.transformation,a,h,t,e.screenSizePerspectiveEvaluators),f(L,F[0],F[1],F[2],1),g(Y,L,t.projectionMatrix),u(e.positionNDC,Y,1/Y[3]),o.applyShaderOffsetsNDC(e.positionNDC,a,h,t,e.positionNDC,J),e.distanceWithoutPolygonOffset=t.depthNDCToWorld(J[2]),e.distance=J[2]===e.positionNDC[2]?e.distanceWithoutPolygonOffset:t.depthNDCToWorld(e.positionNDC[2]),f(Y,e.positionNDC[0],e.positionNDC[1],e.positionNDC[2],1),g(L,Y,t.inverseProjectionMatrix),m(L,L,1/L[3]),p(e.positionView,L[0],L[1],L[2]),d(e.positionWorld,B)}_isCulledBySlice(i,t){return i.slicePlaneEnabled&&this._viewState.slicePlaneEnabled&&P(this._viewState.slicePlane,t)}_expandBoundingRect(i,t,s,r,{positionNDC:o,screenSizePerspectiveEvaluators:c}){const n=s.getScreenSize(ni);c.evaluator.applyVec2(n,n),n[0]*=t.pixelRatio,n[1]*=t.pixelRatio;const a=G(r.calculateRelativeScreenBounds(n,c.alignmentEvaluator.apply(t.pixelRatio),ii),e(0,t.fullWidth,.5+.5*o[0]),e(0,t.fullHeight,.5+.5*o[1])),l=this.marginFactor;if(0!==l){const i=l*Math.min(I(a),j(a));a[0]-=i,a[1]-=i,a[2]+=i,a[3]+=i}k(i,a,i)}_setGraphicVisibility(i,t){const e=i?.graphics3DGraphic;e&&!e.destroyed&&(e.setVisibilityFlag(this.visibilityGroup,8,t),16===this.visibilityGroup&&this.view.labeler.setLabelGraphicVisibility(e,t))}_setTransparentMode(i,t){const e=i?.graphics3DGraphic;if(e&&!e.destroyed)for(const s of e.layers){if("object3d"!==s?.type)continue;const{graphics3DSymbolLayer:i}=s;E(i)&&i.updateTransparentMode(s,t)}}};function ci(i,t){const e=i.graphics3DGraphic;e.destroyed||e.setVisibilityFlag(t,8,!0)}i([r({constructOnly:!0})],oi.prototype,"view",void 0),i([r({type:Boolean,readOnly:!0})],oi.prototype,"_readyToRun",null),i([r({type:Boolean,readOnly:!0})],oi.prototype,"updating",null),i([r({readOnly:!0})],oi.prototype,"_updatingHandles",void 0),oi=i([o("esri.views.3d.layers.graphics.Deconflictor")],oi);const ni=a();class ai{constructor(){this.positionWorld=y(),this.positionView=y(),this.positionNDC=y(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.distanceWithoutPolygonOffset=0,this.screenSizePerspectiveEvaluators=new H}get isOutsideScreen(){const i=this.positionNDC;return i[0]<-1||i[1]<-1||i[2]<-1||i[0]>=1||i[1]>=1||i[2]>=1}}function li(i,t,e){return d(Z.direction,i.positionView),p(Z.origin,0,0,0),!!t.intersectRay(Z,$)&&i.distanceWithoutPolygonOffset>e}function ui(i,t){return 16===t?i.labelLayers:i.layers}const hi=new ai;export{oi as Deconflictor,si as DeconflictorGraphic,ri as DeconflictorViewState};
2
+ import{__decorate as i}from"tslib";import t from"../../../../core/Accessor.js";import{lerp as e}from"../../../../core/mathUtils.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{transpose as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{transformMat4 as l,scale as u,round as h,copy as d,set as p}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as _,create as y}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f,transformMat4 as g,scale as m}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{UpdatingHandles as b}from"../../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as O}from"../../../../geometry/ellipsoidUtils.js";import{create as w,empty as Q,copy as D,offset as G,width as I,height as j,expand as k}from"../../../../geometry/support/aaBoundingRect.js";import{h as P,c as C,a as S}from"../../../../chunks/boundedPlane.js";import{create as T}from"../../../../geometry/support/ray.js";import{Sphere as x,sphereCSO as M}from"../../../../geometry/support/sphere.js";import{InternalRenderCategory as U}from"../../webgl.js";import{DeconflictAABR as V}from"./DeconflictAABR.js";import{prepare as R,drawPoly as A}from"./deconflictorDebug.js";import{isSymbolLayerWithTransparencyMode as E}from"./transparencyUtils.js";import N from"../../webgl/RenderCamera.js";import{GPUPointOcclusionQuery as q}from"../../webgl-engine/lib/GPUPointOcclusionQuery.js";import{SeparateScreenSizePerspectiveEvaluators as H}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{HUDMaterial as W}from"../../webgl-engine/materials/HUDMaterial.js";import{Yield as z}from"../../../support/Yield.js";const F=y(),B=y(),L=v(),Y=v(),J=y(),K=n(),X=new x,Z=T(),$=y(),ii=w();class ti{constructor(i){this.id=i,this.aabr=w(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.culled=!1,this.visible=!1,this.priority=0}}function ei(i,t){const e=0!==i.distanceToOccluder&&i.distance>i.distanceToOccluder,s=0!==t.distanceToOccluder&&t.distance>t.distanceToOccluder;return e!==s?+e-+s:i.priority!==t.priority?t.priority-i.priority:i.distance!==t.distance?i.distance-t.distance:i.visible!==t.visible?+t.visible-+i.visible:i.id-t.id}class si{constructor(i,t){this.graphics3DGraphic=i,this.slicePlaneEnabled=t,this._info=null,this._labelInfo=null}ensureInfo(i){let t=this.getInfo(i);return t||(t=new ti(this.graphics3DGraphic.graphic.uid),this._setInfo(i,t)),t}getInfo(i){return 16===i?this._labelInfo:this._info}removeInfo(i){this._setInfo(i,null)}_setInfo(i,t){16===i?this._labelInfo=t:this._info=t}}class ri{constructor(){this.camera=new N,this.slicePlane=C(),this.slicePlaneEnabled=!1}copyFrom(i){this.camera.equals(i.camera)||this.camera.copyFrom(i.camera),S(i.slicePlane,this.slicePlane),this.slicePlaneEnabled=i.slicePlaneEnabled}}let oi=class extends t{get dirty(){return this._dirty}get state(){return this._state}constructor(i){super(i),this._dirty=!1,this._viewState=new ri,this._state=0,this._checkOcclusion=new Map,this._active=new Map,this._checkOcclusionIterator=null,this._activeIterator=null,this._occlusionQueryUids=new Array,this._updatingHandles=new b,this._deconflictor=new V((i,t)=>{i.visible=t,this._setGraphicVisibility(this._active.get(i.id),t)},(i,t)=>i.id!==t.id,ei),this._baseOccludedVisibility=10,this._altitudeFactor=2,this._minAltitudeDifference=100}initialize(){this._updatingHandles.add(()=>(this.view?.map?.ground?.opacity??0)>0,()=>this.setDirty()),this._updatingHandles.add(()=>this.view.ready,()=>{this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this.setDirty()})}destroy(){this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this._updatingHandles.destroy(),this._deconflictor.destroy(),this._checkOcclusion.clear(),this._active.clear()}setDirty(){!this._dirty&&(this._active.size>0||this._checkOcclusion.size>0)&&(this._dirty=!0,this.notifyChange("_readyToRun"))}setPriority(i,t){const e=this._active.get(i.graphic.uid)?.getInfo(this.visibilityGroup);e&&(e.priority=t)}get _readyToRun(){return 0!==this._state||this._dirty}get updating(){return this._readyToRun||this._updatingHandles.updating}get updatingProgress(){if(!this.updating)return 1;const i=this._state/5;return this._dirty?.5*i:i}get readyToRun(){return this.view.ready&&null!=this.view.state&&this._readyToRun}get usedMemory(){return this._occlusionQuery?.usedMemory??0+4*(this._occlusionQueryUids?.length??0)}runTask(i){switch(this._state){case 0:this._startUpdate(),i.madeProgress();case 1:if(this._state=1,!this._processCheckOcclusion(i))return;case 2:if(this._state=2,!(this._occlusionQuery?.done??1)||!(this._opaqueOcclusionQuery?.done??1))return z;this._readOcclusionQueryResult(),i.madeProgress();case 3:if(this._state=3,!this._collectActiveGraphics(i))return;case 4:if(this._state=4,this._deconflictor.run(i),!this._deconflictor.done)return;default:this._state=0,this.notifyChange("_readyToRun")}}setGraphicsActive(i,t){t?i.forEach(i=>this.addToActiveGraphics(i)):i.forEach(i=>this.removeFromActiveGraphics(i))}isSupportedLayer(i){if(null==i||!("hiddenIfDeconflicted"in i)||!i.hiddenIfDeconflicted)return!1;const t=i.stageObject;if(1!==(t?.geometries.length??0))return!1;const e=t?.geometries[0],s=e?.material;return s instanceof W}_startUpdate(){R(this.view),this._dirty=!1,this._viewState.copyFrom(this.viewState);const{fullWidth:i,fullHeight:t}=this._viewState.camera;if(this._deconflictor.reset(i,t),this._resetIterators(),this._occlusionQueryUids.length=0,!this._checkOcclusion.size)return this._occlusionQuery=s(this._occlusionQuery),void(this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery))}addToActiveGraphics(i){i.ensureInfo(this.visibilityGroup),this._active.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromActiveGraphics(i){this._active.get(i.graphics3DGraphic.graphic.uid)===i&&(ci(i,this.visibilityGroup),i.removeInfo(this.visibilityGroup),this._active.delete(i.graphics3DGraphic.graphic.uid),this.setDirty())}addToCheckOcclusion(i){this._checkOcclusion.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromCheckOcclusion(i){this._checkOcclusion.get(i.graphics3DGraphic.graphic.uid)===i&&this._checkOcclusion.delete(i.graphics3DGraphic.graphic.uid)}_processCheckOcclusion(i){if(0===this._checkOcclusion.size)return!0;const t=this._ensureCheckOcclusionIterator(),e=this._viewState.camera,r=c(K,e.viewInverseTransposeMatrix),o=this.view.map.ground.opacity>0,n="global"===this.view.viewingMode&&o&&e.relativeElevation>0?X:null;let a=0;null!=n&&(l(n.center,_,e.viewMatrix),n.radius=O(this.view.spatialReference).radius,a=M.distanceToSilhouette(n,_));const u=w();for(;;){if(i.done)return!1;i.madeProgress();const s=t.next();if(!0===s.done)break;const o=s.value,c=o.graphics3DGraphic;if(c.destroyed)continue;if(!c.isVisible(1,8))continue;const h=ui(c,this.visibilityGroup);let d=null,p=!0,_=!1;for(const i of h){if(!this.isSupportedLayer(i))continue;d=hi,this._projectHudLayer(i,e,d),Q(u);const t=i.stageObject.geometries[0].material;if(this._expandBoundingRect(u,e,i,t,d),d.isOutsideScreen){p=!1;break}if(this._isCulledBySlice(o,d.positionWorld)){p=!1;break}if(null!=n&&li(d,n,a)){p=!1;break}d.altitude=this.view.renderCoordsHelper.getAltitude(d.positionWorld);const s=o.ensureInfo(this.visibilityGroup);if(s.altitude=d.altitude,s.distance=d.distance,s.distanceToOccluder=d.distanceToOccluder,s.culled=!1,D(s.aabr,u),!i.occlusionCheck)break;l(B,d.positionView,r);const h=this._ensureOcclusionQuery(),y=this._ensureOpaqueOcclusionQuery();0===this._occlusionQueryUids.length&&(this._initOcclusionQuery(h),this._initOcclusionQuery(y));const f=h.addPosition(B),g=y.addPosition(B);if(f===this._occlusionQueryUids.length&&g===f){const t=i.adaptiveOcclusion;this._occlusionQueryUids.push(t?-c.graphic.uid:c.graphic.uid),_=!0}break}const y=this._active.has(c.graphic.uid);if(y||_){if(y&&(!p||!d)){const i=o.ensureInfo(this.visibilityGroup);i.visible=!d,i.culled=!0}}else this._setGraphicVisibility(o,p)}return this._checkOcclusionIterator=null,this._occlusionQueryUids.length||(this._occlusionQuery=s(this._occlusionQuery),this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery)),this._occlusionQuery?.start(),this._opaqueOcclusionQuery?.start(),!0}_readOcclusionQueryResult(){if(!this._occlusionQuery||!this._occlusionQueryUids.length)return;const i=this._viewState.camera,t=this.view.renderCoordsHelper.getAltitude(i.eye);for(let e=0;e<this._occlusionQueryUids.length;e++){const i=this._occlusionQueryUids[e],s=Math.abs(i),r=i<0,o=this._checkOcclusion.get(s);if(!o)continue;const c=this._occlusionQuery.getOcclusion(e)??-1,n=this._opaqueOcclusionQuery?.getOcclusion(e)??-1,a=o.getInfo(this.visibilityGroup);a&&(a.distanceToOccluder=c>0?a.distance-c:0);const l=0===n||n>0&&this._occludedVisibility(a?a.distance-n:0,a?.distance??n,a?.altitude??0,t,r),u=0===c||c>0&&this._occludedVisibility(a?.distanceToOccluder??0,a?.distance??c,a?.altitude??0,t,r),h=l||u;h&&this._setTransparentMode(o,l&&!u),this._active.has(s)?a&&(a.culled=!h,a.visible=h):this._setGraphicVisibility(o,h)}this._occlusionQueryUids.length=0}_collectActiveGraphics(i){const t=this._ensureActiveGraphicsIterator(),e=16===this.visibilityGroup;for(;!i.done;){i.madeProgress();const s=t.next();if(!0===s.done)return this._activeIterator=null,!0;const r=s.value,o=r.getInfo(this.visibilityGroup);if(!o)continue;const c=!e||r.graphics3DGraphic.isVisible();!c||o.culled?(A(o.aabr,!1,!0),this._setGraphicVisibility(r,c&&o.visible)):this._deconflictor.add(o)}return!1}_occludedVisibility(i,t,e,s,r=!0){const o=Math.max(this._minAltitudeDifference,Math.abs(e-s))-this._minAltitudeDifference,c=r?this._baseOccludedVisibility+this._altitudeFactor*o:0;return 0===i||t-i<=c}_resetIterators(){this._checkOcclusionIterator=null,this._activeIterator=null}_ensureCheckOcclusionIterator(){return this._checkOcclusionIterator??=this._checkOcclusion.values(),this._checkOcclusionIterator}_ensureActiveGraphicsIterator(){return this._activeIterator??=this._active.values(),this._activeIterator}_initOcclusionQuery(i){if(!i)return;const{camera:t}=this._viewState,e=2,s=Math.max(e,e+Math.round(Math.log2(Math.abs(t.relativeElevation))));u(F,this._viewState.camera.eye,2**-s),u(F,h(F,F),2**s),i.init(this._checkOcclusion.size,F)}_ensureOcclusionQuery(){return this._occlusionQuery??=new q({view:this.view}),this._occlusionQuery}_ensureOpaqueOcclusionQuery(){return this._opaqueOcclusionQuery??=new q({view:this.view,category:U.OPAQUE_OCCLUSION_QUERY}),this._opaqueOcclusionQuery}_getNumVisible(i){return[...this._checkOcclusion.values()].reduce((t,e)=>t+(e.getInfo(i)?.visible?1:0),0)}_projectHudLayer(i,t,e){const s=i.stageObject,r=s.geometries[0],o=r.material;d(B,s.boundingVolumeWorldSpace.bounds.center),l(F,B,t.viewMatrix);const c=r.attributes,n=c.get("normal").data,a=c.get("centerOffset")?.data??_,[h]=c.get("groundDistance").data;o.applyShaderOffsets(B,F,n,s.transformation,a,h,t,e.screenSizePerspectiveEvaluators),f(L,F[0],F[1],F[2],1),g(Y,L,t.projectionMatrix),u(e.positionNDC,Y,1/Y[3]),o.applyShaderOffsetsNDC(e.positionNDC,a,h,t,e.positionNDC,J),e.distanceWithoutPolygonOffset=t.depthNDCToWorld(J[2]),e.distance=J[2]===e.positionNDC[2]?e.distanceWithoutPolygonOffset:t.depthNDCToWorld(e.positionNDC[2]),f(Y,e.positionNDC[0],e.positionNDC[1],e.positionNDC[2],1),g(L,Y,t.inverseProjectionMatrix),m(L,L,1/L[3]),p(e.positionView,L[0],L[1],L[2]),d(e.positionWorld,B)}_isCulledBySlice(i,t){return i.slicePlaneEnabled&&this._viewState.slicePlaneEnabled&&P(this._viewState.slicePlane,t)}_expandBoundingRect(i,t,s,r,{positionNDC:o,screenSizePerspectiveEvaluators:c}){const n=s.getScreenSize(ni);c.evaluator.applyVec2(n,n),n[0]*=t.pixelRatio,n[1]*=t.pixelRatio;const a=G(r.calculateRelativeScreenBounds(n,c.alignmentEvaluator.apply(t.pixelRatio),ii),e(0,t.fullWidth,.5+.5*o[0]),e(0,t.fullHeight,.5+.5*o[1])),l=this.marginFactor;if(0!==l){const i=l*Math.min(I(a),j(a));a[0]-=i,a[1]-=i,a[2]+=i,a[3]+=i}k(i,a,i)}_setGraphicVisibility(i,t){const e=i?.graphics3DGraphic;e&&!e.destroyed&&(e.setVisibilityFlag(this.visibilityGroup,8,t),16===this.visibilityGroup&&this.view.labeler.setLabelGraphicVisibility(e,t))}_setTransparentMode(i,t){const e=i?.graphics3DGraphic;if(e&&!e.destroyed)for(const s of e.layers){if("object3d"!==s?.type)continue;const{graphics3DSymbolLayer:i}=s;E(i)&&i.updateTransparentMode(s,t)}}};function ci(i,t){const e=i.graphics3DGraphic;e.destroyed||e.setVisibilityFlag(t,8,!0)}i([r({constructOnly:!0})],oi.prototype,"view",void 0),i([r({type:Boolean,readOnly:!0})],oi.prototype,"_readyToRun",null),i([r({type:Boolean,readOnly:!0})],oi.prototype,"updating",null),i([r({readOnly:!0})],oi.prototype,"_updatingHandles",void 0),oi=i([o("esri.views.3d.layers.graphics.Deconflictor")],oi);const ni=a();class ai{constructor(){this.positionWorld=y(),this.positionView=y(),this.positionNDC=y(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.distanceWithoutPolygonOffset=0,this.screenSizePerspectiveEvaluators=new H}get isOutsideScreen(){const i=this.positionNDC;return i[0]<-1||i[1]<-1||i[2]<-1||i[0]>=1||i[1]>=1||i[2]>=1}}function li(i,t,e){return d(Z.direction,i.positionView),p(Z.origin,0,0,0),!!t.intersectRay(Z,$)&&i.distanceWithoutPolygonOffset>e}function ui(i,t){return 16===t?i.labelLayers:i.layers}const hi=new ai;export{oi as Deconflictor,si as DeconflictorGraphic,ri as DeconflictorViewState};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clone as e}from"../../../../core/lang.js";import{getMetersPerVerticalUnitForSR as t}from"../../../../core/units.js";import{normalFromMat4 as r}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{invert as s,invertOrIdentity as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as a,sub as l,cross as c,add as m,normalize as p,transformMat4 as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ONES as u,create as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as g,ZEROS as y}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{computeTranslationToOriginAndRotation as f}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{create as b,fromBuffer as x,intersectsClippingArea as _}from"../../../../geometry/support/aaBoundingBox.js";import{getZeroIndexArray as C}from"../../../../geometry/support/Indices.js";import{f as v}from"../../../../chunks/vec3.js";import{SnappingCandidateVertex as w,SnappingCandidateEdge as S}from"../../../../layers/graphics/data/SnappingCandidate.js";import{getDriverAxisSizeValue as j}from"../../../../renderers/support/renderingInfoUtils.js";import{needsElevationUpdates3D as I,SampleElevationInfo as P}from"./elevationAlignmentUtils.js";import{extrudePolygon as E}from"./extrudeUtils.js";import{Object3DEdgeState as A,Graphics3DObject3DGraphicLayer as U}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as z}from"./Graphics3DSymbolLayer.js";import{computeCentroid as O}from"./graphicUtils.js";import{geometryAsPolygon as D}from"./polygonUtils.js";import{createMaterial as M}from"../support/edgeUtils.js";import{encodeNaNUInt8 as G}from"../support/symbolColorUtils.js";import{debugFlags as L}from"../../support/debugFlags.js";import{SamplePosition as V}from"../../support/ElevationProvider.js";import{loadTessellationUtils as R,preloadedPolygonToRenderInfoElevationAligned as B}from"../../support/renderInfoUtils/polygon.js";import{Attribute as F}from"../../webgl-engine/lib/Attribute.js";import{Geometry as T}from"../../webgl-engine/lib/Geometry.js";import{isGeometryWithMapPositions as N}from"../../webgl-engine/lib/GeometryWithMapPositions.js";import{compressNormals as H,compressNormal as q}from"../../webgl-engine/lib/Normals.js";import{Object3D as W}from"../../webgl-engine/lib/Object3D.js";import{DefaultMaterial as k}from"../../webgl-engine/materials/DefaultMaterial.js";const Z=["polygon","extent"];class J extends z{constructor(e,t,r,i){super(e,t,r,i,ee(t)),this.ensureDrapedStatus(!1)}async doLoad(){const e=this.symbolLayer,t=e?.material,r=this.symbolLayer.material?.color?.a,i=this._hasDrivenColorOrOpacity,s=this.needsDrivenTransparentPass||i&&null!=r&&r<1,n=t?.emissive,o=("color"===n?.source?n?.strength:void 0)??0,a=!i&&(null==r||0===r),l=i?g:this._materialColor?.toUnitRGBA()??y,c={usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0,useIndexing:!0,ambient:u,diffuse:u,externalColor:l,opacity:a?0:1,layerOpacity:this._getLayerOpacity(),drivenOpacity:s,hasSymbolColors:i,hasSlicePlane:this._context.slicePlaneEnabled,castShadows:e.castShadows,emissiveStrengthFromSymbol:o,emissiveSource:1,offsetTransparentBackfaces:!0,normalType:1},m=new k(c,this._context),p=new k({...c,cullFace:2},this._context);this._materials[0]=m,this._materials[1]=p,this._updateTransparentDepedentMaterialParameters(),await R()}destroy(){super.destroy(),this._materials.length=0}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry,Z,this.symbolLayer.type))return null;const r=this._getDrivenUInt8ColorWithNaNSupport(e.renderingInfo,this._materialColor,!1);G(r,r);const i=this.createElevationContextForGraphic(t);return this._createAs3DShape(t,e.renderingInfo,r,i,t.uid)}layerOpacityChanged(e,t){const r=this._getLayerOpacity();this._materials[0]?.setParameters({layerOpacity:r}),this._materials[1]?.setParameters({layerOpacity:r}),this._updateTransparentDepedentMaterialParameters(),e?.forEach(e=>t(e)?.layerOpacityChanged(r,this._context.isAsync))}layerScreenSizePerspectiveChanged(){}layerElevationInfoChanged(e,t){return this.updateGraphics3DGraphicElevationInfo(e,t,I)}slicePlaneEnabledChanged(e,t){return this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),this._materials[1]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),e?.forEach(e=>{const r=t(e);null!=r&&r.slicePlaneEnabledChanged(this._context.slicePlaneEnabled,this._context.isAsync)}),!0}physicalBasedRenderingChanged(){const e={usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0};return this._materials[0]?.setParameters(e),this._materials[1]?.setParameters(e),!0}_getExtrusionSize(e){let t;return t=e.size&&this._drivenProperties.size?j(e.size.output,2)??0:this._getSymbolSize(),t/=this._context.renderCoordsHelper.unitInMeters,t}_containsRenderableGeometry(e){return"polygonIndexCount"in e&&"outlineIndexCount"in e?e.polygonIndexCount>0||e.outlineIndexCount>0:super._containsRenderableGeometry(e)}applyRendererDiff(e,t){return this._drivenPropertiesChanged(t)?0:1}async queryForSnapping(r,i,s,n){const o=this._getExtrusionSize(s)*this._context.renderCoordsHelper.unitInMeters/t(i),{objectId:a,target:l}=r,c=e(l);switch(c.z=(c.z??0)+o,r.type){case"edge":{const{start:t,end:i}=r,s=e(t),n=e(i);return s.z=(s.z??0)+o,n.z=(n.z??0)+o,[new S(a,c,1/0,s,n)]}case"vertex":return[new w(a,c,1/0),new S(a,l,1/0,l,c)];default:return[]}}_getSymbolSize(){return this.symbolLayer.size??1}_createAs3DShape(e,t,n,a,l){const c=D(e.geometry);if(null==c)return null;if(0===c.rings.length||!c.rings.some(e=>e.length>0))return this._logGeometryValidationWarnings(c.rings,"rings","ExtrudeSymbol3DLayer"),null;const m=B(c,this._context.elevationProvider,this._context.renderCoordsHelper,a,{outlineOutput:"tessellated-indices"});if(null==m)return;this._logGeometryCreationWarnings(m,c.rings,"rings","ExtrudeSymbol3DLayer");const p=O(c);if(null==p)return null;const h=new Array,u=new Array,g=b(),y=o(),C=d(),w=1===this._context.renderCoordsHelper.viewingMode;w||this._context.renderCoordsHelper.worldUpAtPosition(null,C),f(c.spatialReference,[p.x,p.y,0],y,this._context.renderCoordsHelper.spatialReference);const S=o();s(S,y);const j=i();r(j,S);const P=new Map,z=this._materials[0];if(this._context.clippingExtent&&(x(m.mapPositions,g),!_(g,this._context.clippingExtent)))return;if(0===m.polygonIndexCount&&0===m.outlineIndexCount)return;const G=this._getExtrusionSize(t),L=E(m,{height:G,worldUp:C,spherical:w,requireElevation:!0,requireNormals:!0,requireSizes:!0});if(null==L)return;v(L.vertices,L.vertices,S);const V=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:l,layerViewUid:this._context.layerViewUid}),R=new le(L.vertices,L.elevation,H(L.normals),L.sizes),F=K(z,L.indices,L.indices.length-L.bottomIndices.length,R,n,V),T=m.vertexCount,N=L.polygonVertexCount,q=2*m.outlineSegmentCount,k=m.polygonIndexCount/3,Z=new ce(T,N,q,k);if($(F,Z,y),P.set(F,Z),h.push(F),L.bottomIndices.length>0&&h.push(K(this._materials[1],L.bottomIndices,0,R,n,V)),u.push(R.heights),0===h.length)return null;const J=new W({geometries:h,layerViewUid:this._context.layerViewUid,graphicUid:l,isElevationSource:!0});J.transformation=y;const Q=M(this.symbolLayer,{opacity:this._getLayerOpacity()}),X=Q?new A(this._materials[0],Q,this._context.slicePlaneEnabled):null,ee=new U(this,J,null,(e,t,r,i,s)=>Y(e,t,r,i,s,u,P),a,X);return ee.alignedSampledElevation=m.sampledElevation,ee.needsElevationUpdates=I(a.mode),ee}get _materialColor(){return this.symbolLayer.material?.color}_updateTransparentDepedentMaterialParameters(){const e=this._materials[0];e&&e.setParameters({cullFace:e.transparent?0:2})}}function K(e,t,r,i,s,n){const{attributeIndices:o,drawIndices:a}=Q(t),l=[["position",new F(i.positions,o,3,!0)],["normalCompressed",new F(i.normals,o,2,!0)]];if(e.parameters.hasSymbolColors){const e=C(o.length);l.push(["symbolColor",new F(s,e,4,!0)])}return new T(e,l,i.elevation,0,n,r,null,a)}function Q(e){const t=new Array,r=new Map,i=new Array;for(let s=0;s<e.length;++s){const n=e[s];let o=r.get(n);null==o&&(o=t.length,t.push(n),r.set(n,o)),i.push(o)}return{attributeIndices:t,drawIndices:i}}const X=d();function Y(e,t,r,i,s,l,c){const m=e.stageObject,p=m.geometries,u=p.length,d="absolute-height"!==t.mode;let g=0;const y=m.transformation,f=n(o(),y);for(let n=0,o=0;n<u;++n){const e=p[n],t=c.get(e);if(!t||!N(e))continue;const u=e.getMutableAttribute("position").data,b=l[o++],x=new V(e.mapPositions),_=u.length/3;let C=!1,v=0;{let e=0;for(let t=0;t<_;t++){X[0]=u[e],X[1]=u[e+1],X[2]=u[e+2],i(x,ie),d&&(v+=ie.sampledElevation),L.ENABLE_OPTIMIZATIONS?(a(te,u[e],u[e+1],u[e+2]),h(te,te,y),s.setAltitude(te,ie.z+b[e/3]),h(te,te,f)):(a(te,x.array[x.offset],x.array[x.offset+1],ie.z+b[e/3]),null!=r&&s.toRenderCoords(te,r,te),h(te,te,f)),u[e]=te[0],u[e+1]=te[1],u[e+2]=te[2];const t=se/s.unitInMeters;(Math.abs(X[0]-u[e])>=t||Math.abs(X[1]-u[e+1])>=t||Math.abs(X[2]-u[e+2])>=t)&&(C=!0),x.offset+=3,e+=3}}if(C){$(e,t,y),m.geometryVertexAttributeUpdated(p[n],"normalCompressed"),e.invalidateBoundingInfo(),m.geometryVertexAttributeUpdated(p[n],"position");const r=p[n+1],i=!c.has(r);r&&i&&(r.invalidateBoundingInfo(),m.geometryVertexAttributeUpdated(r,"position"))}g+=v/_}return g/u}function $(e,t,r){const i=e.getMutableAttribute("position"),s=e.getMutableAttribute("normalCompressed").data,n=i.data,o=e.primitivePositionIndices,{topVertexStart:u,topVertexCount:d,topFaceStart:g,topFaceCount:y}=t,f=g+y,b=u+d,x=ne,_=oe,C=ae,v=re,w=te;a(w,0,0,0);const S=(e,t)=>{const i=3*e;a(t,n[i+0],n[i+1],n[i+2]),h(t,t,r)};for(let a=g;a<f;++a){const e=3*a;S(o[e+0],x[0]),S(o[e+1],x[1]),S(o[e+2],x[2]),l(_,x[1],x[0]),l(C,x[2],x[0]),c(v,_,C),m(w,w,v)}p(w,w);for(let a=u;a<b;++a){const e=w[0],t=w[1],r=w[2];q(s,a,e,t,r)}}function ee(e){return 1===(e.material?.color?.a??0)}const te=d(),re=d(),ie=new P,se=.01,ne=[d(),d(),d()],oe=d(),ae=d();class le{constructor(e,t,r,i){this.positions=e,this.elevation=t,this.normals=r,this.heights=i}}class ce{constructor(e,t,r,i){this.topVertexStart=e,this.topVertexCount=t,this.topFaceStart=r,this.topFaceCount=i}}export{J as Graphics3DExtrudeSymbolLayer};
2
+ import{clone as e}from"../../../../core/lang.js";import{getMetersPerVerticalUnitForSR as t}from"../../../../core/units.js";import{normalFromMat4 as r}from"../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{invert as s,invertOrIdentity as n}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as o}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as a,sub as l,cross as c,add as m,normalize as p,transformMat4 as h}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ONES as u,create as d}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ONES as g,ZEROS as y}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{computeTranslationToOriginAndRotation as f}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{create as b,fromBuffer as x,intersectsClippingArea as _}from"../../../../geometry/support/aaBoundingBox.js";import{getZeroIndexArray as C}from"../../../../geometry/support/Indices.js";import{a as v}from"../../../../chunks/vec3.js";import{SnappingCandidateVertex as w,SnappingCandidateEdge as S}from"../../../../layers/graphics/data/SnappingCandidate.js";import{getDriverAxisSizeValue as j}from"../../../../renderers/support/renderingInfoUtils.js";import{needsElevationUpdates3D as I,SampleElevationInfo as P}from"./elevationAlignmentUtils.js";import{extrudePolygon as E}from"./extrudeUtils.js";import{Object3DEdgeState as A,Graphics3DObject3DGraphicLayer as U}from"./Graphics3DObject3DGraphicLayer.js";import{Graphics3DSymbolLayer as z}from"./Graphics3DSymbolLayer.js";import{computeCentroid as O}from"./graphicUtils.js";import{geometryAsPolygon as D}from"./polygonUtils.js";import{createMaterial as M}from"../support/edgeUtils.js";import{encodeNaNUInt8 as G}from"../support/symbolColorUtils.js";import{debugFlags as L}from"../../support/debugFlags.js";import{SamplePosition as V}from"../../support/ElevationProvider.js";import{loadTessellationUtils as R,preloadedPolygonToRenderInfoElevationAligned as B}from"../../support/renderInfoUtils/polygon.js";import{Attribute as F}from"../../webgl-engine/lib/Attribute.js";import{Geometry as T}from"../../webgl-engine/lib/Geometry.js";import{isGeometryWithMapPositions as N}from"../../webgl-engine/lib/GeometryWithMapPositions.js";import{compressNormals as H,compressNormal as q}from"../../webgl-engine/lib/Normals.js";import{Object3D as W}from"../../webgl-engine/lib/Object3D.js";import{DefaultMaterial as k}from"../../webgl-engine/materials/DefaultMaterial.js";const Z=["polygon","extent"];class J extends z{constructor(e,t,r,i){super(e,t,r,i,ee(t)),this.ensureDrapedStatus(!1)}async doLoad(){const e=this.symbolLayer,t=e?.material,r=this.symbolLayer.material?.color?.a,i=this._hasDrivenColorOrOpacity,s=this.needsDrivenTransparentPass||i&&null!=r&&r<1,n=t?.emissive,o=("color"===n?.source?n?.strength:void 0)??0,a=!i&&(null==r||0===r),l=i?g:this._materialColor?.toUnitRGBA()??y,c={usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0,useIndexing:!0,ambient:u,diffuse:u,externalColor:l,opacity:a?0:1,layerOpacity:this._getLayerOpacity(),drivenOpacity:s,hasSymbolColors:i,hasSlicePlane:this._context.slicePlaneEnabled,castShadows:e.castShadows,emissiveStrengthFromSymbol:o,emissiveSource:1,offsetTransparentBackfaces:!0,normalType:1},m=new k(c,this._context),p=new k({...c,cullFace:2},this._context);this._materials[0]=m,this._materials[1]=p,this._updateTransparentDepedentMaterialParameters(),await R()}destroy(){super.destroy(),this._materials.length=0}createGraphics3DGraphic(e){const t=e.graphic;if(!this._validateGeometry(t.geometry,Z,this.symbolLayer.type))return null;const r=this._getDrivenUInt8ColorWithNaNSupport(e.renderingInfo,this._materialColor,!1);G(r,r);const i=this.createElevationContextForGraphic(t);return this._createAs3DShape(t,e.renderingInfo,r,i,t.uid)}layerOpacityChanged(e,t){const r=this._getLayerOpacity();this._materials[0]?.setParameters({layerOpacity:r}),this._materials[1]?.setParameters({layerOpacity:r}),this._updateTransparentDepedentMaterialParameters(),e?.forEach(e=>t(e)?.layerOpacityChanged(r,this._context.isAsync))}layerScreenSizePerspectiveChanged(){}layerElevationInfoChanged(e,t){return this.updateGraphics3DGraphicElevationInfo(e,t,I)}slicePlaneEnabledChanged(e,t){return this._materials[0]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),this._materials[1]?.setParameters({hasSlicePlane:this._context.slicePlaneEnabled}),e?.forEach(e=>{const r=t(e);null!=r&&r.slicePlaneEnabledChanged(this._context.slicePlaneEnabled,this._context.isAsync)}),!0}physicalBasedRenderingChanged(){const e={usePBR:this._context.physicalBasedRenderingEnabled,isSchematic:!0};return this._materials[0]?.setParameters(e),this._materials[1]?.setParameters(e),!0}_getExtrusionSize(e){let t;return t=e.size&&this._drivenProperties.size?j(e.size.output,2)??0:this._getSymbolSize(),t/=this._context.renderCoordsHelper.unitInMeters,t}_containsRenderableGeometry(e){return"polygonIndexCount"in e&&"outlineIndexCount"in e?e.polygonIndexCount>0||e.outlineIndexCount>0:super._containsRenderableGeometry(e)}applyRendererDiff(e,t){return this._drivenPropertiesChanged(t)?0:1}async queryForSnapping(r,i,s,n){const o=this._getExtrusionSize(s)*this._context.renderCoordsHelper.unitInMeters/t(i),{objectId:a,target:l}=r,c=e(l);switch(c.z=(c.z??0)+o,r.type){case"edge":{const{start:t,end:i}=r,s=e(t),n=e(i);return s.z=(s.z??0)+o,n.z=(n.z??0)+o,[new S(a,c,1/0,s,n)]}case"vertex":return[new w(a,c,1/0),new S(a,l,1/0,l,c)];default:return[]}}_getSymbolSize(){return this.symbolLayer.size??1}_createAs3DShape(e,t,n,a,l){const c=D(e.geometry);if(null==c)return null;if(0===c.rings.length||!c.rings.some(e=>e.length>0))return this._logGeometryValidationWarnings(c.rings,"rings","ExtrudeSymbol3DLayer"),null;const m=B(c,this._context.elevationProvider,this._context.renderCoordsHelper,a,{outlineOutput:"tessellated-indices"});if(null==m)return;this._logGeometryCreationWarnings(m,c.rings,"rings","ExtrudeSymbol3DLayer");const p=O(c);if(null==p)return null;const h=new Array,u=new Array,g=b(),y=o(),C=d(),w=1===this._context.renderCoordsHelper.viewingMode;w||this._context.renderCoordsHelper.worldUpAtPosition(null,C),f(c.spatialReference,[p.x,p.y,0],y,this._context.renderCoordsHelper.spatialReference);const S=o();s(S,y);const j=i();r(j,S);const P=new Map,z=this._materials[0];if(this._context.clippingExtent&&(x(m.mapPositions,g),!_(g,this._context.clippingExtent)))return;if(0===m.polygonIndexCount&&0===m.outlineIndexCount)return;const G=this._getExtrusionSize(t),L=E(m,{height:G,worldUp:C,spherical:w,requireElevation:!0,requireNormals:!0,requireSizes:!0});if(null==L)return;v(L.vertices,L.vertices,S);const V=this._context.stage.renderView.getObjectAndLayerIdColor({graphicUid:l,layerViewUid:this._context.layerViewUid}),R=new le(L.vertices,L.elevation,H(L.normals),L.sizes),F=K(z,L.indices,L.indices.length-L.bottomIndices.length,R,n,V),T=m.vertexCount,N=L.polygonVertexCount,q=2*m.outlineSegmentCount,k=m.polygonIndexCount/3,Z=new ce(T,N,q,k);if($(F,Z,y),P.set(F,Z),h.push(F),L.bottomIndices.length>0&&h.push(K(this._materials[1],L.bottomIndices,0,R,n,V)),u.push(R.heights),0===h.length)return null;const J=new W({geometries:h,layerViewUid:this._context.layerViewUid,graphicUid:l,isElevationSource:!0});J.transformation=y;const Q=M(this.symbolLayer,{opacity:this._getLayerOpacity()}),X=Q?new A(this._materials[0],Q,this._context.slicePlaneEnabled):null,ee=new U(this,J,null,(e,t,r,i,s)=>Y(e,t,r,i,s,u,P),a,X);return ee.alignedSampledElevation=m.sampledElevation,ee.needsElevationUpdates=I(a.mode),ee}get _materialColor(){return this.symbolLayer.material?.color}_updateTransparentDepedentMaterialParameters(){const e=this._materials[0];e&&e.setParameters({cullFace:e.transparent?0:2})}}function K(e,t,r,i,s,n){const{attributeIndices:o,drawIndices:a}=Q(t),l=[["position",new F(i.positions,o,3,!0)],["normalCompressed",new F(i.normals,o,2,!0)]];if(e.parameters.hasSymbolColors){const e=C(o.length);l.push(["symbolColor",new F(s,e,4,!0)])}return new T(e,l,i.elevation,0,n,r,null,a)}function Q(e){const t=new Array,r=new Map,i=new Array;for(let s=0;s<e.length;++s){const n=e[s];let o=r.get(n);null==o&&(o=t.length,t.push(n),r.set(n,o)),i.push(o)}return{attributeIndices:t,drawIndices:i}}const X=d();function Y(e,t,r,i,s,l,c){const m=e.stageObject,p=m.geometries,u=p.length,d="absolute-height"!==t.mode;let g=0;const y=m.transformation,f=n(o(),y);for(let n=0,o=0;n<u;++n){const e=p[n],t=c.get(e);if(!t||!N(e))continue;const u=e.getMutableAttribute("position").data,b=l[o++],x=new V(e.mapPositions),_=u.length/3;let C=!1,v=0;{let e=0;for(let t=0;t<_;t++){X[0]=u[e],X[1]=u[e+1],X[2]=u[e+2],i(x,ie),d&&(v+=ie.sampledElevation),L.ENABLE_OPTIMIZATIONS?(a(te,u[e],u[e+1],u[e+2]),h(te,te,y),s.setAltitude(te,ie.z+b[e/3]),h(te,te,f)):(a(te,x.array[x.offset],x.array[x.offset+1],ie.z+b[e/3]),null!=r&&s.toRenderCoords(te,r,te),h(te,te,f)),u[e]=te[0],u[e+1]=te[1],u[e+2]=te[2];const t=se/s.unitInMeters;(Math.abs(X[0]-u[e])>=t||Math.abs(X[1]-u[e+1])>=t||Math.abs(X[2]-u[e+2])>=t)&&(C=!0),x.offset+=3,e+=3}}if(C){$(e,t,y),m.geometryVertexAttributeUpdated(p[n],"normalCompressed"),e.invalidateBoundingInfo(),m.geometryVertexAttributeUpdated(p[n],"position");const r=p[n+1],i=!c.has(r);r&&i&&(r.invalidateBoundingInfo(),m.geometryVertexAttributeUpdated(r,"position"))}g+=v/_}return g/u}function $(e,t,r){const i=e.getMutableAttribute("position"),s=e.getMutableAttribute("normalCompressed").data,n=i.data,o=e.primitivePositionIndices,{topVertexStart:u,topVertexCount:d,topFaceStart:g,topFaceCount:y}=t,f=g+y,b=u+d,x=ne,_=oe,C=ae,v=re,w=te;a(w,0,0,0);const S=(e,t)=>{const i=3*e;a(t,n[i+0],n[i+1],n[i+2]),h(t,t,r)};for(let a=g;a<f;++a){const e=3*a;S(o[e+0],x[0]),S(o[e+1],x[1]),S(o[e+2],x[2]),l(_,x[1],x[0]),l(C,x[2],x[0]),c(v,_,C),m(w,w,v)}p(w,w);for(let a=u;a<b;++a){const e=w[0],t=w[1],r=w[2];q(s,a,e,t,r)}}function ee(e){return 1===(e.material?.color?.a??0)}const te=d(),re=d(),ie=new P,se=.01,ne=[d(),d(),d()],oe=d(),ae=d();class le{constructor(e,t,r,i){this.positions=e,this.elevation=t,this.normals=r,this.heights=i}}class ce{constructor(e,t,r,i){this.topVertexStart=e,this.topVertexCount=t,this.topFaceStart=r,this.topFaceCount=i}}export{J as Graphics3DExtrudeSymbolLayer};