@arcgis/core 5.2.0-next.95 → 5.2.0-next.97

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 (542) hide show
  1. package/WebScene.d.ts +6 -3
  2. package/WebScene.js +1 -1
  3. package/applications/WebEditor/geometryUtils.d.ts +1 -1
  4. package/arcade/arcadeAsyncRuntime.js +1 -1
  5. package/arcade/arcadeCompiler.js +1 -1
  6. package/arcade/arcadeRuntime.js +1 -1
  7. package/arcade/containerUtils.js +1 -1
  8. package/arcade/functions/track.js +1 -1
  9. package/arcgisGlobal.d.ts +2 -0
  10. package/assets/components/assets/icon/aiAgent16.json +1 -0
  11. package/assets/components/assets/icon/aiAgent24.json +1 -0
  12. package/assets/components/assets/icon/aiAgent32.json +1 -0
  13. package/assets/components/assets/icon/aiAgents16.json +1 -0
  14. package/assets/components/assets/icon/aiAgents24.json +1 -0
  15. package/assets/components/assets/icon/aiAgents32.json +1 -0
  16. package/assets/components/assets/icon/explodeGeometry16.json +1 -0
  17. package/assets/components/assets/icon/explodeGeometry24.json +1 -0
  18. package/assets/components/assets/icon/explodeGeometry32.json +1 -0
  19. package/assets/components/assets/icon/integration16.json +1 -0
  20. package/assets/components/assets/icon/integration24.json +1 -0
  21. package/assets/components/assets/icon/integration32.json +1 -0
  22. package/assets/components/assets/icon/spatiotemporalCatalog16.json +1 -0
  23. package/assets/components/assets/icon/spatiotemporalCatalog24.json +1 -0
  24. package/assets/components/assets/icon/spatiotemporalCatalog32.json +1 -0
  25. package/assets/components/assets/input-time-zone/t9n/messages.de.json +1 -1
  26. package/assets/esri/core/workers/RemoteClient.js +1 -1
  27. package/assets/esri/core/workers/chunks/000f91a18c22377f8525.js +1 -0
  28. package/assets/esri/core/workers/chunks/{05662a663f761dd3dea5.js → 006146ad6d4a5cbf1a1f.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{bd1a7e95a797e1ed4a7b.js → 013c17e07756fa465845.js} +1 -1
  30. package/assets/esri/core/workers/chunks/014eaccf2c2d357981f0.js +1 -0
  31. package/assets/esri/core/workers/chunks/{f253875feb11883deb84.js → 04d4cd66485b622403d0.js} +1 -1
  32. package/assets/esri/core/workers/chunks/05eb064f9b543890ae24.js +1 -0
  33. package/assets/esri/core/workers/chunks/{26737d061c7cfbbab95c.js → 0809a55a2f9be07cc5a9.js} +1 -1
  34. package/assets/esri/core/workers/chunks/0930738f43ce09b2ed2d.js +1 -0
  35. package/assets/esri/core/workers/chunks/{691434d4c6a38e63d819.js → 0a242e76bc293b0ad04b.js} +1 -1
  36. package/assets/esri/core/workers/chunks/0a4092578dc7578bcf76.js +1 -0
  37. package/assets/esri/core/workers/chunks/0e11bee9b56a7f51b012.js +1 -0
  38. package/assets/esri/core/workers/chunks/0e65869a5dd5a3917da7.js +1 -0
  39. package/assets/esri/core/workers/chunks/0ffb5a1275d07dcd9115.js +1 -0
  40. package/assets/esri/core/workers/chunks/{e370a3337b3c90240e73.js → 105da965fc90604eb6bf.js} +1 -1
  41. package/assets/esri/core/workers/chunks/1082bb0858585bd4fa21.js +2 -0
  42. package/assets/esri/core/workers/chunks/{5235b9c21ac4156c2375.js → 10f4c5533f50c3693318.js} +1 -1
  43. package/assets/esri/core/workers/chunks/1201bb22a2bfd7d7ecba.js +1 -0
  44. package/assets/esri/core/workers/chunks/16f55c5d642a23c2547e.js +1 -0
  45. package/assets/esri/core/workers/chunks/{09e01fd1c199be0c8e03.js → 16ffbe484f6cd4736f79.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{1bf967c68d0c795d3fb4.js → 19a4907fc93ae8b817e9.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{f74c7cbe4bd12f73ae90.js → 19d7339f20f3008c4893.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{a8aa8cb60b30f0983e7e.js → 1a9f17781e0a3bc5106f.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{bf7875fda48b15271a10.js → 1bef7097fe5e402539ea.js} +1 -1
  50. package/assets/esri/core/workers/chunks/{fa377112ef3b78f6ed18.js → 1de1cc0ed0f169a58aff.js} +1 -1
  51. package/assets/esri/core/workers/chunks/{0549e2badf511e27aa54.js → 1e3b07cf0e608431a277.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{2e51764c8aa31096cb2a.js → 20feca2fdd304b3e9664.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{4c73c2f4331351e2a50c.js → 22ff018342860249b3eb.js} +1 -1
  54. package/assets/esri/core/workers/chunks/248df6fda489a9de5852.js +1 -0
  55. package/assets/esri/core/workers/chunks/279b16727d4b515eca44.js +1 -0
  56. package/assets/esri/core/workers/chunks/2b10d6597af3eeec5396.js +1 -0
  57. package/assets/esri/core/workers/chunks/2bd4b536e329112591c4.js +1 -0
  58. package/assets/esri/core/workers/chunks/2c01477b69c38f691e19.js +1 -0
  59. package/assets/esri/core/workers/chunks/2e2349387a2b9903f13c.js +2 -0
  60. package/assets/esri/core/workers/chunks/{4d700cb028f6306b163e.js → 32aa1529e84b839d051d.js} +1 -1
  61. package/assets/esri/core/workers/chunks/33041e50ea02d99480b0.js +1 -0
  62. package/assets/esri/core/workers/chunks/{5d7a5aa608ed6192b016.js → 349982635e921e838030.js} +1 -1
  63. package/assets/esri/core/workers/chunks/35d0a7597473d46866de.js +1 -0
  64. package/assets/esri/core/workers/chunks/374d726fdd0a9848cea5.js +1 -0
  65. package/assets/esri/core/workers/chunks/379f5ca5372d834af497.js +1 -0
  66. package/assets/esri/core/workers/chunks/37ae52c71bf9c70fbb92.js +1 -0
  67. package/assets/esri/core/workers/chunks/{05393b23ab24126d4236.js → 38bc5d09ae07f486d457.js} +1 -1
  68. package/assets/esri/core/workers/chunks/3bafa01ca01a67d09432.js +1 -0
  69. package/assets/esri/core/workers/chunks/3c7901ea007c9615ba54.js +1 -0
  70. package/assets/esri/core/workers/chunks/4047208f9559e06d7102.js +1 -0
  71. package/assets/esri/core/workers/chunks/4049e9b86c8e27a7ff12.js +1 -0
  72. package/assets/esri/core/workers/chunks/411bbdecba340df11d95.js +2 -0
  73. package/assets/esri/core/workers/chunks/42b5533f94ebcdc4befe.js +1 -0
  74. package/assets/esri/core/workers/chunks/44ca13c874b5aa0ed5a0.js +1 -0
  75. package/assets/esri/core/workers/chunks/4717831effb1ac6d5f5d.js +1 -0
  76. package/assets/esri/core/workers/chunks/{5edf77618ca51819d7c4.js → 476535cfb06ced74d611.js} +2 -2
  77. package/assets/esri/core/workers/chunks/486f1277fe834c0fc4c1.js +1 -0
  78. package/assets/esri/core/workers/chunks/48ade66f1685a1aaffba.js +1 -0
  79. package/assets/esri/core/workers/chunks/4d13c1a04788e5222678.js +1 -0
  80. package/assets/esri/core/workers/chunks/{cc3186dcbbf5edff8b9e.js → 4d7f6c92041d52cc8732.js} +1 -1
  81. package/assets/esri/core/workers/chunks/{595edbc1e9bba47d5676.js → 4f89da01b67b66a92c01.js} +1 -1
  82. package/assets/esri/core/workers/chunks/507bbcde2b39321b50a4.js +1 -0
  83. package/assets/esri/core/workers/chunks/{9b8e33985310f281f084.js → 56a5b65961e722f5cae9.js} +1 -1
  84. package/assets/esri/core/workers/chunks/5830deda121e4c95d199.js +1 -0
  85. package/assets/esri/core/workers/chunks/{b102ae764c14d8b32ace.js → 58a52adc42fbe5cd12c6.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{b0e25ccb5a1e57a82628.js → 58b93f13316196d2e97d.js} +1 -1
  87. package/assets/esri/core/workers/chunks/58f98bd89b644cfdafae.js +1 -0
  88. package/assets/esri/core/workers/chunks/5a8658e4ef5163e8ab3b.js +1 -0
  89. package/assets/esri/core/workers/chunks/5bb8d9d887dd4211afd2.js +1 -0
  90. package/assets/esri/core/workers/chunks/5d7625eb9997cd0dff09.js +1 -0
  91. package/assets/esri/core/workers/chunks/5e56a004b4407b8066eb.js +1 -0
  92. package/assets/esri/core/workers/chunks/5efc66be4576c6f67064.js +1 -0
  93. package/assets/esri/core/workers/chunks/60b1af54e7fc20fd9588.js +1 -0
  94. package/assets/esri/core/workers/chunks/6134a2c6983792787184.js +1 -0
  95. package/assets/esri/core/workers/chunks/6319413b89e23f671487.js +1 -0
  96. package/assets/esri/core/workers/chunks/{1b311ff39dede07865df.js → 633454b27c34f9ec7940.js} +1 -1
  97. package/assets/esri/core/workers/chunks/63c43ebf46964c283b4d.js +1 -0
  98. package/assets/esri/core/workers/chunks/65d3638ded62c5606ae3.js +1 -0
  99. package/assets/esri/core/workers/chunks/{aa0ef4493a7e9bed159f.js → 662f4b39ec44c68e0733.js} +1 -1
  100. package/assets/esri/core/workers/chunks/680bef5e8237cc3bdd84.js +1 -0
  101. package/assets/esri/core/workers/chunks/6835f959952f70972fce.js +1 -0
  102. package/assets/esri/core/workers/chunks/{ddf284648a73b6993737.js → 68d823697c298122ee08.js} +1 -1
  103. package/assets/esri/core/workers/chunks/6aaefd61505027267c9b.js +1 -0
  104. package/assets/esri/core/workers/chunks/6ceb17eada151230abf7.js +1 -0
  105. package/assets/esri/core/workers/chunks/6df29716f75696434807.js +1 -0
  106. package/assets/esri/core/workers/chunks/6e804bd6bb4b0ee44fa9.js +1 -0
  107. package/assets/esri/core/workers/chunks/{ee77999df3785468b2b6.js → 6f6e8b7e6e2c856e4ed1.js} +1 -1
  108. package/assets/esri/core/workers/chunks/{8ea28a4b1afe8bb2d313.js → 7091bbdc36f1f03f14b3.js} +1 -1
  109. package/assets/esri/core/workers/chunks/7608de0d942b4c16b2f6.js +1 -0
  110. package/assets/esri/core/workers/chunks/{4b6f433022a6822706cb.js → 762817d30474c15142b4.js} +1 -1
  111. package/assets/esri/core/workers/chunks/762e9a15b2638475a2b4.js +1 -0
  112. package/assets/esri/core/workers/chunks/79088d5c9c2e6a780929.js +1 -0
  113. package/assets/esri/core/workers/chunks/{f3d57c5b9dffd12e45b4.js → 7c3a89c12ea32a071ad4.js} +1 -1
  114. package/assets/esri/core/workers/chunks/7c67596c0792282afdfc.js +1 -0
  115. package/assets/esri/core/workers/chunks/7cef6e5f39137e74bbc3.js +1 -0
  116. package/assets/esri/core/workers/chunks/{87e0ceb1a64ab08e679a.js → 7fd54fa2f91cdab44ab3.js} +1 -1
  117. package/assets/esri/core/workers/chunks/822a5020afbca21df7f7.js +1 -0
  118. package/assets/esri/core/workers/chunks/8599d2f2eb0fbb4a8bf5.js +1 -0
  119. package/assets/esri/core/workers/chunks/862f7090ba4a56c07093.js +1 -0
  120. package/assets/esri/core/workers/chunks/{97c7dfd29ad4c2966cb4.js → 88252899a5291ad29710.js} +1 -1
  121. package/assets/esri/core/workers/chunks/8837fbcc0d484659b79c.js +1 -0
  122. package/assets/esri/core/workers/chunks/8dcc7749de3391710864.js +1 -0
  123. package/assets/esri/core/workers/chunks/900dad076347443b3ad9.js +1 -0
  124. package/assets/esri/core/workers/chunks/{f8f7b86bbd62106bc3d4.js → 925f83be3c1eb4b5c6af.js} +1 -1
  125. package/assets/esri/core/workers/chunks/{a4a22149077c7780481c.js → 9378ce457b02717304e6.js} +1 -1
  126. package/assets/esri/core/workers/chunks/93a7cf23f73b23fc7802.js +1 -0
  127. package/assets/esri/core/workers/chunks/93c1d1e7c0935242071e.js +1 -0
  128. package/assets/esri/core/workers/chunks/{fddcb8be714ad18ad0c8.js → 970b33947bf61fccd461.js} +1 -1
  129. package/assets/esri/core/workers/chunks/97aaff86e06380a68df8.js +1 -0
  130. package/assets/esri/core/workers/chunks/9bc7df2b8ae0ed443d13.js +1 -0
  131. package/assets/esri/core/workers/chunks/9cc14a41d4a90f6d626e.js +1 -0
  132. package/assets/esri/core/workers/chunks/9e514a58b1165e273202.js +1 -0
  133. package/assets/esri/core/workers/chunks/9fe1db0762ab3326eab4.js +1 -0
  134. package/assets/esri/core/workers/chunks/{a5bb19d2b7d7db22222b.js → a10188c4d1904965898a.js} +1 -1
  135. package/assets/esri/core/workers/chunks/a2288d44cba34d947613.js +1 -0
  136. package/assets/esri/core/workers/chunks/a26916de4c105859621e.js +1 -0
  137. package/assets/esri/core/workers/chunks/a322afbb48898ce35851.js +1 -0
  138. package/assets/esri/core/workers/chunks/a34cadd486e7fcc79063.js +1 -0
  139. package/assets/esri/core/workers/chunks/{cefb70d633c220cbedf9.js → a4dc1a80ed6604d71722.js} +1 -1
  140. package/assets/esri/core/workers/chunks/{6baae3e856d904fef9b1.js → a8f70cece5ce2b095cdd.js} +1 -1
  141. package/assets/esri/core/workers/chunks/ab332bd411d6c7d4190c.js +1 -0
  142. package/assets/esri/core/workers/chunks/{777f2fdf1f4b9f243893.js → ab3a6ce7bc2a27b92469.js} +1 -1
  143. package/assets/esri/core/workers/chunks/abd2f8fae6b918fbdd6d.js +1 -0
  144. package/assets/esri/core/workers/chunks/ad695de9f73b268af139.js +1 -0
  145. package/assets/esri/core/workers/chunks/{b13d2da33ec07e9d41ff.js → b0da2b089a89d643df1e.js} +1 -1
  146. package/assets/esri/core/workers/chunks/{65f4ca7201e7267bfc81.js → b5fcf4165ac72654742d.js} +1 -1
  147. package/assets/esri/core/workers/chunks/b82b523b6837ed1f28d3.js +2 -0
  148. package/assets/esri/core/workers/chunks/{527b87fddf33bb5d519e.js → ba77a8892cb23c7a297d.js} +1 -1
  149. package/assets/esri/core/workers/chunks/bb8089929ded0613d8e7.js +1 -0
  150. package/assets/esri/core/workers/chunks/bc7ca87d3bfe8a4aec81.js +1 -0
  151. package/assets/esri/core/workers/chunks/bc9b96a539f28afcb8cb.js +1 -0
  152. package/assets/esri/core/workers/chunks/{2d07d5a9ec67c39ef10c.js → bd4f29d2681e5596591a.js} +1 -1
  153. package/assets/esri/core/workers/chunks/bf9eba555aebca2c132b.js +1 -0
  154. package/assets/esri/core/workers/chunks/{903c7bd079888f65fef1.js → c3fbd81bb5820e48038f.js} +1 -1
  155. package/assets/esri/core/workers/chunks/c9df18e9ff7367a004b6.js +1 -0
  156. package/assets/esri/core/workers/chunks/ca8061e0a6d78d646ebf.js +1 -0
  157. package/assets/esri/core/workers/chunks/cc73ac8404615dc392d2.js +1 -0
  158. package/assets/esri/core/workers/chunks/{e823c9ccb7bc348d8824.js → ccb26860518dce6d01c0.js} +1 -1
  159. package/assets/esri/core/workers/chunks/cded34b161fcc790e672.js +1 -0
  160. package/assets/esri/core/workers/chunks/{1bf5c0a4bc5a960a3fa2.js → d1d4979e9dcabe5e4619.js} +1 -1
  161. package/assets/esri/core/workers/chunks/d2865c604849ce79183f.js +1 -0
  162. package/assets/esri/core/workers/chunks/{9b81bd62a2c72f592db1.js → d826f6d32b4c5885276a.js} +1 -1
  163. package/assets/esri/core/workers/chunks/d92540d3ffc4af980dd8.js +1 -0
  164. package/assets/esri/core/workers/chunks/dc7853795439ae77ace9.js +1 -0
  165. package/assets/esri/core/workers/chunks/{1f047dd747e7c1916dc7.js → dd55737fba0a8fe68101.js} +3 -3
  166. package/assets/esri/core/workers/chunks/dd8d19eb6b8e955c8067.js +1 -0
  167. package/assets/esri/core/workers/chunks/dda269a088275c823b40.js +1 -0
  168. package/assets/esri/core/workers/chunks/{7b70d6fdfa7a19ffffb0.js → de95dee8db92cf8f796f.js} +1 -1
  169. package/assets/esri/core/workers/chunks/e1c8767143f9f9d1f049.js +1 -0
  170. package/assets/esri/core/workers/chunks/{2cf2f2842c19be84ab4d.js → e6cb31c727f799c1297c.js} +1 -1
  171. package/assets/esri/core/workers/chunks/e934ef66d130c212c05b.js +1 -0
  172. package/assets/esri/core/workers/chunks/{7c56446184abcd14678b.js → ea77654c8964cc39b9a6.js} +1 -1
  173. package/assets/esri/core/workers/chunks/eb167f9f6132a6348d2e.js +1 -0
  174. package/assets/esri/core/workers/chunks/ed5ac1efd3cba49be756.js +1 -0
  175. package/assets/esri/core/workers/chunks/ef24fd6c0322e5de9fdf.js +2 -0
  176. package/assets/esri/core/workers/chunks/f219ba010c480bb75684.js +1 -0
  177. package/assets/esri/core/workers/chunks/fbf2d90240d36f8b423f.js +1 -0
  178. package/assets/esri/core/workers/chunks/{4ee99e654dad6f09abee.js → fc042b9936686785c39e.js} +1 -1
  179. package/assets/esri/core/workers/chunks/fc1658eae7b312502fab.js +1 -0
  180. package/assets/esri/core/workers/chunks/{af6b9fd77b1792fbb66e.js → fd4d124c5bf810d9e352.js} +1 -1
  181. package/assets/esri/core/workers/chunks/ffa35ecc681ec1c4739a.js +1 -0
  182. package/assets/esri/core/workers/chunks/ffca0b2333e760b66d3a.js +1 -0
  183. package/config.js +1 -1
  184. package/editing/sharedTemplates/executor/builders/bufferLineToPolygon.js +1 -1
  185. package/editing/sharedTemplates/executor/builders/bufferPointToPolygon.js +1 -1
  186. package/editing/sharedTemplates/executor/builders/bufferPolygonToPolygon.js +1 -1
  187. package/editing/sharedTemplates/executor/builders/pointAtIntersectionVerticesOfLine.js +1 -1
  188. package/editing/sharedTemplates/executor/builders/support/offsetUtils.js +1 -1
  189. package/editing/sharedTemplates/executor/support/createPresetServiceEdit.js +1 -1
  190. package/geometry/Polygon.js +1 -1
  191. package/geometry/geometryEngine.d.ts +36 -36
  192. package/geometry/operators/affineTransformOperator.d.ts +30 -1
  193. package/geometry/operators/affineTransformOperator.js +1 -1
  194. package/geometry/operators/alphaShapeOperator.d.ts +49 -5
  195. package/geometry/operators/alphaShapeOperator.js +1 -1
  196. package/geometry/operators/areaOperator.d.ts +28 -4
  197. package/geometry/operators/areaOperator.js +1 -1
  198. package/geometry/operators/autoCompleteOperator.d.ts +25 -2
  199. package/geometry/operators/autoCompleteOperator.js +1 -1
  200. package/geometry/operators/boundaryOperator.d.ts +40 -2
  201. package/geometry/operators/boundaryOperator.js +1 -1
  202. package/geometry/operators/bufferOperator.d.ts +51 -6
  203. package/geometry/operators/bufferOperator.js +1 -1
  204. package/geometry/operators/centroidOperator.d.ts +23 -2
  205. package/geometry/operators/centroidOperator.js +1 -1
  206. package/geometry/operators/clipOperator.d.ts +34 -2
  207. package/geometry/operators/clipOperator.js +1 -1
  208. package/geometry/operators/containsOperator.d.ts +32 -2
  209. package/geometry/operators/containsOperator.js +1 -1
  210. package/geometry/operators/convexHullOperator.d.ts +47 -4
  211. package/geometry/operators/convexHullOperator.js +1 -1
  212. package/geometry/operators/crossesOperator.d.ts +35 -2
  213. package/geometry/operators/crossesOperator.js +1 -1
  214. package/geometry/operators/cutOperator.d.ts +23 -2
  215. package/geometry/operators/cutOperator.js +1 -1
  216. package/geometry/operators/densifyOperator.d.ts +61 -6
  217. package/geometry/operators/densifyOperator.js +1 -1
  218. package/geometry/operators/differenceOperator.d.ts +34 -2
  219. package/geometry/operators/differenceOperator.js +1 -1
  220. package/geometry/operators/disjointOperator.d.ts +33 -2
  221. package/geometry/operators/disjointOperator.js +1 -1
  222. package/geometry/operators/distanceOperator.d.ts +29 -4
  223. package/geometry/operators/distanceOperator.js +1 -1
  224. package/geometry/operators/equalsOperator.d.ts +32 -2
  225. package/geometry/operators/equalsOperator.js +1 -1
  226. package/geometry/operators/extendOperator.d.ts +29 -3
  227. package/geometry/operators/extendOperator.js +1 -1
  228. package/geometry/operators/generalizeOperator.d.ts +46 -5
  229. package/geometry/operators/generalizeOperator.js +1 -1
  230. package/geometry/operators/geodesicBufferOperator.d.ts +71 -7
  231. package/geometry/operators/geodesicBufferOperator.js +1 -1
  232. package/geometry/operators/geodesicProximityOperator.d.ts +106 -14
  233. package/geometry/operators/geodesicProximityOperator.js +1 -1
  234. package/geometry/operators/geodeticAreaOperator.d.ts +51 -5
  235. package/geometry/operators/geodeticAreaOperator.js +1 -1
  236. package/geometry/operators/geodeticDensifyOperator.d.ts +65 -6
  237. package/geometry/operators/geodeticDensifyOperator.js +1 -1
  238. package/geometry/operators/geodeticDistanceOperator.d.ts +52 -5
  239. package/geometry/operators/geodeticDistanceOperator.js +1 -1
  240. package/geometry/operators/geodeticLengthOperator.d.ts +51 -5
  241. package/geometry/operators/geodeticLengthOperator.js +1 -1
  242. package/geometry/operators/geodeticUtilsOperator.d.ts +79 -9
  243. package/geometry/operators/geodeticUtilsOperator.js +1 -1
  244. package/geometry/operators/graphicBufferOperator.d.ts +47 -4
  245. package/geometry/operators/graphicBufferOperator.js +1 -1
  246. package/geometry/operators/integrateOperator.d.ts +24 -2
  247. package/geometry/operators/integrateOperator.js +1 -1
  248. package/geometry/operators/intersectionOperator.d.ts +88 -3
  249. package/geometry/operators/intersectionOperator.js +1 -1
  250. package/geometry/operators/intersectsOperator.d.ts +32 -2
  251. package/geometry/operators/intersectsOperator.js +1 -1
  252. package/geometry/operators/isNearOperator.d.ts +31 -4
  253. package/geometry/operators/isNearOperator.js +1 -1
  254. package/geometry/operators/json/bufferOperator.js +1 -1
  255. package/geometry/operators/json/containsOperator.js +1 -1
  256. package/geometry/operators/json/convexHullOperator.js +1 -1
  257. package/geometry/operators/json/crossesOperator.js +1 -1
  258. package/geometry/operators/json/disjointOperator.js +1 -1
  259. package/geometry/operators/json/generalizeOperator.js +1 -1
  260. package/geometry/operators/json/geodesicBufferOperator.js +1 -1
  261. package/geometry/operators/json/graphicBufferOperator.js +1 -1
  262. package/geometry/operators/json/intersectionOperator.js +1 -1
  263. package/geometry/operators/json/intersectsOperator.js +1 -1
  264. package/geometry/operators/json/lengthOperator.js +1 -1
  265. package/geometry/operators/json/offsetOperator.js +1 -1
  266. package/geometry/operators/json/overlapsOperator.js +1 -1
  267. package/geometry/operators/json/projectOperator.js +1 -1
  268. package/geometry/operators/json/simplifyOperator.js +1 -1
  269. package/geometry/operators/json/simplifyOperatorOGC.js +1 -1
  270. package/geometry/operators/json/touchesOperator.js +1 -1
  271. package/geometry/operators/json/unionOperator.js +1 -1
  272. package/geometry/operators/json/withinOperator.js +1 -1
  273. package/geometry/operators/labelPointOperator.d.ts +32 -2
  274. package/geometry/operators/labelPointOperator.js +1 -1
  275. package/geometry/operators/lengthOperator.d.ts +28 -4
  276. package/geometry/operators/lengthOperator.js +1 -1
  277. package/geometry/operators/linesToPolygonsOperator.d.ts +23 -2
  278. package/geometry/operators/linesToPolygonsOperator.js +1 -1
  279. package/geometry/operators/locateBetweenOperator.d.ts +28 -2
  280. package/geometry/operators/locateBetweenOperator.js +1 -1
  281. package/geometry/operators/minimumBoundingCircleOperator.d.ts +38 -4
  282. package/geometry/operators/minimumBoundingCircleOperator.js +1 -1
  283. package/geometry/operators/multiPartToSinglePartOperator.d.ts +33 -4
  284. package/geometry/operators/multiPartToSinglePartOperator.js +1 -1
  285. package/geometry/operators/offsetOperator.d.ts +50 -5
  286. package/geometry/operators/offsetOperator.js +1 -1
  287. package/geometry/operators/overlapsOperator.d.ts +33 -2
  288. package/geometry/operators/overlapsOperator.js +1 -1
  289. package/geometry/operators/polygonOverlayOperator.d.ts +31 -5
  290. package/geometry/operators/polygonOverlayOperator.js +1 -1
  291. package/geometry/operators/polygonSlicerOperator.d.ts +72 -10
  292. package/geometry/operators/polygonSlicerOperator.js +1 -1
  293. package/geometry/operators/projectOperator.d.ts +63 -3
  294. package/geometry/operators/projectOperator.js +1 -1
  295. package/geometry/operators/proximityOperator.d.ts +71 -9
  296. package/geometry/operators/proximityOperator.js +1 -1
  297. package/geometry/operators/relateOperator.d.ts +41 -2
  298. package/geometry/operators/relateOperator.js +1 -1
  299. package/geometry/operators/reshapeOperator.d.ts +28 -2
  300. package/geometry/operators/reshapeOperator.js +1 -1
  301. package/geometry/operators/shapePreservingProjectOperator.d.ts +64 -6
  302. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  303. package/geometry/operators/simplifyOGCOperator.d.ts +72 -6
  304. package/geometry/operators/simplifyOGCOperator.js +1 -1
  305. package/geometry/operators/simplifyOperator.d.ts +72 -4
  306. package/geometry/operators/simplifyOperator.js +1 -1
  307. package/geometry/operators/singlePartToMultiPartOperator.js +1 -1
  308. package/geometry/operators/support/Transformation.d.ts +17 -11
  309. package/geometry/operators/support/jsonConverter.js +1 -1
  310. package/geometry/operators/symmetricDifferenceOperator.d.ts +33 -2
  311. package/geometry/operators/symmetricDifferenceOperator.js +1 -1
  312. package/geometry/operators/touchesOperator.d.ts +32 -2
  313. package/geometry/operators/touchesOperator.js +1 -1
  314. package/geometry/operators/types.d.ts +4 -1
  315. package/geometry/operators/unionOperator.d.ts +33 -2
  316. package/geometry/operators/unionOperator.js +1 -1
  317. package/geometry/operators/withinOperator.d.ts +32 -2
  318. package/geometry/operators/withinOperator.js +1 -1
  319. package/geometry/projectionUtils.js +1 -1
  320. package/geometry/support/geometryUtils.js +1 -1
  321. package/geometry/support/normalizeUtils.d.ts +5 -3
  322. package/geometry/support/normalizeUtils.js +1 -1
  323. package/interfaces.d.ts +202 -202
  324. package/kernel.js +1 -1
  325. package/layers/graphics/data/QueryEngineResult.js +1 -1
  326. package/layers/graphics/data/queryUtils.js +1 -1
  327. package/layers/graphics/data/spatialQuerySupport.js +1 -1
  328. package/layers/graphics/sources/support/sourceUtils.js +1 -1
  329. package/layers/list/Item.d.ts +27 -3
  330. package/layers/list/Item.js +1 -1
  331. package/layers/list/ItemPanel.d.ts +1 -1
  332. package/layers/list/LayerItemCollection.js +1 -1
  333. package/layers/mixins/ArcGISImageService.js +1 -1
  334. package/layers/mixins/TiledImagery.js +1 -1
  335. package/layers/orientedImagery/transformations/updateElevationUtils.js +1 -1
  336. package/layers/raster/datasets/FunctionRaster.js +1 -1
  337. package/layers/raster/datasets/pixelReader.js +1 -1
  338. package/layers/raster/functions/clipUtils.js +1 -1
  339. package/layers/raster/functions/rasterProjectionHelper.js +1 -1
  340. package/layers/support/Sublayer.js +1 -1
  341. package/layers/support/trackInfoUtils.js +2 -0
  342. package/layers/video/videoUtils.js +1 -1
  343. package/package.json +5 -5
  344. package/popup/FeatureContentCollection.d.ts +3 -3
  345. package/popup/FeatureContentCollection.js +1 -1
  346. package/portal/schemas/definitions.js +1 -1
  347. package/portal/schemas/webScene.js +1 -1
  348. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  349. package/support/revision.js +1 -1
  350. package/support/tests/serviceMockDependencies.js +1 -1
  351. package/support/tests/setupServiceMocksMesh.js +1 -1
  352. package/symbols/cim/CIMEffects.js +1 -1
  353. package/symbols/cim/effects/EffectBuffer.js +1 -1
  354. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  355. package/symbols/cim/effects/EffectDonut.js +1 -1
  356. package/symbols/cim/effects/EffectEnclosingPolygon.js +1 -1
  357. package/symbols/cim/effects/EffectOffset.js +1 -1
  358. package/symbols/cim/effects/EffectTaperedPolygon.js +1 -1
  359. package/views/2d/analysis/AreaMeasurement/AreaMeasurementController.js +1 -1
  360. package/views/2d/analysis/DistanceMeasurement/DistanceMeasurementController.js +1 -1
  361. package/views/2d/engine/webgl/Overlay.js +1 -1
  362. package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
  363. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  364. package/views/2d/layers/TileLayerView2D.js +1 -1
  365. package/views/2d/layers/support/RouteLayerWaypointVisualization.js +1 -1
  366. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  367. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementController.js +1 -1
  368. package/views/3d/layers/ElevationLayerView3D.js +1 -1
  369. package/views/3d/layers/ElevationLayerView3DModifications.js +1 -1
  370. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  371. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  372. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  373. package/views/MapView.d.ts +3 -3
  374. package/views/SceneView.js +1 -1
  375. package/views/VideoView.js +1 -1
  376. package/views/View2D.d.ts +22 -22
  377. package/views/analysis/ElevationProfile/elevationProfileGeometryUtils.js +1 -1
  378. package/views/draw/DrawTool.js +1 -1
  379. package/views/draw/support/createUtils.js +1 -1
  380. package/views/layers/SceneLayerView.js +1 -1
  381. package/views/support/GeometryWorker.js +1 -1
  382. package/views/support/imageReprojection.js +1 -1
  383. package/views/video/VideoOperationalDataView.js +1 -1
  384. package/webscene/InitialViewProperties.d.ts +9 -1
  385. package/webscene/InitialViewProperties.js +1 -1
  386. package/webscene/Slide.d.ts +10 -1
  387. package/webscene/Slide.js +1 -1
  388. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  389. package/widgets/BatchAttributeForm/expressions/ExpressionsModel.js +1 -1
  390. package/widgets/BatchAttributeForm/expressions/expressionUtils.js +1 -1
  391. package/widgets/BatchAttributeForm/inputs/support/DynamicChoiceController.js +1 -1
  392. package/widgets/BatchAttributeForm/templates/FieldElementTemplate.js +1 -1
  393. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  394. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  395. package/widgets/Editor/support/mergeFeaturesUtils.js +1 -1
  396. package/widgets/Editor/support/splitFeatureUtils.js +1 -1
  397. package/widgets/ElevationProfile/support/ElevationProfileView.js +1 -1
  398. package/widgets/ElevationProfile/support/InputRepresentation2D.js +1 -1
  399. package/widgets/ElevationProfile/support/InputRepresentation3D.js +1 -1
  400. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  401. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/UtilityNetworkAssociationItemList.js +1 -1
  402. package/widgets/Features/FeaturesViewModel.js +1 -1
  403. package/widgets/Features.js +1 -1
  404. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  405. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  406. package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
  407. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  408. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  409. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  410. package/widgets/OrientedImageryViewer/support/panConstraint.js +1 -1
  411. package/widgets/OrientedImageryViewer/support/superimposeUtils.js +1 -1
  412. package/widgets/OrientedImageryViewer/videoViewerUtils.js +1 -1
  413. package/widgets/Print.js +1 -1
  414. package/widgets/Search/SearchViewModel.js +1 -1
  415. package/widgets/Search/support/layerSearchUtils.js +1 -1
  416. package/widgets/Search/support/locatorUtils.js +1 -1
  417. package/widgets/UtilityNetworkTrace/support/GeometryHandler.js +1 -1
  418. package/widgets/support/FilterBuilder/FilterBuilderViewModel.d.ts +104 -0
  419. package/widgets/support/FilterBuilder/FilterBuilderViewModel.js +1 -1
  420. package/widgets/support/FilterBuilder.js +1 -1
  421. package/widgets/support/FilterCondition/FilterConditionViewModel.d.ts +145 -0
  422. package/widgets/support/FilterCondition/FilterConditionViewModel.js +1 -1
  423. package/widgets/support/FilterCondition/types.d.ts +20 -0
  424. package/widgets/support/ItemList.js +1 -1
  425. package/widgets/support/SelectionList/FeatureItem.d.ts +17 -68
  426. package/widgets/support/SelectionList/FeatureItem.js +1 -1
  427. package/widgets/support/SelectionList/GroupLayerItem.d.ts +12 -50
  428. package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
  429. package/widgets/support/SelectionList/ItemBase.d.ts +14 -44
  430. package/widgets/support/SelectionList/ItemBase.js +1 -1
  431. package/widgets/support/SelectionList/LayerItem.d.ts +10 -56
  432. package/widgets/support/SelectionList/LayerItem.js +1 -1
  433. package/widgets/support/SelectionList/types.d.ts +4 -4
  434. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  435. package/assets/esri/core/workers/chunks/090ea7a131f8f60203ed.js +0 -1
  436. package/assets/esri/core/workers/chunks/0b4a7209b99227a842ad.js +0 -1
  437. package/assets/esri/core/workers/chunks/0be98adfef79fc5036f0.js +0 -1
  438. package/assets/esri/core/workers/chunks/0d2e2d90a4e4a28e2c0c.js +0 -1
  439. package/assets/esri/core/workers/chunks/0d7763d39a5a8586a0ae.js +0 -1
  440. package/assets/esri/core/workers/chunks/0d95f72e1c07ab867d21.js +0 -1
  441. package/assets/esri/core/workers/chunks/0dbbac7a2378728571a7.js +0 -1
  442. package/assets/esri/core/workers/chunks/0df9864ecebe6a2b973f.js +0 -1
  443. package/assets/esri/core/workers/chunks/104d74bc36c28c519396.js +0 -1
  444. package/assets/esri/core/workers/chunks/1670e9867efde4d7a6d6.js +0 -1
  445. package/assets/esri/core/workers/chunks/1c803eef9a8fdabc61e3.js +0 -2
  446. package/assets/esri/core/workers/chunks/1e192ac0533a5c0b5a7a.js +0 -1
  447. package/assets/esri/core/workers/chunks/1fe077f57a087c0e9119.js +0 -1
  448. package/assets/esri/core/workers/chunks/20f7b5fe64a217cb3d3d.js +0 -1
  449. package/assets/esri/core/workers/chunks/212222b64039d436b9a6.js +0 -1
  450. package/assets/esri/core/workers/chunks/24944b625ed8dcd904f0.js +0 -1
  451. package/assets/esri/core/workers/chunks/2b6d261fe79fe186fb22.js +0 -1
  452. package/assets/esri/core/workers/chunks/2bc3e7f394386fa75447.js +0 -1
  453. package/assets/esri/core/workers/chunks/30af0f7c4cfa541c9efd.js +0 -1
  454. package/assets/esri/core/workers/chunks/30d816bdeea00f6fa1ca.js +0 -1
  455. package/assets/esri/core/workers/chunks/35d46c2f658a8e92d913.js +0 -1
  456. package/assets/esri/core/workers/chunks/36e35a8067b18f59cc05.js +0 -1
  457. package/assets/esri/core/workers/chunks/3869dca884d7ca6488f5.js +0 -1
  458. package/assets/esri/core/workers/chunks/3f5234120d3a14186c1c.js +0 -1
  459. package/assets/esri/core/workers/chunks/45c1c90ac6c14657f3ff.js +0 -1
  460. package/assets/esri/core/workers/chunks/4a40b894ec89b0a4f9bf.js +0 -1
  461. package/assets/esri/core/workers/chunks/5165d367328ac7badf47.js +0 -1
  462. package/assets/esri/core/workers/chunks/5168bd8ab6233dc9c32a.js +0 -1
  463. package/assets/esri/core/workers/chunks/545bec045167c433af8f.js +0 -1
  464. package/assets/esri/core/workers/chunks/5782c0362a1799ceef41.js +0 -1
  465. package/assets/esri/core/workers/chunks/59598023c0aea62a6297.js +0 -1
  466. package/assets/esri/core/workers/chunks/59f0a2bd40b033ce77e4.js +0 -1
  467. package/assets/esri/core/workers/chunks/5af16937904c06fb06f6.js +0 -1
  468. package/assets/esri/core/workers/chunks/5b8591486f33627f5389.js +0 -1
  469. package/assets/esri/core/workers/chunks/6057a79c68c33ee4a193.js +0 -1
  470. package/assets/esri/core/workers/chunks/607acd9f615f87e14075.js +0 -1
  471. package/assets/esri/core/workers/chunks/62ee6c247f783acabb74.js +0 -1
  472. package/assets/esri/core/workers/chunks/63127e3b22e7eac6003d.js +0 -2
  473. package/assets/esri/core/workers/chunks/6564f17c4700dc8d9c0e.js +0 -2
  474. package/assets/esri/core/workers/chunks/678585509706755c0434.js +0 -2
  475. package/assets/esri/core/workers/chunks/691e9cc541cfaebe1776.js +0 -1
  476. package/assets/esri/core/workers/chunks/6a2d890640b2cd6c5ccb.js +0 -1
  477. package/assets/esri/core/workers/chunks/6b84982dfaf084a61b93.js +0 -1
  478. package/assets/esri/core/workers/chunks/6cbc30b31f0bb39c73ca.js +0 -1
  479. package/assets/esri/core/workers/chunks/6f01bd01b13662eb3bd7.js +0 -1
  480. package/assets/esri/core/workers/chunks/74cd9df85c4560bb8e52.js +0 -1
  481. package/assets/esri/core/workers/chunks/75bddfe2be64379db8fd.js +0 -1
  482. package/assets/esri/core/workers/chunks/7cf903db44f3647c8fd4.js +0 -1
  483. package/assets/esri/core/workers/chunks/7ddb5800777fbecee3a8.js +0 -1
  484. package/assets/esri/core/workers/chunks/7eae9053065d3d38e54e.js +0 -1
  485. package/assets/esri/core/workers/chunks/80f38ab2b7ae61e6f301.js +0 -1
  486. package/assets/esri/core/workers/chunks/854f42f16fdb40000aae.js +0 -1
  487. package/assets/esri/core/workers/chunks/87094044458b0ea5cb0f.js +0 -2
  488. package/assets/esri/core/workers/chunks/88f03352a4dc6184ea1f.js +0 -1
  489. package/assets/esri/core/workers/chunks/909ee7d2a0eec773037a.js +0 -1
  490. package/assets/esri/core/workers/chunks/91ac9328afff8a51bd96.js +0 -1
  491. package/assets/esri/core/workers/chunks/92a6559a6999b26362d7.js +0 -1
  492. package/assets/esri/core/workers/chunks/94ddfe165ac25aef8229.js +0 -1
  493. package/assets/esri/core/workers/chunks/9509bef285929c52c244.js +0 -1
  494. package/assets/esri/core/workers/chunks/99966339b061eb9945b8.js +0 -1
  495. package/assets/esri/core/workers/chunks/99f627938dbf0152fc02.js +0 -1
  496. package/assets/esri/core/workers/chunks/9df38cadebf8e6fd746c.js +0 -1
  497. package/assets/esri/core/workers/chunks/9e2b3754a76e0dd4a94a.js +0 -1
  498. package/assets/esri/core/workers/chunks/a0565137027c83108953.js +0 -1
  499. package/assets/esri/core/workers/chunks/a0eb882a5a81d25b9153.js +0 -1
  500. package/assets/esri/core/workers/chunks/a785e827f0215a73103d.js +0 -1
  501. package/assets/esri/core/workers/chunks/abe7670db06b27c0c8c8.js +0 -1
  502. package/assets/esri/core/workers/chunks/b19cff0e43fab2632660.js +0 -1
  503. package/assets/esri/core/workers/chunks/b333de4dea14c5db0a4d.js +0 -1
  504. package/assets/esri/core/workers/chunks/b6af90be328ebda26b8d.js +0 -1
  505. package/assets/esri/core/workers/chunks/b7c0da9d255d5e48320d.js +0 -1
  506. package/assets/esri/core/workers/chunks/bd7d87d175ba933ab2ce.js +0 -1
  507. package/assets/esri/core/workers/chunks/be0417df35a7d99af675.js +0 -1
  508. package/assets/esri/core/workers/chunks/c30b6bbabd05e4976fba.js +0 -1
  509. package/assets/esri/core/workers/chunks/c35553d07ad169910742.js +0 -1
  510. package/assets/esri/core/workers/chunks/c5c2fed38e0ccf84f1fa.js +0 -1
  511. package/assets/esri/core/workers/chunks/c88bfa51d2a8a024fc24.js +0 -1
  512. package/assets/esri/core/workers/chunks/ca36d85a47179d95f2fc.js +0 -1
  513. package/assets/esri/core/workers/chunks/d0cf9ff48f051adbd455.js +0 -1
  514. package/assets/esri/core/workers/chunks/d1304d414b1fa725168a.js +0 -1
  515. package/assets/esri/core/workers/chunks/d24125a791247019e2ca.js +0 -1
  516. package/assets/esri/core/workers/chunks/d26be8313526ecea9c68.js +0 -1
  517. package/assets/esri/core/workers/chunks/d2cb3d5ef0a9285afb78.js +0 -1
  518. package/assets/esri/core/workers/chunks/d4b0012ae1d3b8a9ba01.js +0 -1
  519. package/assets/esri/core/workers/chunks/e018cbd97e6e0e4ca5c4.js +0 -1
  520. package/assets/esri/core/workers/chunks/e39bccc000c768120a32.js +0 -1
  521. package/assets/esri/core/workers/chunks/e4380706b629729f2212.js +0 -1
  522. package/assets/esri/core/workers/chunks/ea1877ce00da3b585a30.js +0 -1
  523. package/assets/esri/core/workers/chunks/ea5ee1b12b43594592a0.js +0 -1
  524. package/assets/esri/core/workers/chunks/ea91c57a0b31f3f65ee5.js +0 -1
  525. package/assets/esri/core/workers/chunks/eafc591e1a98000d54ef.js +0 -1
  526. package/assets/esri/core/workers/chunks/ef851a2cff76fd211c07.js +0 -1
  527. package/assets/esri/core/workers/chunks/f3e53be08ab9dbdf17ae.js +0 -1
  528. package/assets/esri/core/workers/chunks/f53010adb70463b75bb9.js +0 -1
  529. package/assets/esri/core/workers/chunks/f5a058a0ce006bce2a2a.js +0 -1
  530. package/assets/esri/core/workers/chunks/f5f5b54cab722abe88e0.js +0 -1
  531. package/assets/esri/core/workers/chunks/f60ed579981913d44675.js +0 -1
  532. package/assets/esri/core/workers/chunks/f6f56f3e011dcef90bbb.js +0 -1
  533. package/assets/esri/core/workers/chunks/f83c3597e9332bd991eb.js +0 -1
  534. package/assets/esri/core/workers/chunks/f9a4387f850d85c44ca5.js +0 -1
  535. package/assets/esri/core/workers/chunks/fdd0e6d9927d3c43b0d3.js +0 -1
  536. package/geometry/operators/importUtils.js +0 -2
  537. /package/assets/esri/core/workers/chunks/{1c803eef9a8fdabc61e3.js.LICENSE.txt → 1082bb0858585bd4fa21.js.LICENSE.txt} +0 -0
  538. /package/assets/esri/core/workers/chunks/{87094044458b0ea5cb0f.js.LICENSE.txt → 2e2349387a2b9903f13c.js.LICENSE.txt} +0 -0
  539. /package/assets/esri/core/workers/chunks/{678585509706755c0434.js.LICENSE.txt → 411bbdecba340df11d95.js.LICENSE.txt} +0 -0
  540. /package/assets/esri/core/workers/chunks/{5edf77618ca51819d7c4.js.LICENSE.txt → 476535cfb06ced74d611.js.LICENSE.txt} +0 -0
  541. /package/assets/esri/core/workers/chunks/{6564f17c4700dc8d9c0e.js.LICENSE.txt → b82b523b6837ed1f28d3.js.LICENSE.txt} +0 -0
  542. /package/assets/esri/core/workers/chunks/{63127e3b22e7eac6003d.js.LICENSE.txt → ef24fd6c0322e5de9fdf.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"../../../../core/Accessor.js";import{isSome as i}from"../../../../core/arrayUtils.js";import r from"../../../../core/Error.js";import"../../../../core/has.js";import s from"../../../../core/Logger.js";import{findInMap as a}from"../../../../core/MapUtils.js";import{abortMaybe as n,removeMaybe as o,destroyMaybe as l}from"../../../../core/maybe.js";import{MinPriority as h}from"../../../../core/MemCache.js";import d from"../../../../core/PooledArray.js";import{throwIfAborted as p,ignoreAbortErrors as c,isAbortError as y}from"../../../../core/promiseUtils.js";import u from"../../../../core/Queue.js";import{when as g,watch as m,on as b,syncAndInitial as _,whenOnce as f}from"../../../../core/reactiveUtils.js";import{schedule as v}from"../../../../core/scheduling.js";import{property as C,subclass as S}from"../../../../core/accessorSupport/decorators.js";import{diff as w,isEmpty as G}from"../../../../core/accessorSupport/diffUtils.js";import{runUntracked as x}from"../../../../core/accessorSupport/tracking.js";import{set as P,add as R,scale as U}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as D}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import I from"../../../../geometry/Extent.js";import E from"../../../../geometry/Point.js";import{canProjectWithoutEngine as L}from"../../../../geometry/projectionUtils.js";import{projectBuffer as A}from"../../../../geometry/projection/projectBuffer.js";import{projectVectorToVector as j}from"../../../../geometry/projection/projectVectorToVector.js";import{projectXYZToVector as V}from"../../../../geometry/projection/projectXYZToVector.js";import{center as F,fromRect as O,create as T,equals as M}from"../../../../geometry/support/aaBoundingBox.js";import{create as k}from"../../../../geometry/support/aaBoundingRect.js";import{equals as z}from"../../../../geometry/support/spatialReferenceUtils.js";import{isPopupProvider as W}from"../../../../graphic/getPopupProvider.js";import B from"../../../../layers/Layer.js";import{getObjectId as H,computeAABB as q,hasGeometry as Q}from"../../../../layers/graphics/dehydratedFeatures.js";import{hydrateGraphic as N}from"../../../../layers/graphics/hydratedFeatures.js";import $ from"../../../../renderers/UniqueValueRenderer.js";import{isSupportedRenderer3D as Z,validateTo3D as Y}from"../../../../renderers/support/rendererConversion.js";import{RenderingInfo as X}from"../../../../renderers/support/RenderingInfo.js";import{isBasemapLayerView as J}from"../../../../support/basemapUtils.js";import{loadArcade as K}from"../../../../support/loadArcade.js";import ee from"../../../../symbols/LabelSymbol3D.js";import te from"../../../../symbols/TextSymbol.js";import ie from"../../../../symbols/WebStyleSymbol.js";import{getDefaultSymbol3D as re}from"../../../../symbols/support/defaults3D.js";import{to3D as se}from"../../../../symbols/support/symbolConversion.js";import{aggregateSymbolComplexity as ae,defaultSymbolComplexity as ne}from"./defaultSymbolComplexity.js";import{DisplayFeatureLimit as oe}from"./DisplayFeatureLimit.js";import{ViewElevationProvider as le}from"./ElevationQuery.js";import{extractExpressionInfo as he,createContext as de}from"./featureExpressionInfoUtils.js";import{Graphics3DFeatureStore as pe}from"./Graphics3DFeatureStore.js";import{Graphics3DGraphicCreationContext as ce}from"./Graphics3DGraphicCreationContext.js";import{Graphics3DSymbolCreationContext as ye}from"./Graphics3DSymbolCreationContext.js";import{make as ue}from"./Graphics3DSymbolFactory.js";import{Graphics3DWebStyleSymbol as ge}from"./Graphics3DWebStyleSymbol.js";import{GraphicsCorePerformanceInfo as me}from"./GraphicsCorePerformanceInfo.js";import{GraphicStateTracking as be}from"./GraphicStateTracking.js";import{computeCentroid as _e}from"./graphicUtils.js";import{placePointOnGeometry as fe}from"./pointUtils.js";import{SpatialIndex2D as ve}from"./SpatialIndex2D.js";import{AggregateSymbolComplexity as Ce}from"./SymbolComplexity.js";import{StageLayerElevationProvider as Se}from"../support/StageLayerElevationProvider.js";import{toBoundingRect as we}from"../../support/extentUtils.js";import{GridLocalOriginFactory as Ge}from"../../webgl-engine/lib/GridLocalOriginFactory.js";import{isScreenSizePerspectiveEnabled as xe}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{affectsGeometry as Pe}from"../../webgl-engine/lib/VertexAttribute.js";import{WebGLLayer as Re}from"../../webgl-engine/lib/WebGLLayer.js";import{HUDMaterial as Ue}from"../../webgl-engine/materials/HUDMaterial.js";import{hasPopupTemplate as De}from"../../../layers/support/popupUtils.js";import{PromiseQueue as Ie}from"../../../support/PromiseQueue.js";import{PropertiesPool as Ee}from"../../../support/PropertiesPool.js";import{ImmediateTask as Le,noBudget as Ae,TaskPriority as je}from"../../../support/Scheduler.js";import{TextureCompressionTracker as Ve}from"../../../support/TextureCompressionTracker.js";import{Yield as Fe}from"../../../support/Yield.js";import{alphaCutoff as Oe}from"../../../../webscene/support/AlphaCutoff.js";var Te;const Me=D(),ke=T();let ze=class extends t{static{Te=this}static{this.tmpVec=D()}get _viewSpatialReference(){return this.owner.view.spatialReference}get spatialIndex(){return this._spatialIndex||(this._spatialIndex=new ve({objectIdField:this.owner.layer?.objectIdField,spatialReference:this._viewSpatialReference,hasZ:!!this.hasZ,hasM:!!this.hasM}),this._spatialIndex.setup(Array.from(this.graphics3DGraphics.values()))),this._spatialIndex.update(),this._spatialIndex}get deconflictor(){return this._deconflictor}get labeler(){return this._labeler}get numberOfGraphics(){return this._numberOfGraphics}get effectiveUpdatePolicy(){return null!=this.currentRenderer&&"dictionary"===this.currentRenderer.type?0:this._forcedUpdatePolicy??this.preferredUpdatePolicy}get featureStore(){return this._featureStore}get initializePromise(){return this._initializePromise}get scaleVisibility(){return this._scaleVisibility}get elevationAlignment(){return this._elevationAlignment}get objectStates(){return this._objectStates}get filterVisibility(){return this._filterVisibility}get updating(){return!!(this.dataUpdating||this._elevationAlignment?.updating||this._scaleVisibility?.updating||this._filterVisibility?.updating||this._rendererChangeAbortController||this._elevationInfoChangeAbortController||this._frameTaskHandle.updating||this._updateQueue.updating||this.readyToRun)}get dataUpdating(){return!!(this._graphicsWaitingForSymbol.size>0||this._pendingUpdates.size>0||this._spatialIndex?.updating||this._updatingPendingLoadedGraphicsChange||this._dataUpdateQueue.updating||this._loadingSymbols>0||this.compressionTracker.compressing)}get readyToRun(){return this._pendingUpdates.size>0||!!this._spatialIndex?.updating||this._dataUpdateQueue.readyToRun||this._updateQueue.readyToRun||this._focusAreasGraphicsQueue.length>0}get suspendedOrOutsideOfView(){return this.owner.suspended||!!this.owner.suspendInfo?.outsideOfView}get updatingRemaining(){return x(()=>this.updating?this._pendingUpdates.size+.1*(this._spatialIndex?.updatingRemaining||0)+.1*(this._elevationAlignment?.updatingRemaining||0):0)}get displayFeatureLimit(){const e=this.owner&&this.owner.view&&this.owner.view.qualitySettings,t=e?.graphics3D.minTotalNumberOfFeatures??0,i=e?.graphics3D.maxTotalNumberOfFeatures??0,r=e?.graphics3D.maxNumberOfDrawCalls??0,s=e?.graphics3D.maxTotalNumberOfVertices??0,a=this.averageSymbolComplexity,n=Math.max(1,a?.verticesPerFeature??1),o=a&&a.drawCallsPerFeature>0&&r>0?r/a.drawCallsPerFeature:i,l=Math.ceil(s/n),h=Math.max(t,Math.min(i,l,o)),d=this._get("displayFeatureLimit");return d&&d.maximumTotalNumberOfVertices===s&&d.averageSymbolComplexity===a&&d.maximumNumberOfFeatures===h?d:new oe(s,h,a)}get averageSymbolComplexity(){return x(()=>{const e=this._averageSymbolComplexities,t=this._get("averageSymbolComplexity");return 0===e.numComplexities||null!=t&&(e.estimated&&(t.verticesPerFeature>=e.verticesPerFeature||t.verticesPerCoordinate>=e.verticesPerCoordinate||t.drawCallsPerFeature>=e.drawCallsPerFeature)||t.verticesPerFeature===e.verticesPerFeature&&t.verticesPerCoordinate===e.verticesPerCoordinate&&t.drawCallsPerFeature===e.drawCallsPerFeature)?t:e})}get _averageSymbolComplexities(){const e=this._totalSymbolComplexities;return e.numComplexities>0&&(e.verticesPerFeature/=e.numComplexities,e.verticesPerCoordinate/=e.numComplexities,e.drawCallsPerFeature/=e.numComplexities,e.memory.bytesPerFeature/=e.numComplexities,e.memory.bytesPerFeatureLabel/=e.numComplexities,e.memory.resourceBytes/=e.numComplexities,e.memory.draped.bytesPerFeature/=e.numComplexities,e.memory.draped.bytesPerFeatureLabel/=e.numComplexities),e}get _totalSymbolComplexities(){const e=new Ce;return this._forEachSymbolComplexity(t=>ae(t,e)),e}get usedMemory(){const e=this.labelsEnabled?(this.averageSymbolComplexity?.memory.bytesPerFeatureLabel??0)*this._numberOfGraphics:0;let t=0;if(this._forEachSymbolComplexityUsed(e=>t+=e?.memory.resourceBytes??0),null==this._symbolMaterials){this._symbolMaterials=[];for(const e of this._symbols.values())if(null!=e)for(const t of e.symbolLayers)if(t)for(const e of t.materials)e&&this._symbolMaterials.push(e)}const i=this.owner.view.stage.renderer,r=this.owner.view.overlayManager.renderer,s=this._symbolMaterials.reduce((e,t)=>e+((i.getMaterialRenderer(t)||r.getMaterialRenderer(t))?.usedMemory??0),0);return this._usedMemory+e+t+s}get usedMemoryPerGraphic(){if(this._usedMemory&&this._numberOfGraphics){const e=this._numberOfGraphics/(this._numberOfGraphics+Math.max(this._pendingAdds,this._pendingRemoves));return this._usedMemory/this._numberOfGraphics*e}if(null!=this.averageSymbolComplexity){const e=this.labelsEnabled?this.averageSymbolComplexity.memory.bytesPerFeatureLabel:0;return this.averageSymbolComplexity.memory.bytesPerFeature+e}return 0}get unprocessedMemoryEstimate(){return(this._pendingAdds-this._pendingRemoves)*this.usedMemoryPerGraphic}_forEachSymbolComplexity(e){return this.currentRenderer?this._getSymbolComplexitiesUsedOrRenderer(e):this._forEachSymbolComplexityUsed(e)}get visible(){return this._visible}_getConvertedSymbol(e){const t=e;if("web-style"===t.type)return t.clone();const i=this._symbolConversionCache.get(t.id);if(null!=i)return i;const r=se(t,{geometryType:this.layer?.geometryType??void 0,retainId:!0,hasLabelingContext:this._hasLabelingContext(t),cimFallbackEnabled:!0}),a=r.symbol||null;return null==a&&r.error&&s.getLogger(this).error(r.error.message),this._symbolConversionCache.set(t.id,a),a}_getSymbolComplexitiesUsedOrRenderer(e){const t=this.currentRenderer;if(null==t)return;const i=t.symbols,r="backgroundFillSymbol"in t?t.backgroundFillSymbol:null;if(!r&&!i.length)return;const s=this._getSymbolComplexityUsedOrRenderer(r);null!=s&&e(s);for(const a of i){const t=this._getSymbolComplexityUsedOrRenderer(a);null!=t&&e(t)}}_getSymbolComplexityUsedOrRenderer(e){if(null==e)return null;const t=this._symbols.get(e.id);if(null!=t)return t.complexity;const i=this._getConvertedSymbol(e);return null!=i?ne(i):null}_forEachSymbolComplexityUsed(e){this._symbols.forEach(t=>{e(t?.complexity)})}get _objectIdField(){return this.layer.objectIdField}constructor(e){super(e),this._propertiesPool=new Ee({computedExtent:()=>new I},this),this.computedExtent=null,this.currentRenderer=null,this.rendererRequiresHydratedGraphic=!1,this._graphicStateTracking=null,this.graphics3DGraphics=new Map,this.stageLayer=null,this.stage=null,this._graphicsDrapedUids=new Set,this._graphicsBySymbol=new Map,this._symbolConversionCache=new Map,this._symbols=new Map,this._graphicsWithoutSymbol=new Map,this._graphicsWaitingForSymbol=new Map,this._graphicsUpdateId=0,this._frameTaskHandle=Le,this._dataUpdateQueue=new Ie,this._updateQueue=new Ie,this._focusAreasGraphicsQueue=new u,this._suspendSymbolCleanup=!1,this._arcadeOnDemand=null,this._rendererChangeAbortController=null,this._elevationInfoChangeAbortController=null,this._initializeAbortController=null,this._elevationAlignment=null,this._scaleVisibility=null,this._filterVisibility=null,this._spatialIndex=null,this.extentPadding=0,this._updatingPendingLoadedGraphicsChange=null,this._featureStore=null,this._deconflictor=null,this._labeler=null,this._objectStates=null,this._viewElevationProvider=null,this._stageLayerElevationProvider=null,this._whenGraphics3DGraphicRequests={},this._pendingUpdates=new Map,this._numberOfGraphics=0,this._numberOfGraphicsProvidingElevation=0,this._pendingAdds=0,this._pendingRemoves=0,this._applyPendingRemovesFirst=!1,this._loadingSymbols=0,this.compressionTracker=new Ve,this._symbolWarningLogged=!1,this._geometryWarningLogged=!1,this._objectIdInvisibleSet=new Set,this._whenSymbolRemoved=new d,this.preferredUpdatePolicy=1,this._forcedUpdatePolicy=null,this.elevationFeatureExpressionEnabled=!0,this.owner=null,this.layer=null,this.graphicSymbolSupported=!0,this.getRenderingInfoWithoutRenderer=!1,this.setUidToIdOnAdd=!0,this.hasZ=null,this.hasM=null,this._usedMemory=0,this._visible=!1,this._startCreateGraphics=!1,this._unusedSymbolsCache=e.owner.view.resourceController.memoryController.newCache("graphics-3d-unused-symbols",e=>e.destroy()),this.symbolCreationContext=new ye(e.owner.view.resourceController.scheduler,(e,t)=>this._updateQueue.push(e,t),e.owner.layerViewUid,this.compressionTracker)}initialize(){this._featureStore=new pe({objectIdField:this.owner.layer?.objectIdField,hasZ:!!this.hasZ,hasM:!!this.hasM,viewSpatialReference:this._viewSpatialReference,featureSpatialReference:this.owner.featureSpatialReference,getSpatialIndex:()=>this.spatialIndex,forEach:e=>this.graphics3DGraphics.forEach(e)});const e=(e,t,i)=>this.spatialIndex.queryGraphicUIDsInExtent(e,t,i),{componentFactories:t}=this;this._elevationAlignment=t.elevationAlignment?.(this,e),this._scaleVisibility=t.scaleVisibility?.(this,e),this._filterVisibility=t.filterVisibility?.({featureStore:this._featureStore,getFeatureCount:()=>this.graphics3DGraphics.size,updateFeatureVisibilities:e=>this.modifyGraphics3DGraphicVisibilities(t=>t.setVisibilityFlag(1,4,e(H(t.graphic,this._objectIdField)))),setAllFeaturesVisibility:e=>this.modifyGraphics3DGraphicVisibilities(t=>t.setVisibilityFlag(1,4,e)),clearFeaturesVisibility:()=>this.modifyGraphics3DGraphicVisibilities(e=>e.setVisibilityFlag(1,4,!0))}),this._deconflictor=t.deconflictor?.(this),this._labeler=t.labeler?.(this,this._scaleVisibility),this._objectStates=t.objectStates?.(this),this._initializeAbortController=new AbortController,this.addHandles(g(()=>this.owner.view.state.highlights,()=>{const{highlightOrderMap:e}=this.owner.view.state;this.graphics3DGraphics.forEach(t=>t.updateHighlights(e))})),this._initializePromise=this._initializeAsync()}async _initializeAsync(){const e=this._initializeAbortController?.signal,t=this.owner.view;this._viewElevationProvider=new le(this._viewSpatialReference,t),this._initializeStage(t,this.owner.layerViewUid);const i=t.sharedSymbolResources;this.symbolCreationContext.sharedResources=i,null!=this.currentRenderer&&(this.symbolCreationContext.renderer=this.currentRenderer),this.symbolCreationContext.stage=this.stage,this.symbolCreationContext.renderCoordsHelper=t.renderCoordsHelper,this.symbolCreationContext.layer=this.layer,this.symbolCreationContext.graphicsCoreOwner=this.owner,this.symbolCreationContext.localOriginFactory=new Ge(t.renderSpatialReference),this.symbolCreationContext.elevationProvider=t.elevationProvider,this.symbolCreationContext.notifyGraphicGeometryChanged=e=>this.notifyGraphicGeometryChanged(e),this.symbolCreationContext.notifyGraphicVisibilityChanged=e=>this.notifyGraphicVisibilityChanged(e),this.symbolCreationContext.focusAreaStyle=t.map?.focusAreas.style??null;const r=he(this.layer.elevationInfo,this.elevationFeatureExpressionEnabled);if(this.symbolCreationContext.featureExpressionInfoContext=await de(r,this._viewSpatialReference,e,s.getLogger(this)),p(e),this.symbolCreationContext.screenSizePerspectiveEnabled=xe(this.layer.screenSizePerspectiveEnabled),this.symbolCreationContext.slicePlaneEnabled=!!this.owner.slicePlaneEnabled,this.symbolCreationContext.physicalBasedRenderingEnabled=!!this.owner.view.qualitySettings?.physicallyBasedRenderingEnabled,this.symbolCreationContext.skipHighSymbolLods=!!this.owner.view.qualitySettings?.graphics3D?.skipHighSymbolLods,"drapeSourceType"in this.owner){const{owner:e}=this;this.symbolCreationContext.drapeSourceRenderer=t.overlayManager.registerGeometryDrapeSource(e)}this.addHandles([m(()=>this.suspendedOrOutsideOfView,()=>this._updateQueue.unshift(()=>this._updateLayerVisibility(),null).catch(c)),m(()=>xe(this.layer?.screenSizePerspectiveEnabled),e=>{e!==this.symbolCreationContext.screenSizePerspectiveEnabled&&(this.symbolCreationContext.screenSizePerspectiveEnabled=e,this._screenSizePerspectiveEnabledChange())}),m(()=>this.owner.slicePlaneEnabled,e=>this._slicePlaneEnabledChange(!!e)),m(()=>this.owner.view.state?.rasterPixelRatio,()=>this._pixelRatioChange()),m(()=>!!this.owner.view.qualitySettings?.physicallyBasedRenderingEnabled,e=>this._physicalBasedRenderingChange(e)),m(()=>!!this.owner.view.qualitySettings?.graphics3D?.skipHighSymbolLods,e=>this._skipHighSymbolLoDsChange(e)),m(()=>this.owner.view.focusAreasView?.polygons,()=>this._updateFocusedLabels()),m(()=>this.owner.view.timeZone,()=>{this.currentRenderer?.arcadeRequired&&this.recreateAllGraphics()}),m(()=>this.owner.view.map?.focusAreas.style,e=>{this.symbolCreationContext.focusAreaStyle=e??null,this.recreateAllGraphicsAndSymbols()}),g(()=>t.basemapTerrain?.tilingScheme,e=>{const i=t.groundView?.spatialReference;if(e.spatialReference.equals(this.symbolCreationContext.overlaySR)||null==i||(this.symbolCreationContext.overlaySR=i),this.hasHandles("loaded-graphics"))this.recreateAllGraphics();else{const e=()=>this.owner?.loadedGraphics;this.addHandles([b(e,"change",e=>{this._graphicsCollectionChanged(e),this._signalUpdatingDuringAsyncLoadedGraphicsChange()},{onListenerAdd:()=>{this.recreateAllGraphics(),this._signalUpdatingDuringAsyncLoadedGraphicsChange()}})],"loaded-graphics")}},{initial:!0}),m(()=>this.effectiveUpdatePolicy,e=>{null!=this.stageLayer&&(this.stageLayer.updatePolicy=e),this.symbolCreationContext.isAsync=0===this.effectiveUpdatePolicy,1===e&&this.runTask(Ae)},_)]),this._frameTaskHandle=t.resourceController.scheduler.registerTask(je.GRAPHICS_CORE,this),this.layer&&"featureReduction"in this.layer&&this.addHandles(m(()=>this.layer.featureReduction,()=>this._deconflictor?.featureReductionChange())),this.notifyChange("averageSymbolComplexity"),this.rendererChange(this.owner.renderer).catch(()=>{}),this._initializeAbortController=null}_abortInitialize(){this._initializeAbortController=n(this._initializeAbortController)}_updateFocusedLabels(){this._focusAreasGraphicsQueue.clear(),this.forEachGraphics3DSymbol((e,t)=>{t&&e.needsUpdateFocus&&t.forEach(e=>{this._focusAreasGraphicsQueue.push(e)})})}destroy(){if(this._unusedSymbolsCache.destroy(),this._abortInitialize(),this._rendererChangeAbortController=n(this._rendererChangeAbortController),this._abortElevationInfoChange(),this._frameTaskHandle.remove(),this._frameTaskHandle=Le,this._dataUpdateQueue.cancelAll(),this._updateQueue.cancelAll(),this._deconflictor=o(this._deconflictor),this._labeler=o(this._labeler),this._elevationAlignment=l(this._elevationAlignment),this._scaleVisibility=l(this._scaleVisibility),this._filterVisibility=l(this._filterVisibility),this._objectStates=l(this._objectStates),this.clear(),"drapeSourceType"in this.owner){const{owner:e}=this;this.stage.view.overlayManager.unregisterDrapeSource(e)}this._featureStore=l(this._featureStore),this._updatingPendingLoadedGraphicsChange=o(this._updatingPendingLoadedGraphicsChange),this._graphicStateTracking=l(this._graphicStateTracking),this.stage&&(this.stageLayer=l(this.stageLayer),this.stage=null),this._set("owner",null);for(const e in this._whenGraphics3DGraphicRequests)this._whenGraphics3DGraphicRequests[e].reject(new r("graphic:layer-destroyed","Layer has been destroyed"));this._whenGraphics3DGraphicRequests=null,this._propertiesPool=l(this._propertiesPool),this._whenSymbolRemoved.prune(),this._symbolConversionCache.clear(),this._objectIdInvisibleSet.clear(),this._spatialIndex=l(this._spatialIndex),this._symbolMaterials=null}clear(){this._objectStates?.allGraphicsDeleted(),null!=this._graphicStateTracking&&this._graphicStateTracking.allGraphicsDeleted(),this.graphics3DGraphics.forEach(e=>e.destroy()),this._spatialIndex?.clear(),this.graphics3DGraphics.clear(),this._numberOfGraphics=0,this._usedMemory=0,this._updateLayerVisibility(),this._symbols.forEach(l),this._symbols.clear(),this._symbolMaterials&&(this._symbolMaterials.length=0,this._symbolMaterials=null),this._graphicsBySymbol.clear(),this._graphicsWithoutSymbol.clear(),this._graphicsWaitingForSymbol.clear(),this._pendingUpdates.clear(),this._pendingAdds=0,this._pendingRemoves=0,this._applyPendingRemovesFirst=!1,this.notifyChange("dataUpdating"),this.notifyChange("readyToRun"),this.notifyChange("updatingRemaining"),this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.()}_initializeStage(e,t){this.stage=e.stage,this.stageLayer=new Re(this.stage,{visible:!this.suspendedOrOutsideOfView,updatePolicy:this.effectiveUpdatePolicy},t);const i=this.stageLayer.events;i.on("transformationChanged",e=>this.notifyGraphicGeometryChanged(e.graphicUid)),i.on("shaderTransformationChanged",e=>this.notifyGraphicGeometryChanged(e.graphicUid)),i.on("visibilityChanged",e=>this.notifyGraphicVisibilityChanged(e.graphicUid)),i.on("geometryAdded",e=>this.notifyGraphicGeometryChanged(e.object.graphicUid)),i.on("geometryRemoved",e=>this.notifyGraphicGeometryChanged(e.object.graphicUid)),i.on("attributesChanged",e=>Pe(e.attribute)&&this.notifyGraphicGeometryChanged(e.object.graphicUid))}notifyGraphicGeometryChanged(e){if(this.owner.notifyContentGeometryUpdate?.(),null==this._graphicStateTracking||null==e)return;const t=this.graphics3DGraphics.get(e);t&&this._graphicStateTracking.updateGraphicGeometry(t)}notifyGraphicVisibilityChanged(e){if(this.owner.notifyContentGeometryUpdate?.(),null==this._graphicStateTracking||null==e)return;const t=this.graphics3DGraphics.get(e);t&&this._graphicStateTracking.updateGraphicVisibility(t)}_updateLayerVisibility(){const e=this.displayFeatureLimit.maximumNumberOfFeatures,t=this._numberOfGraphics>e*Be,i=!this.suspendedOrOutsideOfView&&!t;i!==this._visible&&(this._visible=i,this._updateStageLayerVisibility())}_updateStageLayerVisibility(){const e=this._visible&&(null==this.layer.opacity||this.layer.opacity>=Oe);this.stageLayer.visible!==e&&(this.stageLayer.visible=e,e?this.updateGraphicsVisibilities():this._hideAllGraphics(),this.owner.notifyContentGeometryUpdate?.())}getGraphics3DGraphicById(e){return null!=e?this.graphics3DGraphics.get(e):void 0}getGraphics3DGraphicByObjectId(e){return this.owner.layer?.objectIdField?this._findGraphics3DGraphicByObjectId(e):null}_getGraphicObjectID(e,t=this.owner.layer?.objectIdField){return H(e,t)}get graphics3DGraphicsByObjectID(){const e=this.owner.layer?.objectIdField;if(!e)return;const t=new Map;return this.graphics3DGraphics.forEach(i=>{if(!i)return;const r=i.graphic,s=this._getGraphicObjectID(r,e);null!=s&&t.set(s,i)}),t}get labelsEnabled(){return!!this._labeler?.layerLabelsEnabled()}async updateLabelingInfo(e){const t=this._deconflictor?.labelingInfoChange(e),i=this._labeler?.labelingInfoChange(e);await Promise.allSettled([t,i])}updateVisibilityInfo(){this._deconflictor?.labelingInfoChange(),this._labeler?.visibilityInfoChange()}get symbolUpdateType(){if(this._pendingUpdates.size>0)return"unknown";let e=!1,t=!1;for(const[i,r]of this._symbols)if(null!=r){switch(r.getFastUpdateStatus()){case 3:return"unknown";case 1:this._graphicsBySymbol.has(i)&&(t=!0);break;case 0:this._graphicsBySymbol.has(i)&&(e=!0);break;case 2:this._graphicsBySymbol.has(i)&&(t=e=!0)}}return t?e?"mixed":"fast":e?"slow":"mixed"}runTask(e){if(this._dataUpdateQueue.runTask(e),this._updateQueue.runTask(e),this._applyPendingUpdates(e),this._applyFocusAreasUpdates(e),this.notifyChange("readyToRun"),this.readyToRun||this.notifyChange("dataUpdating"),this.notifyChange("updatingRemaining"),!e.hasProgressed)return Fe}setObjectIdVisibility(e,t){t?this._objectIdInvisibleSet.delete(e):this._objectIdInvisibleSet.add(e);const i=this._findGraphics3DGraphicByObjectId(e);null!=i&&this._updateUserVisibility(i)}_findGraphics3DGraphicByObjectId(e){return a(this.graphics3DGraphics,t=>this._getGraphicObjectID(t.graphic)===e)}_updateUserVisibility(e){if(null==e)return!1;const t=e.graphic,i=this._getGraphicObjectID(t),r=t.visible&&!this.owner.suspended&&this.stageLayer.visible&&(null==i||!this._objectIdInvisibleSet.has(i));return e.setVisibilityFlag(1,1,r)}_whenGraphics3DGraphic(e){const t=this.graphics3DGraphics.get(e.uid);if(t)return Promise.resolve(t);const i=this._whenGraphics3DGraphicRequests[e.uid];if(i)return i.promise;const r=Promise.withResolvers();return this._whenGraphics3DGraphicRequests[e.uid]=r,r.promise}async _boundsForGraphics3DGraphic(e,t){const i=this._viewSpatialReference,r=this.owner.view.renderSpatialReference,s=this.owner.view.groundView.spatialReference,a=(e,t,s)=>A(e,r,t,e,i,t,s),n=(e,t,r)=>A(e,s,t,e,i,t,r),o=this._viewElevationProvider?{service:this._viewElevationProvider,useViewElevation:null!=t&&!!t.useViewElevation,minDemResolution:null!=t?t.minDemResolution:null,minDemResolutionForPoints:this.owner.view.resolution}:null,l=await e.getProjectedBoundingBox(a,n,o,t?.signal);if(!l)return null;const h=l.boundingBox;if(l.requiresDrapedElevation){const e=this.symbolCreationContext.elevationProvider;if(e){F(h,Me);const t=e.getElevation(Me[0],Me[1],0,i,"ground")??0;h[2]=Math.min(h[2],t),h[5]=Math.max(h[5],t)}}return{boundingBox:h,screenSpaceObjects:l.screenSpaceObjects}}async whenGraphicBounds(e,t){await f(()=>this.owner?.loadedGraphics);const i=this.owner.layer?.objectIdField,s=this.owner.loadedGraphics.find(t=>t===e||null!=i&&null!=t.attributes&&e.attributes&&t.attributes[i]===e.attributes[i]);if(!s)throw new r("internal:graphic-not-part-of-view","Graphic is not part of this view");const a=await this._whenGraphics3DGraphic(s);return this._boundsForGraphics3DGraphic(a,t)}computeAttachmentOrigin(e,t){const i=this.graphics3DGraphics.get(e.uid);if(!i)return null;const r=i.computeAttachmentOrigin();if(0===r.render.num&&0===r.draped.num)return null;P(He,0,0,0);let s=0;if(r.render.num>0){if(!j(r.render.origin,this.symbolCreationContext.renderCoordsHelper.spatialReference,qe,t))return null;R(He,He,qe),s++}if(r.draped.num>0){const[e,i]=r.draped.origin,a=this._viewElevationProvider.getElevation(e,i,"ground")??0;if(P(qe,e,i,a),!j(qe,this._viewElevationProvider.spatialReference,qe,t))return null;R(He,He,qe),s++}return s>1&&U(He,He,1/s),new E({x:He[0],y:He[1],z:He[2],spatialReference:t})}getSymbolLayerSize(e,t){const i=this._symbols.get(e.id);if(null==i)throw new r("internal:symbol-not-part-of-view","Symbol is not part of this view");const s=e.symbolLayers.indexOf(t);if(-1===s)throw new r("internal:missing-symbol-layer","Symbol layer is not in symbol");const a=i.getSymbolLayerSize(s);if(null==a)throw new r("internal:missing-size","Symbol layer has no valid size");return a}_graphicsCollectionChanged(e){this._startCreateGraphics&&(this.add(e.added),this.remove(e.removed))}graphicUpdateHandler(e){const t=e.graphic.uid,i=this.graphics3DGraphics.get(t);if(null!=i||null!=this._graphicsWithoutSymbol.get(t)){switch(e.property){case"visible":this._graphicUpdateVisibleHandler(i);break;case"geometry":this._graphicUpdateGeometryHandler(i,e.graphic);break;case"symbol":this._graphicUpdateSymbolHandler(i,e);break;case"attributes":{const t=this.symbolCreationContext.featureExpressionInfoContext;t?.arcade&&this._graphicUpdateGeometryHandler(i,e.graphic)}break;case"popupTemplate":break;case"origin-transform":this._graphicUpdateTransformHandler(i,e)}this.owner.notifyContentGeometryUpdate?.()}}_graphicUpdateGeometryHandler(e,t){this._graphicUpdateGeometryOrTransformHandler(e,t,()=>!(null==e||!e.graphics3DSymbol.updateGeometry(e)||!(this._labeler?.updateGraphicGeometry(e)??1))&&(this._labeler?.setDirty(),this._deconflictor?.setDirty(),!0));const i=t.geometry;null!=i&&this._expandComputedExtent(i)}_graphicUpdateTransformHandler(e,t){const i=t.graphic.geometry;this._graphicUpdateGeometryOrTransformHandler(e,t.graphic,()=>null!=t.newValue&&null!=e&&null!=i&&e.graphics3DSymbol.updateTransform(e,i.spatialReference,t.newValue,t.action))}_graphicUpdateGeometryOrTransformHandler(e,t,i){if(null!=t.geometry){if(null==e){const e=t.symbol?.id;if(e){const t=this._symbols.get(e);if(null!=t&&0===t.loadStatus)return}return void this._recreateGraphic(t)}if(!i()){const i=this._deconflictor?.getState(e);this._recreateGraphic(t);const r=this.graphics3DGraphics.get(t.uid);r&&null!=i&&this._deconflictor?.setState(r,i)}}else this._recreateGraphic(t)}_graphicUpdateSymbolHandler(e,t){const i=t.graphic,r=null!=e?e.graphics3DSymbol:null!=t.oldValue?this._symbols.get(t.oldValue.id):null;if(null==r||null==t.newValue)return void this._recreateGraphic(i);const s=r.symbol,a=this._getConvertedSymbol(t.newValue);if(null!=a&&(a.type!==s.type||"web-style"===a.type)||"web-style"===s.type)return void this._recreateGraphic(i);const n=this._graphicsBySymbol.get(s.id);if(n&&1!==n.size)return void this._recreateGraphic(i);const o=w(s,a);if(null==o)return void this._updateSymbolMapping(s.id,a);const l={diff:o,graphics3DGraphicPatches:[],symbolStatePatches:[]};if(r.prepareSymbolPatch(l),!G(l.diff))return void this._recreateGraphic(i);const h=this._getRenderingInfo(i,!1);if(null==h)return void this._recreateGraphic(i);const d=r.extentPadding;for(const p of l.symbolStatePatches)p();if(d!==r.extentPadding&&this._recomputeExtentPadding(),null!=e)for(const p of l.graphics3DGraphicPatches)p(e,h);this._updateSymbolMapping(s.id,a)}_graphicUpdateVisibleHandler(e){this._updateUserVisibility(e)&&(this._labeler?.setDirty(),this._deconflictor?.setDirty())}recreateGraphics(e){this._suspendSymbolCleanup=!0,this.remove(e),this.add(e),this._suspendSymbolCleanup=!1,1===this.effectiveUpdatePolicy&&this._cleanupSymbols()}_recreateGraphic(e){this.recreateGraphics([e])}_beginGraphicUpdate(e){const t=this._graphicsUpdateId;return this._graphicsUpdateId++,this._graphicsWaitingForSymbol.set(e.uid,t),1===this._graphicsWaitingForSymbol.size&&this.notifyChange("dataUpdating"),t}_endGraphicUpdate(e,t){e&&(t&&this._graphicStateTracking?.updateGraphicError(e,t),this._graphicsWaitingForSymbol.delete(e.uid),0===this._graphicsWaitingForSymbol.size&&(this._cleanupSymbols(),this.notifyChange("dataUpdating")))}_recomputeExtentPadding(){let e=0;this._symbols.forEach(t=>{null!=t&&(e=Math.max(e,t.extentPadding))}),this._set("extentPadding",e)}_expandComputedExtent(e){const t=ke,i=e.spatialReference;q(e,t);const r=this._viewSpatialReference,s=Te.tmpVec;if(z(i,r)||V(t[0],t[1],0,i,s,r)&&(t[0]=s[0],t[1]=s[1],V(t[3],t[4],0,i,s,r),t[3]=s[0],t[4]=s[1]),!(isFinite(t[0])&&isFinite(t[3])&&isFinite(t[1])&&isFinite(t[4])))return;const a=this.computedExtent;let n=null;const o=isFinite(t[2])&&isFinite(t[5]),l=o&&(null==a?.zmin||t[2]<a.zmin),h=o&&(null==a?.zmax||t[5]>a.zmax);if(a){(t[0]<a.xmin||t[1]<a.ymin||t[3]>a.xmax||t[4]>a.ymax||l||h)&&(n=this._propertiesPool.get("computedExtent"),n.xmin=Math.min(t[0],a.xmin),n.ymin=Math.min(t[1],a.ymin),n.xmax=Math.max(t[3],a.xmax),n.ymax=Math.max(t[4],a.ymax),n.spatialReference=r)}else n=this._propertiesPool.get("computedExtent"),n.xmin=t[0],n.ymin=t[1],n.xmax=t[3],n.ymax=t[4],n.spatialReference=r;n&&(l&&(n.zmin=t[2]),h&&(n.zmax=t[5]),this._set("computedExtent",n))}_abortElevationInfoChange(){this._elevationInfoChangeAbortController&&(this._elevationInfoChangeAbortController.abort(),this._elevationInfoChangeAbortController=null)}async elevationInfoChange(){this._abortElevationInfoChange();const e=new AbortController;this._elevationInfoChangeAbortController=e;const t=he(this.layer.elevationInfo,this.elevationFeatureExpressionEnabled);this.symbolCreationContext.featureExpressionInfoContext=await de(t,this._viewSpatialReference,e.signal,s.getLogger(this)),p(e.signal),this._elevationInfoChangeAbortController=null,this._labeler?.elevationInfoChange(),this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("elevationInfo",t)?t?.forEach(e=>{const t=e.graphic,i=e.labelLayers;for(const r of i){r.graphics3DSymbolLayer.graphics3DGraphicLayerElevationInfoChanged(t,r)}}):this._recreateSymbol(i)}),this.updateStageLayerElevationProvider(),this._elevationAlignment?.elevationInfoChange()}updateStageLayerElevationProvider(){this._stageLayerElevationProvider?"relative-to-scene"!==this.layer.elevationInfo?.mode&&0!==this._numberOfGraphicsProvidingElevation||(this.owner.view.elevationProvider.unregister(this._stageLayerElevationProvider),this._stageLayerElevationProvider=l(this._stageLayerElevationProvider)):(!this.layer.elevationInfo||this.layer.elevationInfo&&"relative-to-scene"!==this.layer.elevationInfo.mode)&&this._numberOfGraphicsProvidingElevation>0&&(this._stageLayerElevationProvider=new Se({layer:this.layer,stageLayer:this.stageLayer,view:this.owner.view}),this.owner.view.elevationProvider.register(2,this._stageLayerElevationProvider))}_clearSymbolsAndGraphics(){this.clear(),null!=this._filterVisibility&&this._filterVisibility.clear(),this._labeler?.reset(),this._deconflictor?.clear(),this._elevationAlignment?.clear(),this.stageLayer?.invalidateSpatialQueryAccelerator(),this._stageLayerElevationProvider&&(this.owner.view.elevationProvider.unregister(this._stageLayerElevationProvider),this._stageLayerElevationProvider=l(this._stageLayerElevationProvider))}startCreateGraphics(){this._startCreateGraphics=!0,this.recreateAllGraphics()}recreateAllGraphics(){this._recreateAllGraphics(!1)}recreateAllGraphicsAndSymbols(){this._recreateAllGraphics(!0)}_recreateAllGraphics(e=!1){if(!this._startCreateGraphics)return;const{loadedGraphics:t,view:i}=this.owner,r=i.basemapTerrain?.tilingScheme&&t?.length?t.toArray():null;!e&&r||this._clearSymbolsAndGraphics(),this.symbolCreationContext.screenSizePerspectiveEnabled=xe(this.layer.screenSizePerspectiveEnabled),this.symbolCreationContext.slicePlaneEnabled=!!this.owner.slicePlaneEnabled,this._set("computedExtent",null),r&&(e?this.add(r):this.recreateGraphics(r))}_recreateSymbol(e){const t=this._graphicsBySymbol.get(e),i=[];t&&(t.forEach((e,t)=>{const r=e.usedMemory;this._conditionalRemove(e,t),this._spatialIndex?.remove(e),i.push(e.graphic),e.destroy(),this._removeGraphics3DGraphic(t,r),this._updateLayerVisibility(),this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.()}),this._graphicsBySymbol.set(e,new Map));const r=this._symbols.get(e);l(r),this._symbols.delete(e),this._symbolMaterials=null,l(this._unusedSymbolsCache.pop(e)),this.add(i)}_recreateGraphicsForSymbol(e){const t=this._graphicsBySymbol.get(e);if(t){const e=[];t.forEach(t=>e.push(t.graphic)),this.recreateGraphics(e)}}_conditionalRemove(e,t){this._graphicsDrapedUids.delete(t),this._objectStates?.removeGraphic(e),this._labeler?.removeGraphic(e),this._deconflictor?.removeGraphic(e),null!=this._graphicStateTracking&&this._graphicStateTracking.removeGraphic(e)}add(e){e&&0!==e.length&&(this.owner.view.basemapTerrain?.tilingScheme?(0===this._updatePolicyForGraphics(e)?this._addDelayed(e):this._addImmediate(e),this.notifyChange("dataUpdating")):s.getLogger(this).error("#add()","Cannot add graphics before terrain surface has been initialized"))}_updatePolicyForGraphics(e){if(1===this.effectiveUpdatePolicy&&("mesh"===this.layer.geometryType||null==this.layer.geometryType))for(const t of e)if(null!=t.geometry&&"mesh"===t.geometry.type&&!t.geometry.loaded)return 0;return this.effectiveUpdatePolicy}_addImmediate(e){this._geometryWarningLogged=!1,this._symbolWarningLogged=!1;for(const t of e)this._addGraphic(t,this._getRenderingInfo(t),1);this._cleanupSymbols(),this._labeler?.setDirty(),this._deconflictor?.setDirty()}_addDelayed(e){for(const t of e){const e=t.uid;let i=this._pendingUpdates.get(e);i?i.add?0!==i.state&&i.abortController?.abort():this._pendingAdds++:(i=new We,this._pendingAdds++,this._pendingUpdates.set(e,i)),i.add=t}this.notifyChange("readyToRun"),this.notifyChange("updatingRemaining"),this.notifyChange("dataUpdating")}remove(e){0===this.effectiveUpdatePolicy?this._removeDelayed(e):this._removeImmediate(e),this.notifyChange("dataUpdating")}_removeImmediate(e){for(const t of e)this._removeGraphic(t);this._cleanupSymbols(),this._labeler?.setDirty(),this._deconflictor?.setDirty()}_removeDelayed(e){for(const t of e){const e=t.uid,i=this._pendingUpdates.get(e);if(i)i.add&&(i.remove?i.add=null:this._pendingUpdates.delete(e),1===i.state&&i.abortController?.abort(),this._pendingAdds--);else{const i=new We;i.remove=t,this._pendingUpdates.set(e,i),this._pendingRemoves++,this._applyPendingRemovesFirst=!0}}0===this._pendingUpdates.size&&this._finishPendingUpdates(),this.notifyChange("readyToRun"),this.notifyChange("updatingRemaining"),this.notifyChange("dataUpdating")}_finishPendingUpdates(){this._cleanupSymbols(),(this._pendingAdds||this._pendingRemoves)&&s.getLogger(this).warn("pendingAdds/Removes in inconsistent state!"),this._pendingAdds=0,this._pendingRemoves=0,this._applyPendingRemovesFirst=!1}_applyFocusAreasUpdates(e){for(;this._focusAreasGraphicsQueue.length>0&&!e.done;){e.madeProgress();const t=this._focusAreasGraphicsQueue.pop(),i=fe(t.graphic.geometry);if(null==i)continue;const r=this.stage.view.focusAreasView?.containsGeometry(i)??!0;t.layers.forEach(e=>{if(e.stageObject){e.stageObject.geometries.some(e=>e.material instanceof Ue&&null==e.material.parameters.focusAreaStyle!==r)&&this.recreateGraphics([t.graphic])}})}0===this._focusAreasGraphicsQueue.length&&this.notifyChange("readyToRun")}_applyPendingUpdates(e){if(this._geometryWarningLogged=!1,this._symbolWarningLogged=!1,0===this._pendingUpdates.size&&this._spatialIndex?.updating)return this._spatialIndex.update(),void e.madeProgress();if(this._applyPendingRemovesFirst){this._applyPendingRemovesFirst=!1;for(const[t,i]of this._pendingUpdates){if(e.done){this._applyPendingRemovesFirst=!0;break}if(i.remove&&!i.add&&(this._pendingRemoves--,e.madeProgress(),this._removeGraphic(i.remove),i.remove=null,this._pendingUpdates.delete(t),0===this._pendingRemoves))break}}for(const[t,i]of this._pendingUpdates){if(e.done)break;i.add&&0===i.state&&this._processPendingUpdateNew(i);let r=this.effectiveUpdatePolicy;if(!i.remove||i.add&&2!==i.state||(this._pendingRemoves--,e.madeProgress(),this._removeGraphic(i.remove),i.remove=null,r=1),i.add)switch(i.state){case 2:this._addGraphic(i.add,i.renderingInfo,r),i.add=null,this._pendingAdds--,e.madeProgress();break;case 3:i.add=null,this._pendingAdds--}null==i.remove&&null==i.add&&this._pendingUpdates.delete(t)}0===this._pendingUpdates.size&&(this._finishPendingUpdates(),this.notifyChange("readyToRun"),this.notifyChange("dataUpdating"))}_processPendingUpdateNew(e){if(!e.add)return void(e.state=2);const t=e.add.geometry;null==t||"mesh"!==t.type||t.loaded?this._processPendingUpdateNewRenderingInfo(e):this._processPendingUpdateNewMesh(e,t)}async _processPendingUpdateNewMesh(e,t){e.state=1,e.abortController=new AbortController;const i=e.abortController.signal;try{await t.load({signal:i})}catch(r){return this._processPendingUpdateNewError(e,r)}e.abortController=null,this._processPendingUpdateNewRenderingInfo(e)}_processPendingUpdateNewError(e,t){e.abortController=null,y(t)?e.state=0:e.state=3}async _processPendingUpdateNewRenderingInfo(e){if(null==this.layer.renderer||"dictionary"!==this.layer.renderer.type)return e.renderingInfo=this._getRenderingInfo(e.add),void(e.state=2);e.state=1,e.abortController=new AbortController;let t=null;try{t=await this._getRenderingInfoAsync(e.add,{signal:e.abortController.signal})}catch(i){return e.abortController=null,void(y(i)?e.state=0:e.state=3)}null==t?.symbol?(this._symbolWarningLogged||(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no symbol and will not render`)),e.renderingInfo=null):e.renderingInfo=t,e.state=2}_addGraphic(e,t,i){if(this._graphicsWithoutSymbol.set(e.uid,e),null==t?.symbol||!Q(e))return;const r=this.stage.renderView.olidRenderHelper;if(r&&this.setUidToIdOnAdd){const t=J(this.owner.view,this.owner.layerViewUid);r.setUidToObjectAndLayerId(H(e,this._objectIdField),e.uid,this.layer.id,this.owner.layerViewUid,W(this.layer)&&!!this.layer.popupEnabled&&!t&&De(this.layer,this.owner.view.popup?.defaultPopupTemplateEnabled))}const s=t.symbol,a=this.getOrCreateGraphics3DSymbol(s,t.renderer);if(null==a)return;this._expandComputedExtent(e.geometry);const n=this._beginGraphicUpdate(e),o=new ce(e,t,this.layer);let l=!1;const h=e=>{e===a.symbol.id&&(l=!0)};this._whenSymbolRemoved.push(h);const d=()=>{if(--this._loadingSymbols,this.destroyed)return;this._whenSymbolRemoved.removeUnordered(h);if(this._graphicsWaitingForSymbol.get(e.uid)!==n||l||a.destroyed||this.graphicSymbolSupported&&e.symbol&&e.symbol.id!==a.symbol.id)--a.referenced,this._cleanupSymbols();else{const t=this._createGraphics3DGraphic(a,o);this._spatialIndex&&null!=t&&this._spatialIndex.add(t),--a.referenced,this._endGraphicUpdate(e)}this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.(),this._labeler?.setDirty()},p=t=>{--this._loadingSymbols,this.destroyed||(this._whenSymbolRemoved.removeUnordered(h),l||(y(t)?this.add([e]):a.destroyed||this._endGraphicUpdate(e,t)))};++this._loadingSymbols,0===i?a.load(()=>this._dataUpdateQueue.push(d,null).catch(c),e=>this._dataUpdateQueue.push(()=>p(e),null).catch(c)):a.load(d,p)}_removeGraphic(e){const t=e.uid,i=this.graphics3DGraphics.get(t);if(i){i.graphics3DSymbol.onRemoveGraphic(i);const e=i.usedMemory,r=i.isElevationSource;this._conditionalRemove(i,t),this._spatialIndex?.remove(i);const s=i.graphics3DSymbol.symbol.id;this._graphicsBySymbol.get(s)?.delete(t),this._graphicsWithoutSymbol.delete(t),this._removeGraphics3DGraphic(t,e,r),i.destroy(),this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.()}else this._graphicsWithoutSymbol.delete(t),this._graphicsWaitingForSymbol.delete(t),0===this._graphicsWaitingForSymbol.size&&(this._cleanupSymbols(),this.notifyChange("dataUpdating"))}_hasLabelingContext(e){if(e instanceof ee||e instanceof te){const t=this.symbolCreationContext.layer;return!!t.labelingInfo&&t.labelingInfo.some(t=>t.symbol===e)}return!1}_hasValidSymbolCreationContext(e){return!(e instanceof ee&&!this._hasLabelingContext(e))||(s.getLogger(this).error("LabelSymbol3D is only valid as part of a LabelClass. Using LabelSymbol3D as a renderer symbol is not supported."),!1)}_getRenderingInfo(e,t=!0){const i=e.geometry;if(null==i)return t&&!this._geometryWarningLogged&&(this._geometryWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no geometry and will not render`)),null;if(!L(i.spatialReference,this._viewSpatialReference))return t&&!this._geometryWarningLogged&&(this._geometryWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has incompatible spatial reference and will not render`)),null;if(!this.graphicSymbolSupported&&null!=e.symbol)return t&&!this._symbolWarningLogged&&(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} is not allowed to have a symbol, use a renderer instead`)),null;const r=this.rendererRequiresHydratedGraphic?N(e,this.layer,null):e;let a;if(this.owner.getRenderingInfo&&(this.getRenderingInfoWithoutRenderer||null!=this.currentRenderer))a=this.owner.getRenderingInfo(r,this.currentRenderer,this._arcadeOnDemand);else{const e=r.symbol||re(r.geometry);a=new X(null,e)}return null==a?.symbol?(t&&!this._symbolWarningLogged&&(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no symbol and will not render`)),null):a}_getRenderingInfoAsync(e,t){if(null==e.geometry)return this._geometryWarningLogged||(this._geometryWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no geometry and will not render`)),null;if(!this.graphicSymbolSupported&&null!=e.symbol)return this._symbolWarningLogged||(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} is not allowed to have a symbol, use a renderer instead`)),null;const i=this.rendererRequiresHydratedGraphic?N(e,this.layer,null):e;return this.owner.getRenderingInfoAsync(i,this.currentRenderer,this._arcadeOnDemand,t)}_createGraphics3DSymbol(e,t){if(!this._hasValidSymbolCreationContext(e))return null;const i=this._getConvertedSymbol(e);if(!i)return null;let r;if(null!=t&&"backgroundFillSymbol"in t&&t.backgroundFillSymbol){const e=se(t.backgroundFillSymbol,{ignoreDrivers:!0});null!=e.symbol&&(r=e.symbol.symbolLayers)}const s=ue(i,this.symbolCreationContext,r);return s.load(()=>{const e=s.extentPadding;e>this.extentPadding&&this._set("extentPadding",e),this.notifyChange("averageSymbolComplexity")},()=>{}),s}getOrCreateGraphics3DSymbol(e,t){let i=this._symbols.get(e.id);if(void 0===i){const r=this._unusedSymbolsCache.pop(e.id);i=null!=r?r:e instanceof ie?new ge(e,e=>this._dataUpdateQueue.push(e,null),e=>this._createGraphics3DSymbol(e,t)):this._createGraphics3DSymbol(e,t),this._symbols.set(e.id,i),this._symbolMaterials=null}return null!=i&&++i.referenced,i}trackGraphicState(e){return null==this._graphicStateTracking&&(this._graphicStateTracking=new be(this)),this._graphicStateTracking.add(e)}_addGraphics3DGraphic(e){this._usedMemory+=e.usedMemory,this.graphics3DGraphics.set(e.graphic.uid,e),this._numberOfGraphics++,e.isElevationSource&&(this._numberOfGraphicsProvidingElevation++,this.updateStageLayerElevationProvider()),this._updateLayerVisibility()}_removeGraphics3DGraphic(e,t,i=!1){this._usedMemory-=t,this.graphics3DGraphics.delete(e),this._numberOfGraphics--,i&&(this._numberOfGraphicsProvidingElevation--,this.updateStageLayerElevationProvider()),this._updateLayerVisibility()}_createGraphics3DGraphic(e,t){const{graphic:i}=t;if(this._graphicsWithoutSymbol.delete(i.uid),!this._symbols.has(e.symbol.id))return this.add([i]),null;if(this.graphics3DGraphics.has(i.uid))return null;const r=e.createGraphics3DGraphic(t);if(null==r)return null;this._addGraphics3DGraphic(r);const s=e.symbol.id;this._graphicsBySymbol.has(s)||this._graphicsBySymbol.set(s,new Map),this._graphicsBySymbol.get(s).set(i.uid,r);if(r.isDraped&&this._graphicsDrapedUids.add(i.uid),r.centroid=null,null!=i.geometry&&"point"!==i.geometry.type&&(r.centroid=_e(i.geometry,this._viewSpatialReference)),this._updateUserVisibility(r),null!=this._scaleVisibility&&this._scaleVisibility.updateVisibility(r),null!=this._filterVisibility){const{defaultVisibility:e}=this._filterVisibility;r.setVisibilityFlag(1,4,e),e||this._filterVisibility.reapply()}this._deconflictor?.addGraphic(r),this._labeler?.addGraphic(r),this._objectStates?.addGraphic(r),r.initialize(this.stageLayer),null!=this._graphicStateTracking&&this._graphicStateTracking.addGraphic(r);const a=this._whenGraphics3DGraphicRequests[i.uid];return a&&(delete this._whenGraphics3DGraphicRequests[i.uid],a.resolve(r)),this._symbolMaterials=null,r}async rendererChange(e){if(this._rendererChangeAbortController=n(this._rendererChangeAbortController),e!==this.currentRenderer)if(this._validateRenderer(e),null==e&&this._currentRendererChange(null,!1),Z(e))if(e?.arcadeRequired){const t=new AbortController;this._rendererChangeAbortController=t;const{arcadeUtils:i}=await this._ensureArcade();p(t);const r=i.hasGeometryOperations(e),s=r||await this._rendererUsesFieldsRequiringArcadeTypeConversion(e);p(t),r&&(await i.enableGeometryOperations(),p(t)),0===this.effectiveUpdatePolicy?await this._updateQueue.push(()=>this._currentRendererChange(e,s),t.signal):this._currentRendererChange(e,s),this._rendererChangeAbortController=null}else if(0===this.effectiveUpdatePolicy){const t=new AbortController;this._rendererChangeAbortController=t,await this._updateQueue.push(()=>this._currentRendererChange(e,!1),t.signal),this._rendererChangeAbortController=null}else this._currentRendererChange(e,!1);else this._currentRendererChange(e,!1)}async _ensureArcade(){return null==this._arcadeOnDemand?(this._arcadeOnDemand=await K(),this._arcadeOnDemand):this._arcadeOnDemand}async _rendererUsesFieldsRequiringArcadeTypeConversion(e){const{fieldsIndex:t}=this.layer;if(null==t)return!1;return(await e.getRequiredFields(t)).some(e=>{switch(t.get(e)?.type){case"date":case"date-only":case"time-only":case"timestamp-offset":return!0;default:return!1}})}_currentRendererChange(e,t){this.currentRenderer=e,this.rendererRequiresHydratedGraphic=t,this.symbolCreationContext.arcade=this._arcadeOnDemand;const i=this.symbolCreationContext.renderer;if(e===i)return;if(this._symbolConversionCache.clear(),this._unusedSymbolsCache.clear(),null==e)return this.symbolCreationContext.renderer=null,void this.recreateAllGraphicsAndSymbols();const r=w(i,e);this._updateUnchangedSymbolMappings(r,e,i),this.symbolCreationContext.renderer=e,null!=r&&("complete"===r.type?this.recreateAllGraphicsAndSymbols():"partial"===r.type&&(this._applyRendererDiff(r,e,i)?this._labeler?.reset():this.recreateAllGraphicsAndSymbols()),this.notifyChange("averageSymbolComplexity"))}_diffHasSymbolChange(e){for(const t in e.diff)switch(t){case"visualVariables":case"defaultSymbol":case"uniqueValueInfos":break;case"uniqueValueGroups":case"authoringInfo":case"fieldDelimiter":delete e.diff[t];break;default:return!0}return!1}_applySymbolSetDiff(e,t,i){e=e||[],t=t||[];const r=[];for(const s of t){const t=this._graphicsBySymbol.get(s.id);t&&t.forEach((a,n)=>{const o=a.graphic,l=this.layer instanceof B?this.layer:null,h=this._arcadeOnDemand;if(s===i.defaultSymbol&&i.getSymbol(N(o,l,null),{arcade:h})===i.defaultSymbol)return;const d=a.usedMemory;e.length||i.defaultSymbol?r.push(o):this._graphicsWithoutSymbol.set(n,o);const p=this.graphics3DGraphics.get(n);this._conditionalRemove(p,n),a.destroy(),t.delete(n),this._removeGraphics3DGraphic(n,d),this._updateLayerVisibility()}),this._whenSymbolRemoved.forAll(e=>e(s.id))}(e.length||r.length)&&(this._graphicsWithoutSymbol.forEach(e=>r.push(e)),this._graphicsWithoutSymbol.clear(),this.add(r)),this._cleanupSymbols(),this._labeler?.setDirty(),this._deconflictor?.setDirty()}_applyUniqueValueRendererDiff(e,t,r){const s=e.diff.defaultSymbol,a=e.diff.uniqueValueInfos;if(s||a){const n=a?.changed,o=a?.unchanged;if(n&&o&&n.some(e=>o.some(t=>t.oldValue.symbol?.id===e.oldValue.symbol?.id)))return!1;const l=a?a.added.map(e=>e.symbol).filter(i):[],h=a?a.removed.map(e=>e.symbol).filter(i):[];if(n)for(let e=0;e<n.length;e++)l.push(n[e].newValue.symbol),h.push(n[e].oldValue.symbol);return s?(r.defaultSymbol&&h.push(r.defaultSymbol),t.defaultSymbol&&l.push(t.defaultSymbol)):r.defaultSymbol&&l.length&&h.push(t.defaultSymbol),this._applySymbolSetDiff(l,h,t),delete e.diff.defaultSymbol,delete e.diff.uniqueValueInfos,!0}return!1}_calculateUnchangedSymbolMapping(e,t,i){if("unique-value"!==t?.type||"unique-value"!==i?.type||null!=e&&"partial"!==e.type)return[];const r=e=>null!=e?e.id:null,s=e&&e.diff,a=s?.defaultSymbol,n=s&&s.uniqueValueInfos;let o;if(n)o=n.unchanged.map(e=>({oldId:r(e.oldValue.symbol),newId:r(e.newValue.symbol)}));else{o=[];for(const e of i.uniqueValueInfos??[]){const i=r(e.symbol),s=t.uniqueValueInfos?.find(t=>t.value===e.value);s&&i!==r(s.symbol)&&o.push({oldId:i,newId:r(s.symbol)})}}return!a&&i.defaultSymbol&&o.push({oldId:r(i.defaultSymbol),newId:r(t.defaultSymbol)}),o}_updateSymbolMapping(e,t){const i=null!=t&&t?"string"==typeof t?t:t.id:null;if(null==e||e===i)return;const r=this._graphicsBySymbol.get(e);this._graphicsBySymbol.delete(e),void 0!==r&&this._graphicsBySymbol.set(i,r);const s=this._symbols.get(e);if(void 0!==s&&(this._symbols.delete(e),this._symbols.set(i,s),this._symbolMaterials=null,null!=s)){const e="string"==typeof t?null:t;null!=e?s.symbol=e:s.symbol.id=i}}_updateUnchangedSymbolMappings(e,t,i){const r=this._calculateUnchangedSymbolMapping(e,t,i);for(const{oldId:s,newId:a}of r)this._updateSymbolMapping(s,a)}_applyRendererDiff(e,t,i){if(this._diffHasSymbolChange(e))return!1;if(t instanceof $&&i instanceof $&&this._applyUniqueValueRendererDiff(e,t,i)&&0===Object.keys(e.diff).length)return!0;for(const r of this._graphicsBySymbol.keys()){const i=this._symbols.get(r);if(null!=i)switch(i.applyRendererDiff(e,t)){case 0:this._recreateSymbol(r);break;case 1:this._recreateGraphicsForSymbol(r)}}return!0}opacityChange(){this._updateStageLayerVisibility(),this.forEachGraphics3DSymbol((e,t)=>e.globalPropertyChanged("opacity",t))}_screenSizePerspectiveEnabledChange(){this.forEachGraphics3DSymbol((e,t)=>e.globalPropertyChanged("screenSizePerspectiveEnabled",t)),this._labeler?.screenSizePerspectiveEnabledChanged(),this._deconflictor?.screenSizePerspectiveEnabledChanged()}_slicePlaneEnabledChange(e){e!==this.symbolCreationContext.slicePlaneEnabled&&(this.symbolCreationContext.slicePlaneEnabled=e,this.stageLayer.sliceable=e,this.forEachGraphics3DSymbol((e,t)=>e.globalPropertyChanged("slicePlaneEnabled",t)),this._deconflictor?.slicePlaneEnabledChange(),this._labeler?.slicePlaneEnabledChange())}_physicalBasedRenderingChange(e){this.symbolCreationContext.physicalBasedRenderingEnabled=e,this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("physicalBasedRenderingEnabled",t)||this._recreateSymbol(i)})}_skipHighSymbolLoDsChange(e){this.symbolCreationContext.skipHighSymbolLods=e,this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("skipHighSymbolLods",t)||this._recreateSymbol(i)})}_pixelRatioChange(){this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("pixelRatio",t)||this._recreateSymbol(i)})}_signalUpdatingDuringAsyncLoadedGraphicsChange(){this._updatingPendingLoadedGraphicsChange&&this._updatingPendingLoadedGraphicsChange.remove(),this._updatingPendingLoadedGraphicsChange=v(()=>{this._updatingPendingLoadedGraphicsChange=null})}setClippingExtent(e,t){const i=this.symbolCreationContext.clippingExtent,r=k();return we(e,r,t)?this.symbolCreationContext.clippingExtent=O(T(),r):this.symbolCreationContext.clippingExtent=null,!M(this.symbolCreationContext.clippingExtent,i)}modifyGraphics3DGraphicVisibilities(e){if(this.destroyed)return;let t=!1;this.graphics3DGraphics.forEach(i=>{e(i)&&(t=!0)}),t&&(this._labeler?.setDirty(),this._deconflictor?.setDirty())}forEachGraphics3DSymbol(e,t){for(const[i,r]of this._symbols){if(null==r)return;e(r,this._graphicsBySymbol.get(i)||Qe,i)}if(!t?.excludeUnused)for(const i of this._unusedSymbolsCache)e(i,void 0,i.symbol.id)}updateGraphicsVisibilities(){null!=this._filterVisibility&&this._filterVisibility.reapply(),this.modifyGraphics3DGraphicVisibilities(e=>{const t=this._updateUserVisibility(e),i=!!this._scaleVisibility?.updateVisibility(e);return t||i})}_hideAllGraphics(){this.modifyGraphics3DGraphicVisibilities(e=>e.setVisibilityFlag(1,1,!1))}_validateRenderer(e){const t=()=>`'${this.layer.title?`${this.layer.title}, `:""}id:${this.layer.id}'`,i=Y(e,{geometryType:this.layer?.geometryType,logWarning:(e,i)=>s.getLogger(this).warn(e,`Symbology conversion for layer ${t()}: ${i}`)});if(i){const e=`Renderer for layer ${t} is not supported in a SceneView`;s.getLogger(this).warn(e,i.message)}}_cleanupSymbols(){if(this._graphicsWaitingForSymbol.size>0||this._suspendSymbolCleanup)return;let e=!1;this._symbols.forEach((t,i)=>{if(null==t||t.referenced>0)return;const r=this._graphicsBySymbol.get(i);r&&0!==r.size||(this._graphicsBySymbol.delete(i),this._symbols.delete(i),this._symbolMaterials=null,this._unusedSymbolsCache.put(i,t,h),e=!0)}),e&&(this._recomputeExtentPadding(),this.notifyChange("averageSymbolComplexity"))}get test(){}get performanceInfo(){return new me(this.graphics3DGraphics.size,this.graphics3DGraphics.values().reduce((e,t)=>e+(t.isVisible()?1:0),0),this._graphicsWithoutSymbol.size,this._pendingUpdates.size)}};e([C({readOnly:!0})],ze.prototype,"computedExtent",void 0),e([C()],ze.prototype,"currentRenderer",void 0),e([C()],ze.prototype,"rendererRequiresHydratedGraphic",void 0),e([C()],ze.prototype,"_frameTaskHandle",void 0),e([C()],ze.prototype,"_dataUpdateQueue",void 0),e([C()],ze.prototype,"_updateQueue",void 0),e([C({readOnly:!0})],ze.prototype,"_viewSpatialReference",null),e([C()],ze.prototype,"_rendererChangeAbortController",void 0),e([C()],ze.prototype,"_elevationInfoChangeAbortController",void 0),e([C()],ze.prototype,"_initializeAbortController",void 0),e([C()],ze.prototype,"_elevationAlignment",void 0),e([C()],ze.prototype,"_scaleVisibility",void 0),e([C()],ze.prototype,"_filterVisibility",void 0),e([C()],ze.prototype,"_initializePromise",void 0),e([C()],ze.prototype,"_spatialIndex",void 0),e([C({readOnly:!0})],ze.prototype,"extentPadding",void 0),e([C()],ze.prototype,"_updatingPendingLoadedGraphicsChange",void 0),e([C()],ze.prototype,"_featureStore",void 0),e([C()],ze.prototype,"_objectStates",void 0),e([C()],ze.prototype,"_loadingSymbols",void 0),e([C({constructOnly:!0})],ze.prototype,"compressionTracker",void 0),e([C()],ze.prototype,"preferredUpdatePolicy",void 0),e([C()],ze.prototype,"_forcedUpdatePolicy",void 0),e([C({readOnly:!0})],ze.prototype,"effectiveUpdatePolicy",null),e([C({constructOnly:!0})],ze.prototype,"elevationFeatureExpressionEnabled",void 0),e([C({constructOnly:!0})],ze.prototype,"owner",void 0),e([C({constructOnly:!0})],ze.prototype,"layer",void 0),e([C({constructOnly:!0})],ze.prototype,"graphicSymbolSupported",void 0),e([C({constructOnly:!0})],ze.prototype,"getRenderingInfoWithoutRenderer",void 0),e([C({constructOnly:!0})],ze.prototype,"componentFactories",void 0),e([C({constructOnly:!0})],ze.prototype,"setUidToIdOnAdd",void 0),e([C()],ze.prototype,"featureStore",null),e([C()],ze.prototype,"initializePromise",null),e([C()],ze.prototype,"scaleVisibility",null),e([C()],ze.prototype,"elevationAlignment",null),e([C()],ze.prototype,"objectStates",null),e([C()],ze.prototype,"filterVisibility",null),e([C({readOnly:!0})],ze.prototype,"updating",null),e([C({readOnly:!0})],ze.prototype,"dataUpdating",null),e([C({readOnly:!0})],ze.prototype,"readyToRun",null),e([C({readOnly:!0})],ze.prototype,"suspendedOrOutsideOfView",null),e([C({readOnly:!0})],ze.prototype,"updatingRemaining",null),e([C({readOnly:!0})],ze.prototype,"displayFeatureLimit",null),e([C({readOnly:!0})],ze.prototype,"averageSymbolComplexity",null),e([C({constructOnly:!0})],ze.prototype,"hasZ",void 0),e([C({constructOnly:!0})],ze.prototype,"hasM",void 0),e([C()],ze.prototype,"_objectIdField",null),ze=Te=e([S("esri.views.3d.layers.graphics.Graphics3DCore")],ze);class We{constructor(){this.add=null,this.renderingInfo=null,this.state=0,this.abortController=null,this.remove=null}clear(){this.add=null,this.renderingInfo=null,this.state=0,this.abortController=null,this.remove=null}}const Be=10,He=D(),qe=D(),Qe=new Map;export{ze as Graphics3DCore};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{isSome as i}from"../../../../core/arrayUtils.js";import r from"../../../../core/Error.js";import"../../../../core/has.js";import s from"../../../../core/Logger.js";import{findInMap as a}from"../../../../core/MapUtils.js";import{abortMaybe as n,removeMaybe as o,destroyMaybe as l}from"../../../../core/maybe.js";import{MinPriority as h}from"../../../../core/MemCache.js";import d from"../../../../core/PooledArray.js";import{throwIfAborted as p,ignoreAbortErrors as c,isAbortError as y}from"../../../../core/promiseUtils.js";import u from"../../../../core/Queue.js";import{when as g,watch as m,on as b,syncAndInitial as _,whenOnce as f}from"../../../../core/reactiveUtils.js";import{schedule as v}from"../../../../core/scheduling.js";import{property as C,subclass as S}from"../../../../core/accessorSupport/decorators.js";import{diff as w,isEmpty as G}from"../../../../core/accessorSupport/diffUtils.js";import{runUntracked as x}from"../../../../core/accessorSupport/tracking.js";import{set as P,add as R,scale as U}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as D}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import I from"../../../../geometry/Extent.js";import E from"../../../../geometry/Point.js";import{canProjectWithoutEngine as L}from"../../../../geometry/projectionUtils.js";import{projectBuffer as A}from"../../../../geometry/projection/projectBuffer.js";import{projectVectorToVector as j}from"../../../../geometry/projection/projectVectorToVector.js";import{projectXYZToVector as V}from"../../../../geometry/projection/projectXYZToVector.js";import{center as F,fromRect as O,create as T,equals as M}from"../../../../geometry/support/aaBoundingBox.js";import{create as k}from"../../../../geometry/support/aaBoundingRect.js";import{equals as z}from"../../../../geometry/support/spatialReferenceUtils.js";import{isPopupProvider as W}from"../../../../graphic/getPopupProvider.js";import B from"../../../../layers/Layer.js";import{getObjectId as H,computeAABB as q,hasGeometry as Q}from"../../../../layers/graphics/dehydratedFeatures.js";import{hydrateGraphic as N}from"../../../../layers/graphics/hydratedFeatures.js";import $ from"../../../../renderers/UniqueValueRenderer.js";import{isSupportedRenderer3D as Z,validateTo3D as Y}from"../../../../renderers/support/rendererConversion.js";import{RenderingInfo as X}from"../../../../renderers/support/RenderingInfo.js";import{isBasemapLayerView as J}from"../../../../support/basemapUtils.js";import{loadArcade as K}from"../../../../support/loadArcade.js";import ee from"../../../../symbols/LabelSymbol3D.js";import te from"../../../../symbols/TextSymbol.js";import ie from"../../../../symbols/WebStyleSymbol.js";import{getDefaultSymbol3D as re}from"../../../../symbols/support/defaults3D.js";import{to3D as se}from"../../../../symbols/support/symbolConversion.js";import{aggregateSymbolComplexity as ae,defaultSymbolComplexity as ne}from"./defaultSymbolComplexity.js";import{DisplayFeatureLimit as oe}from"./DisplayFeatureLimit.js";import{ViewElevationProvider as le}from"./ElevationQuery.js";import{extractExpressionInfo as he,createContext as de}from"./featureExpressionInfoUtils.js";import{Graphics3DFeatureStore as pe}from"./Graphics3DFeatureStore.js";import{Graphics3DGraphicCreationContext as ce}from"./Graphics3DGraphicCreationContext.js";import{Graphics3DSymbolCreationContext as ye}from"./Graphics3DSymbolCreationContext.js";import{make as ue}from"./Graphics3DSymbolFactory.js";import{Graphics3DWebStyleSymbol as ge}from"./Graphics3DWebStyleSymbol.js";import{GraphicsCorePerformanceInfo as me}from"./GraphicsCorePerformanceInfo.js";import{GraphicStateTracking as be}from"./GraphicStateTracking.js";import{computeCentroid as _e}from"./graphicUtils.js";import{placePointOnGeometry as fe}from"./pointUtils.js";import{SpatialIndex2D as ve}from"./SpatialIndex2D.js";import{AggregateSymbolComplexity as Ce}from"./SymbolComplexity.js";import{StageLayerElevationProvider as Se}from"../support/StageLayerElevationProvider.js";import{toBoundingRect as we}from"../../support/extentUtils.js";import{GridLocalOriginFactory as Ge}from"../../webgl-engine/lib/GridLocalOriginFactory.js";import{isScreenSizePerspectiveEnabled as xe}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{affectsGeometry as Pe}from"../../webgl-engine/lib/VertexAttribute.js";import{WebGLLayer as Re}from"../../webgl-engine/lib/WebGLLayer.js";import{HUDMaterial as Ue}from"../../webgl-engine/materials/HUDMaterial.js";import{hasPopupTemplate as De}from"../../../layers/support/popupUtils.js";import{PromiseQueue as Ie}from"../../../support/PromiseQueue.js";import{PropertiesPool as Ee}from"../../../support/PropertiesPool.js";import{ImmediateTask as Le,noBudget as Ae,TaskPriority as je}from"../../../support/Scheduler.js";import{TextureCompressionTracker as Ve}from"../../../support/TextureCompressionTracker.js";import{Yield as Fe}from"../../../support/Yield.js";import{alphaCutoff as Oe}from"../../../../webscene/support/AlphaCutoff.js";var Te;const Me=D(),ke=T();let ze=class extends t{static{Te=this}static{this.tmpVec=D()}get _viewSpatialReference(){return this.owner.view.spatialReference}get spatialIndex(){return this._spatialIndex||(this._spatialIndex=new ve({objectIdField:this.owner.layer?.objectIdField,spatialReference:this._viewSpatialReference,hasZ:!!this.hasZ,hasM:!!this.hasM}),this._spatialIndex.setup(Array.from(this.graphics3DGraphics.values()))),this._spatialIndex.update(),this._spatialIndex}get deconflictor(){return this._deconflictor}get labeler(){return this._labeler}get numberOfGraphics(){return this._numberOfGraphics}get effectiveUpdatePolicy(){return null!=this.currentRenderer&&"dictionary"===this.currentRenderer.type?0:this._forcedUpdatePolicy??this.preferredUpdatePolicy}get featureStore(){return this._featureStore}get initializePromise(){return this._initializePromise}get scaleVisibility(){return this._scaleVisibility}get elevationAlignment(){return this._elevationAlignment}get objectStates(){return this._objectStates}get filterVisibility(){return this._filterVisibility}get updating(){return!!(this.dataUpdating||this._elevationAlignment?.updating||this._scaleVisibility?.updating||this._filterVisibility?.updating||this._rendererChangeAbortController||this._elevationInfoChangeAbortController||this._frameTaskHandle.updating||this._updateQueue.updating||this.readyToRun)}get dataUpdating(){return!!(this._graphicsWaitingForSymbol.size>0||this._pendingUpdates.size>0||this._spatialIndex?.updating||this._updatingPendingLoadedGraphicsChange||this._dataUpdateQueue.updating||this._loadingSymbols>0||this.compressionTracker.compressing)}get readyToRun(){return this._pendingUpdates.size>0||!!this._spatialIndex?.updating||this._dataUpdateQueue.readyToRun||this._updateQueue.readyToRun||this._focusAreasGraphicsQueue.length>0}get suspendedOrOutsideOfView(){return this.owner.suspended||!!this.owner.suspendInfo?.outsideOfView}get updatingRemaining(){return x(()=>this.updating?this._pendingUpdates.size+.1*(this._spatialIndex?.updatingRemaining||0)+.1*(this._elevationAlignment?.updatingRemaining||0):0)}get displayFeatureLimit(){const e=this.owner&&this.owner.view&&this.owner.view.qualitySettings,t=e?.graphics3D.minTotalNumberOfFeatures??0,i=e?.graphics3D.maxTotalNumberOfFeatures??0,r=e?.graphics3D.maxNumberOfDrawCalls??0,s=e?.graphics3D.maxTotalNumberOfVertices??0,a=this.averageSymbolComplexity,n=Math.max(1,a?.verticesPerFeature??1),o=a&&a.drawCallsPerFeature>0&&r>0?r/a.drawCallsPerFeature:i,l=Math.ceil(s/n),h=Math.max(t,Math.min(i,l,o)),d=this._get("displayFeatureLimit");return d&&d.maximumTotalNumberOfVertices===s&&d.averageSymbolComplexity===a&&d.maximumNumberOfFeatures===h?d:new oe(s,h,a)}get averageSymbolComplexity(){return x(()=>{const e=this._averageSymbolComplexities,t=this._get("averageSymbolComplexity");return 0===e.numComplexities||null!=t&&(e.estimated&&(t.verticesPerFeature>=e.verticesPerFeature||t.verticesPerCoordinate>=e.verticesPerCoordinate||t.drawCallsPerFeature>=e.drawCallsPerFeature)||t.verticesPerFeature===e.verticesPerFeature&&t.verticesPerCoordinate===e.verticesPerCoordinate&&t.drawCallsPerFeature===e.drawCallsPerFeature)?t:e})}get _averageSymbolComplexities(){const e=this._totalSymbolComplexities;return e.numComplexities>0&&(e.verticesPerFeature/=e.numComplexities,e.verticesPerCoordinate/=e.numComplexities,e.drawCallsPerFeature/=e.numComplexities,e.memory.bytesPerFeature/=e.numComplexities,e.memory.bytesPerFeatureLabel/=e.numComplexities,e.memory.resourceBytes/=e.numComplexities,e.memory.draped.bytesPerFeature/=e.numComplexities,e.memory.draped.bytesPerFeatureLabel/=e.numComplexities),e}get _totalSymbolComplexities(){const e=new Ce;return this._forEachSymbolComplexity(t=>ae(t,e)),e}get usedMemory(){const e=this.labelsEnabled?(this.averageSymbolComplexity?.memory.bytesPerFeatureLabel??0)*this._numberOfGraphics:0;let t=0;if(this._forEachSymbolComplexityUsed(e=>t+=e?.memory.resourceBytes??0),null==this._symbolMaterials){this._symbolMaterials=[];for(const e of this._symbols.values())if(null!=e)for(const t of e.symbolLayers)if(t)for(const e of t.materials)e&&this._symbolMaterials.push(e)}const i=this.owner.view.stage.renderer,r=this.owner.view.overlayManager.renderer,s=this._symbolMaterials.reduce((e,t)=>e+((i.getMaterialRenderer(t)||r.getMaterialRenderer(t))?.usedMemory??0),0);return this._usedMemory+e+t+s}get usedMemoryPerGraphic(){if(this._usedMemory&&this._numberOfGraphics){const e=this._numberOfGraphics/(this._numberOfGraphics+Math.max(this._pendingAdds,this._pendingRemoves));return this._usedMemory/this._numberOfGraphics*e}if(null!=this.averageSymbolComplexity){const e=this.labelsEnabled?this.averageSymbolComplexity.memory.bytesPerFeatureLabel:0;return this.averageSymbolComplexity.memory.bytesPerFeature+e}return 0}get unprocessedMemoryEstimate(){return(this._pendingAdds-this._pendingRemoves)*this.usedMemoryPerGraphic}_forEachSymbolComplexity(e){return this.currentRenderer?this._getSymbolComplexitiesUsedOrRenderer(e):this._forEachSymbolComplexityUsed(e)}get visible(){return this._visible}_getConvertedSymbol(e){const t=e;if("web-style"===t.type)return t.clone();const i=this._symbolConversionCache.get(t.id);if(null!=i)return i;const r=se(t,{geometryType:this.layer?.geometryType??void 0,retainId:!0,hasLabelingContext:this._hasLabelingContext(t),cimFallbackEnabled:!0}),a=r.symbol||null;return null==a&&r.error&&s.getLogger(this).error(r.error.message),this._symbolConversionCache.set(t.id,a),a}_getSymbolComplexitiesUsedOrRenderer(e){const t=this.currentRenderer;if(null==t)return;const i=t.symbols,r="backgroundFillSymbol"in t?t.backgroundFillSymbol:null;if(!r&&!i.length)return;const s=this._getSymbolComplexityUsedOrRenderer(r);null!=s&&e(s);for(const a of i){const t=this._getSymbolComplexityUsedOrRenderer(a);null!=t&&e(t)}}_getSymbolComplexityUsedOrRenderer(e){if(null==e)return null;const t=this._symbols.get(e.id);if(null!=t)return t.complexity;const i=this._getConvertedSymbol(e);return null!=i?ne(i):null}_forEachSymbolComplexityUsed(e){this._symbols.forEach(t=>{e(t?.complexity)})}get _objectIdField(){return this.layer.objectIdField}constructor(e){super(e),this._propertiesPool=new Ee({computedExtent:()=>new I},this),this.computedExtent=null,this.currentRenderer=null,this.rendererRequiresHydratedGraphic=!1,this._graphicStateTracking=null,this.graphics3DGraphics=new Map,this.stageLayer=null,this.stage=null,this._graphicsDrapedUids=new Set,this._graphicsBySymbol=new Map,this._symbolConversionCache=new Map,this._symbols=new Map,this._graphicsWithoutSymbol=new Map,this._graphicsWaitingForSymbol=new Map,this._graphicsUpdateId=0,this._frameTaskHandle=Le,this._dataUpdateQueue=new Ie,this._updateQueue=new Ie,this._focusAreasGraphicsQueue=new u,this._suspendSymbolCleanup=!1,this._arcadeOnDemand=null,this._rendererChangeAbortController=null,this._elevationInfoChangeAbortController=null,this._initializeAbortController=null,this._elevationAlignment=null,this._scaleVisibility=null,this._filterVisibility=null,this._spatialIndex=null,this.extentPadding=0,this._updatingPendingLoadedGraphicsChange=null,this._featureStore=null,this._deconflictor=null,this._labeler=null,this._objectStates=null,this._viewElevationProvider=null,this._stageLayerElevationProvider=null,this._whenGraphics3DGraphicRequests={},this._pendingUpdates=new Map,this._numberOfGraphics=0,this._numberOfGraphicsProvidingElevation=0,this._pendingAdds=0,this._pendingRemoves=0,this._applyPendingRemovesFirst=!1,this._loadingSymbols=0,this.compressionTracker=new Ve,this._symbolWarningLogged=!1,this._geometryWarningLogged=!1,this._objectIdInvisibleSet=new Set,this._whenSymbolRemoved=new d,this.preferredUpdatePolicy=1,this._forcedUpdatePolicy=null,this.elevationFeatureExpressionEnabled=!0,this.owner=null,this.layer=null,this.graphicSymbolSupported=!0,this.getRenderingInfoWithoutRenderer=!1,this.setUidToIdOnAdd=!0,this.hasZ=null,this.hasM=null,this._usedMemory=0,this._visible=!1,this._startCreateGraphics=!1,this._unusedSymbolsCache=e.owner.view.resourceController.memoryController.newCache("graphics-3d-unused-symbols",e=>e.destroy()),this.symbolCreationContext=new ye(e.owner.view.resourceController.scheduler,(e,t)=>this._updateQueue.push(e,t),e.owner.layerViewUid,this.compressionTracker)}initialize(){this._featureStore=new pe({objectIdField:this.owner.layer?.objectIdField,hasZ:!!this.hasZ,hasM:!!this.hasM,viewSpatialReference:this._viewSpatialReference,featureSpatialReference:this.owner.featureSpatialReference,getSpatialIndex:()=>this.spatialIndex,forEach:e=>this.graphics3DGraphics.forEach(e)});const e=(e,t,i)=>this.spatialIndex.queryGraphicUIDsInExtent(e,t,i),{componentFactories:t}=this;this._elevationAlignment=t.elevationAlignment?.(this,e),this._scaleVisibility=t.scaleVisibility?.(this,e),this._filterVisibility=t.filterVisibility?.({featureStore:this._featureStore,getFeatureCount:()=>this.graphics3DGraphics.size,updateFeatureVisibilities:e=>this.modifyGraphics3DGraphicVisibilities(t=>t.setVisibilityFlag(1,4,e(H(t.graphic,this._objectIdField)))),setAllFeaturesVisibility:e=>this.modifyGraphics3DGraphicVisibilities(t=>t.setVisibilityFlag(1,4,e)),clearFeaturesVisibility:()=>this.modifyGraphics3DGraphicVisibilities(e=>e.setVisibilityFlag(1,4,!0))}),this._deconflictor=t.deconflictor?.(this),this._labeler=t.labeler?.(this,this._scaleVisibility),this._objectStates=t.objectStates?.(this),this._initializeAbortController=new AbortController,this.addHandles(g(()=>this.owner.view.state.highlights,()=>{const{highlightOrderMap:e}=this.owner.view.state;this.graphics3DGraphics.forEach(t=>t.updateHighlights(e))})),this._initializePromise=this._initializeAsync()}async _initializeAsync(){const e=this._initializeAbortController?.signal,t=this.owner.view;this._viewElevationProvider=new le(this._viewSpatialReference,t),this._initializeStage(t,this.owner.layerViewUid);const i=t.sharedSymbolResources;this.symbolCreationContext.sharedResources=i,null!=this.currentRenderer&&(this.symbolCreationContext.renderer=this.currentRenderer),this.symbolCreationContext.stage=this.stage,this.symbolCreationContext.renderCoordsHelper=t.renderCoordsHelper,this.symbolCreationContext.layer=this.layer,this.symbolCreationContext.graphicsCoreOwner=this.owner,this.symbolCreationContext.localOriginFactory=new Ge(t.renderSpatialReference),this.symbolCreationContext.elevationProvider=t.elevationProvider,this.symbolCreationContext.notifyGraphicGeometryChanged=e=>this.notifyGraphicGeometryChanged(e),this.symbolCreationContext.notifyGraphicVisibilityChanged=e=>this.notifyGraphicVisibilityChanged(e),this.symbolCreationContext.focusAreaStyle=t.map?.focusAreas.style??null;const r=he(this.layer.elevationInfo,this.elevationFeatureExpressionEnabled);if(this.symbolCreationContext.featureExpressionInfoContext=await de(r,this._viewSpatialReference,e,s.getLogger(this)),p(e),this.symbolCreationContext.screenSizePerspectiveEnabled=xe(this.layer.screenSizePerspectiveEnabled),this.symbolCreationContext.slicePlaneEnabled=!!this.owner.slicePlaneEnabled,this.symbolCreationContext.physicalBasedRenderingEnabled=!!this.owner.view.qualitySettings?.physicallyBasedRenderingEnabled,this.symbolCreationContext.skipHighSymbolLods=!!this.owner.view.qualitySettings?.graphics3D?.skipHighSymbolLods,"drapeSourceType"in this.owner){const{owner:e}=this;this.symbolCreationContext.drapeSourceRenderer=t.overlayManager.registerGeometryDrapeSource(e)}this.addHandles([m(()=>this.suspendedOrOutsideOfView,()=>this._updateQueue.unshift(()=>this._updateLayerVisibility(),null).catch(c)),m(()=>xe(this.layer?.screenSizePerspectiveEnabled),e=>{e!==this.symbolCreationContext.screenSizePerspectiveEnabled&&(this.symbolCreationContext.screenSizePerspectiveEnabled=e,this._screenSizePerspectiveEnabledChange())}),m(()=>this.owner.slicePlaneEnabled,e=>this._slicePlaneEnabledChange(!!e)),m(()=>this.owner.view.state?.rasterPixelRatio,()=>this._pixelRatioChange()),m(()=>!!this.owner.view.qualitySettings?.physicallyBasedRenderingEnabled,e=>this._physicalBasedRenderingChange(e)),m(()=>!!this.owner.view.qualitySettings?.graphics3D?.skipHighSymbolLods,e=>this._skipHighSymbolLoDsChange(e)),m(()=>this.owner.view.focusAreasView?.polygons,()=>this._updateFocusedLabels()),m(()=>this.owner.view.timeZone,()=>{this.currentRenderer?.arcadeRequired&&this.recreateAllGraphics()}),m(()=>this.owner.view.map?.focusAreas.style,e=>{this.symbolCreationContext.focusAreaStyle=e??null,this.recreateAllGraphicsAndSymbols()}),g(()=>t.basemapTerrain?.tilingScheme,e=>{const i=t.groundView?.spatialReference;if(e.spatialReference.equals(this.symbolCreationContext.overlaySR)||null==i||(this.symbolCreationContext.overlaySR=i),this.hasHandles("loaded-graphics"))this.recreateAllGraphics();else{const e=()=>this.owner?.loadedGraphics;this.addHandles([b(e,"change",e=>{this._graphicsCollectionChanged(e),this._signalUpdatingDuringAsyncLoadedGraphicsChange()},{onListenerAdd:()=>{this.recreateAllGraphics(),this._signalUpdatingDuringAsyncLoadedGraphicsChange()}})],"loaded-graphics")}},{initial:!0}),m(()=>this.effectiveUpdatePolicy,e=>{null!=this.stageLayer&&(this.stageLayer.updatePolicy=e),this.symbolCreationContext.isAsync=0===this.effectiveUpdatePolicy,1===e&&this.runTask(Ae)},_)]),this._frameTaskHandle=t.resourceController.scheduler.registerTask(je.GRAPHICS_CORE,this),this.layer&&"featureReduction"in this.layer&&this.addHandles(m(()=>this.layer.featureReduction,()=>this._deconflictor?.featureReductionChange())),this.notifyChange("averageSymbolComplexity"),this.rendererChange(this.owner.renderer).catch(()=>{}),this._initializeAbortController=null}_abortInitialize(){this._initializeAbortController=n(this._initializeAbortController)}_updateFocusedLabels(){this._focusAreasGraphicsQueue.clear(),this.forEachGraphics3DSymbol((e,t)=>{t&&e.needsUpdateFocus&&t.forEach(e=>{this._focusAreasGraphicsQueue.push(e)})})}destroy(){if(this._unusedSymbolsCache.destroy(),this._abortInitialize(),this._rendererChangeAbortController=n(this._rendererChangeAbortController),this._abortElevationInfoChange(),this._frameTaskHandle.remove(),this._frameTaskHandle=Le,this._dataUpdateQueue.cancelAll(),this._updateQueue.cancelAll(),this._deconflictor=o(this._deconflictor),this._labeler=o(this._labeler),this._elevationAlignment=l(this._elevationAlignment),this._scaleVisibility=l(this._scaleVisibility),this._filterVisibility=l(this._filterVisibility),this._objectStates=l(this._objectStates),this.clear(),"drapeSourceType"in this.owner){const{owner:e}=this;this.stage.view.overlayManager.unregisterDrapeSource(e)}this._featureStore=l(this._featureStore),this._updatingPendingLoadedGraphicsChange=o(this._updatingPendingLoadedGraphicsChange),this._graphicStateTracking=l(this._graphicStateTracking),this.stage&&(this.stageLayer=l(this.stageLayer),this.stage=null),this._set("owner",null);for(const e in this._whenGraphics3DGraphicRequests)this._whenGraphics3DGraphicRequests[e].reject(new r("graphic:layer-destroyed","Layer has been destroyed"));this._whenGraphics3DGraphicRequests=null,this._propertiesPool=l(this._propertiesPool),this._whenSymbolRemoved.prune(),this._symbolConversionCache.clear(),this._objectIdInvisibleSet.clear(),this._spatialIndex=l(this._spatialIndex),this._symbolMaterials=null}clear(){this._objectStates?.allGraphicsDeleted(),null!=this._graphicStateTracking&&this._graphicStateTracking.allGraphicsDeleted(),this.graphics3DGraphics.forEach(e=>e.destroy()),this._spatialIndex?.clear(),this.graphics3DGraphics.clear(),this._numberOfGraphics=0,this._usedMemory=0,this._updateLayerVisibility(),this._symbols.forEach(l),this._symbols.clear(),this._symbolMaterials&&(this._symbolMaterials.length=0,this._symbolMaterials=null),this._graphicsBySymbol.clear(),this._graphicsWithoutSymbol.clear(),this._graphicsWaitingForSymbol.clear(),this._pendingUpdates.clear(),this._pendingAdds=0,this._pendingRemoves=0,this._applyPendingRemovesFirst=!1,this.notifyChange("dataUpdating"),this.notifyChange("readyToRun"),this.notifyChange("updatingRemaining"),this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.()}_initializeStage(e,t){this.stage=e.stage,this.stageLayer=new Re(this.stage,{visible:!this.suspendedOrOutsideOfView,updatePolicy:this.effectiveUpdatePolicy},t);const i=this.stageLayer.events;i.on("transformationChanged",e=>this.notifyGraphicGeometryChanged(e.graphicUid)),i.on("shaderTransformationChanged",e=>this.notifyGraphicGeometryChanged(e.graphicUid)),i.on("visibilityChanged",e=>this.notifyGraphicVisibilityChanged(e.graphicUid)),i.on("geometryAdded",e=>this.notifyGraphicGeometryChanged(e.object.graphicUid)),i.on("geometryRemoved",e=>this.notifyGraphicGeometryChanged(e.object.graphicUid)),i.on("attributesChanged",e=>Pe(e.attribute)&&this.notifyGraphicGeometryChanged(e.object.graphicUid))}notifyGraphicGeometryChanged(e){if(this.owner.notifyContentGeometryUpdate?.(),null==this._graphicStateTracking||null==e)return;const t=this.graphics3DGraphics.get(e);t&&this._graphicStateTracking.updateGraphicGeometry(t)}notifyGraphicVisibilityChanged(e){if(this.owner.notifyContentGeometryUpdate?.(),null==this._graphicStateTracking||null==e)return;const t=this.graphics3DGraphics.get(e);t&&this._graphicStateTracking.updateGraphicVisibility(t)}_updateLayerVisibility(){const e=this.displayFeatureLimit.maximumNumberOfFeatures,t=this._numberOfGraphics>e*Be,i=!this.suspendedOrOutsideOfView&&!t;i!==this._visible&&(this._visible=i,this._updateStageLayerVisibility())}_updateStageLayerVisibility(){const e=this._visible&&(null==this.layer.opacity||this.layer.opacity>=Oe);this.stageLayer.visible!==e&&(this.stageLayer.visible=e,e?this.updateGraphicsVisibilities():this._hideAllGraphics(),this.owner.notifyContentGeometryUpdate?.())}getGraphics3DGraphicById(e){return null!=e?this.graphics3DGraphics.get(e):void 0}getGraphics3DGraphicByObjectId(e){return this.owner.layer?.objectIdField?this._findGraphics3DGraphicByObjectId(e):null}_getGraphicObjectID(e,t=this.owner.layer?.objectIdField){return H(e,t)}get graphics3DGraphicsByObjectID(){const e=this.owner.layer?.objectIdField;if(!e)return;const t=new Map;return this.graphics3DGraphics.forEach(i=>{if(!i)return;const r=i.graphic,s=this._getGraphicObjectID(r,e);null!=s&&t.set(s,i)}),t}get labelsEnabled(){return!!this._labeler?.layerLabelsEnabled()}async updateLabelingInfo(e){const t=this._deconflictor?.labelingInfoChange(e),i=this._labeler?.labelingInfoChange(e);await Promise.allSettled([t,i])}updateVisibilityInfo(){this._deconflictor?.labelingInfoChange(),this._labeler?.visibilityInfoChange()}get symbolUpdateType(){if(this._pendingUpdates.size>0)return"unknown";let e=!1,t=!1;for(const[i,r]of this._symbols)if(null!=r){switch(r.getFastUpdateStatus()){case 3:return"unknown";case 1:this._graphicsBySymbol.has(i)&&(t=!0);break;case 0:this._graphicsBySymbol.has(i)&&(e=!0);break;case 2:this._graphicsBySymbol.has(i)&&(t=e=!0)}}return t?e?"mixed":"fast":e?"slow":"mixed"}runTask(e){if(this._dataUpdateQueue.runTask(e),this._updateQueue.runTask(e),this._applyPendingUpdates(e),this._applyFocusAreasUpdates(e),this.notifyChange("readyToRun"),this.readyToRun||this.notifyChange("dataUpdating"),this.notifyChange("updatingRemaining"),!e.hasProgressed)return Fe}setObjectIdVisibility(e,t){t?this._objectIdInvisibleSet.delete(e):this._objectIdInvisibleSet.add(e);const i=this._findGraphics3DGraphicByObjectId(e);null!=i&&this._updateUserVisibility(i)}_findGraphics3DGraphicByObjectId(e){return a(this.graphics3DGraphics,t=>this._getGraphicObjectID(t.graphic)===e)}_updateUserVisibility(e){if(null==e)return!1;const t=e.graphic,i=this._getGraphicObjectID(t),r=t.visible&&!this.owner.suspended&&this.stageLayer.visible&&(null==i||!this._objectIdInvisibleSet.has(i));return e.setVisibilityFlag(1,1,r)}_whenGraphics3DGraphic(e){const t=this.graphics3DGraphics.get(e.uid);if(t)return Promise.resolve(t);const i=this._whenGraphics3DGraphicRequests[e.uid];if(i)return i.promise;const r=Promise.withResolvers();return this._whenGraphics3DGraphicRequests[e.uid]=r,r.promise}async _boundsForGraphics3DGraphic(e,t){const i=this._viewSpatialReference,r=this.owner.view.renderSpatialReference,s=this.owner.view.groundView.spatialReference,a=(e,t,s)=>A(e,r,t,e,i,t,s),n=(e,t,r)=>A(e,s,t,e,i,t,r),o=this._viewElevationProvider?{service:this._viewElevationProvider,useViewElevation:null!=t&&!!t.useViewElevation,minDemResolution:null!=t?t.minDemResolution:null,minDemResolutionForPoints:this.owner.view.resolution}:null,l=await e.getProjectedBoundingBox(a,n,o,t?.signal);if(!l)return null;const h=l.boundingBox;if(l.requiresDrapedElevation){const e=this.symbolCreationContext.elevationProvider;if(e){F(h,Me);const t=e.getElevation(Me[0],Me[1],0,i,"ground")??0;h[2]=Math.min(h[2],t),h[5]=Math.max(h[5],t)}}return{boundingBox:h,screenSpaceObjects:l.screenSpaceObjects}}async whenGraphicBounds(e,t){await f(()=>this.owner?.loadedGraphics);const i=this.owner.layer?.objectIdField,s=this.owner.loadedGraphics.find(t=>t===e||null!=i&&null!=t.attributes&&e.attributes&&t.attributes[i]===e.attributes[i]);if(!s)throw new r("internal:graphic-not-part-of-view","Graphic is not part of this view");const a=await this._whenGraphics3DGraphic(s);return this._boundsForGraphics3DGraphic(a,t)}computeAttachmentOrigin(e,t){const i=this.graphics3DGraphics.get(e.uid);if(!i)return null;const r=i.computeAttachmentOrigin();if(0===r.render.num&&0===r.draped.num)return null;P(He,0,0,0);let s=0;if(r.render.num>0){if(!j(r.render.origin,this.symbolCreationContext.renderCoordsHelper.spatialReference,qe,t))return null;R(He,He,qe),s++}if(r.draped.num>0){const[e,i]=r.draped.origin,a=this._viewElevationProvider.getElevation(e,i,"ground")??0;if(P(qe,e,i,a),!j(qe,this._viewElevationProvider.spatialReference,qe,t))return null;R(He,He,qe),s++}return s>1&&U(He,He,1/s),new E({x:He[0],y:He[1],z:He[2],spatialReference:t})}getSymbolLayerSize(e,t){const i=this._symbols.get(e.id);if(null==i)throw new r("internal:symbol-not-part-of-view","Symbol is not part of this view");const s=e.symbolLayers.indexOf(t);if(-1===s)throw new r("internal:missing-symbol-layer","Symbol layer is not in symbol");const a=i.getSymbolLayerSize(s);if(null==a)throw new r("internal:missing-size","Symbol layer has no valid size");return a}_graphicsCollectionChanged(e){this._startCreateGraphics&&(this.add(e.added),this.remove(e.removed))}graphicUpdateHandler(e){const t=e.graphic.uid,i=this.graphics3DGraphics.get(t);if(null!=i||null!=this._graphicsWithoutSymbol.get(t)){switch(e.property){case"visible":this._graphicUpdateVisibleHandler(i);break;case"geometry":this._graphicUpdateGeometryHandler(i,e.graphic);break;case"symbol":this._graphicUpdateSymbolHandler(i,e);break;case"attributes":{const t=this.symbolCreationContext.featureExpressionInfoContext;t?.arcade&&this._graphicUpdateGeometryHandler(i,e.graphic)}break;case"popupTemplate":break;case"origin-transform":this._graphicUpdateTransformHandler(i,e)}this.owner.notifyContentGeometryUpdate?.()}}_graphicUpdateGeometryHandler(e,t){this._graphicUpdateGeometryOrTransformHandler(e,t,()=>!(null==e||!e.graphics3DSymbol.updateGeometry(e)||!(this._labeler?.updateGraphicGeometry(e)??!0))&&(this._labeler?.setDirty(),this._deconflictor?.setDirty(),!0));const i=t.geometry;null!=i&&this._expandComputedExtent(i)}_graphicUpdateTransformHandler(e,t){const i=t.graphic.geometry;this._graphicUpdateGeometryOrTransformHandler(e,t.graphic,()=>null!=t.newValue&&null!=e&&null!=i&&e.graphics3DSymbol.updateTransform(e,i.spatialReference,t.newValue,t.action))}_graphicUpdateGeometryOrTransformHandler(e,t,i){if(null!=t.geometry){if(null==e){const e=t.symbol?.id;if(e){const t=this._symbols.get(e);if(null!=t&&0===t.loadStatus)return}return void this._recreateGraphic(t)}if(!i()){const i=this._deconflictor?.getState(e);this._recreateGraphic(t);const r=this.graphics3DGraphics.get(t.uid);r&&null!=i&&this._deconflictor?.setState(r,i)}}else this._recreateGraphic(t)}_graphicUpdateSymbolHandler(e,t){const i=t.graphic,r=null!=e?e.graphics3DSymbol:null!=t.oldValue?this._symbols.get(t.oldValue.id):null;if(null==r||null==t.newValue)return void this._recreateGraphic(i);const s=r.symbol,a=this._getConvertedSymbol(t.newValue);if(null!=a&&(a.type!==s.type||"web-style"===a.type)||"web-style"===s.type)return void this._recreateGraphic(i);const n=this._graphicsBySymbol.get(s.id);if(n&&1!==n.size)return void this._recreateGraphic(i);const o=w(s,a);if(null==o)return void this._updateSymbolMapping(s.id,a);const l={diff:o,graphics3DGraphicPatches:[],symbolStatePatches:[]};if(r.prepareSymbolPatch(l),!G(l.diff))return void this._recreateGraphic(i);const h=this._getRenderingInfo(i,!1);if(null==h)return void this._recreateGraphic(i);const d=r.extentPadding;for(const p of l.symbolStatePatches)p();if(d!==r.extentPadding&&this._recomputeExtentPadding(),null!=e)for(const p of l.graphics3DGraphicPatches)p(e,h);this._updateSymbolMapping(s.id,a)}_graphicUpdateVisibleHandler(e){this._updateUserVisibility(e)&&(this._labeler?.setDirty(),this._deconflictor?.setDirty())}recreateGraphics(e){this._suspendSymbolCleanup=!0,this.remove(e),this.add(e),this._suspendSymbolCleanup=!1,1===this.effectiveUpdatePolicy&&this._cleanupSymbols()}_recreateGraphic(e){this.recreateGraphics([e])}_beginGraphicUpdate(e){const t=this._graphicsUpdateId;return this._graphicsUpdateId++,this._graphicsWaitingForSymbol.set(e.uid,t),1===this._graphicsWaitingForSymbol.size&&this.notifyChange("dataUpdating"),t}_endGraphicUpdate(e,t){e&&(t&&this._graphicStateTracking?.updateGraphicError(e,t),this._graphicsWaitingForSymbol.delete(e.uid),0===this._graphicsWaitingForSymbol.size&&(this._cleanupSymbols(),this.notifyChange("dataUpdating")))}_recomputeExtentPadding(){let e=0;this._symbols.forEach(t=>{null!=t&&(e=Math.max(e,t.extentPadding))}),this._set("extentPadding",e)}_expandComputedExtent(e){const t=ke,i=e.spatialReference;q(e,t);const r=this._viewSpatialReference,s=Te.tmpVec;if(z(i,r)||V(t[0],t[1],0,i,s,r)&&(t[0]=s[0],t[1]=s[1],V(t[3],t[4],0,i,s,r),t[3]=s[0],t[4]=s[1]),!(isFinite(t[0])&&isFinite(t[3])&&isFinite(t[1])&&isFinite(t[4])))return;const a=this.computedExtent;let n=null;const o=isFinite(t[2])&&isFinite(t[5]),l=o&&(null==a?.zmin||t[2]<a.zmin),h=o&&(null==a?.zmax||t[5]>a.zmax);if(a){(t[0]<a.xmin||t[1]<a.ymin||t[3]>a.xmax||t[4]>a.ymax||l||h)&&(n=this._propertiesPool.get("computedExtent"),n.xmin=Math.min(t[0],a.xmin),n.ymin=Math.min(t[1],a.ymin),n.xmax=Math.max(t[3],a.xmax),n.ymax=Math.max(t[4],a.ymax),n.spatialReference=r)}else n=this._propertiesPool.get("computedExtent"),n.xmin=t[0],n.ymin=t[1],n.xmax=t[3],n.ymax=t[4],n.spatialReference=r;n&&(l&&(n.zmin=t[2]),h&&(n.zmax=t[5]),this._set("computedExtent",n))}_abortElevationInfoChange(){this._elevationInfoChangeAbortController&&(this._elevationInfoChangeAbortController.abort(),this._elevationInfoChangeAbortController=null)}async elevationInfoChange(){this._abortElevationInfoChange();const e=new AbortController;this._elevationInfoChangeAbortController=e;const t=he(this.layer.elevationInfo,this.elevationFeatureExpressionEnabled);this.symbolCreationContext.featureExpressionInfoContext=await de(t,this._viewSpatialReference,e.signal,s.getLogger(this)),p(e.signal),this._elevationInfoChangeAbortController=null,this._labeler?.elevationInfoChange(),this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("elevationInfo",t)?t?.forEach(e=>{const t=e.graphic,i=e.labelLayers;for(const r of i){r.graphics3DSymbolLayer.graphics3DGraphicLayerElevationInfoChanged(t,r)}}):this._recreateSymbol(i)}),this.updateStageLayerElevationProvider(),this._elevationAlignment?.elevationInfoChange()}updateStageLayerElevationProvider(){this._stageLayerElevationProvider?"relative-to-scene"!==this.layer.elevationInfo?.mode&&0!==this._numberOfGraphicsProvidingElevation||(this.owner.view.elevationProvider.unregister(this._stageLayerElevationProvider),this._stageLayerElevationProvider=l(this._stageLayerElevationProvider)):(!this.layer.elevationInfo||this.layer.elevationInfo&&"relative-to-scene"!==this.layer.elevationInfo.mode)&&this._numberOfGraphicsProvidingElevation>0&&(this._stageLayerElevationProvider=new Se({layer:this.layer,stageLayer:this.stageLayer,view:this.owner.view}),this.owner.view.elevationProvider.register(2,this._stageLayerElevationProvider))}_clearSymbolsAndGraphics(){this.clear(),null!=this._filterVisibility&&this._filterVisibility.clear(),this._labeler?.reset(),this._deconflictor?.clear(),this._elevationAlignment?.clear(),this.stageLayer?.invalidateSpatialQueryAccelerator(),this._stageLayerElevationProvider&&(this.owner.view.elevationProvider.unregister(this._stageLayerElevationProvider),this._stageLayerElevationProvider=l(this._stageLayerElevationProvider))}startCreateGraphics(){this._startCreateGraphics=!0,this.recreateAllGraphics()}recreateAllGraphics(){this._recreateAllGraphics(!1)}recreateAllGraphicsAndSymbols(){this._recreateAllGraphics(!0)}_recreateAllGraphics(e=!1){if(!this._startCreateGraphics)return;const{loadedGraphics:t,view:i}=this.owner,r=i.basemapTerrain?.tilingScheme&&t?.length?t.toArray():null;!e&&r||this._clearSymbolsAndGraphics(),this.symbolCreationContext.screenSizePerspectiveEnabled=xe(this.layer.screenSizePerspectiveEnabled),this.symbolCreationContext.slicePlaneEnabled=!!this.owner.slicePlaneEnabled,this._set("computedExtent",null),r&&(e?this.add(r):this.recreateGraphics(r))}_recreateSymbol(e){const t=this._graphicsBySymbol.get(e),i=[];t&&(t.forEach((e,t)=>{const r=e.usedMemory;this._conditionalRemove(e,t),this._spatialIndex?.remove(e),i.push(e.graphic),e.destroy(),this._removeGraphics3DGraphic(t,r),this._updateLayerVisibility(),this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.()}),this._graphicsBySymbol.set(e,new Map));const r=this._symbols.get(e);l(r),this._symbols.delete(e),this._symbolMaterials=null,l(this._unusedSymbolsCache.pop(e)),this.add(i)}_recreateGraphicsForSymbol(e){const t=this._graphicsBySymbol.get(e);if(t){const e=[];t.forEach(t=>e.push(t.graphic)),this.recreateGraphics(e)}}_conditionalRemove(e,t){this._graphicsDrapedUids.delete(t),this._objectStates?.removeGraphic(e),this._labeler?.removeGraphic(e),this._deconflictor?.removeGraphic(e),null!=this._graphicStateTracking&&this._graphicStateTracking.removeGraphic(e)}add(e){e&&0!==e.length&&(this.owner.view.basemapTerrain?.tilingScheme?(0===this._updatePolicyForGraphics(e)?this._addDelayed(e):this._addImmediate(e),this.notifyChange("dataUpdating")):s.getLogger(this).error("#add()","Cannot add graphics before terrain surface has been initialized"))}_updatePolicyForGraphics(e){if(1===this.effectiveUpdatePolicy&&("mesh"===this.layer.geometryType||null==this.layer.geometryType))for(const t of e)if(null!=t.geometry&&"mesh"===t.geometry.type&&!t.geometry.loaded)return 0;return this.effectiveUpdatePolicy}_addImmediate(e){this._geometryWarningLogged=!1,this._symbolWarningLogged=!1;for(const t of e)this._addGraphic(t,this._getRenderingInfo(t),1);this._cleanupSymbols(),this._labeler?.setDirty(),this._deconflictor?.setDirty()}_addDelayed(e){for(const t of e){const e=t.uid;let i=this._pendingUpdates.get(e);i?i.add?0!==i.state&&i.abortController?.abort():this._pendingAdds++:(i=new We,this._pendingAdds++,this._pendingUpdates.set(e,i)),i.add=t}this.notifyChange("readyToRun"),this.notifyChange("updatingRemaining"),this.notifyChange("dataUpdating")}remove(e){0===this.effectiveUpdatePolicy?this._removeDelayed(e):this._removeImmediate(e),this.notifyChange("dataUpdating")}_removeImmediate(e){for(const t of e)this._removeGraphic(t);this._cleanupSymbols(),this._labeler?.setDirty(),this._deconflictor?.setDirty()}_removeDelayed(e){for(const t of e){const e=t.uid,i=this._pendingUpdates.get(e);if(i)i.add&&(i.remove?i.add=null:this._pendingUpdates.delete(e),1===i.state&&i.abortController?.abort(),this._pendingAdds--);else{const i=new We;i.remove=t,this._pendingUpdates.set(e,i),this._pendingRemoves++,this._applyPendingRemovesFirst=!0}}0===this._pendingUpdates.size&&this._finishPendingUpdates(),this.notifyChange("readyToRun"),this.notifyChange("updatingRemaining"),this.notifyChange("dataUpdating")}_finishPendingUpdates(){this._cleanupSymbols(),(this._pendingAdds||this._pendingRemoves)&&s.getLogger(this).warn("pendingAdds/Removes in inconsistent state!"),this._pendingAdds=0,this._pendingRemoves=0,this._applyPendingRemovesFirst=!1}_applyFocusAreasUpdates(e){for(;this._focusAreasGraphicsQueue.length>0&&!e.done;){e.madeProgress();const t=this._focusAreasGraphicsQueue.pop(),i=fe(t.graphic.geometry);if(null==i)continue;const r=this.stage.view.focusAreasView?.containsGeometry(i)??!0;t.layers.forEach(e=>{if(e.stageObject){e.stageObject.geometries.some(e=>e.material instanceof Ue&&null==e.material.parameters.focusAreaStyle!==r)&&this.recreateGraphics([t.graphic])}})}0===this._focusAreasGraphicsQueue.length&&this.notifyChange("readyToRun")}_applyPendingUpdates(e){if(this._geometryWarningLogged=!1,this._symbolWarningLogged=!1,0===this._pendingUpdates.size&&this._spatialIndex?.updating)return this._spatialIndex.update(),void e.madeProgress();if(this._applyPendingRemovesFirst){this._applyPendingRemovesFirst=!1;for(const[t,i]of this._pendingUpdates){if(e.done){this._applyPendingRemovesFirst=!0;break}if(i.remove&&!i.add&&(this._pendingRemoves--,e.madeProgress(),this._removeGraphic(i.remove),i.remove=null,this._pendingUpdates.delete(t),0===this._pendingRemoves))break}}for(const[t,i]of this._pendingUpdates){if(e.done)break;i.add&&0===i.state&&this._processPendingUpdateNew(i);let r=this.effectiveUpdatePolicy;if(!i.remove||i.add&&2!==i.state||(this._pendingRemoves--,e.madeProgress(),this._removeGraphic(i.remove),i.remove=null,r=1),i.add)switch(i.state){case 2:this._addGraphic(i.add,i.renderingInfo,r),i.add=null,this._pendingAdds--,e.madeProgress();break;case 3:i.add=null,this._pendingAdds--}null==i.remove&&null==i.add&&this._pendingUpdates.delete(t)}0===this._pendingUpdates.size&&(this._finishPendingUpdates(),this.notifyChange("readyToRun"),this.notifyChange("dataUpdating"))}_processPendingUpdateNew(e){if(!e.add)return void(e.state=2);const t=e.add.geometry;null==t||"mesh"!==t.type||t.loaded?this._processPendingUpdateNewRenderingInfo(e):this._processPendingUpdateNewMesh(e,t)}async _processPendingUpdateNewMesh(e,t){e.state=1,e.abortController=new AbortController;const i=e.abortController.signal;try{await t.load({signal:i})}catch(r){return this._processPendingUpdateNewError(e,r)}e.abortController=null,this._processPendingUpdateNewRenderingInfo(e)}_processPendingUpdateNewError(e,t){e.abortController=null,y(t)?e.state=0:e.state=3}async _processPendingUpdateNewRenderingInfo(e){if(null==this.layer.renderer||"dictionary"!==this.layer.renderer.type)return e.renderingInfo=this._getRenderingInfo(e.add),void(e.state=2);e.state=1,e.abortController=new AbortController;let t=null;try{t=await this._getRenderingInfoAsync(e.add,{signal:e.abortController.signal})}catch(i){return e.abortController=null,void(y(i)?e.state=0:e.state=3)}null==t?.symbol?(this._symbolWarningLogged||(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no symbol and will not render`)),e.renderingInfo=null):e.renderingInfo=t,e.state=2}_addGraphic(e,t,i){if(this._graphicsWithoutSymbol.set(e.uid,e),null==t?.symbol||!Q(e))return;const r=this.stage.renderView.olidRenderHelper;if(r&&this.setUidToIdOnAdd){const t=J(this.owner.view,this.owner.layerViewUid);r.setUidToObjectAndLayerId(H(e,this._objectIdField),e.uid,this.layer.id,this.owner.layerViewUid,W(this.layer)&&!!this.layer.popupEnabled&&!t&&De(this.layer,this.owner.view.popup?.defaultPopupTemplateEnabled))}const s=t.symbol,a=this.getOrCreateGraphics3DSymbol(s,t.renderer);if(null==a)return;this._expandComputedExtent(e.geometry);const n=this._beginGraphicUpdate(e),o=new ce(e,t,this.layer);let l=!1;const h=e=>{e===a.symbol.id&&(l=!0)};this._whenSymbolRemoved.push(h);const d=()=>{if(--this._loadingSymbols,this.destroyed)return;this._whenSymbolRemoved.removeUnordered(h);if(this._graphicsWaitingForSymbol.get(e.uid)!==n||l||a.destroyed||this.graphicSymbolSupported&&e.symbol&&e.symbol.id!==a.symbol.id)--a.referenced,this._cleanupSymbols();else{const t=this._createGraphics3DGraphic(a,o);this._spatialIndex&&null!=t&&this._spatialIndex.add(t),--a.referenced,this._endGraphicUpdate(e)}this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.(),this._labeler?.setDirty()},p=t=>{--this._loadingSymbols,this.destroyed||(this._whenSymbolRemoved.removeUnordered(h),l||(y(t)?this.add([e]):a.destroyed||this._endGraphicUpdate(e,t)))};++this._loadingSymbols,0===i?a.load(()=>this._dataUpdateQueue.push(d,null).catch(c),e=>this._dataUpdateQueue.push(()=>p(e),null).catch(c)):a.load(d,p)}_removeGraphic(e){const t=e.uid,i=this.graphics3DGraphics.get(t);if(i){i.graphics3DSymbol.onRemoveGraphic(i);const e=i.usedMemory,r=i.isElevationSource;this._conditionalRemove(i,t),this._spatialIndex?.remove(i);const s=i.graphics3DSymbol.symbol.id;this._graphicsBySymbol.get(s)?.delete(t),this._graphicsWithoutSymbol.delete(t),this._removeGraphics3DGraphic(t,e,r),i.destroy(),this._featureStore.events.emit("changed"),this.owner.notifyContentGeometryUpdate?.()}else this._graphicsWithoutSymbol.delete(t),this._graphicsWaitingForSymbol.delete(t),0===this._graphicsWaitingForSymbol.size&&(this._cleanupSymbols(),this.notifyChange("dataUpdating"))}_hasLabelingContext(e){if(e instanceof ee||e instanceof te){const t=this.symbolCreationContext.layer;return!!t.labelingInfo&&t.labelingInfo.some(t=>t.symbol===e)}return!1}_hasValidSymbolCreationContext(e){return!(e instanceof ee&&!this._hasLabelingContext(e))||(s.getLogger(this).error("LabelSymbol3D is only valid as part of a LabelClass. Using LabelSymbol3D as a renderer symbol is not supported."),!1)}_getRenderingInfo(e,t=!0){const i=e.geometry;if(null==i)return t&&!this._geometryWarningLogged&&(this._geometryWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no geometry and will not render`)),null;if(!L(i.spatialReference,this._viewSpatialReference))return t&&!this._geometryWarningLogged&&(this._geometryWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has incompatible spatial reference and will not render`)),null;if(!this.graphicSymbolSupported&&null!=e.symbol)return t&&!this._symbolWarningLogged&&(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} is not allowed to have a symbol, use a renderer instead`)),null;const r=this.rendererRequiresHydratedGraphic?N(e,this.layer,null):e;let a;if(this.owner.getRenderingInfo&&(this.getRenderingInfoWithoutRenderer||null!=this.currentRenderer))a=this.owner.getRenderingInfo(r,this.currentRenderer,this._arcadeOnDemand);else{const e=r.symbol||re(r.geometry);a=new X(null,e)}return null==a?.symbol?(t&&!this._symbolWarningLogged&&(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no symbol and will not render`)),null):a}_getRenderingInfoAsync(e,t){if(null==e.geometry)return this._geometryWarningLogged||(this._geometryWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} has no geometry and will not render`)),null;if(!this.graphicSymbolSupported&&null!=e.symbol)return this._symbolWarningLogged||(this._symbolWarningLogged=!0,s.getLogger(this).warn(`Graphic in layer ${this.layer.id} is not allowed to have a symbol, use a renderer instead`)),null;const i=this.rendererRequiresHydratedGraphic?N(e,this.layer,null):e;return this.owner.getRenderingInfoAsync(i,this.currentRenderer,this._arcadeOnDemand,t)}_createGraphics3DSymbol(e,t){if(!this._hasValidSymbolCreationContext(e))return null;const i=this._getConvertedSymbol(e);if(!i)return null;let r;if(null!=t&&"backgroundFillSymbol"in t&&t.backgroundFillSymbol){const e=se(t.backgroundFillSymbol,{ignoreDrivers:!0});null!=e.symbol&&(r=e.symbol.symbolLayers)}const s=ue(i,this.symbolCreationContext,r);return s.load(()=>{const e=s.extentPadding;e>this.extentPadding&&this._set("extentPadding",e),this.notifyChange("averageSymbolComplexity")},()=>{}),s}getOrCreateGraphics3DSymbol(e,t){let i=this._symbols.get(e.id);if(void 0===i){const r=this._unusedSymbolsCache.pop(e.id);i=null!=r?r:e instanceof ie?new ge(e,e=>this._dataUpdateQueue.push(e,null),e=>this._createGraphics3DSymbol(e,t)):this._createGraphics3DSymbol(e,t),this._symbols.set(e.id,i),this._symbolMaterials=null}return null!=i&&++i.referenced,i}trackGraphicState(e){return null==this._graphicStateTracking&&(this._graphicStateTracking=new be(this)),this._graphicStateTracking.add(e)}_addGraphics3DGraphic(e){this._usedMemory+=e.usedMemory,this.graphics3DGraphics.set(e.graphic.uid,e),this._numberOfGraphics++,e.isElevationSource&&(this._numberOfGraphicsProvidingElevation++,this.updateStageLayerElevationProvider()),this._updateLayerVisibility()}_removeGraphics3DGraphic(e,t,i=!1){this._usedMemory-=t,this.graphics3DGraphics.delete(e),this._numberOfGraphics--,i&&(this._numberOfGraphicsProvidingElevation--,this.updateStageLayerElevationProvider()),this._updateLayerVisibility()}_createGraphics3DGraphic(e,t){const{graphic:i}=t;if(this._graphicsWithoutSymbol.delete(i.uid),!this._symbols.has(e.symbol.id))return this.add([i]),null;if(this.graphics3DGraphics.has(i.uid))return null;const r=e.createGraphics3DGraphic(t);if(null==r)return null;this._addGraphics3DGraphic(r);const s=e.symbol.id;this._graphicsBySymbol.has(s)||this._graphicsBySymbol.set(s,new Map),this._graphicsBySymbol.get(s).set(i.uid,r);if(r.isDraped&&this._graphicsDrapedUids.add(i.uid),r.centroid=null,null!=i.geometry&&"point"!==i.geometry.type&&(r.centroid=_e(i.geometry,this._viewSpatialReference)),this._updateUserVisibility(r),null!=this._scaleVisibility&&this._scaleVisibility.updateVisibility(r),null!=this._filterVisibility){const{defaultVisibility:e}=this._filterVisibility;r.setVisibilityFlag(1,4,e),e||this._filterVisibility.reapply()}this._deconflictor?.addGraphic(r),this._labeler?.addGraphic(r),this._objectStates?.addGraphic(r),r.initialize(this.stageLayer),null!=this._graphicStateTracking&&this._graphicStateTracking.addGraphic(r);const a=this._whenGraphics3DGraphicRequests[i.uid];return a&&(delete this._whenGraphics3DGraphicRequests[i.uid],a.resolve(r)),this._symbolMaterials=null,r}async rendererChange(e){if(this._rendererChangeAbortController=n(this._rendererChangeAbortController),e!==this.currentRenderer)if(this._validateRenderer(e),null==e&&this._currentRendererChange(null,!1),Z(e))if(e?.arcadeRequired){const t=new AbortController;this._rendererChangeAbortController=t;const{arcadeUtils:i}=await this._ensureArcade();p(t);const r=i.hasGeometryOperations(e),s=r||await this._rendererUsesFieldsRequiringArcadeTypeConversion(e);p(t),r&&(await i.enableGeometryOperations(),p(t)),0===this.effectiveUpdatePolicy?await this._updateQueue.push(()=>this._currentRendererChange(e,s),t.signal):this._currentRendererChange(e,s),this._rendererChangeAbortController=null}else if(0===this.effectiveUpdatePolicy){const t=new AbortController;this._rendererChangeAbortController=t,await this._updateQueue.push(()=>this._currentRendererChange(e,!1),t.signal),this._rendererChangeAbortController=null}else this._currentRendererChange(e,!1);else this._currentRendererChange(e,!1)}async _ensureArcade(){return null==this._arcadeOnDemand?(this._arcadeOnDemand=await K(),this._arcadeOnDemand):this._arcadeOnDemand}async _rendererUsesFieldsRequiringArcadeTypeConversion(e){const{fieldsIndex:t}=this.layer;if(null==t)return!1;return(await e.getRequiredFields(t)).some(e=>{switch(t.get(e)?.type){case"date":case"date-only":case"time-only":case"timestamp-offset":return!0;default:return!1}})}_currentRendererChange(e,t){this.currentRenderer=e,this.rendererRequiresHydratedGraphic=t,this.symbolCreationContext.arcade=this._arcadeOnDemand;const i=this.symbolCreationContext.renderer;if(e===i)return;if(this._symbolConversionCache.clear(),this._unusedSymbolsCache.clear(),null==e)return this.symbolCreationContext.renderer=null,void this.recreateAllGraphicsAndSymbols();const r=w(i,e);this._updateUnchangedSymbolMappings(r,e,i),this.symbolCreationContext.renderer=e,null!=r&&("complete"===r.type?this.recreateAllGraphicsAndSymbols():"partial"===r.type&&(this._applyRendererDiff(r,e,i)?this._labeler?.reset():this.recreateAllGraphicsAndSymbols()),this.notifyChange("averageSymbolComplexity"))}_diffHasSymbolChange(e){for(const t in e.diff)switch(t){case"visualVariables":case"defaultSymbol":case"uniqueValueInfos":break;case"uniqueValueGroups":case"authoringInfo":case"fieldDelimiter":delete e.diff[t];break;default:return!0}return!1}_applySymbolSetDiff(e,t,i){e=e||[],t=t||[];const r=[];for(const s of t){const t=this._graphicsBySymbol.get(s.id);t&&t.forEach((a,n)=>{const o=a.graphic,l=this.layer instanceof B?this.layer:null,h=this._arcadeOnDemand;if(s===i.defaultSymbol&&i.getSymbol(N(o,l,null),{arcade:h})===i.defaultSymbol)return;const d=a.usedMemory;e.length||i.defaultSymbol?r.push(o):this._graphicsWithoutSymbol.set(n,o);const p=this.graphics3DGraphics.get(n);this._conditionalRemove(p,n),a.destroy(),t.delete(n),this._removeGraphics3DGraphic(n,d),this._updateLayerVisibility()}),this._whenSymbolRemoved.forAll(e=>e(s.id))}(e.length||r.length)&&(this._graphicsWithoutSymbol.forEach(e=>r.push(e)),this._graphicsWithoutSymbol.clear(),this.add(r)),this._cleanupSymbols(),this._labeler?.setDirty(),this._deconflictor?.setDirty()}_applyUniqueValueRendererDiff(e,t,r){const s=e.diff.defaultSymbol,a=e.diff.uniqueValueInfos;if(s||a){const n=a?.changed,o=a?.unchanged;if(n&&o&&n.some(e=>o.some(t=>t.oldValue.symbol?.id===e.oldValue.symbol?.id)))return!1;const l=a?a.added.map(e=>e.symbol).filter(i):[],h=a?a.removed.map(e=>e.symbol).filter(i):[];if(n)for(let e=0;e<n.length;e++)l.push(n[e].newValue.symbol),h.push(n[e].oldValue.symbol);return s?(r.defaultSymbol&&h.push(r.defaultSymbol),t.defaultSymbol&&l.push(t.defaultSymbol)):r.defaultSymbol&&l.length&&h.push(t.defaultSymbol),this._applySymbolSetDiff(l,h,t),delete e.diff.defaultSymbol,delete e.diff.uniqueValueInfos,!0}return!1}_calculateUnchangedSymbolMapping(e,t,i){if("unique-value"!==t?.type||"unique-value"!==i?.type||null!=e&&"partial"!==e.type)return[];const r=e=>null!=e?e.id:null,s=e&&e.diff,a=s?.defaultSymbol,n=s&&s.uniqueValueInfos;let o;if(n)o=n.unchanged.map(e=>({oldId:r(e.oldValue.symbol),newId:r(e.newValue.symbol)}));else{o=[];for(const e of i.uniqueValueInfos??[]){const i=r(e.symbol),s=t.uniqueValueInfos?.find(t=>t.value===e.value);s&&i!==r(s.symbol)&&o.push({oldId:i,newId:r(s.symbol)})}}return!a&&i.defaultSymbol&&o.push({oldId:r(i.defaultSymbol),newId:r(t.defaultSymbol)}),o}_updateSymbolMapping(e,t){const i=null!=t&&t?"string"==typeof t?t:t.id:null;if(null==e||e===i)return;const r=this._graphicsBySymbol.get(e);this._graphicsBySymbol.delete(e),void 0!==r&&this._graphicsBySymbol.set(i,r);const s=this._symbols.get(e);if(void 0!==s&&(this._symbols.delete(e),this._symbols.set(i,s),this._symbolMaterials=null,null!=s)){const e="string"==typeof t?null:t;null!=e?s.symbol=e:s.symbol.id=i}}_updateUnchangedSymbolMappings(e,t,i){const r=this._calculateUnchangedSymbolMapping(e,t,i);for(const{oldId:s,newId:a}of r)this._updateSymbolMapping(s,a)}_applyRendererDiff(e,t,i){if(this._diffHasSymbolChange(e))return!1;if(t instanceof $&&i instanceof $&&this._applyUniqueValueRendererDiff(e,t,i)&&0===Object.keys(e.diff).length)return!0;for(const r of this._graphicsBySymbol.keys()){const i=this._symbols.get(r);if(null!=i)switch(i.applyRendererDiff(e,t)){case 0:this._recreateSymbol(r);break;case 1:this._recreateGraphicsForSymbol(r)}}return!0}opacityChange(){this._updateStageLayerVisibility(),this.forEachGraphics3DSymbol((e,t)=>e.globalPropertyChanged("opacity",t))}_screenSizePerspectiveEnabledChange(){this.forEachGraphics3DSymbol((e,t)=>e.globalPropertyChanged("screenSizePerspectiveEnabled",t)),this._labeler?.screenSizePerspectiveEnabledChanged(),this._deconflictor?.screenSizePerspectiveEnabledChanged()}_slicePlaneEnabledChange(e){e!==this.symbolCreationContext.slicePlaneEnabled&&(this.symbolCreationContext.slicePlaneEnabled=e,this.stageLayer.sliceable=e,this.forEachGraphics3DSymbol((e,t)=>e.globalPropertyChanged("slicePlaneEnabled",t)),this._deconflictor?.slicePlaneEnabledChange(),this._labeler?.slicePlaneEnabledChange())}_physicalBasedRenderingChange(e){this.symbolCreationContext.physicalBasedRenderingEnabled=e,this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("physicalBasedRenderingEnabled",t)||this._recreateSymbol(i)})}_skipHighSymbolLoDsChange(e){this.symbolCreationContext.skipHighSymbolLods=e,this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("skipHighSymbolLods",t)||this._recreateSymbol(i)})}_pixelRatioChange(){this.forEachGraphics3DSymbol((e,t,i)=>{e.globalPropertyChanged("pixelRatio",t)||this._recreateSymbol(i)})}_signalUpdatingDuringAsyncLoadedGraphicsChange(){this._updatingPendingLoadedGraphicsChange&&this._updatingPendingLoadedGraphicsChange.remove(),this._updatingPendingLoadedGraphicsChange=v(()=>{this._updatingPendingLoadedGraphicsChange=null})}setClippingExtent(e,t){const i=this.symbolCreationContext.clippingExtent,r=k();return we(e,r,t)?this.symbolCreationContext.clippingExtent=O(T(),r):this.symbolCreationContext.clippingExtent=null,!M(this.symbolCreationContext.clippingExtent,i)}modifyGraphics3DGraphicVisibilities(e){if(this.destroyed)return;let t=!1;this.graphics3DGraphics.forEach(i=>{e(i)&&(t=!0)}),t&&(this._labeler?.setDirty(),this._deconflictor?.setDirty())}forEachGraphics3DSymbol(e,t){for(const[i,r]of this._symbols){if(null==r)return;e(r,this._graphicsBySymbol.get(i)||Qe,i)}if(!t?.excludeUnused)for(const i of this._unusedSymbolsCache)e(i,void 0,i.symbol.id)}updateGraphicsVisibilities(){null!=this._filterVisibility&&this._filterVisibility.reapply(),this.modifyGraphics3DGraphicVisibilities(e=>{const t=this._updateUserVisibility(e),i=!!this._scaleVisibility?.updateVisibility(e);return t||i})}_hideAllGraphics(){this.modifyGraphics3DGraphicVisibilities(e=>e.setVisibilityFlag(1,1,!1))}_validateRenderer(e){const t=()=>`'${this.layer.title?`${this.layer.title}, `:""}id:${this.layer.id}'`,i=Y(e,{geometryType:this.layer?.geometryType,logWarning:(e,i)=>s.getLogger(this).warn(e,`Symbology conversion for layer ${t()}: ${i}`)});if(i){const e=`Renderer for layer ${t} is not supported in a SceneView`;s.getLogger(this).warn(e,i.message)}}_cleanupSymbols(){if(this._graphicsWaitingForSymbol.size>0||this._suspendSymbolCleanup)return;let e=!1;this._symbols.forEach((t,i)=>{if(null==t||t.referenced>0)return;const r=this._graphicsBySymbol.get(i);r&&0!==r.size||(this._graphicsBySymbol.delete(i),this._symbols.delete(i),this._symbolMaterials=null,this._unusedSymbolsCache.put(i,t,h),e=!0)}),e&&(this._recomputeExtentPadding(),this.notifyChange("averageSymbolComplexity"))}get test(){}get performanceInfo(){return new me(this.graphics3DGraphics.size,this.graphics3DGraphics.values().reduce((e,t)=>e+(t.isVisible()?1:0),0),this._graphicsWithoutSymbol.size,this._pendingUpdates.size)}};e([C({readOnly:!0})],ze.prototype,"computedExtent",void 0),e([C()],ze.prototype,"currentRenderer",void 0),e([C()],ze.prototype,"rendererRequiresHydratedGraphic",void 0),e([C()],ze.prototype,"_frameTaskHandle",void 0),e([C()],ze.prototype,"_dataUpdateQueue",void 0),e([C()],ze.prototype,"_updateQueue",void 0),e([C({readOnly:!0})],ze.prototype,"_viewSpatialReference",null),e([C()],ze.prototype,"_rendererChangeAbortController",void 0),e([C()],ze.prototype,"_elevationInfoChangeAbortController",void 0),e([C()],ze.prototype,"_initializeAbortController",void 0),e([C()],ze.prototype,"_elevationAlignment",void 0),e([C()],ze.prototype,"_scaleVisibility",void 0),e([C()],ze.prototype,"_filterVisibility",void 0),e([C()],ze.prototype,"_initializePromise",void 0),e([C()],ze.prototype,"_spatialIndex",void 0),e([C({readOnly:!0})],ze.prototype,"extentPadding",void 0),e([C()],ze.prototype,"_updatingPendingLoadedGraphicsChange",void 0),e([C()],ze.prototype,"_featureStore",void 0),e([C()],ze.prototype,"_objectStates",void 0),e([C()],ze.prototype,"_loadingSymbols",void 0),e([C({constructOnly:!0})],ze.prototype,"compressionTracker",void 0),e([C()],ze.prototype,"preferredUpdatePolicy",void 0),e([C()],ze.prototype,"_forcedUpdatePolicy",void 0),e([C({readOnly:!0})],ze.prototype,"effectiveUpdatePolicy",null),e([C({constructOnly:!0})],ze.prototype,"elevationFeatureExpressionEnabled",void 0),e([C({constructOnly:!0})],ze.prototype,"owner",void 0),e([C({constructOnly:!0})],ze.prototype,"layer",void 0),e([C({constructOnly:!0})],ze.prototype,"graphicSymbolSupported",void 0),e([C({constructOnly:!0})],ze.prototype,"getRenderingInfoWithoutRenderer",void 0),e([C({constructOnly:!0})],ze.prototype,"componentFactories",void 0),e([C({constructOnly:!0})],ze.prototype,"setUidToIdOnAdd",void 0),e([C()],ze.prototype,"featureStore",null),e([C()],ze.prototype,"initializePromise",null),e([C()],ze.prototype,"scaleVisibility",null),e([C()],ze.prototype,"elevationAlignment",null),e([C()],ze.prototype,"objectStates",null),e([C()],ze.prototype,"filterVisibility",null),e([C({readOnly:!0})],ze.prototype,"updating",null),e([C({readOnly:!0})],ze.prototype,"dataUpdating",null),e([C({readOnly:!0})],ze.prototype,"readyToRun",null),e([C({readOnly:!0})],ze.prototype,"suspendedOrOutsideOfView",null),e([C({readOnly:!0})],ze.prototype,"updatingRemaining",null),e([C({readOnly:!0})],ze.prototype,"displayFeatureLimit",null),e([C({readOnly:!0})],ze.prototype,"averageSymbolComplexity",null),e([C({constructOnly:!0})],ze.prototype,"hasZ",void 0),e([C({constructOnly:!0})],ze.prototype,"hasM",void 0),e([C()],ze.prototype,"_objectIdField",null),ze=Te=e([S("esri.views.3d.layers.graphics.Graphics3DCore")],ze);class We{constructor(){this.add=null,this.renderingInfo=null,this.state=0,this.abortController=null,this.remove=null}clear(){this.add=null,this.renderingInfo=null,this.state=0,this.abortController=null,this.remove=null}}const Be=10,He=D(),qe=D(),Qe=new Map;export{ze as Graphics3DCore};
@@ -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{indexOf as r,PositionHint as s}from"../../../../core/arrayUtils.js";import i from"../../../../core/Logger.js";import{clamp as o}from"../../../../core/mathUtils.js";import{unwrapUpdating as n,updating as a,isUpdating as l}from"../../../../core/maybeUpdating.js";import{whenOnce as c}from"../../../../core/reactiveUtils.js";import{getUnitString as p,lengthUnits as u}from"../../../../core/units.js";import{property as m,subclass as d}from"../../../../core/accessorSupport/decorators.js";import{set as g}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as y}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import f from"../../../../core/sql/WhereClause.js";import{getReferenceEllipsoid as h}from"../../../../geometry/ellipsoidUtils.js";import{projectBoundingSphere as j}from"../../../../geometry/projection/projectBoundingSphere.js";import{projectVectorToVector as w}from"../../../../geometry/projection/projectVectorToVector.js";import{create as v}from"../../../../geometry/support/aaBoundingBox.js";import{fromValues as R,expandWithNestedArray as O,expand as b}from"../../../../geometry/support/aaBoundingRect.js";import{doubleArrayFrom as F}from"../../../../geometry/support/DoubleArray.js";import{earth as x}from"../../../../geometry/support/Ellipsoid.js";import{isWGS84 as S,isWebMercator as _}from"../../../../geometry/support/spatialReferenceUtils.js";import{Sphere as k}from"../../../../geometry/support/sphere.js";import I from"../../../../layers/support/FeatureFilter.js";import{objectIdFilter as M,filterInPlace as G}from"./I3SUtil.js";let V=class extends t{constructor(e){super(e)}initialize(){c(()=>this.viewFilter?.geometry||this.layerFilter).then(()=>Promise.all([this._loadOperator(import("../../../../geometry/operators/json/geodesicBufferOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/bufferOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/intersectsOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/containsOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/disjointOperator.js"))]).then(async e=>{this.destroyed||(this._geometryOperators=e)}))}_loadOperator(e){return this.loadAsyncModule(e).then(e=>"load"in e&&"function"==typeof e.load?e.load().then(()=>e):e)}get sortedObjectIds(){return null==this.viewFilter?.objectIds?null:F(this.viewFilter.objectIds).sort()}get parsedWhereClause(){const e=this.viewFilter?.where;if(null==e||!e)return null;try{return f.create(e,{fieldsIndex:this.layerFieldsIndex})}catch(t){i.getLogger(this).error(`Failed to parse filter where clause: ${t}`)}return null}addFilters(e,t,r,s){const o=this.sortedObjectIds;null!=o&&e.push(e=>M(o,!0,e)),this.addSqlFilter(e,this.parsedWhereClause),this.addTimeFilter(e,this.viewFilter?.timeExtent);const a=this._geometryOperators;if(!a)return;const l=()=>i.getLogger(this),c=n(this._layerMaskGeometries);if(c&&this.layerFilter){const i=this.layerFilter.spatialRelationship;e.push((e,o)=>U(l,a,e,o,s,t,r,c,i))}const p=n(this._viewMaskGeometries);if(p&&this.viewFilter){const i=this.viewFilter.spatialRelationship;e.push((e,o)=>U(l,a,e,o,s,t,r,p,i))}}isMBSGeometryVisible(e,t,r){const s=this._geometryOperators;if(!s)return!0;const o=n(this._layerMaskGeometries);if(o&&this.layerFilter){const n=this.layerFilter.spatialRelationship,a=o[0].spatialReference||t;if(!j(e,r,A,a))return i.getLogger(this).warnOnce("SceneLayer.mask geometry is using unsupported SpatialReference, skipping geometry filter for MBS"),!0;return N(s,A,o,a,n)}const a=n(this._viewMaskGeometries);if(a&&this.viewFilter){const o=this.viewFilter.spatialRelationship,n=a[0].spatialReference||t;if(!j(e,r,A,n))return i.getLogger(this).warnOnce("SceneLayerView.filter.geometry is using unsupported SpatialReference, skipping geometry filter for MBS"),!0;return N(s,A,a,n,o)}return!0}get parsedGeometry(){const e=n(this._viewMaskGeometries),t=n(this._layerMaskGeometries);return null==e||null==t?e??t:t.concat(e)}get _layerMaskGeometries(){const e=this.layerFilter;return null==e?null:null==this._geometryOperators?a:"disjoint"===e.spatialRelationship?e.geometries.map(e=>({type:"polygon",rings:e.rings,spatialReference:e.spatialReference,cache:{}})):[e.geometries.reduce((e,t)=>(e.rings=[...e.rings,...t.rings],e),{type:"polygon",rings:[],spatialReference:e.geometries[0].spatialReference,cache:{}})]}get _viewMaskGeometries(){const e=this.viewFilter?.geometry;if(!this.viewFilter||!e)return null;if(!this._geometryOperators)return a;const{distance:t,units:r}=this.viewFilter,s=this.viewFilter.spatialRelationship,o="mesh"===e.type?e.extent:e;if(null==t||0===t)return C(this._geometryOperators,o,s);try{const e=B(r,o.spatialReference),i=this._geometryOperators[0].execute(o.toJSON(),t,{unit:e});return C(this._geometryOperators,i,s)}catch(n){i.getLogger(this).error(`Filter by geodesic buffer (distance) unsupported, failed execute with input geometry (${JSON.stringify(o.toJSON())}).`)}return null}get updating(){return l(this._layerMaskGeometries)||l(this._viewMaskGeometries)}static checkSupport(e){return null!=e&&(!!T(e.spatialRelationship)||(i.getLogger(this.prototype).warn(`Filters with spatialRelationship other than ${L.join(", ")} are not supported for mesh scene layers`),!1))}};e([m()],V.prototype,"layerFilter",void 0),e([m({type:I})],V.prototype,"viewFilter",void 0),e([m()],V.prototype,"layerFieldsIndex",void 0),e([m()],V.prototype,"loadAsyncModule",void 0),e([m()],V.prototype,"addSqlFilter",void 0),e([m()],V.prototype,"addTimeFilter",void 0),e([m({readOnly:!0})],V.prototype,"sortedObjectIds",null),e([m({readOnly:!0})],V.prototype,"parsedWhereClause",null),e([m({readOnly:!0})],V.prototype,"parsedGeometry",null),e([m({readOnly:!0})],V.prototype,"_layerMaskGeometries",null),e([m({readOnly:!0})],V.prototype,"_viewMaskGeometries",null),e([m()],V.prototype,"updating",null),e([m()],V.prototype,"_geometryOperators",void 0),V=e([d("esri.views.3d.layers.i3s.I3SMeshViewFilter")],V);const L=(e=>e)(["contains","intersects","disjoint"]);function T(e){return null!=e&&L.includes(e)}function B(e,t){const r=e??p(t);return u.includes(r)?r:void 0}function C(e,t,i){if(null==t)return null;if("disjoint"===i&&"rings"in t){const i=t.spatialReference,o=t.rings.map(e=>{const t=R(1/0,1/0,-1/0,-1/0);return O(t,e),new J({rings:[e],spatialReference:i},t)});o.sort((e,t)=>e.aabr[0]-t.aabr[0]);const n=new Set,a=new s;for(let t=0;t<o.length;++t){const{polygon:s,aabr:i}=o[t],l=i[0];n.forEach(t=>{if(l>=t.aabr[2])return void n.delete(t);if(i[1]>t.aabr[3]||i[3]<t.aabr[1]||!e[2].execute(s,t.polygon))return;s.rings=s.rings.concat(t.polygon.rings),b(i,t.aabr,i),n.delete(t);const c=r(o,t,o.length,a);o.splice(c,1)}),n.add(o[t])}return o.map(({polygon:e})=>e)}return["toJSON"in t?t.toJSON():t]}function N(e,t,r,s,i){if(t.radius>=.5*(t.center[2]+h(s).radius))return!0;const o=q(e,t,s);return!o||r.every(t=>1!==E(e,t,o,i))}function U(e,t,r,s,i,o,n,a,l){const c=a[0].spatialReference||o.spatialReference;if(!j(s.node.serviceMbsInIndexSR,n,A,c))return void e().warnOnce("SceneLayerView.filter.geometry is using unsupported SpatialReference, skipping geometry filter");const p=q(t,A,c);if(!p)return;const u=W(l,o,c,i,s.objectHandle),m="intersects"===l;let d=null;for(const g of a){if(0===r.length)return;switch(E(t,g,p,l)){case 1:return m&&(s.weaklyRemovedIds=s.weaklyRemovedIds?.concat(r)??r.slice()),void(r.length=0);case 0:continue}G(r,s.featureIds,e=>!!z(t,g,e,u)||(m&&(d||=[],d.push(s.featureIds[e])),!1))}d&&(s.weaklyRemovedIds=s.weaklyRemovedIds?.concat(d)??d)}const A=new k;class J{constructor(e,t){this.aabr=t,this.polygon={rings:e.rings,spatialReference:e.spatialReference}}}function W(e,t,r,s,i){const o=t.renderSpatialReference,n=new Map,a={rings:[[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]],spatialReference:r};a.rings[0][3]=a.rings[0][0];const l={indices:null,data:null,stride:0,startIndex:0,endIndex:0};let c,p;switch(e){case"intersects":c=(e,t,r)=>e[2].execute(t,r)?0:2,p=$;break;case"contains":c=(e,t,r)=>e[3].execute(t,r)?2:1,p=$;break;default:c=(e,t,r)=>e[4].execute(t,r)?2:1,p=P}return{collection:s,object:i,type:e,maskSR:r,renderSR:o,aabbCache:n,triangle:a,positions:l,triangleTest:c,geometryTest:p}}function q(e,t,r){const s={x:t.center[0],y:t.center[1],spatialReference:r},i=!S(r)&&!_(r),n=Number.isNaN(t.radius)?0:o(t.radius,0,2*x.radius);return i?e[1].execute(s,n):e[0].execute(s,n)}function E(e,t,r,s){if(!r)return 0;switch(s){case"intersects":case"contains":return $(e,t,r);case"disjoint":return P(e,t,r)}}function $(e,t,r){return e[2].execute(t,r)?e[3].execute(t,r)?0:2:1}function P(e,t,r){return e[2].execute(t,r)?e[3].execute(t,r)?1:2:0}function z(e,t,r,s){const{collection:i,object:o,renderSR:n,maskSR:a,geometryTest:l,aabbCache:c}=s;let p=c.get(r);if(!p){const e=i.getObjectTransform(o);i.getComponentAabb(o,r,D);const t=[y(D[0],D[1],0),y(D[0],D[4],0),y(D[3],D[4],0),y(D[3],D[1],0)];for(let r=0;r<4;++r)e.applyVec3(t[r],t[r]),w(t[r],n,t[r],a);p={rings:[t],spatialReference:a},p.rings[0][4]=p.rings[0][0],c.set(r,p)}switch(l(e,t,p)){case 1:return!1;case 0:return!0}const{triangle:u,triangleTest:m,positions:d}=s,f=u.rings[0][0],h=u.rings[0][1],j=u.rings[0][2],v=i.getObjectTransform(o);i.getComponentPositions(o,r,d);const{indices:R,data:O,stride:b,startIndex:F,endIndex:x}=d;for(let y=F;y<x;y+=3){const r=b*R[y],s=b*R[y+1],i=b*R[y+2];switch(g(f,O[r],O[r+1],O[r+2]),g(h,O[s],O[s+1],O[s+2]),g(j,O[i],O[i+1],O[i+2]),v.applyVec3(f,f),v.applyVec3(h,h),v.applyVec3(j,j),w(f,n,f,a),w(h,n,h,a),w(j,n,j,a),m(e,t,u)){case 1:return!1;case 0:return!0}}return"intersects"!==s.type}const D=v();export{V as I3SMeshViewFilter};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Accessor.js";import{indexOf as r,PositionHint as s}from"../../../../core/arrayUtils.js";import i from"../../../../core/Logger.js";import{clamp as o}from"../../../../core/mathUtils.js";import{unwrapUpdating as n,updating as a,isUpdating as l}from"../../../../core/maybeUpdating.js";import{whenOnce as c}from"../../../../core/reactiveUtils.js";import{getUnitString as p,lengthUnits as u}from"../../../../core/units.js";import{property as d,subclass as m}from"../../../../core/accessorSupport/decorators.js";import{set as g}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{fromValues as f}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import y from"../../../../core/sql/WhereClause.js";import{getReferenceEllipsoid as h}from"../../../../geometry/ellipsoidUtils.js";import{projectBoundingSphere as j}from"../../../../geometry/projection/projectBoundingSphere.js";import{projectVectorToVector as w}from"../../../../geometry/projection/projectVectorToVector.js";import{create as v}from"../../../../geometry/support/aaBoundingBox.js";import{fromValues as R,expandWithNestedArray as b,expand as O}from"../../../../geometry/support/aaBoundingRect.js";import{doubleArrayFrom as F}from"../../../../geometry/support/DoubleArray.js";import{earth as x}from"../../../../geometry/support/Ellipsoid.js";import{isWGS84 as S,isWebMercator as _}from"../../../../geometry/support/spatialReferenceUtils.js";import{Sphere as k}from"../../../../geometry/support/sphere.js";import I from"../../../../layers/support/FeatureFilter.js";import{objectIdFilter as M,filterInPlace as G}from"./I3SUtil.js";let E=class extends t{constructor(e){super(e)}initialize(){c(()=>this.viewFilter?.geometry||this.layerFilter).then(()=>Promise.all([this._loadOperator(import("../../../../geometry/operators/json/geodesicBufferOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/bufferOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/intersectsOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/containsOperator.js")),this._loadOperator(import("../../../../geometry/operators/json/disjointOperator.js"))]).then(async e=>{this.destroyed||(this._geometryOperators=e)}))}_loadOperator(e){return this.loadAsyncModule(e).then(e=>"load"in e&&"function"==typeof e.load?e.load().then(()=>e):e)}get sortedObjectIds(){return null==this.viewFilter?.objectIds?null:F(this.viewFilter.objectIds).sort()}get parsedWhereClause(){const e=this.viewFilter?.where;if(null==e||!e)return null;try{return y.create(e,{fieldsIndex:this.layerFieldsIndex})}catch(t){i.getLogger(this).error(`Failed to parse filter where clause: ${t}`)}return null}addFilters(e,t,r,s){const o=this.sortedObjectIds;null!=o&&e.push(e=>M(o,!0,e)),this.addSqlFilter(e,this.parsedWhereClause),this.addTimeFilter(e,this.viewFilter?.timeExtent);const a=this._geometryOperators;if(!a)return;const l=()=>i.getLogger(this),c=n(this._layerMaskGeometries);if(c&&this.layerFilter){const i=this.layerFilter.spatialRelationship;e.push((e,o)=>N(l,a,e,o,s,t,r,c,i))}const p=n(this._viewMaskGeometries);if(p&&this.viewFilter){const i=this.viewFilter.spatialRelationship;e.push((e,o)=>N(l,a,e,o,s,t,r,p,i))}}isMBSGeometryVisible(e,t,r){const s=this._geometryOperators;if(!s)return!0;const o=n(this._layerMaskGeometries);if(o&&this.layerFilter){const n=this.layerFilter.spatialRelationship,a=o[0].spatialReference||t;if(!j(e,r,U,a))return i.getLogger(this).warnOnce("SceneLayer.mask geometry is using unsupported SpatialReference, skipping geometry filter for MBS"),!0;return C(s,U,o,a,n)}const a=n(this._viewMaskGeometries);if(a&&this.viewFilter){const o=this.viewFilter.spatialRelationship,n=a[0].spatialReference||t;if(!j(e,r,U,n))return i.getLogger(this).warnOnce("SceneLayerView.filter.geometry is using unsupported SpatialReference, skipping geometry filter for MBS"),!0;return C(s,U,a,n,o)}return!0}get parsedGeometry(){const e=n(this._viewMaskGeometries),t=n(this._layerMaskGeometries);return null==e||null==t?e??t:t.concat(e)}get _layerMaskGeometries(){const e=this.layerFilter;return null==e?null:null==this._geometryOperators?a:"disjoint"===e.spatialRelationship?e.geometries.map(e=>({type:"polygon",rings:e.rings,spatialReference:e.spatialReference,cache:{}})):[e.geometries.reduce((e,t)=>(e.rings=[...e.rings,...t.rings],e),{type:"polygon",rings:[],spatialReference:e.geometries[0].spatialReference,cache:{}})]}get _viewMaskGeometries(){const e=this.viewFilter?.geometry;if(!this.viewFilter||!e)return null;if(!this._geometryOperators)return a;const{distance:t,units:r}=this.viewFilter,s=this.viewFilter.spatialRelationship,o="mesh"===e.type?e.extent:e;if(null==t||0===t)return T(this._geometryOperators,o,s);try{const e=L(r,o.spatialReference),i=this._geometryOperators[0].geodesicBufferExecute(o.toJSON(),t,{unit:e});return T(this._geometryOperators,i,s)}catch(n){i.getLogger(this).error(`Filter by geodesic buffer (distance) unsupported, failed execute with input geometry (${JSON.stringify(o.toJSON())}).`)}return null}get updating(){return l(this._layerMaskGeometries)||l(this._viewMaskGeometries)}static checkSupport(e){return null!=e&&(!!B(e.spatialRelationship)||(i.getLogger(this.prototype).warn(`Filters with spatialRelationship other than ${V.join(", ")} are not supported for mesh scene layers`),!1))}};e([d()],E.prototype,"layerFilter",void 0),e([d({type:I})],E.prototype,"viewFilter",void 0),e([d()],E.prototype,"layerFieldsIndex",void 0),e([d()],E.prototype,"loadAsyncModule",void 0),e([d()],E.prototype,"addSqlFilter",void 0),e([d()],E.prototype,"addTimeFilter",void 0),e([d({readOnly:!0})],E.prototype,"sortedObjectIds",null),e([d({readOnly:!0})],E.prototype,"parsedWhereClause",null),e([d({readOnly:!0})],E.prototype,"parsedGeometry",null),e([d({readOnly:!0})],E.prototype,"_layerMaskGeometries",null),e([d({readOnly:!0})],E.prototype,"_viewMaskGeometries",null),e([d()],E.prototype,"updating",null),e([d()],E.prototype,"_geometryOperators",void 0),E=e([m("esri.views.3d.layers.i3s.I3SMeshViewFilter")],E);const V=(e=>e)(["contains","intersects","disjoint"]);function B(e){return null!=e&&V.includes(e)}function L(e,t){const r=e??p(t);return u.includes(r)?r:void 0}function T(e,t,i){if(null==t)return null;if("disjoint"===i&&"rings"in t){const i=t.spatialReference,o=t.rings.map(e=>{const t=R(1/0,1/0,-1/0,-1/0);return b(t,e),new A({rings:[e],spatialReference:i},t)});o.sort((e,t)=>e.aabr[0]-t.aabr[0]);const n=new Set,a=new s;for(let t=0;t<o.length;++t){const{polygon:s,aabr:i}=o[t],l=i[0];n.forEach(t=>{if(l>=t.aabr[2])return void n.delete(t);if(i[1]>t.aabr[3]||i[3]<t.aabr[1]||!e[2].intersectsExecute(s,t.polygon))return;s.rings=s.rings.concat(t.polygon.rings),O(i,t.aabr,i),n.delete(t);const c=r(o,t,o.length,a);o.splice(c,1)}),n.add(o[t])}return o.map(({polygon:e})=>e)}return["toJSON"in t?t.toJSON():t]}function C(e,t,r,s,i){if(t.radius>=.5*(t.center[2]+h(s).radius))return!0;const o=W(e,t,s);return!o||r.every(t=>1!==q(e,t,o,i))}function N(e,t,r,s,i,o,n,a,l){const c=a[0].spatialReference||o.spatialReference;if(!j(s.node.serviceMbsInIndexSR,n,U,c))return void e().warnOnce("SceneLayerView.filter.geometry is using unsupported SpatialReference, skipping geometry filter");const p=W(t,U,c);if(!p)return;const u=J(l,o,c,i,s.objectHandle),d="intersects"===l;let m=null;for(const g of a){if(0===r.length)return;switch(q(t,g,p,l)){case 1:return d&&(s.weaklyRemovedIds=s.weaklyRemovedIds?.concat(r)??r.slice()),void(r.length=0);case 0:continue}G(r,s.featureIds,e=>!!z(t,g,e,u)||(d&&(m||=[],m.push(s.featureIds[e])),!1))}m&&(s.weaklyRemovedIds=s.weaklyRemovedIds?.concat(m)??m)}const U=new k;class A{constructor(e,t){this.aabr=t,this.polygon={rings:e.rings,spatialReference:e.spatialReference}}}function J(e,t,r,s,i){const o=t.renderSpatialReference,n=new Map,a={rings:[[[0,0,0],[0,0,0],[0,0,0],[0,0,0]]],spatialReference:r};a.rings[0][3]=a.rings[0][0];const l={indices:null,data:null,stride:0,startIndex:0,endIndex:0};let c,p;switch(e){case"intersects":c=(e,t,r)=>e[2].intersectsExecute(t,r)?0:2,p=$;break;case"contains":c=(e,t,r)=>e[3].containsExecute(t,r)?2:1,p=$;break;default:c=(e,t,r)=>e[4].disjointExecute(t,r)?2:1,p=P}return{collection:s,object:i,type:e,maskSR:r,renderSR:o,aabbCache:n,triangle:a,positions:l,triangleTest:c,geometryTest:p}}function W(e,t,r){const s={x:t.center[0],y:t.center[1],spatialReference:r},i=!S(r)&&!_(r),n=Number.isNaN(t.radius)?0:o(t.radius,0,2*x.radius);return i?e[1].bufferExecute(s,n):e[0].geodesicBufferExecute(s,n)}function q(e,t,r,s){if(!r)return 0;switch(s){case"intersects":case"contains":return $(e,t,r);case"disjoint":return P(e,t,r)}}function $(e,t,r){return e[2].intersectsExecute(t,r)?e[3].containsExecute(t,r)?0:2:1}function P(e,t,r){return e[2].intersectsExecute(t,r)?e[3].containsExecute(t,r)?1:2:0}function z(e,t,r,s){const{collection:i,object:o,renderSR:n,maskSR:a,geometryTest:l,aabbCache:c}=s;let p=c.get(r);if(!p){const e=i.getObjectTransform(o);i.getComponentAabb(o,r,D);const t=[f(D[0],D[1],0),f(D[0],D[4],0),f(D[3],D[4],0),f(D[3],D[1],0)];for(let r=0;r<4;++r)e.applyVec3(t[r],t[r]),w(t[r],n,t[r],a);p={rings:[t],spatialReference:a},p.rings[0][4]=p.rings[0][0],c.set(r,p)}switch(l(e,t,p)){case 1:return!1;case 0:return!0}const{triangle:u,triangleTest:d,positions:m}=s,y=u.rings[0][0],h=u.rings[0][1],j=u.rings[0][2],v=i.getObjectTransform(o);i.getComponentPositions(o,r,m);const{indices:R,data:b,stride:O,startIndex:F,endIndex:x}=m;for(let f=F;f<x;f+=3){const r=O*R[f],s=O*R[f+1],i=O*R[f+2];switch(g(y,b[r],b[r+1],b[r+2]),g(h,b[s],b[s+1],b[s+2]),g(j,b[i],b[i+1],b[i+2]),v.applyVec3(y,y),v.applyVec3(h,h),v.applyVec3(j,j),w(y,n,y,a),w(h,n,h,a),w(j,n,j,a),d(e,t,u)){case 1:return!1;case 0:return!0}}return"intersects"!==s.type}const D=v();export{E as I3SMeshViewFilter};
@@ -105,11 +105,11 @@ export interface MapViewProperties extends View2DProperties {}
105
105
  * >
106
106
  * > - If the spatial reference of the [center](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#center), [extent](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#extent) or [viewpoint.targetGeometry](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#viewpoint) set in the constructor does not match the
107
107
  * > [spatialReference](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#spatialReference) of the view, then [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/) will be loaded dynamically.
108
- * > - At runtime, the [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/) must be [loaded](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load) when
108
+ * > - At runtime, the [projectOperator](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/) must be [loaded](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#projectLoad) when
109
109
  * > setting the [center](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#center), [extent](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#extent) or [viewpoint](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#viewpoint) to a spatial reference that doesn't match the view
110
110
  * > [spatial reference](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#spatialReference). You can check if the projectOperator is
111
- * > loaded prior to setting these properties by calling [isLoaded()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#isLoaded).
112
- * > If it is not yet loaded, you can call [load()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#load).
111
+ * > loaded prior to setting these properties by calling [projectIsLoaded()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#projectIsLoaded).
112
+ * > If it is not yet loaded, you can call [projectLoad()](https://developers.arcgis.com/javascript/latest/references/core/geometry/operators/projectOperator/#projectLoad).
113
113
  *
114
114
  * ```js
115
115
  * // Create a map with Antarctic imagery basemap