@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{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s,waitTick as r}from"../../../core/promiseUtils.js";import{property as h,subclass as a}from"../../../core/accessorSupport/decorators.js";import{equals as o}from"../../../geometry/support/spatialReferenceUtils.js";import{GraphicsCollection as l}from"../../../support/GraphicsCollection.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../../../core/has.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import p from"./graphics/GraphicsView2D.js";import"../../../Viewpoint.js";import"../../../core/Collection.js";import"../../../core/mathUtils.js";import"../../../geometry/Extent.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../../../geometry/support/normalizeUtils.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/GpuMeshState.js";import"../engine/webgl/shaderGraph/techniques/shaders/Tile.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/shaderGraph/techniques/shaders/ViewInfo.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as n}from"./BitmapTileLayerView2D.js";import{LayerView2D as c}from"./LayerView2D.js";import g from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as m,resampleImage as u}from"./support/imageUtils.js";import d from"../tiling/TileInfoView.js";import f from"../tiling/TileKey.js";import w from"../tiling/TileQueue.js";import y from"../tiling/TileStrategy.js";import j from"../../layers/LayerView.js";import{RefreshableLayerView as _}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as T}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as b,MapServiceLayerViewHelper as V}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as v}from"../../support/drapedUtils.js";import{getHighlightName as U}from"../../support/highlightOptionsUtils.js";import{TaskPriority as q}from"../../support/Scheduler.js";const H=[0,0];let I=class extends(_(n(c(j)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new l,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new d(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:q.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new y({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),b(this,this.layer)){const e=this._highlightView=new p({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new g(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new V({createFetchPopupFeaturesQueryGeometry:(e,i)=>v(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtTarget(e,i,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,t):[]}highlight(e,t){const s=T(e);if(0===s.length)return i();const r=U(t);return this._addHighlightGraphics(s,r),i(()=>!this.destroyed&&this._removeHighlightGraphics(s,r))}_processHighlight(){const e=this._getHighlights();this._highlightView?.setHighlight(e)}_addHighlightGraphics(e,i){this._highlightGraphics.addMany(e),this._addHighlights(e.map(e=>e.uid),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlights(e.map(e=>e.uid),i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return o(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(H,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.size,this._updatingHandles.consumePromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:r=0}=i;try{return await this._fetchImage(e,t)}catch(h){if(s(h))throw h;if(!this.resampling)return m(this._tileInfoView.size);if(r<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const s=new f(t),h=await this._fetchTileWithoutTilemapCache(s,{...i,resamplingLevel:r+1});return u(this._tileInfoView,h,s,e)}}return m(this._tileInfoView.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:h,resamplingLevel:a=0}=i,o=new f(0,0,0,0);let l,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,o,{signal:h}),!this.resampling&&o.level!==e.level)return await r(i),m(this._tileInfoView.size);l=await this._fetchImage(o,h)}catch(n){if(s(n))throw n;if(this.resampling&&"unknown"===p&&a<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){o.set(t);try{l=await this._fetchTileWithTilemapCache(o,{...i,resamplingLevel:a+1})}catch{}}}}return l?this.resampling?u(this._tileInfoView,l,o,e):l:m(this._tileInfoView.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.size[0],e.bitmap.height=this._tileInfoView.size[1],e.once("attach",()=>this.requestUpdate()),e.once("isReady",()=>this.requestUpdate())}catch(i){s(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i}).then(({bitmap:e})=>e)}};e([h()],I.prototype,"resampling",null),e([h()],I.prototype,"tilemapCache",null),I=e([a("esri.views.2d.layers.TileLayerView2D")],I);const G=I;export{G as default};
2
+ import{__decorate as e}from"tslib";import{makeHandle as i}from"../../../core/handleUtils.js";import t from"../../../core/Logger.js";import{isAbortError as s,waitTick as r}from"../../../core/promiseUtils.js";import{property as h,subclass as a}from"../../../core/accessorSupport/decorators.js";import{equals as o}from"../../../geometry/support/spatialReferenceUtils.js";import{GraphicsCollection as l}from"../../../support/GraphicsCollection.js";import"../engine/Stage.js";import"../../../Color.js";import"../../../core/libs/gl-matrix-2/factories/vec4f32.js";import"../../../geometry/Point.js";import"../../../core/has.js";import"../../../chunks/pe.js";import"../../../core/units.js";import"../../../geometry/ellipsoidUtils.js";import"../../../core/RandomLCG.js";import"../../../core/Accessor.js";import"../engine/transitions/FadeTransition.js";import"../../webgl/BufferObject.js";import"../../webgl/FramebufferObject.js";import"../../webgl/Program.js";import"../../webgl/Renderbuffer.js";import"../../webgl/Texture.js";import"../../webgl/enums.js";import"../../webgl/Util.js";import"../engine/webgl/meshing/definitions.js";import"../engine/webgl/shaderGraph/techniques/shaders/VideoScreenShader.js";import"../LabelManager.js";import p from"./graphics/GraphicsView2D.js";import"../../../Viewpoint.js";import"../../../core/Collection.js";import"../../../core/mathUtils.js";import"../../../geometry/Extent.js";import"../../../geometry/Geometry.js";import"../../../geometry/Multipoint.js";import"../../../geometry/Polygon.js";import"../../../geometry/Polyline.js";import"../../../geometry/SpatialReference.js";import"../../../geometry/spatialReferenceEllipsoidUtils.js";import"../../../geometry/operators/support/GeographicTransformation.js";import"../../../geometry/projection/projectors.js";import"../../../geometry/support/normalizeUtils.js";import"../../../layers/effects/EffectView.js";import"../engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js";import"../engine/webgl/AFeatureTile.js";import"../engine/webgl/DisplayEntity.js";import"../../../core/libs/gl-matrix-2/factories/vec2f32.js";import"../engine/webgl/number.js";import"../engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js";import"../engine/webgl/cpuMapped/GpuMeshState.js";import"../engine/webgl/shaderGraph/techniques/shaders/Tile.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileDebugInfoShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileInfo.js";import"../engine/webgl/shaderGraph/techniques/shaders/ViewInfo.js";import"../engine/webgl/shaderGraph/techniques/shaders/TileStencilShader.js";import"../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import"../../../core/libs/gl-matrix-2/factories/vec3f32.js";import"./support/util.js";import"../navigation/MapViewNavigation.js";import"../../../request.js";import"../../../core/asyncUtils.js";import"../../../core/accessorSupport/watch.js";import"../../../core/accessorSupport/tracking/SimpleTrackingTarget.js";import"../../../core/support/UpdatingHandles.js";import"../../../core/urlUtils.js";import"../engine/webgl/shaderGraph/techniques/shaders/MagnifierShader.js";import"../engine/webgl/shaderGraph/techniques/shaders/GridShader.js";import"../../../geometry/support/geodesicConstants.js";import"../../../geometry/support/Ellipsoid.js";import{BitmapTileLayerView2D as n}from"./BitmapTileLayerView2D.js";import{LayerView2D as c}from"./LayerView2D.js";import g from"./graphics/HighlightGraphicContainer.js";import{createBlankImage as m,resampleImage as u}from"./support/imageUtils.js";import d from"../tiling/TileInfoView.js";import f from"../tiling/TileKey.js";import w from"../tiling/TileQueue.js";import y from"../tiling/TileStrategy.js";import j from"../../layers/LayerView.js";import{RefreshableLayerView as _}from"../../layers/RefreshableLayerView.js";import{getHighlightGraphics as T}from"../../layers/support/highlightUtils.js";import{isMapServiceLayerView as b,MapServiceLayerViewHelper as V}from"../../layers/support/MapServiceLayerViewHelper.js";import{createQueryGeometry as v}from"../../support/drapedUtils.js";import{getHighlightName as U}from"../../support/highlightOptionsUtils.js";import{TaskPriority as q}from"../../support/Scheduler.js";const H=[0,0];let I=class extends(_(n(c(j)))){constructor(){super(...arguments),this._fetchQueue=null,this._highlightGraphics=new l,this._highlightView=null,this._popupHighlightHelper=null,this._tileStrategy=null,this.layer=null}get resampling(){return!("resampling"in this.layer)||!1!==this.layer.resampling}get tilemapCache(){return"tilemapCache"in this.layer?this.layer.tilemapCache:null}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume(),this._highlightView?.processUpdate(e)}attach(){const e="tileServers"in this.layer?this.layer.tileServers:null,i=this.tilemapCache;if(this._tileInfoView=new d(this.layer.tileInfo,this.layer.fullExtent,i?.effectiveMinLOD,i?.effectiveMaxLOD),this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:e&&10*e.length||10,process:(e,i)=>this.fetchTile(e,i),scheduler:this.scheduler,priority:q.MAPVIEW_FETCH_QUEUE}),this._tileStrategy=new y({cachePolicy:"keep",resampling:this.resampling,acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),tileInfoView:this._tileInfoView}),b(this,this.layer)){const e=this._highlightView=new p({view:this.view,graphics:this._highlightGraphics,requestUpdateCallback:()=>this.requestUpdate(),container:new g(this.view.featuresTilingScheme),defaultPointSymbolEnabled:!1});this.container.addChild(this._highlightView.container),this._popupHighlightHelper=new V({createFetchPopupFeaturesQueryGeometry:(e,i)=>v(e,i,this.view),highlightGraphics:this._highlightGraphics,highlightGraphicUpdated:({graphic:i,property:t})=>e.graphicUpdateHandler({graphic:i,property:t}),layerView:this,updatingHandles:this._updatingHandles})}this.requestUpdate(),this.addAttachHandles(this._updatingHandles.add(()=>this.resampling,()=>{this.doRefresh()})),super.attach()}detach(){super.detach(),this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._popupHighlightHelper?.destroy(),this._highlightView?.destroy(),this._fetchQueue=this._tileStrategy=this._tileInfoView=this._popupHighlightHelper=null}async fetchPopupFeaturesAtTarget(e,i,t){return this._popupHighlightHelper?this._popupHighlightHelper.fetchPopupFeaturesAtTarget(i,t):[]}highlight(e,t){const s=T(e);if(0===s.length)return i();const r=U(t);return this._addHighlightGraphics(s,r),i(()=>!this.destroyed&&this._removeHighlightGraphics(s,r))}_processHighlight(){const e=this._getHighlights();this._highlightView?.setHighlight(e)}_addHighlightGraphics(e,i){this._highlightGraphics.addMany(e),this._addHighlights(e.map(e=>e.uid),i)}_removeHighlightGraphics(e,i){this._highlightGraphics.removeMany(e),this._removeHighlights(e.map(e=>e.uid),i)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(e){return o(this.layer.tileInfo?.spatialReference,e)}async doRefresh(){if(this.attached){if(this.suspended)return this._tileStrategy.clear(),void this.requestUpdate();this._fetchQueue.reset(),this._tileStrategy.refresh(e=>this._updatingHandles.addPromise(this._enqueueTileFetch(e)))}}acquireTile(e){const i=this._bitmapView.createTile(e),t=i.bitmap;return[t.x,t.y]=this._tileInfoView.getTileCoords(H,i.key),t.resolution=this._tileInfoView.getTileResolution(i.key),[t.width,t.height]=this._tileInfoView.size,this._updatingHandles.consumePromise(this._enqueueTileFetch(i)),this._bitmapView.addChild(i),this.requestUpdate(),i}releaseTile(e){this._fetchQueue.abort(e.key.id),this._bitmapView.removeChild(e),e.once("detach",()=>e.destroy()),this.requestUpdate()}async fetchTile(e,i={}){return this.tilemapCache?this._fetchTileWithTilemapCache(e,i):this._fetchTileWithoutTilemapCache(e,i)}async _fetchTileWithoutTilemapCache(e,i={}){const{signal:t,resamplingLevel:r=0}=i;try{return await this._fetchImage(e,t)}catch(h){if(s(h))throw h;if(!this.resampling)return m(this._tileInfoView.size);if(r<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){const s=new f(t),h=await this._fetchTileWithoutTilemapCache(s,{...i,resamplingLevel:r+1});return u(this._tileInfoView,h,s,e)}}return m(this._tileInfoView.size)}}async _fetchTileWithTilemapCache(e,i={}){const t=this.tilemapCache,{signal:h,resamplingLevel:a=0}=i,o=new f(0,0,0,0);let l,p=null;try{if(p=await t.fetchAvailabilityUpsample(e.level,e.row,e.col,o,{signal:h}),!this.resampling&&o.level!==e.level)return await r(i),m(this._tileInfoView.size);l=await this._fetchImage(o,h)}catch(n){if(s(n))throw n;if(this.resampling&&"unknown"===p&&a<3){const t=this._tileInfoView.getTileParentId(e.id);if(t){o.set(t);try{l=await this._fetchTileWithTilemapCache(o,{...i,resamplingLevel:a+1})}catch{}}}}return l?this.resampling?u(this._tileInfoView,l,o,e):l:m(this._tileInfoView.size)}async _enqueueTileFetch(e){if(!this._fetchQueue.has(e.key.id)){try{const i=await this._fetchQueue.push(e.key);e.bitmap.source=i,e.bitmap.width=this._tileInfoView.size[0],e.bitmap.height=this._tileInfoView.size[1],e.once("attach",()=>this.requestUpdate()),e.once("isReady",()=>this.requestUpdate())}catch(i){s(i)||t.getLogger(this).error(i)}this.requestUpdate()}}async _fetchImage(e,i){return this.layer.fetchImageBitmapTile(e.level,e.row,e.col,{signal:i}).then(({bitmap:e})=>e)}};e([h()],I.prototype,"resampling",null),e([h()],I.prototype,"tilemapCache",null),I=e([a("esri.views.2d.layers.TileLayerView2D")],I);const G=I;export{G as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as t}from"tslib";import e from"../../../../Graphic.js";import{pointToCoordinate as i}from"../../../../arcade/functions/measures.js";import o from"../../../../core/Accessor.js";import{isSome as r}from"../../../../core/arrayUtils.js";import{getContrast as s}from"../../../../core/colorUtils.js";import{debounce as a,throwIfNotAbortError as n}from"../../../../core/promiseUtils.js";import{initial as p}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as y}from"../../../../core/support/UpdatingHandles.js";import{execute as h}from"../../../../geometry/operators/distanceOperator.js";import{load as m,execute as d}from"../../../../geometry/operators/projectOperator.js";import{getNearestCoordinate as u}from"../../../../geometry/operators/proximityOperator.js";import{normalizeCentralMeridian as g}from"../../../../geometry/support/normalizeUtils.js";import f from"../../../../layers/GraphicsLayer.js";import w from"../../../../rest/support/Stop.js";import v from"../../../../symbols/SimpleLineSymbol.js";import _ from"../../../../symbols/SimpleMarkerSymbol.js";import{ViewEventPriorities as b}from"../../../input/InputManager.js";const j=Symbol(),L=20;let S=class extends o{constructor(t){super(t),this._graphicsLayer=new f({listMode:"hide",internal:!0}),this._updatingHandles=new y,this._debouncedHandleClick=a(async t=>{const e=this._graphicsLayer.graphics.at(0);if("point"!==e?.geometry?.type)return;t.stopPropagation();const i=new w({geometry:e.geometry.clone(),locationType:"waypoint",symbol:this.waypointSymbol.clone()}),o=await this._getWaypointIndex(i);this.interaction.layer.stops.add(i,o),this.interaction.layer.stops.forEach(t=>t.sequence=null),this.interaction.addNetworkFeature(i)}),this._debouncedHandlePointerMove=a(async t=>{if(!this.interaction.enabled||!this.interaction.interactiveOptions.waypointAdditionEnabled||this.interaction.sketchActive||this.interaction.layer.stops.length<2||!this.interaction.layer.routeInfo?.geometry)return void this._clearWaypointManipulator();const{spatialReference:i}=this.view;await m();const o=d(this.interaction.layer.routeInfo.geometry,i);if(!o)return void this._clearWaypointManipulator();const s=this.view.resolution*window.devicePixelRatio*L,a=this.view.toMap(t),n=(await g(a))[0],{coordinate:p,distance:c,isEmpty:l}=u(o,n);if(l||c>s)return void this._clearWaypointManipulator();if(this.interaction.layer.stops.map(({geometry:t})=>t).filter(r).map(t=>d(t,i)).filter(r).some(t=>h(t,p)<s))return void this._clearWaypointManipulator();this.addHandles(this.view.acquireCursor("pointer","high"),j);const y=this._graphicsLayer.graphics.at(0);if(y)return void(y.geometry=p);const{waypointSymbol:f}=this,w=new e({geometry:p,symbol:f});this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.add(w)})}initialize(){this.view.map?.add(this._graphicsLayer),this._updatingHandles.add(()=>({enabled:this.interaction.enabled,graphic:this._graphicsLayer.graphics.at(0),symbol:this.waypointSymbol}),({enabled:t,graphic:e,symbol:i})=>{t?e&&(e.symbol=i):this._clearWaypointManipulator()},p),this.addHandles([this.view.on("click",t=>this._debouncedHandleClick(t).catch(n),b.TOOL),this.view.on("pointer-move",t=>this._debouncedHandlePointerMove(t).catch(n),b.TOOL)])}destroy(){this._graphicsLayer.removeFromParent(),this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.destroy(),this._updatingHandles.destroy()}get updating(){return!this._graphicsLayer.loaded||this._updatingHandles.updating}get waypointSymbol(){const t=this.interaction.layer.defaultSymbols.stops?.waypoint;if(t)return t;const{accentColor:e}=this.view.effectiveTheme;return new _({color:e,outline:new v({color:s(e),width:1.5}),size:10})}_clearWaypointManipulator(){this._graphicsLayer.graphics.destroyAll(),this.removeHandles(j)}async _getWaypointIndex(t){const{routeInfo:e,stops:o}=this.interaction.layer;if(2===o.length||!e?.geometry||!t.geometry)return 1;const{spatialReference:r}=this.view;await m();const s=d(e.geometry,r),a=d(t.geometry,r);if(!s||!a)return 1;const n=i(s,a)?.distanceAlong;if(!n)return 1;for(let p=1;p<o.length;p++){const t=o.at(p)?.geometry;if(!t)continue;const e=d(t,r);if(!e)continue;const a=i(s,e)?.distanceAlong;if(null!=a&&a>n)return p}return o.length-1}};t([c()],S.prototype,"interaction",void 0),t([c()],S.prototype,"updating",null),t([c()],S.prototype,"waypointSymbol",null),t([c()],S.prototype,"view",void 0),S=t([l("esri.views.2d.layers.support.RouteLayerWaypointVisualization")],S);export{S as RouteLayerWaypointVisualization};
2
+ import{__decorate as t}from"tslib";import e from"../../../../Graphic.js";import{pointToCoordinate as i}from"../../../../arcade/functions/measures.js";import o from"../../../../core/Accessor.js";import{isSome as r}from"../../../../core/arrayUtils.js";import{getContrast as s}from"../../../../core/colorUtils.js";import{debounce as a,throwIfNotAbortError as n}from"../../../../core/promiseUtils.js";import{initial as p}from"../../../../core/reactiveUtils.js";import{property as c,subclass as l}from"../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as y}from"../../../../core/support/UpdatingHandles.js";import{distanceExecute as h}from"../../../../geometry/operators/distanceOperator.js";import{projectLoad as m,projectExecute as d}from"../../../../geometry/operators/projectOperator.js";import{proximityGetNearestCoordinate as u}from"../../../../geometry/operators/proximityOperator.js";import{normalizeCentralMeridian as g}from"../../../../geometry/support/normalizeUtils.js";import f from"../../../../layers/GraphicsLayer.js";import w from"../../../../rest/support/Stop.js";import v from"../../../../symbols/SimpleLineSymbol.js";import _ from"../../../../symbols/SimpleMarkerSymbol.js";import{ViewEventPriorities as b}from"../../../input/InputManager.js";const j=Symbol(),L=20;let S=class extends o{constructor(t){super(t),this._graphicsLayer=new f({listMode:"hide",internal:!0}),this._updatingHandles=new y,this._debouncedHandleClick=a(async t=>{const e=this._graphicsLayer.graphics.at(0);if("point"!==e?.geometry?.type)return;t.stopPropagation();const i=new w({geometry:e.geometry.clone(),locationType:"waypoint",symbol:this.waypointSymbol.clone()}),o=await this._getWaypointIndex(i);this.interaction.layer.stops.add(i,o),this.interaction.layer.stops.forEach(t=>t.sequence=null),this.interaction.addNetworkFeature(i)}),this._debouncedHandlePointerMove=a(async t=>{if(!this.interaction.enabled||!this.interaction.interactiveOptions.waypointAdditionEnabled||this.interaction.sketchActive||this.interaction.layer.stops.length<2||!this.interaction.layer.routeInfo?.geometry)return void this._clearWaypointManipulator();const{spatialReference:i}=this.view;await m();const o=d(this.interaction.layer.routeInfo.geometry,i);if(!o)return void this._clearWaypointManipulator();const s=this.view.resolution*window.devicePixelRatio*L,a=this.view.toMap(t),n=(await g(a))[0],{coordinate:p,distance:c,isEmpty:l}=u(o,n);if(l||c>s)return void this._clearWaypointManipulator();if(this.interaction.layer.stops.map(({geometry:t})=>t).filter(r).map(t=>d(t,i)).filter(r).some(t=>h(t,p)<s))return void this._clearWaypointManipulator();this.addHandles(this.view.acquireCursor("pointer","high"),j);const y=this._graphicsLayer.graphics.at(0);if(y)return void(y.geometry=p);const{waypointSymbol:f}=this,w=new e({geometry:p,symbol:f});this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.add(w)})}initialize(){this.view.map?.add(this._graphicsLayer),this._updatingHandles.add(()=>({enabled:this.interaction.enabled,graphic:this._graphicsLayer.graphics.at(0),symbol:this.waypointSymbol}),({enabled:t,graphic:e,symbol:i})=>{t?e&&(e.symbol=i):this._clearWaypointManipulator()},p),this.addHandles([this.view.on("click",t=>this._debouncedHandleClick(t).catch(n),b.TOOL),this.view.on("pointer-move",t=>this._debouncedHandlePointerMove(t).catch(n),b.TOOL)])}destroy(){this._graphicsLayer.removeFromParent(),this._graphicsLayer.graphics.destroyAll(),this._graphicsLayer.destroy(),this._updatingHandles.destroy()}get updating(){return!this._graphicsLayer.loaded||this._updatingHandles.updating}get waypointSymbol(){const t=this.interaction.layer.defaultSymbols.stops?.waypoint;if(t)return t;const{accentColor:e}=this.view.effectiveTheme;return new _({color:e,outline:new v({color:s(e),width:1.5}),size:10})}_clearWaypointManipulator(){this._graphicsLayer.graphics.destroyAll(),this.removeHandles(j)}async _getWaypointIndex(t){const{routeInfo:e,stops:o}=this.interaction.layer;if(2===o.length||!e?.geometry||!t.geometry)return 1;const{spatialReference:r}=this.view;await m();const s=d(e.geometry,r),a=d(t.geometry,r);if(!s||!a)return 1;const n=i(s,a)?.distanceAlong;if(!n)return 1;for(let p=1;p<o.length;p++){const t=o.at(p)?.geometry;if(!t)continue;const e=d(t,r);if(!e)continue;const a=i(s,e)?.distanceAlong;if(null!=a&&a>n)return p}return o.length-1}};t([c()],S.prototype,"interaction",void 0),t([c()],S.prototype,"updating",null),t([c()],S.prototype,"waypointSymbol",null),t([c()],S.prototype,"view",void 0),S=t([l("esri.views.2d.layers.support.RouteLayerWaypointVisualization")],S);export{S as RouteLayerWaypointVisualization};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{isSome as t,equals as i}from"../../../core/arrayUtils.js";import{createTask as s}from"../../../core/asyncUtils.js";import r from"../../../core/Error.js";import"../../../core/has.js";import n from"../../../core/Logger.js";import{abortMaybe as a,destroyMaybe as o}from"../../../core/maybe.js";import{after as l,throwIfAborted as u,isPromiseLike as c}from"../../../core/promiseUtils.js";import{watch as p,syncAndInitial as d}from"../../../core/reactiveUtils.js";import{createScreenPointArray as h,createRenderScreenPointArray as m}from"../../../core/screenUtils.js";import{convertTime as g,offsetDateUTC as y}from"../../../core/timeUtils.js";import{property as _,subclass as f}from"../../../core/accessorSupport/decorators.js";import{create as v}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as w}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{UpdatingHandles as D}from"../../../core/support/UpdatingHandles.js";import{projectAsync as C}from"../../../geometry/projectionUtils.js";import{execute as b}from"../../../geometry/operators/containsOperator.js";import{g as S}from"../../../chunks/boundedPlane.js";import{polygonToVolume as V}from"../focusAreaUtils.js";import T from"./AnalysisView3D.js";import{registerAnalysisView as U,hideOtherAnalysisViews as P}from"./ShadowCast/analysisViewRegister.js";import{ShadowCastTooltip as O}from"./ShadowCast/ShadowCastTooltip.js";import{ElevationContext as x}from"../layers/graphics/ElevationContext.js";import{longitudeToTimezone as j}from"../support/earthUtils.js";import{computeDirectionsOverTime as z}from"../support/sunUtils.js";import{maxColorRampSize as A}from"../webgl-engine/shaders/colorRampParameters.js";import{breadthFirstBinaryPartitioning as R}from"../../../widgets/support/traversalUtils.js";let L=class extends T{constructor(e){super(e),this.type="shadow-cast-view-3d",this.analysis=null,this._updatingHandles=new D,this._stopPreviewingTask=null,this._updatedRecently=!1,this._tooltip=null,this._previousVolume=null}initialize(){this.addHandles([U(this.view,this),p(()=>({dependencies:this._previewDependencies,sceneUpdating:this._sceneUpdating}),()=>{a(this._stopPreviewingTask),this._updatedRecently=!0,this._stopPreviewingTask=s(async e=>{await l(G,e),u(e),this._updatedRecently=!1})},{sync:!0,initial:!0,equals:(e,t)=>I(e.dependencies,t.dependencies)&&(e.sceneUpdating===t.sceneUpdating||!e.sceneUpdating)}),p(()=>({renderer:this._renderer,visible:this.visible}),({renderer:e,visible:t})=>{t&&P(this.view,this),e?.setParameters({shadowCast:{enabled:t}})},d),p(()=>({renderer:this._renderer,parameters:this._visualizationParameters,visible:this.visible}),({renderer:e,parameters:t,visible:i})=>{E(e,i,t)},d),p(()=>({renderer:this._renderer,lightDirections:this._lightDirections,lightDirectionsContext:this._lightDirectionsContext,visible:this.visible}),({renderer:e,lightDirections:t,lightDirectionsContext:i,visible:s})=>{E(e,s,{lightDirections:t,lightDirectionsContext:i})},d),p(()=>({renderer:this._renderer,previewing:this._previewing,visible:this.visible}),({renderer:e,previewing:t,visible:i})=>{E(e,i,{previewing:t})},{sync:!0,initial:!0,equals:()=>!1}),p(()=>({analysisVolume:this._analysisVolume,renderer:this._renderer,visible:this.visible}),({renderer:e,visible:t,analysisVolume:i})=>{E(e,t,{analysisVolume:i})},d)]),this.interactive=!0,this._tooltip=new O({getDuration:(e,t)=>this._getDurationAtScreen(e,t),getMode:()=>this.analysis.mode,getShowsSeparateZeroBucketInHourlyMode:()=>this._showsSeparateZeroBucketInHourlyMode,getTotalDuration:()=>this._totalDuration,getTotalDurationMode:()=>this.analysis.totalDurationOptions.mode,getVisualizeSunlight:()=>this.analysis.visualizeSunlight,isVisible:()=>this.interactive&&this.visible,view:this.view})}destroy(){this.visible&&E(this._renderer,!0,{enabled:!1}),this._tooltip=o(this._tooltip),this._stopPreviewingTask=a(this._stopPreviewingTask),this._updatingHandles=o(this._updatingHandles)}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get updating(){return this._previewing||null!=this._stopPreviewingTask&&!this._stopPreviewingTask.finished||!0===this._tooltip?.updating||this._updatingHandles.updating}get visible(){return super.visible}set visible(e){super.visible=e}get _previewing(){const e=this._updatedRecently,t=this._sceneUpdating;return e||t}get _sceneUpdating(){const{view:e}=this;if(null==e?.allLayerViews)return!0;const{stationary:t,navigating:i,interacting:s,graphicsView:r}=e,n=!t||i||s,a=this._shadowLayerViews.some(e=>e.updating);return n||a||!r?.suspended&&!!r?.updating}get _effectiveUtcOffset(){return this.analysis.utcOffset??this._utcOffsetAuto}get _utcOffsetAuto(){const e=this._referencePosition;return null!=e?j(e[0],!1):0}get _dateUTCOffset(){let e=this.analysis.date;return e=y(e,-e.getTimezoneOffset(),"minutes"),e=y(e,-this._effectiveUtcOffset,"hours"),e}get _startDateTimeUTC(){return y(this._dateUTCOffset,this.analysis.startTimeOfDay)}get _endDateTimeUTC(){return y(this._dateUTCOffset,this.analysis.endTimeOfDay)}get _referencePosition(){return this.view?.environmentManager?.referencePositionGeographic}get _totalDurationInterval(){return this._totalDuration>0?Math.floor(this._totalDuration/(Z-1)):Z}get _interval(){const e=this._totalDurationInterval;switch(this.analysis.mode){case"min-duration":return this._totalDuration>0?e:0;case"total-duration":return e;case"discrete":return this.analysis.discreteOptions.interval||e}}get _intervalContext(){const{mode:e,minDurationOptions:t}=this.analysis;return"min-duration"===e&&t.contextEnabled?t.contextOptions.interval||this._totalDurationInterval:-1}get _totalDurationSampleCount(){return this._lightDirections.length}get _totalDuration(){const{startTimeOfDay:e,endTimeOfDay:t}=this.analysis;return t-e}get _lightDirections(){return this._calculateLightDirections(this._interval)}get _lightDirectionsContext(){return this._calculateLightDirections(this._intervalContext)}_calculateLightDirections(e){const{view:t}=this;if(e<=0)return[];const i="global"===t.viewingMode?q:this._referencePosition;if(null==i)return[];const s=z(this._startDateTimeUTC,this._endDateTimeUTC,e,i,t.state.viewingMode,Z),r=s.length;F.length=0;const n=R(0,r,F),a=new Array(r);for(let o=0;o<r;++o)a[o]=s[n[o]];return a}get _analysisVolume(){const{geometry:e}=this.analysis;if(null==e)return this._previousVolume=null,null;try{const t=V(e,this.view,N);return null==t?(this._previousVolume=null,null):c(t)?(this._updatingHandles.consumePromise(t),this._previousVolume):(this._previousVolume=t,t)}catch(t){return n.getLogger(this).error(new r("shadowcastanalysisview3d:projection-failed","Failed to project analysis area geometry to view spatial reference",{geometry:e,error:t})),null}}get _visualizationParameters(){if(!this.visible)return null;switch(this.analysis.mode){case"min-duration":return this._minDurationVisualizationParameters;case"total-duration":return this._durationVisualizationParameters;case"discrete":return this._discreteVisualizationParameters}}get _minDurationVisualizationParameters(){const{color:e,minDuration:t}=this.analysis.minDurationOptions,i=this._totalDuration;return{rendersSunlight:this.analysis.visualizeSunlight,visualization:2,thresholdColor:e.toUnitRGBA(),threshold:i>0?t/this._totalDuration:0,...this._minDurationContextVisualizationParameters}}get _minDurationContextVisualizationParameters(){const{minDurationOptions:e,visualizeSunlight:t}=this.analysis;if(!e.contextEnabled||t)return{};const{color:i,colorStops:s}=e.contextOptions,r=1/this._lightDirectionsContext.length;return{visualization:3,gradientColorRamp:this._getEffectiveShadowCastColorRamp(i,s,r)}}get _durationVisualizationParameters(){const{color:e,colorStops:t,mode:i}=this.analysis.totalDurationOptions,s=this._totalDuration,r=s>0&&"hourly"===i?B/s:0,n=this._getEffectiveShadowCastColorRamp(e,t,1/s);return 0===r?{...this._discreteVisualizationParameters,gradientColorRamp:n}:{rendersSunlight:this.analysis.visualizeSunlight,bandedGradientColorRamp:n,visualization:1,bandSize:r}}get _showsSeparateZeroBucketInHourlyMode(){const{colorStops:e}=this.analysis.totalDurationOptions;if(null==e||0===e.length)return!0;return e.reduce((e,t)=>Math.min(e,t.value),1/0)<=0}get _discreteVisualizationParameters(){const{color:e,colorStops:t}=this.analysis.discreteOptions,i=1/this._lightDirections.length;return{rendersSunlight:this.analysis.visualizeSunlight,gradientColorRamp:this._getEffectiveShadowCastColorRamp(e,t,i),visualization:0}}get _shadowLayerViews(){return this.view.allLayerViews.items.filter(M)}get _previewDependencies(){const{view:e}=this,i=e.slice.plane,s=this._shadowLayerViews,r=s.map(e=>e.layer).filter(t),n=s.map(e=>e.suspended),a=r.map(e=>e.visible),o=r.map(e=>e.opacity),l=!!e.graphicsView?.suspended,u=r.filter(e=>"definitionExpression"in e).map(e=>e.definitionExpression),c=s.filter(e=>"filter"in e).map(e=>e.filter);return{slicePlane:i,startDateUTC:this._startDateTimeUTC,endDateUTC:this._endDateTimeUTC,layerViewSuspended:n,graphicsViewSuspended:l,layerVisibilities:a,layerOpacities:o,filters:c,definitionExpressions:u}}get _renderer(){return this.view?.stage?.renderer}get testData(){}async getDurationAtScreen(e){return this._getDurationAtScreen(e)}async _getDurationAtScreen(e,t){if(!await this._isScreenPointInAnalysisArea(e,t))return-1;const{_renderer:i,_totalDurationSampleCount:s}=this;if(null==i||0===s)return 0;const r=this.view.state.camera.screenToRender(h(e.x,e.y),m()),n=i.readAccumulatedShadow(r);return(this.analysis.visualizeSunlight?1-n:n)*this._totalDuration}async _isScreenPointInAnalysisArea(e,t){const{geometry:i}=this.analysis;if(!i)return!0;const s=await this.view.hitTest(e);u(t);const r=s.results.find(e=>e.mapPoint)?.mapPoint??s?.ground?.mapPoint;if(!r)return!1;const n=await C(r,i.spatialReference,{signal:t});return u(t),null!=n&&b(i,n)}_getEffectiveShadowCastColorRamp(e,t,i){if(null!=t){t.length>A&&n.getLogger(this).warnOnce("ShadowCastAnalysis supports at most 8 color stops");const e=t.map(e=>[e.value*i,e.color.toUnitRGBA()]);return e.sort(([e],[t])=>e-t),e}return H(e)}};e([_({readOnly:!0,type:["shadow-cast-view-3d"]})],L.prototype,"type",void 0),e([_({constructOnly:!0,nonNullable:!0})],L.prototype,"analysis",void 0),e([_({readOnly:!0})],L.prototype,"updating",null),e([_()],L.prototype,"_stopPreviewingTask",void 0),e([_()],L.prototype,"_updatedRecently",void 0),e([_()],L.prototype,"_tooltip",void 0),e([_()],L.prototype,"_sceneUpdating",null),e([_()],L.prototype,"_effectiveUtcOffset",null),e([_()],L.prototype,"_utcOffsetAuto",null),e([_()],L.prototype,"_dateUTCOffset",null),e([_()],L.prototype,"_startDateTimeUTC",null),e([_()],L.prototype,"_endDateTimeUTC",null),e([_()],L.prototype,"_referencePosition",null),e([_()],L.prototype,"_interval",null),e([_()],L.prototype,"_intervalContext",null),e([_()],L.prototype,"_totalDurationSampleCount",null),e([_()],L.prototype,"_totalDuration",null),e([_()],L.prototype,"_lightDirections",null),e([_()],L.prototype,"_lightDirectionsContext",null),e([_()],L.prototype,"_analysisVolume",null),e([_()],L.prototype,"_visualizationParameters",null),e([_()],L.prototype,"_minDurationVisualizationParameters",null),e([_()],L.prototype,"_minDurationContextVisualizationParameters",null),e([_()],L.prototype,"_durationVisualizationParameters",null),e([_()],L.prototype,"_showsSeparateZeroBucketInHourlyMode",null),e([_()],L.prototype,"_discreteVisualizationParameters",null),e([_()],L.prototype,"_shadowLayerViews",null),e([_()],L.prototype,"_previewDependencies",null),e([_()],L.prototype,"_renderer",null),L=e([f("esri.views.3d.analysis.ShadowCastAnalysisView3D")],L);const k=L;function E(e,t,i){t&&null!=i&&e?.setParameters({shadowCast:i})}function H(e){const t=e.toUnitRGBA();return[[0,w(t[0],t[1],t[2],0)],[1,t]]}function M(e){if(e.suspended)return!1;switch(e.type){case"building-scene-3d":case"csv-3d":case"elevation-3d":case"feature-3d":case"gaussian-splat-3d":case"geojson-3d":case"integrated-mesh-3d":case"integrated-mesh-3dtiles":case"ogc-feature-3d":case"route-3d":case"scene-layer-3d":case"scene-layer-graphics-3d":case"stream-3d":case"wms-3d":case"catalog-footprint-3d":return!0;case"base-dynamic-3d":case"catalog-3d":case"catalog-dynamic-group-3d":case"dimension-3d":case"imagery-3d":case"imagery-tile-3d":case"line-of-sight-3d":case"map-image-3d":case"point-cloud-3d":case"tile-3d":case"vector-tile-3d":case"viewshed-3d":case"voxel-3d":case"wfs-3d":case"wmts-3d":case"media-3d":case"group":default:return!1;case"graphics-3d":return e.layer.graphics.some(e=>{const{symbol:t}=e;return null==t||"text"!==t.type&&!("symbolLayers"in t)||"text"!==t.type&&t.symbolLayers.some(e=>"text"!==e.type)})}}function I(e,t){if(e===t)return!0;if(null==e&&null==t)return!0;if(null==e||null==t)return!1;const s=S(e.slicePlane,t.slicePlane),r=e.startDateUTC.valueOf()===t.startDateUTC.valueOf()&&e.endDateUTC.valueOf()===t.endDateUTC.valueOf(),n=i(e.layerViewSuspended,t.layerViewSuspended)&&e.graphicsViewSuspended===t.graphicsViewSuspended,a=i(e.layerVisibilities,t.layerVisibilities),o=i(e.layerOpacities,t.layerOpacities),l=i(e.filters,t.filters),u=i(e.definitionExpressions,t.definitionExpressions);return s&&r&&n&&a&&o&&l&&u}const B=g(1,"hours","milliseconds"),G=500,Z=255,q=v(),F=[],N=new x;export{k as default};
2
+ import{__decorate as e}from"tslib";import{isSome as t,equals as i}from"../../../core/arrayUtils.js";import{createTask as s}from"../../../core/asyncUtils.js";import r from"../../../core/Error.js";import"../../../core/has.js";import n from"../../../core/Logger.js";import{abortMaybe as a,destroyMaybe as o}from"../../../core/maybe.js";import{after as l,throwIfAborted as u,isPromiseLike as c}from"../../../core/promiseUtils.js";import{watch as p,syncAndInitial as d}from"../../../core/reactiveUtils.js";import{createScreenPointArray as h,createRenderScreenPointArray as m}from"../../../core/screenUtils.js";import{convertTime as g,offsetDateUTC as y}from"../../../core/timeUtils.js";import{property as _,subclass as f}from"../../../core/accessorSupport/decorators.js";import{create as v}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{fromValues as w}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{UpdatingHandles as D}from"../../../core/support/UpdatingHandles.js";import{projectAsync as C}from"../../../geometry/projectionUtils.js";import{containsExecute as b}from"../../../geometry/operators/containsOperator.js";import{g as S}from"../../../chunks/boundedPlane.js";import{polygonToVolume as V}from"../focusAreaUtils.js";import T from"./AnalysisView3D.js";import{registerAnalysisView as U,hideOtherAnalysisViews as P}from"./ShadowCast/analysisViewRegister.js";import{ShadowCastTooltip as O}from"./ShadowCast/ShadowCastTooltip.js";import{ElevationContext as x}from"../layers/graphics/ElevationContext.js";import{longitudeToTimezone as j}from"../support/earthUtils.js";import{computeDirectionsOverTime as z}from"../support/sunUtils.js";import{maxColorRampSize as A}from"../webgl-engine/shaders/colorRampParameters.js";import{breadthFirstBinaryPartitioning as R}from"../../../widgets/support/traversalUtils.js";let L=class extends T{constructor(e){super(e),this.type="shadow-cast-view-3d",this.analysis=null,this._updatingHandles=new D,this._stopPreviewingTask=null,this._updatedRecently=!1,this._tooltip=null,this._previousVolume=null}initialize(){this.addHandles([U(this.view,this),p(()=>({dependencies:this._previewDependencies,sceneUpdating:this._sceneUpdating}),()=>{a(this._stopPreviewingTask),this._updatedRecently=!0,this._stopPreviewingTask=s(async e=>{await l(G,e),u(e),this._updatedRecently=!1})},{sync:!0,initial:!0,equals:(e,t)=>I(e.dependencies,t.dependencies)&&(e.sceneUpdating===t.sceneUpdating||!e.sceneUpdating)}),p(()=>({renderer:this._renderer,visible:this.visible}),({renderer:e,visible:t})=>{t&&P(this.view,this),e?.setParameters({shadowCast:{enabled:t}})},d),p(()=>({renderer:this._renderer,parameters:this._visualizationParameters,visible:this.visible}),({renderer:e,parameters:t,visible:i})=>{E(e,i,t)},d),p(()=>({renderer:this._renderer,lightDirections:this._lightDirections,lightDirectionsContext:this._lightDirectionsContext,visible:this.visible}),({renderer:e,lightDirections:t,lightDirectionsContext:i,visible:s})=>{E(e,s,{lightDirections:t,lightDirectionsContext:i})},d),p(()=>({renderer:this._renderer,previewing:this._previewing,visible:this.visible}),({renderer:e,previewing:t,visible:i})=>{E(e,i,{previewing:t})},{sync:!0,initial:!0,equals:()=>!1}),p(()=>({analysisVolume:this._analysisVolume,renderer:this._renderer,visible:this.visible}),({renderer:e,visible:t,analysisVolume:i})=>{E(e,t,{analysisVolume:i})},d)]),this.interactive=!0,this._tooltip=new O({getDuration:(e,t)=>this._getDurationAtScreen(e,t),getMode:()=>this.analysis.mode,getShowsSeparateZeroBucketInHourlyMode:()=>this._showsSeparateZeroBucketInHourlyMode,getTotalDuration:()=>this._totalDuration,getTotalDurationMode:()=>this.analysis.totalDurationOptions.mode,getVisualizeSunlight:()=>this.analysis.visualizeSunlight,isVisible:()=>this.interactive&&this.visible,view:this.view})}destroy(){this.visible&&E(this._renderer,!0,{enabled:!1}),this._tooltip=o(this._tooltip),this._stopPreviewingTask=a(this._stopPreviewingTask),this._updatingHandles=o(this._updatingHandles)}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get updating(){return this._previewing||null!=this._stopPreviewingTask&&!this._stopPreviewingTask.finished||!0===this._tooltip?.updating||this._updatingHandles.updating}get visible(){return super.visible}set visible(e){super.visible=e}get _previewing(){const e=this._updatedRecently,t=this._sceneUpdating;return e||t}get _sceneUpdating(){const{view:e}=this;if(null==e?.allLayerViews)return!0;const{stationary:t,navigating:i,interacting:s,graphicsView:r}=e,n=!t||i||s,a=this._shadowLayerViews.some(e=>e.updating);return n||a||!r?.suspended&&!!r?.updating}get _effectiveUtcOffset(){return this.analysis.utcOffset??this._utcOffsetAuto}get _utcOffsetAuto(){const e=this._referencePosition;return null!=e?j(e[0],!1):0}get _dateUTCOffset(){let e=this.analysis.date;return e=y(e,-e.getTimezoneOffset(),"minutes"),e=y(e,-this._effectiveUtcOffset,"hours"),e}get _startDateTimeUTC(){return y(this._dateUTCOffset,this.analysis.startTimeOfDay)}get _endDateTimeUTC(){return y(this._dateUTCOffset,this.analysis.endTimeOfDay)}get _referencePosition(){return this.view?.environmentManager?.referencePositionGeographic}get _totalDurationInterval(){return this._totalDuration>0?Math.floor(this._totalDuration/(Z-1)):Z}get _interval(){const e=this._totalDurationInterval;switch(this.analysis.mode){case"min-duration":return this._totalDuration>0?e:0;case"total-duration":return e;case"discrete":return this.analysis.discreteOptions.interval||e}}get _intervalContext(){const{mode:e,minDurationOptions:t}=this.analysis;return"min-duration"===e&&t.contextEnabled?t.contextOptions.interval||this._totalDurationInterval:-1}get _totalDurationSampleCount(){return this._lightDirections.length}get _totalDuration(){const{startTimeOfDay:e,endTimeOfDay:t}=this.analysis;return t-e}get _lightDirections(){return this._calculateLightDirections(this._interval)}get _lightDirectionsContext(){return this._calculateLightDirections(this._intervalContext)}_calculateLightDirections(e){const{view:t}=this;if(e<=0)return[];const i="global"===t.viewingMode?q:this._referencePosition;if(null==i)return[];const s=z(this._startDateTimeUTC,this._endDateTimeUTC,e,i,t.state.viewingMode,Z),r=s.length;F.length=0;const n=R(0,r,F),a=new Array(r);for(let o=0;o<r;++o)a[o]=s[n[o]];return a}get _analysisVolume(){const{geometry:e}=this.analysis;if(null==e)return this._previousVolume=null,null;try{const t=V(e,this.view,N);return null==t?(this._previousVolume=null,null):c(t)?(this._updatingHandles.consumePromise(t),this._previousVolume):(this._previousVolume=t,t)}catch(t){return n.getLogger(this).error(new r("shadowcastanalysisview3d:projection-failed","Failed to project analysis area geometry to view spatial reference",{geometry:e,error:t})),null}}get _visualizationParameters(){if(!this.visible)return null;switch(this.analysis.mode){case"min-duration":return this._minDurationVisualizationParameters;case"total-duration":return this._durationVisualizationParameters;case"discrete":return this._discreteVisualizationParameters}}get _minDurationVisualizationParameters(){const{color:e,minDuration:t}=this.analysis.minDurationOptions,i=this._totalDuration;return{rendersSunlight:this.analysis.visualizeSunlight,visualization:2,thresholdColor:e.toUnitRGBA(),threshold:i>0?t/this._totalDuration:0,...this._minDurationContextVisualizationParameters}}get _minDurationContextVisualizationParameters(){const{minDurationOptions:e,visualizeSunlight:t}=this.analysis;if(!e.contextEnabled||t)return{};const{color:i,colorStops:s}=e.contextOptions,r=1/this._lightDirectionsContext.length;return{visualization:3,gradientColorRamp:this._getEffectiveShadowCastColorRamp(i,s,r)}}get _durationVisualizationParameters(){const{color:e,colorStops:t,mode:i}=this.analysis.totalDurationOptions,s=this._totalDuration,r=s>0&&"hourly"===i?B/s:0,n=this._getEffectiveShadowCastColorRamp(e,t,1/s);return 0===r?{...this._discreteVisualizationParameters,gradientColorRamp:n}:{rendersSunlight:this.analysis.visualizeSunlight,bandedGradientColorRamp:n,visualization:1,bandSize:r}}get _showsSeparateZeroBucketInHourlyMode(){const{colorStops:e}=this.analysis.totalDurationOptions;if(null==e||0===e.length)return!0;return e.reduce((e,t)=>Math.min(e,t.value),1/0)<=0}get _discreteVisualizationParameters(){const{color:e,colorStops:t}=this.analysis.discreteOptions,i=1/this._lightDirections.length;return{rendersSunlight:this.analysis.visualizeSunlight,gradientColorRamp:this._getEffectiveShadowCastColorRamp(e,t,i),visualization:0}}get _shadowLayerViews(){return this.view.allLayerViews.items.filter(M)}get _previewDependencies(){const{view:e}=this,i=e.slice.plane,s=this._shadowLayerViews,r=s.map(e=>e.layer).filter(t),n=s.map(e=>e.suspended),a=r.map(e=>e.visible),o=r.map(e=>e.opacity),l=!!e.graphicsView?.suspended,u=r.filter(e=>"definitionExpression"in e).map(e=>e.definitionExpression),c=s.filter(e=>"filter"in e).map(e=>e.filter);return{slicePlane:i,startDateUTC:this._startDateTimeUTC,endDateUTC:this._endDateTimeUTC,layerViewSuspended:n,graphicsViewSuspended:l,layerVisibilities:a,layerOpacities:o,filters:c,definitionExpressions:u}}get _renderer(){return this.view?.stage?.renderer}get testData(){}async getDurationAtScreen(e){return this._getDurationAtScreen(e)}async _getDurationAtScreen(e,t){if(!await this._isScreenPointInAnalysisArea(e,t))return-1;const{_renderer:i,_totalDurationSampleCount:s}=this;if(null==i||0===s)return 0;const r=this.view.state.camera.screenToRender(h(e.x,e.y),m()),n=i.readAccumulatedShadow(r);return(this.analysis.visualizeSunlight?1-n:n)*this._totalDuration}async _isScreenPointInAnalysisArea(e,t){const{geometry:i}=this.analysis;if(!i)return!0;const s=await this.view.hitTest(e);u(t);const r=s.results.find(e=>e.mapPoint)?.mapPoint??s?.ground?.mapPoint;if(!r)return!1;const n=await C(r,i.spatialReference,{signal:t});return u(t),null!=n&&b(i,n)}_getEffectiveShadowCastColorRamp(e,t,i){if(null!=t){t.length>A&&n.getLogger(this).warnOnce("ShadowCastAnalysis supports at most 8 color stops");const e=t.map(e=>[e.value*i,e.color.toUnitRGBA()]);return e.sort(([e],[t])=>e-t),e}return H(e)}};e([_({readOnly:!0,type:["shadow-cast-view-3d"]})],L.prototype,"type",void 0),e([_({constructOnly:!0,nonNullable:!0})],L.prototype,"analysis",void 0),e([_({readOnly:!0})],L.prototype,"updating",null),e([_()],L.prototype,"_stopPreviewingTask",void 0),e([_()],L.prototype,"_updatedRecently",void 0),e([_()],L.prototype,"_tooltip",void 0),e([_()],L.prototype,"_sceneUpdating",null),e([_()],L.prototype,"_effectiveUtcOffset",null),e([_()],L.prototype,"_utcOffsetAuto",null),e([_()],L.prototype,"_dateUTCOffset",null),e([_()],L.prototype,"_startDateTimeUTC",null),e([_()],L.prototype,"_endDateTimeUTC",null),e([_()],L.prototype,"_referencePosition",null),e([_()],L.prototype,"_interval",null),e([_()],L.prototype,"_intervalContext",null),e([_()],L.prototype,"_totalDurationSampleCount",null),e([_()],L.prototype,"_totalDuration",null),e([_()],L.prototype,"_lightDirections",null),e([_()],L.prototype,"_lightDirectionsContext",null),e([_()],L.prototype,"_analysisVolume",null),e([_()],L.prototype,"_visualizationParameters",null),e([_()],L.prototype,"_minDurationVisualizationParameters",null),e([_()],L.prototype,"_minDurationContextVisualizationParameters",null),e([_()],L.prototype,"_durationVisualizationParameters",null),e([_()],L.prototype,"_showsSeparateZeroBucketInHourlyMode",null),e([_()],L.prototype,"_discreteVisualizationParameters",null),e([_()],L.prototype,"_shadowLayerViews",null),e([_()],L.prototype,"_previewDependencies",null),e([_()],L.prototype,"_renderer",null),L=e([f("esri.views.3d.analysis.ShadowCastAnalysisView3D")],L);const k=L;function E(e,t,i){t&&null!=i&&e?.setParameters({shadowCast:i})}function H(e){const t=e.toUnitRGBA();return[[0,w(t[0],t[1],t[2],0)],[1,t]]}function M(e){if(e.suspended)return!1;switch(e.type){case"building-scene-3d":case"csv-3d":case"elevation-3d":case"feature-3d":case"gaussian-splat-3d":case"geojson-3d":case"integrated-mesh-3d":case"integrated-mesh-3dtiles":case"ogc-feature-3d":case"route-3d":case"scene-layer-3d":case"scene-layer-graphics-3d":case"stream-3d":case"wms-3d":case"catalog-footprint-3d":return!0;case"base-dynamic-3d":case"catalog-3d":case"catalog-dynamic-group-3d":case"dimension-3d":case"imagery-3d":case"imagery-tile-3d":case"line-of-sight-3d":case"map-image-3d":case"point-cloud-3d":case"tile-3d":case"vector-tile-3d":case"viewshed-3d":case"voxel-3d":case"wfs-3d":case"wmts-3d":case"media-3d":case"group":default:return!1;case"graphics-3d":return e.layer.graphics.some(e=>{const{symbol:t}=e;return null==t||"text"!==t.type&&!("symbolLayers"in t)||"text"!==t.type&&t.symbolLayers.some(e=>"text"!==e.type)})}}function I(e,t){if(e===t)return!0;if(null==e&&null==t)return!0;if(null==e||null==t)return!1;const s=S(e.slicePlane,t.slicePlane),r=e.startDateUTC.valueOf()===t.startDateUTC.valueOf()&&e.endDateUTC.valueOf()===t.endDateUTC.valueOf(),n=i(e.layerViewSuspended,t.layerViewSuspended)&&e.graphicsViewSuspended===t.graphicsViewSuspended,a=i(e.layerVisibilities,t.layerVisibilities),o=i(e.layerOpacities,t.layerOpacities),l=i(e.filters,t.filters),u=i(e.definitionExpressions,t.definitionExpressions);return s&&r&&n&&a&&o&&l&&u}const B=g(1,"hours","milliseconds"),G=500,Z=255,q=v(),F=[],N=new x;export{k as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{volumeMeasurementConfiguration as t}from"../../../../analysis/VolumeMeasurement/volumeMeasurementConfiguration.js";import r from"../../../../core/Accessor.js";import o from"../../../../core/Logger.js";import{debounce as i,isPromiseLike as n}from"../../../../core/promiseUtils.js";import{createVolume as s}from"../../../../core/quantity.js";import a from"../../../../core/ReactiveMap.js";import{whenOnce as l}from"../../../../core/reactiveUtils.js";import{property as p,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{runUntracked as m}from"../../../../core/accessorSupport/tracking.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{setAxes as h}from"../../../../core/libs/gl-matrix-2/math/quat.js";import{create as d}from"../../../../core/libs/gl-matrix-2/factories/quatf64.js";import{sqrDist as f}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{scaleAndAdd as y,scale as _,set as v,negate as w}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as b,fromValues as j,clone as E}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as x}from"../../../../core/support/UpdatingHandles.js";import R from"../../../../geometry/Multipoint.js";import{projectOrLoad as C}from"../../../../geometry/projectionUtils.js";import{execute as L}from"../../../../geometry/operators/containsOperator.js";import{execute as O}from"../../../../geometry/operators/convexHullOperator.js";import{execute as T}from"../../../../geometry/operators/simplifyOperator.js";import{executeMany as V}from"../../../../geometry/operators/unionOperator.js";import{computeTranslationToOriginAndRotation as G}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBoundingRect as H}from"../../../../geometry/projection/projectBoundingRect.js";import{empty as M,create as D,fromExtent as I,intersects as P}from"../../../../geometry/support/aaBoundingRect.js";import{vectorCoordinates as U}from"../../../../geometry/support/coordinateSystem.js";import{isClockwise as S}from"../../../../geometry/support/coordsUtils.js";import{newDoubleArray as A}from"../../../../geometry/support/DoubleArray.js";import{t as B}from"../../../../chunks/vec3.js";import F from"../../../../symbols/support/ElevationInfo.js";import{logFailedGeometryProjectionError as k}from"../support/projectionUtils.js";import{VolumeMeasurementCutFillComputation as W}from"./VolumeMeasurementCutFillComputation.js";import{VolumeMeasurementInsufficientDataError as z,VolumeMeasurementPerimeterTooLargeError as q,VolumeMeasurementUnsupportedCoordinateSystemError as N,VolumeMeasurementUnsupportedLayerTransparencyError as Z}from"./volumeMeasurementErrors.js";import{VolumeMeasurementRawResult as J}from"./VolumeMeasurementRawResult.js";import K from"./VolumeMeasurementResult.js";import{ElevationContext as Q}from"../../layers/graphics/ElevationContext.js";import{getElevationAtPoint as X}from"../../support/ElevationProvider.js";import{Obb as Y}from"../../support/orientedBoundingBox.js";import{polygonToRenderInfoElevationAligned as $}from"../../support/renderInfoUtils/polygon.js";import{IteratorPreorder as ee}from"../../terrain/tileUtils.js";import{CutFillComputation as te,TargetGeometryRenderInfo as re}from"../../webgl-engine/lib/CutFillComputation.js";import{GeometryWorkerHandle as oe}from"../../../support/GeometryWorkerHandle.js";import{isIntegratedMeshLayerView as ie}from"../../../support/layerViewUtils.js";let ne=class extends r{constructor(e){super(e),this._measurementWorkerHandle=new oe,this.depthExtremaPositions=null,this.analysisObb=null,this._updatingHandles=new x,this._rawResult=null,this._sufficientDataCoverage=!0,this._tileIterator=new ee,this._intersectingObbsByLayerView=new a,this._intersectingTiles=[],this._debouncedUpdate=i(async(e,t,r,o)=>{if(!this._computation.done)return;const{renderCoordsHelper:i}=this.view,n=new W({extent:t,localOrigin:r,renderCoordsHelper:i});this._computation.update(n,o),this._determineDataCoverage(n,e);const[s]=await Promise.allSettled([this._measurementWorkerHandle.areaHorizontal(e,{returnLength:!0}),l(()=>this._computation.done).then(()=>{this._updateDepthExtremaPositions(n,this._computation.result)})]);if(this.error)return void(this._rawResult=null);const a=this._computation.result;this._updateResult(n,a,"fulfilled"===s.status?s.value:null)}),this._determineDataCoverage=(e,t)=>{const{frustum:r}=this._computation,{cameraDimensions:o}=e;t.extent&&r&&(this._intersectingObbsByLayerView.clear(),this._imLayerViewsAffectingMeasurement.forEach(e=>{this._findIntersectingObbs(e,r)}),this._intersectingObbsByLayerView.size>0?this._sufficientDataCoverage=this._sufficientIntegratedMeshCoverage(t,o):(this._findIntersectingTerrainTiles(t.extent),this._sufficientDataCoverage=this._sufficientTerrainCoverage(o)))}}initialize(){const e=this.view;this._computation=new te({view:e}),this.addHandles([this._createElevationUpdateHandle(),this._updatingHandles.add(()=>({localOrigin:this._localOrigin,targetGeometryRenderInfo:this._targetGeometryRenderInfo}),({localOrigin:e,targetGeometryRenderInfo:t})=>{const r=this._projectedGeometry,o=r?.extent;if(!(r&&o&&e&&t))return this._rawResult=null,this.depthExtremaPositions=null,this.analysisObb=null,void(this._sufficientDataCoverage=!0);this._updatingHandles.consumePromise(this._debouncedUpdate(r,o,e,t))})])}destroy(){this._updatingHandles.destroy(),this._computation.destroy(),this._measurementWorkerHandle.destroy()}get _projectedGeometry(){const e=this.analysis.geometry;if(!e||!this.analysis.valid)return null;const t=T(e),r=C(t,this.view.spatialReference);return r.pending?(this._updatingHandles.consumePromise(r.pending),null):(t&&!r.geometry&&k(this.analysis,e.spatialReference,o.getLogger(this)),r.geometry)}get _localOrigin(){const e=this._projectedGeometry?.extent;return e?j(e.center.x,e.center.y,0):null}get elevationAlignedGeometry(){const e=this._projectedGeometry;return e?m(()=>{const t=e.clone();return se(this.view.elevationProvider,t),t}):null}get targetGeometry(){const{elevationAlignedGeometry:e}=this;if(!e)return null;const t=this.analysis.measureType,{effectiveTargetElevation:r}=this.viewData;if("stockpile"===t||null==r)return e;const o=e.clone();return o.rings.forEach(e=>e.forEach(e=>e[2]=r)),o}get _targetGeometryRenderInfo(){const e=this.targetGeometry,t=this._localOrigin;if(!e||!t)return null;const{elevationProvider:r,renderCoordsHelper:o}=this.view,i=$(e,r,o,Q.fromElevationInfo(new F({mode:"absolute-height"})));if(n(i))return this._updatingHandles.consumePromise(i),null;if(null==i)return null;const{positions:s,polygonIndices:a,vertexCount:l}=i,p=A(3*l),u=c(),m=c();return G(e.spatialReference,t,u,o.spatialReference),m[12]=-u[12],m[13]=-u[13],m[14]=-u[14],B(p,s,m),new re(p,a)}get updating(){return this._computation.updating||this._updatingHandles.updating}get result(){const e=this._rawResult,{volume:t,area:r,length:o}=this.viewData.effectiveDisplayUnits;return e&&!this.error?new K({measureType:this.analysis.measureType,rawResult:e,volumeUnit:t,areaUnit:r,lengthUnit:o}):null}get error(){return this._unsupportedCoordinateSystemError??this._unsupportedLayerTransparencyError??this._perimeterTooLargeError??this._insufficientDataError}get _imLayerViewsAffectingMeasurement(){return this.view.allLayerViews.filter(e=>ie(e)).filter(e=>e.visible&&!e.suspended)}get _insufficientDataError(){return this._sufficientDataCoverage?null:new z}get _perimeterTooLargeError(){return this._perimeterTooLargeLocalError??this._perimeterTooLargeGlobalError}get _perimeterTooLargeLocalError(){const{spatialReference:e,state:{isLocal:r}}=this.view;if(!r||!e.isWebMercator)return null;const o=this._perimeterForError,{maxPerimeterLocalWebMercator:i}=t;return null!=o&&o>i?new q:null}get _perimeterTooLargeGlobalError(){if(!this.view.state.isGlobal)return null;const e=this._perimeterForError,{maxPerimeterGlobal:r}=t;return null!=e&&e>r?new q:null}get _unsupportedCoordinateSystemError(){return this.view.state.isLocal&&this.view.spatialReference.isGeographic?new N:null}get _unsupportedLayerTransparencyError(){const e=this.view.map.ground&&this.view.map.ground.opacity<1,t=this._intersectingObbsByLayerView.size>0;return this._intersectingObbsByLayerView.keys().some(e=>e.fullOpacity<1)||e&&!t?new Z:null}get _perimeterForError(){const e=this._projectedGeometry;if(null==e)return null;let t=null;for(const r of e.rings){if(!S(r))continue;const e=pe(ue(r));t=e?Math.max(t??0,e):t}return null!=t?t*e.spatialReference.metersPerUnit:null}_createElevationUpdateHandle(){const e=e=>{const t=this._projectedGeometry?.extent;"ground"===e.context&&t&&(H(e.extent,e.spatialReference,ce,this.view.spatialReference),I(t,he),P(ce,he)&&this.notifyChange("elevationAlignedGeometry"))};return this.view.elevationProvider.on("elevation-change",t=>e(t))}_updateResult(e,t,r){if(!t)return;const{unitInMeters:o}=this.view.renderCoordsHelper,{dimensions:{width:i,height:n},cameraNearFar:{near:a,far:l}}=e,p=i/t.width*(n/t.height),u=ae(t.cut.totalDepth,a,l)*p,m=ae(t.fill.totalDepth,a,l)*p,c=o**3;this._rawResult=new J({cutVolume:s(Math.abs(u*c),"cubic-meters"),fillVolume:s(m*c,"cubic-meters"),area:r?.area,perimeter:r?.length})}_updateDepthExtremaPositions(e,t){if(!t)return;const{dimensions:{width:r,height:o},cameraNearFar:{near:i,far:n},cameraPositionRenderSpace:s,northVector:a,eastVector:l,upVector:p}=e,u=e=>{const{depthExtremum:u,depthExtremumCoords:[m,c],totalDepth:h}=e,d=E(s);return 0!==h&&(y(d,d,l,r*(m/t.width-.5)),y(d,d,a,o*(c/t.height-.5))),y(d,d,p,-ae(u,i,n)),d},m={cut:u(t.cut),fill:u(t.fill)};this.depthExtremaPositions=m,this.analysisObb=le(e,m)}_findIntersectingObbs(e,t){const r=[];"integrated-mesh-3d"===e.type&&e.getVisibleNodes().forEach(o=>{e.isNodeLoaded(o.index)&&o.geometryObbInRenderSR?.intersectsFrustum(t)&&r.push(o.geometryObbInRenderSR)}),"integrated-mesh-3dtiles"===e.type&&e.forEachVisibleComponentObject(({obb:e})=>{e.intersectsFrustum(t)&&r.push(e)}),r.length>0&&this._intersectingObbsByLayerView.set(e,r)}_sufficientIntegratedMeshCoverage(e,t){const{renderCoordsHelper:r,spatialReference:o}=this.view,i=[],n=new R({spatialReference:o});if(this._intersectingObbsByLayerView.forEach(e=>{e.forEach(e=>{if(me(e.radius,t)&&(e.getCorners(be),n.points.length=0,be.forEach(e=>{const t=r.fromRenderCoords(e,je,o);t&&n.addPoint([t[0],t[1]])}),n.points.length)){const e=O(n);"polygon"===e?.type&&i.push(e)}})}),!i.length)return!1;const s=V(i);return!!s&&L(s,e)}_findIntersectingTerrainTiles(e){const{basemapTerrain:t}=this.view;this._intersectingTiles.length=0,I(e,de);const r=this._tileIterator;r.reset(t.rootTiles);for(let o=r.next();o;o=r.next())o.intersectsExtent(de)?o.rendered&&this._intersectingTiles.push(o):r.skipSubtree()}_sufficientTerrainCoverage(e){const{basemapTerrain:{tilingScheme:t}}=this.view;if(!this._intersectingTiles.length)return!1;const r=256/t.pixelSize;return this._intersectingTiles.every(t=>me(t.radius*r,e))}};function se(e,t){t.hasZ=!0,t.rings.forEach(t=>t.forEach(t=>t[2]=X(e,t,"ground")??0))}function ae(e,t,r){return e*(r-t)+t}function le(e,t){const{boundingRect:r,eastVector:o,northVector:i,upVector:n}=e;U(t.cut,o,i,n,fe),U(t.fill,o,i,n,ge);const s=.5*(r[0]+r[2]),a=.5*(r[1]+r[3]),l=Math.min(fe[2],ge[2]),p=Math.max(fe[2],ge[2]),u=.5*(l+p);return _(ye,o,s),y(ye,ye,i,a),y(ye,ye,n,u),v(_e,.5*(r[2]-r[0]),.5*(r[3]-r[1]),.5*(p-l)),w(ve,n),new Y(ye,_e,h(we,ve,o,i))}function pe(e){if(!e)return null;let t=null,r=null,o=0;for(const i of e)t||(t=[i[0],i[1]]),r?o+=f(r,i):r=[0,0],r[0]=i[0],r[1]=i[1];return t&&r&&(o+=f(r,t)),Math.sqrt(o)}function*ue(e){const t=g();for(let r=0;r<e.length;r++)t[0]=e[r][0],t[1]=e[r][1],yield t}e([p()],ne.prototype,"_projectedGeometry",null),e([p()],ne.prototype,"_localOrigin",null),e([p()],ne.prototype,"elevationAlignedGeometry",null),e([p()],ne.prototype,"targetGeometry",null),e([p()],ne.prototype,"_targetGeometryRenderInfo",null),e([p({constructOnly:!0})],ne.prototype,"analysis",void 0),e([p({constructOnly:!0})],ne.prototype,"viewData",void 0),e([p({constructOnly:!0})],ne.prototype,"view",void 0),e([p()],ne.prototype,"updating",null),e([p()],ne.prototype,"result",null),e([p()],ne.prototype,"depthExtremaPositions",void 0),e([p()],ne.prototype,"analysisObb",void 0),e([p()],ne.prototype,"error",null),e([p()],ne.prototype,"_imLayerViewsAffectingMeasurement",null),e([p()],ne.prototype,"_insufficientDataError",null),e([p()],ne.prototype,"_perimeterTooLargeError",null),e([p()],ne.prototype,"_perimeterTooLargeLocalError",null),e([p()],ne.prototype,"_perimeterTooLargeGlobalError",null),e([p()],ne.prototype,"_unsupportedCoordinateSystemError",null),e([p()],ne.prototype,"_unsupportedLayerTransparencyError",null),e([p()],ne.prototype,"_perimeterForError",null),e([p()],ne.prototype,"_computation",void 0),e([p({readOnly:!0})],ne.prototype,"_updatingHandles",void 0),e([p()],ne.prototype,"_rawResult",void 0),e([p()],ne.prototype,"_sufficientDataCoverage",void 0),ne=e([u("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementController")],ne);const me=(e,t)=>e<(t.width+t.height)/2,ce=M(),he=M(),de=D(),fe=b(),ge=b(),ye=b(),_e=b(),ve=b(),we=d(),be=new Array(8).fill(0).map(()=>b()),je=b();export{ne as VolumeMeasurementController};
2
+ import{__decorate as e}from"tslib";import{volumeMeasurementConfiguration as t}from"../../../../analysis/VolumeMeasurement/volumeMeasurementConfiguration.js";import r from"../../../../core/Accessor.js";import o from"../../../../core/Logger.js";import{debounce as i,isPromiseLike as n}from"../../../../core/promiseUtils.js";import{createVolume as s}from"../../../../core/quantity.js";import a from"../../../../core/ReactiveMap.js";import{whenOnce as l}from"../../../../core/reactiveUtils.js";import{property as p,subclass as u}from"../../../../core/accessorSupport/decorators.js";import{runUntracked as m}from"../../../../core/accessorSupport/tracking.js";import{create as c}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{setAxes as h}from"../../../../core/libs/gl-matrix-2/math/quat.js";import{create as d}from"../../../../core/libs/gl-matrix-2/factories/quatf64.js";import{sqrDist as f}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{scaleAndAdd as y,scale as _,set as v,negate as w}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as b,fromValues as j,clone as E}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as x}from"../../../../core/support/UpdatingHandles.js";import R from"../../../../geometry/Multipoint.js";import{projectOrLoad as C}from"../../../../geometry/projectionUtils.js";import{containsExecute as L}from"../../../../geometry/operators/containsOperator.js";import{convexHullExecute as O}from"../../../../geometry/operators/convexHullOperator.js";import{simplifyExecute as T}from"../../../../geometry/operators/simplifyOperator.js";import{unionExecuteMany as V}from"../../../../geometry/operators/unionOperator.js";import{computeTranslationToOriginAndRotation as G}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{projectBoundingRect as H}from"../../../../geometry/projection/projectBoundingRect.js";import{empty as M,create as D,fromExtent as I,intersects as P}from"../../../../geometry/support/aaBoundingRect.js";import{vectorCoordinates as U}from"../../../../geometry/support/coordinateSystem.js";import{isClockwise as S}from"../../../../geometry/support/coordsUtils.js";import{newDoubleArray as A}from"../../../../geometry/support/DoubleArray.js";import{t as B}from"../../../../chunks/vec3.js";import F from"../../../../symbols/support/ElevationInfo.js";import{logFailedGeometryProjectionError as k}from"../support/projectionUtils.js";import{VolumeMeasurementCutFillComputation as W}from"./VolumeMeasurementCutFillComputation.js";import{VolumeMeasurementInsufficientDataError as z,VolumeMeasurementPerimeterTooLargeError as q,VolumeMeasurementUnsupportedCoordinateSystemError as N,VolumeMeasurementUnsupportedLayerTransparencyError as Z}from"./volumeMeasurementErrors.js";import{VolumeMeasurementRawResult as J}from"./VolumeMeasurementRawResult.js";import K from"./VolumeMeasurementResult.js";import{ElevationContext as Q}from"../../layers/graphics/ElevationContext.js";import{getElevationAtPoint as X}from"../../support/ElevationProvider.js";import{Obb as Y}from"../../support/orientedBoundingBox.js";import{polygonToRenderInfoElevationAligned as $}from"../../support/renderInfoUtils/polygon.js";import{IteratorPreorder as ee}from"../../terrain/tileUtils.js";import{CutFillComputation as te,TargetGeometryRenderInfo as re}from"../../webgl-engine/lib/CutFillComputation.js";import{GeometryWorkerHandle as oe}from"../../../support/GeometryWorkerHandle.js";import{isIntegratedMeshLayerView as ie}from"../../../support/layerViewUtils.js";let ne=class extends r{constructor(e){super(e),this._measurementWorkerHandle=new oe,this.depthExtremaPositions=null,this.analysisObb=null,this._updatingHandles=new x,this._rawResult=null,this._sufficientDataCoverage=!0,this._tileIterator=new ee,this._intersectingObbsByLayerView=new a,this._intersectingTiles=[],this._debouncedUpdate=i(async(e,t,r,o)=>{if(!this._computation.done)return;const{renderCoordsHelper:i}=this.view,n=new W({extent:t,localOrigin:r,renderCoordsHelper:i});this._computation.update(n,o),this._determineDataCoverage(n,e);const[s]=await Promise.allSettled([this._measurementWorkerHandle.areaHorizontal(e,{returnLength:!0}),l(()=>this._computation.done).then(()=>{this._updateDepthExtremaPositions(n,this._computation.result)})]);if(this.error)return void(this._rawResult=null);const a=this._computation.result;this._updateResult(n,a,"fulfilled"===s.status?s.value:null)}),this._determineDataCoverage=(e,t)=>{const{frustum:r}=this._computation,{cameraDimensions:o}=e;t.extent&&r&&(this._intersectingObbsByLayerView.clear(),this._imLayerViewsAffectingMeasurement.forEach(e=>{this._findIntersectingObbs(e,r)}),this._intersectingObbsByLayerView.size>0?this._sufficientDataCoverage=this._sufficientIntegratedMeshCoverage(t,o):(this._findIntersectingTerrainTiles(t.extent),this._sufficientDataCoverage=this._sufficientTerrainCoverage(o)))}}initialize(){const e=this.view;this._computation=new te({view:e}),this.addHandles([this._createElevationUpdateHandle(),this._updatingHandles.add(()=>({localOrigin:this._localOrigin,targetGeometryRenderInfo:this._targetGeometryRenderInfo}),({localOrigin:e,targetGeometryRenderInfo:t})=>{const r=this._projectedGeometry,o=r?.extent;if(!(r&&o&&e&&t))return this._rawResult=null,this.depthExtremaPositions=null,this.analysisObb=null,void(this._sufficientDataCoverage=!0);this._updatingHandles.consumePromise(this._debouncedUpdate(r,o,e,t))})])}destroy(){this._updatingHandles.destroy(),this._computation.destroy(),this._measurementWorkerHandle.destroy()}get _projectedGeometry(){const e=this.analysis.geometry;if(!e||!this.analysis.valid)return null;const t=T(e),r=C(t,this.view.spatialReference);return r.pending?(this._updatingHandles.consumePromise(r.pending),null):(t&&!r.geometry&&k(this.analysis,e.spatialReference,o.getLogger(this)),r.geometry)}get _localOrigin(){const e=this._projectedGeometry?.extent;return e?j(e.center.x,e.center.y,0):null}get elevationAlignedGeometry(){const e=this._projectedGeometry;return e?m(()=>{const t=e.clone();return se(this.view.elevationProvider,t),t}):null}get targetGeometry(){const{elevationAlignedGeometry:e}=this;if(!e)return null;const t=this.analysis.measureType,{effectiveTargetElevation:r}=this.viewData;if("stockpile"===t||null==r)return e;const o=e.clone();return o.rings.forEach(e=>e.forEach(e=>e[2]=r)),o}get _targetGeometryRenderInfo(){const e=this.targetGeometry,t=this._localOrigin;if(!e||!t)return null;const{elevationProvider:r,renderCoordsHelper:o}=this.view,i=$(e,r,o,Q.fromElevationInfo(new F({mode:"absolute-height"})));if(n(i))return this._updatingHandles.consumePromise(i),null;if(null==i)return null;const{positions:s,polygonIndices:a,vertexCount:l}=i,p=A(3*l),u=c(),m=c();return G(e.spatialReference,t,u,o.spatialReference),m[12]=-u[12],m[13]=-u[13],m[14]=-u[14],B(p,s,m),new re(p,a)}get updating(){return this._computation.updating||this._updatingHandles.updating}get result(){const e=this._rawResult,{volume:t,area:r,length:o}=this.viewData.effectiveDisplayUnits;return e&&!this.error?new K({measureType:this.analysis.measureType,rawResult:e,volumeUnit:t,areaUnit:r,lengthUnit:o}):null}get error(){return this._unsupportedCoordinateSystemError??this._unsupportedLayerTransparencyError??this._perimeterTooLargeError??this._insufficientDataError}get _imLayerViewsAffectingMeasurement(){return this.view.allLayerViews.filter(e=>ie(e)).filter(e=>e.visible&&!e.suspended)}get _insufficientDataError(){return this._sufficientDataCoverage?null:new z}get _perimeterTooLargeError(){return this._perimeterTooLargeLocalError??this._perimeterTooLargeGlobalError}get _perimeterTooLargeLocalError(){const{spatialReference:e,state:{isLocal:r}}=this.view;if(!r||!e.isWebMercator)return null;const o=this._perimeterForError,{maxPerimeterLocalWebMercator:i}=t;return null!=o&&o>i?new q:null}get _perimeterTooLargeGlobalError(){if(!this.view.state.isGlobal)return null;const e=this._perimeterForError,{maxPerimeterGlobal:r}=t;return null!=e&&e>r?new q:null}get _unsupportedCoordinateSystemError(){return this.view.state.isLocal&&this.view.spatialReference.isGeographic?new N:null}get _unsupportedLayerTransparencyError(){const e=this.view.map.ground&&this.view.map.ground.opacity<1,t=this._intersectingObbsByLayerView.size>0;return this._intersectingObbsByLayerView.keys().some(e=>e.fullOpacity<1)||e&&!t?new Z:null}get _perimeterForError(){const e=this._projectedGeometry;if(null==e)return null;let t=null;for(const r of e.rings){if(!S(r))continue;const e=pe(ue(r));t=e?Math.max(t??0,e):t}return null!=t?t*e.spatialReference.metersPerUnit:null}_createElevationUpdateHandle(){const e=e=>{const t=this._projectedGeometry?.extent;"ground"===e.context&&t&&(H(e.extent,e.spatialReference,ce,this.view.spatialReference),I(t,he),P(ce,he)&&this.notifyChange("elevationAlignedGeometry"))};return this.view.elevationProvider.on("elevation-change",t=>e(t))}_updateResult(e,t,r){if(!t)return;const{unitInMeters:o}=this.view.renderCoordsHelper,{dimensions:{width:i,height:n},cameraNearFar:{near:a,far:l}}=e,p=i/t.width*(n/t.height),u=ae(t.cut.totalDepth,a,l)*p,m=ae(t.fill.totalDepth,a,l)*p,c=o**3;this._rawResult=new J({cutVolume:s(Math.abs(u*c),"cubic-meters"),fillVolume:s(m*c,"cubic-meters"),area:r?.area,perimeter:r?.length})}_updateDepthExtremaPositions(e,t){if(!t)return;const{dimensions:{width:r,height:o},cameraNearFar:{near:i,far:n},cameraPositionRenderSpace:s,northVector:a,eastVector:l,upVector:p}=e,u=e=>{const{depthExtremum:u,depthExtremumCoords:[m,c],totalDepth:h}=e,d=E(s);return 0!==h&&(y(d,d,l,r*(m/t.width-.5)),y(d,d,a,o*(c/t.height-.5))),y(d,d,p,-ae(u,i,n)),d},m={cut:u(t.cut),fill:u(t.fill)};this.depthExtremaPositions=m,this.analysisObb=le(e,m)}_findIntersectingObbs(e,t){const r=[];"integrated-mesh-3d"===e.type&&e.getVisibleNodes().forEach(o=>{e.isNodeLoaded(o.index)&&o.geometryObbInRenderSR?.intersectsFrustum(t)&&r.push(o.geometryObbInRenderSR)}),"integrated-mesh-3dtiles"===e.type&&e.forEachVisibleComponentObject(({obb:e})=>{e.intersectsFrustum(t)&&r.push(e)}),r.length>0&&this._intersectingObbsByLayerView.set(e,r)}_sufficientIntegratedMeshCoverage(e,t){const{renderCoordsHelper:r,spatialReference:o}=this.view,i=[],n=new R({spatialReference:o});if(this._intersectingObbsByLayerView.forEach(e=>{e.forEach(e=>{if(me(e.radius,t)&&(e.getCorners(be),n.points.length=0,be.forEach(e=>{const t=r.fromRenderCoords(e,je,o);t&&n.addPoint([t[0],t[1]])}),n.points.length)){const e=O(n);"polygon"===e?.type&&i.push(e)}})}),!i.length)return!1;const s=V(i);return!!s&&L(s,e)}_findIntersectingTerrainTiles(e){const{basemapTerrain:t}=this.view;this._intersectingTiles.length=0,I(e,de);const r=this._tileIterator;r.reset(t.rootTiles);for(let o=r.next();o;o=r.next())o.intersectsExtent(de)?o.rendered&&this._intersectingTiles.push(o):r.skipSubtree()}_sufficientTerrainCoverage(e){const{basemapTerrain:{tilingScheme:t}}=this.view;if(!this._intersectingTiles.length)return!1;const r=256/t.pixelSize;return this._intersectingTiles.every(t=>me(t.radius*r,e))}};function se(e,t){t.hasZ=!0,t.rings.forEach(t=>t.forEach(t=>t[2]=X(e,t,"ground")??0))}function ae(e,t,r){return e*(r-t)+t}function le(e,t){const{boundingRect:r,eastVector:o,northVector:i,upVector:n}=e;U(t.cut,o,i,n,fe),U(t.fill,o,i,n,ge);const s=.5*(r[0]+r[2]),a=.5*(r[1]+r[3]),l=Math.min(fe[2],ge[2]),p=Math.max(fe[2],ge[2]),u=.5*(l+p);return _(ye,o,s),y(ye,ye,i,a),y(ye,ye,n,u),v(_e,.5*(r[2]-r[0]),.5*(r[3]-r[1]),.5*(p-l)),w(ve,n),new Y(ye,_e,h(we,ve,o,i))}function pe(e){if(!e)return null;let t=null,r=null,o=0;for(const i of e)t||(t=[i[0],i[1]]),r?o+=f(r,i):r=[0,0],r[0]=i[0],r[1]=i[1];return t&&r&&(o+=f(r,t)),Math.sqrt(o)}function*ue(e){const t=g();for(let r=0;r<e.length;r++)t[0]=e[r][0],t[1]=e[r][1],yield t}e([p()],ne.prototype,"_projectedGeometry",null),e([p()],ne.prototype,"_localOrigin",null),e([p()],ne.prototype,"elevationAlignedGeometry",null),e([p()],ne.prototype,"targetGeometry",null),e([p()],ne.prototype,"_targetGeometryRenderInfo",null),e([p({constructOnly:!0})],ne.prototype,"analysis",void 0),e([p({constructOnly:!0})],ne.prototype,"viewData",void 0),e([p({constructOnly:!0})],ne.prototype,"view",void 0),e([p()],ne.prototype,"updating",null),e([p()],ne.prototype,"result",null),e([p()],ne.prototype,"depthExtremaPositions",void 0),e([p()],ne.prototype,"analysisObb",void 0),e([p()],ne.prototype,"error",null),e([p()],ne.prototype,"_imLayerViewsAffectingMeasurement",null),e([p()],ne.prototype,"_insufficientDataError",null),e([p()],ne.prototype,"_perimeterTooLargeError",null),e([p()],ne.prototype,"_perimeterTooLargeLocalError",null),e([p()],ne.prototype,"_perimeterTooLargeGlobalError",null),e([p()],ne.prototype,"_unsupportedCoordinateSystemError",null),e([p()],ne.prototype,"_unsupportedLayerTransparencyError",null),e([p()],ne.prototype,"_perimeterForError",null),e([p()],ne.prototype,"_computation",void 0),e([p({readOnly:!0})],ne.prototype,"_updatingHandles",void 0),e([p()],ne.prototype,"_rawResult",void 0),e([p()],ne.prototype,"_sufficientDataCoverage",void 0),ne=e([u("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementController")],ne);const me=(e,t)=>e<(t.width+t.height)/2,ce=M(),he=M(),de=D(),fe=b(),ge=b(),ye=b(),_e=b(),ve=b(),we=d(),be=new Array(8).fill(0).map(()=>b()),je=b();export{ne as VolumeMeasurementController};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import i from"../../../core/Error.js";import o from"../../../core/Logger.js";import{isAborted as t}from"../../../core/promiseUtils.js";import{property as r,subclass as s}from"../../../core/accessorSupport/decorators.js";import a from"../../../layers/support/ElevationTileData.js";import{ElevationLayerView3DModifications as n,ElevationLayerView3DModification as l}from"./ElevationLayerView3DModifications.js";import{LayerView3D as m}from"./LayerView3D.js";import{TiledLayerView3D as p}from"./TiledLayerView3D.js";import{elevationNoDataValue as c}from"../terrain/TerrainConst.js";import y from"../../layers/LayerView.js";let f=class extends(p(m(y))){constructor(){super(...arguments),this.type="elevation-3d",this.modifications=new n}get tileInfo(){return this.layer.tileInfo}initialize(){const e=this.view,o=e.map?.allLayers,t=o&&o.includes(this.layer),r=e.map?.ground?.layers,s=r&&r.includes(this.layer);if(t&&!s){const e=new i("layerview:elevation-layer-only",`3D elevation layer '${this.layer.id}' can only be added to layers in map.ground`);this.addResolvingPromise(Promise.reject(e))}this._addTilingSchemeMatchPromise()}async fetchElevationTile(e,i){const o=await this._fetchTileData(e.lij,i);if(!t(i))return o&&await this.modifications.apply(o,e,i.signal),o}async _fetchTileData(e,i){const r=this.layer,s=await r.fetchTile(e[0],e[1],e[2],{noDataValue:c,signal:i.signal,useQueue:i.useQueue,priority:i.priority});if(!t(i))return a.from(s);o.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true.")}async setModifications(e){if(this.modifications.modifications.length=0,!e||0===e.length)return;this._simplifyOperatorPromise??=import("../../../geometry/operators/simplifyOperator.js");const i=await this._simplifyOperatorPromise;for(const t of e){const e=t.geometry;if("polygon"===e?.type){const r=i.execute(e);if("polygon"===r?.type){const e=new l(t.type,r);this.modifications.modifications.push(e)}else o.getLogger(this).warn("Failed to simplify modification polygon")}else o.getLogger(this).warn("Invalid modification added to elevation layer: "+(e?`non polygon geometry ${e.type}`:"no geometry"))}}};e([r()],f.prototype,"layer",void 0),e([r()],f.prototype,"tileInfo",null),e([r()],f.prototype,"modifications",void 0),f=e([s("esri.views.3d.layers.ElevationLayerView3D")],f);const d=f;export{d as default};
2
+ import{__decorate as e}from"tslib";import i from"../../../core/Error.js";import o from"../../../core/Logger.js";import{isAborted as t}from"../../../core/promiseUtils.js";import{property as r,subclass as s}from"../../../core/accessorSupport/decorators.js";import a from"../../../layers/support/ElevationTileData.js";import{ElevationLayerView3DModifications as n,ElevationLayerView3DModification as l}from"./ElevationLayerView3DModifications.js";import{LayerView3D as m}from"./LayerView3D.js";import{TiledLayerView3D as p}from"./TiledLayerView3D.js";import{elevationNoDataValue as y}from"../terrain/TerrainConst.js";import c from"../../layers/LayerView.js";let f=class extends(p(m(c))){constructor(){super(...arguments),this.type="elevation-3d",this.modifications=new n}get tileInfo(){return this.layer.tileInfo}initialize(){const e=this.view,o=e.map?.allLayers,t=o&&o.includes(this.layer),r=e.map?.ground?.layers,s=r&&r.includes(this.layer);if(t&&!s){const e=new i("layerview:elevation-layer-only",`3D elevation layer '${this.layer.id}' can only be added to layers in map.ground`);this.addResolvingPromise(Promise.reject(e))}this._addTilingSchemeMatchPromise()}async fetchElevationTile(e,i){const o=await this._fetchTileData(e.lij,i);if(!t(i))return o&&await this.modifications.apply(o,e,i.signal),o}async _fetchTileData(e,i){const r=this.layer,s=await r.fetchTile(e[0],e[1],e[2],{noDataValue:y,signal:i.signal,useQueue:i.useQueue,priority:i.priority});if(!t(i))return a.from(s);o.getLogger(this).warnOnce("A call to fetchTile resolved even though the request was aborted. fetchTile should not resolve if options.signal.aborted is true.")}async setModifications(e){if(this.modifications.modifications.length=0,!e||0===e.length)return;this._simplifyOperatorPromise??=import("../../../geometry/operators/simplifyOperator.js");const{simplifyExecute:i}=await this._simplifyOperatorPromise;for(const t of e){const e=t.geometry;if("polygon"===e?.type){const r=i(e);if("polygon"===r?.type){const e=new l(t.type,r);this.modifications.modifications.push(e)}else o.getLogger(this).warn("Failed to simplify modification polygon")}else o.getLogger(this).warn("Invalid modification added to elevation layer: "+(e?`non polygon geometry ${e.type}`:"no geometry"))}}};e([r()],f.prototype,"layer",void 0),e([r()],f.prototype,"tileInfo",null),e([r()],f.prototype,"modifications",void 0),f=e([s("esri.views.3d.layers.ElevationLayerView3D")],f);const d=f;export{d as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{isAborted as e}from"../../../core/promiseUtils.js";import t from"../../../geometry/Extent.js";import{toExtent as o}from"../../../geometry/support/aaBoundingRect.js";class r{constructor(){this.modifications=[]}async apply(t,o,r){if(0!==this.modifications.length&&(s??=Promise.all([import("../../../geometry/operators/containsOperator.js"),import("../../../geometry/operators/intersectsOperator.js"),import("../../../geometry/operators/intersectionOperator.js")]),a=await s,!e(r)))for(const e of this.modifications)e.apply(t,o)}}class n{constructor(e,t){this.type=e,this.polygon=t}apply(e,t){if("replace"!==this.type)return;const{polygon:r}=this,[n,s,l]=a,{extent:f,spatialReference:p}=t,m=o(f,p);if(s.accelerateGeometry(r),!s.execute(r,m))return;n.accelerateGeometry(r),l.accelerateGeometry(r);const{width:y,height:h,values:u}=e,g=r.hasZ?r.rings.reduce((e,t)=>t.reduce((e,t)=>Math.min(e,t[2]??1/0),e),1/0):1/0,d=g===1/0?0:g;if(n.execute(r,m))u.fill(d);else{const e=i(t,r,[y,h]);if(!e)return;if(e.rings.every(e=>0===e.length))return;const o=c(t,e,y,h);for(let t=h-1;t>=0;--t)for(let e=0;e<y;++e){const r=(t+1)*(y+2)+(e+1);let n=0;for(let e=-1;e<=1;++e){const t=r+e*(y+2);for(let e=-1;e<=1;++e)n=Math.max(n,o[t+e])}const s=t*y+e;u[s]=0===n?u[s]:d}}}}let s,a;function i(e,o,r){const[n,s,i,c]=e.extent,{spatialReference:l}=e,[f,p]=r,m=2,y=(i-n)/(f-1),h=(c-s)/(p-1),u=new t({xmin:n-m*y,ymin:s-m*h,xmax:i+m*y,ymax:c+m*h,spatialReference:l}),g=a[2].execute(o,u);return"polygon"===g?.type?g:null}function c(e,t,o,r){const n=new OffscreenCanvas(o+2,r+2).getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("failed to create canvas");const[s,a,i,c]=e.extent,f=i-s,p=c-a;n.fillStyle="black",n.clearRect(0,0,o,r);const m=new Path2D;for(const g of t.rings)if(g.length>0){const e=new Path2D;let t=!0;for(const[n,a]of g){const i=(n-s)/f*(o-1)+1+l,m=(c-a)/p*(r-1)+1+l;t?(t=!1,e.moveTo(i,m)):e.lineTo(i,m)}e.closePath(),m.addPath(e)}n.fillStyle="white",n.fill(m,"evenodd");const y=n.getImageData(0,0,o+2,r+2),h=(o+2)*(r+2),u=new Uint8Array(h);for(let l=0;l<h;++l)u[l]=y.data[4*l+0]>0?1:0;return u}const l=.5;export{n as ElevationLayerView3DModification,r as ElevationLayerView3DModifications};
2
+ import{isAborted as t}from"../../../core/promiseUtils.js";import e from"../../../geometry/Extent.js";import{toExtent as o}from"../../../geometry/support/aaBoundingRect.js";class r{constructor(){this.modifications=[]}async apply(e,o,r){if(0!==this.modifications.length&&(s??=Promise.all([import("../../../geometry/operators/containsOperator.js"),import("../../../geometry/operators/intersectsOperator.js"),import("../../../geometry/operators/intersectionOperator.js")]),i=await s,!t(r)))for(const t of this.modifications)t.apply(e,o)}}class n{constructor(t,e){this.type=t,this.polygon=e}apply(t,e){if("replace"!==this.type)return;const{polygon:r}=this,[n,s,l]=i,{extent:f,spatialReference:p}=e,m=o(f,p);if(s.intersectsAccelerateGeometry(r),!s.intersectsExecute(r,m))return;n.containsAccelerateGeometry(r),l.intersectionAccelerateGeometry(r);const{width:y,height:h,values:u}=t,g=r.hasZ?r.rings.reduce((t,e)=>e.reduce((t,e)=>Math.min(t,e[2]??1/0),t),1/0):1/0,d=g===1/0?0:g;if(n.containsExecute(r,m))u.fill(d);else{const t=c(e,r,[y,h]);if(!t)return;if(t.rings.every(t=>0===t.length))return;const o=a(e,t,y,h);for(let e=h-1;e>=0;--e)for(let t=0;t<y;++t){const r=(e+1)*(y+2)+(t+1);let n=0;for(let t=-1;t<=1;++t){const e=r+t*(y+2);for(let t=-1;t<=1;++t)n=Math.max(n,o[e+t])}const s=e*y+t;u[s]=0===n?u[s]:d}}}}let s,i;function c(t,o,r){const[n,s,c,a]=t.extent,{spatialReference:l}=t,[f,p]=r,m=2,y=(c-n)/(f-1),h=(a-s)/(p-1),u=new e({xmin:n-m*y,ymin:s-m*h,xmax:c+m*y,ymax:a+m*h,spatialReference:l}),{intersectionExecute:g}=i[2],d=g(o,u);return"polygon"===d?.type?d:null}function a(t,e,o,r){const n=new OffscreenCanvas(o+2,r+2).getContext("2d",{willReadFrequently:!0});if(!n)throw new Error("failed to create canvas");const[s,i,c,a]=t.extent,f=c-s,p=a-i;n.fillStyle="black",n.clearRect(0,0,o,r);const m=new Path2D;for(const g of e.rings)if(g.length>0){const t=new Path2D;let e=!0;for(const[n,i]of g){const c=(n-s)/f*(o-1)+1+l,m=(a-i)/p*(r-1)+1+l;e?(e=!1,t.moveTo(c,m)):t.lineTo(c,m)}t.closePath(),m.addPath(t)}n.fillStyle="white",n.fill(m,"evenodd");const y=n.getImageData(0,0,o+2,r+2),h=(o+2)*(r+2),u=new Uint8Array(h);for(let l=0;l<h;++l)u[l]=y.data[4*l+0]>0?1:0;return u}const l=.5;export{n as ElevationLayerView3DModification,r as ElevationLayerView3DModifications};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as i}from"tslib";import t from"../../../../core/Accessor.js";import{lerp as e}from"../../../../core/mathUtils.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{transpose as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{transformMat4 as l,scale as u,round as h,copy as d,set as p}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as _,create as y}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f,transformMat4 as g,scale as m}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{UpdatingHandles as b}from"../../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as O}from"../../../../geometry/ellipsoidUtils.js";import{create as w,empty as Q,copy as D,offset as G,width as I,height as j,expand as k}from"../../../../geometry/support/aaBoundingRect.js";import{h as P,c as C,a as S}from"../../../../chunks/boundedPlane.js";import{create as T}from"../../../../geometry/support/ray.js";import{Sphere as x,sphereCSO as M}from"../../../../geometry/support/sphere.js";import{InternalRenderCategory as U}from"../../webgl.js";import{DeconflictAABR as V}from"./DeconflictAABR.js";import{prepare as R,drawPoly as A}from"./deconflictorDebug.js";import{isSymbolLayerWithTransparencyMode as E}from"./transparencyUtils.js";import N from"../../webgl/RenderCamera.js";import{GPUPointOcclusionQuery as q}from"../../webgl-engine/lib/GPUPointOcclusionQuery.js";import{SeparateScreenSizePerspectiveEvaluators as H}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{HUDMaterial as W}from"../../webgl-engine/materials/HUDMaterial.js";import{Yield as z}from"../../../support/Yield.js";const F=y(),B=y(),L=v(),Y=v(),J=y(),K=n(),X=new x,Z=T(),$=y(),ii=w();class ti{constructor(i){this.id=i,this.aabr=w(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.culled=!1,this.visible=!1,this.priority=0}}function ei(i,t){const e=0!==i.distanceToOccluder&&i.distance>i.distanceToOccluder,s=0!==t.distanceToOccluder&&t.distance>t.distanceToOccluder;return e!==s?+e-+s:i.priority!==t.priority?t.priority-i.priority:i.distance!==t.distance?i.distance-t.distance:i.visible!==t.visible?+t.visible-+i.visible:i.id-t.id}class si{constructor(i,t){this.graphics3DGraphic=i,this.slicePlaneEnabled=t,this._info=null,this._labelInfo=null}ensureInfo(i){let t=this.getInfo(i);return t||(t=new ti(this.graphics3DGraphic.graphic.uid),this._setInfo(i,t)),t}getInfo(i){return 16===i?this._labelInfo:this._info}removeInfo(i){this._setInfo(i,null)}_setInfo(i,t){16===i?this._labelInfo=t:this._info=t}}class ri{constructor(){this.camera=new N,this.slicePlane=C(),this.slicePlaneEnabled=!1}copyFrom(i){this.camera.equals(i.camera)||this.camera.copyFrom(i.camera),S(i.slicePlane,this.slicePlane),this.slicePlaneEnabled=i.slicePlaneEnabled}}let oi=class extends t{get dirty(){return this._dirty}get state(){return this._state}constructor(i){super(i),this._dirty=!1,this._viewState=new ri,this._state=0,this._checkOcclusion=new Map,this._active=new Map,this._checkOcclusionIterator=null,this._activeIterator=null,this._occlusionQueryUids=new Array,this._updatingHandles=new b,this._deconflictor=new V((i,t)=>{i.visible=t,this._setGraphicVisibility(this._active.get(i.id),t)},(i,t)=>i.id!==t.id,ei),this._baseOccludedVisibility=10,this._altitudeFactor=2,this._minAltitudeDifference=100}initialize(){this._updatingHandles.add(()=>(this.view?.map?.ground?.opacity??0)>0,()=>this.setDirty()),this._updatingHandles.add(()=>this.view.ready,()=>{this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this.setDirty()})}destroy(){this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this._updatingHandles.destroy(),this._deconflictor.destroy(),this._checkOcclusion.clear(),this._active.clear()}setDirty(){!this._dirty&&(this._active.size>0||this._checkOcclusion.size>0)&&(this._dirty=!0,this.notifyChange("_readyToRun"))}setPriority(i,t){const e=this._active.get(i.graphic.uid)?.getInfo(this.visibilityGroup);e&&(e.priority=t)}get _readyToRun(){return 0!==this._state||this._dirty}get updating(){return this._readyToRun||this._updatingHandles.updating}get updatingProgress(){if(!this.updating)return 1;const i=this._state/5;return this._dirty?.5*i:i}get readyToRun(){return this.view.ready&&null!=this.view.state&&this._readyToRun}get usedMemory(){return this._occlusionQuery?.usedMemory??0+4*(this._occlusionQueryUids?.length??0)}runTask(i){switch(this._state){case 0:this._startUpdate(),i.madeProgress();case 1:if(this._state=1,!this._processCheckOcclusion(i))return;case 2:if(this._state=2,!(this._occlusionQuery?.done??1)||!(this._opaqueOcclusionQuery?.done??1))return z;this._readOcclusionQueryResult(),i.madeProgress();case 3:if(this._state=3,!this._collectActiveGraphics(i))return;case 4:if(this._state=4,this._deconflictor.run(i),!this._deconflictor.done)return;default:this._state=0,this.notifyChange("_readyToRun")}}setGraphicsActive(i,t){t?i.forEach(i=>this.addToActiveGraphics(i)):i.forEach(i=>this.removeFromActiveGraphics(i))}isSupportedLayer(i){if(null==i||!("hiddenIfDeconflicted"in i)||!i.hiddenIfDeconflicted)return!1;const t=i.stageObject;if(1!==(t?.geometries.length??0))return!1;const e=t?.geometries[0],s=e?.material;return s instanceof W}_startUpdate(){R(this.view),this._dirty=!1,this._viewState.copyFrom(this.viewState);const{fullWidth:i,fullHeight:t}=this._viewState.camera;if(this._deconflictor.reset(i,t),this._resetIterators(),this._occlusionQueryUids.length=0,!this._checkOcclusion.size)return this._occlusionQuery=s(this._occlusionQuery),void(this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery))}addToActiveGraphics(i){i.ensureInfo(this.visibilityGroup),this._active.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromActiveGraphics(i){this._active.get(i.graphics3DGraphic.graphic.uid)===i&&(ci(i,this.visibilityGroup),i.removeInfo(this.visibilityGroup),this._active.delete(i.graphics3DGraphic.graphic.uid),this.setDirty())}addToCheckOcclusion(i){this._checkOcclusion.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromCheckOcclusion(i){this._checkOcclusion.get(i.graphics3DGraphic.graphic.uid)===i&&this._checkOcclusion.delete(i.graphics3DGraphic.graphic.uid)}_processCheckOcclusion(i){if(0===this._checkOcclusion.size)return!0;const t=this._ensureCheckOcclusionIterator(),e=this._viewState.camera,r=c(K,e.viewInverseTransposeMatrix),o=this.view.map.ground.opacity>0,n="global"===this.view.viewingMode&&o&&e.relativeElevation>0?X:null;let a=0;null!=n&&(l(n.center,_,e.viewMatrix),n.radius=O(this.view.spatialReference).radius,a=M.distanceToSilhouette(n,_));const u=w();for(;;){if(i.done)return!1;i.madeProgress();const s=t.next();if(!0===s.done)break;const o=s.value,c=o.graphics3DGraphic;if(c.destroyed)continue;if(!c.isVisible(1,8))continue;const h=ui(c,this.visibilityGroup);let d=null,p=!0,_=!1;for(const i of h){if(!this.isSupportedLayer(i))continue;d=hi,this._projectHudLayer(i,e,d),Q(u);const t=i.stageObject.geometries[0].material;if(this._expandBoundingRect(u,e,i,t,d),d.isOutsideScreen){p=!1;break}if(this._isCulledBySlice(o,d.positionWorld)){p=!1;break}if(null!=n&&li(d,n,a)){p=!1;break}d.altitude=this.view.renderCoordsHelper.getAltitude(d.positionWorld);const s=o.ensureInfo(this.visibilityGroup);if(s.altitude=d.altitude,s.distance=d.distance,s.distanceToOccluder=d.distanceToOccluder,s.culled=!1,D(s.aabr,u),!i.occlusionCheck)break;l(B,d.positionView,r);const h=this._ensureOcclusionQuery(),y=this._ensureOpaqueOcclusionQuery();0===this._occlusionQueryUids.length&&(this._initOcclusionQuery(h),this._initOcclusionQuery(y));const f=h.addPosition(B),g=y.addPosition(B);if(f===this._occlusionQueryUids.length&&g===f){const t=i.adaptiveOcclusion;this._occlusionQueryUids.push(t?-c.graphic.uid:c.graphic.uid),_=!0}break}const y=this._active.has(c.graphic.uid);if(y||_){if(y&&(!p||!d)){const i=o.ensureInfo(this.visibilityGroup);i.visible=!d,i.culled=!0}}else this._setGraphicVisibility(o,p)}return this._checkOcclusionIterator=null,this._occlusionQueryUids.length||(this._occlusionQuery=s(this._occlusionQuery),this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery)),this._occlusionQuery?.start(),this._opaqueOcclusionQuery?.start(),!0}_readOcclusionQueryResult(){if(!this._occlusionQuery||!this._occlusionQueryUids.length)return;const i=this._viewState.camera,t=this.view.renderCoordsHelper.getAltitude(i.eye);for(let e=0;e<this._occlusionQueryUids.length;e++){const i=this._occlusionQueryUids[e],s=Math.abs(i),r=i<0,o=this._checkOcclusion.get(s);if(!o)continue;const c=this._occlusionQuery.getOcclusion(e)??-1,n=this._opaqueOcclusionQuery?.getOcclusion(e)??-1,a=o.getInfo(this.visibilityGroup);a&&(a.distanceToOccluder=c>0?a.distance-c:0);const l=0===n||n>0&&this._occludedVisibility(a?a.distance-n:0,a?.distance??n,a?.altitude??0,t,r),u=0===c||c>0&&this._occludedVisibility(a?.distanceToOccluder??0,a?.distance??c,a?.altitude??0,t,r),h=l||u;h&&this._setTransparentMode(o,l&&!u),this._active.has(s)?a&&(a.culled=!h,a.visible=h):this._setGraphicVisibility(o,h)}this._occlusionQueryUids.length=0}_collectActiveGraphics(i){const t=this._ensureActiveGraphicsIterator(),e=16===this.visibilityGroup;for(;!i.done;){i.madeProgress();const s=t.next();if(!0===s.done)return this._activeIterator=null,!0;const r=s.value,o=r.getInfo(this.visibilityGroup);if(!o)continue;const c=!e||r.graphics3DGraphic.isVisible();!c||o.culled?(A(o.aabr,!1,!0),this._setGraphicVisibility(r,c&&o.visible)):this._deconflictor.add(o)}return!1}_occludedVisibility(i,t,e,s,r=!0){const o=Math.max(this._minAltitudeDifference,Math.abs(e-s))-this._minAltitudeDifference,c=r?this._baseOccludedVisibility+this._altitudeFactor*o:0;return 0===i||t-i<=c}_resetIterators(){this._checkOcclusionIterator=null,this._activeIterator=null}_ensureCheckOcclusionIterator(){return this._checkOcclusionIterator??=this._checkOcclusion.values(),this._checkOcclusionIterator}_ensureActiveGraphicsIterator(){return this._activeIterator??=this._active.values(),this._activeIterator}_initOcclusionQuery(i){if(!i)return;const{camera:t}=this._viewState,e=2,s=Math.max(e,e+Math.round(Math.log2(Math.abs(t.relativeElevation))));u(F,this._viewState.camera.eye,2**-s),u(F,h(F,F),2**s),i.init(this._checkOcclusion.size,F)}_ensureOcclusionQuery(){return this._occlusionQuery??=new q({view:this.view}),this._occlusionQuery}_ensureOpaqueOcclusionQuery(){return this._opaqueOcclusionQuery??=new q({view:this.view,category:U.OPAQUE_OCCLUSION_QUERY}),this._opaqueOcclusionQuery}_getNumVisible(i){return this._checkOcclusion.values().reduce((t,e)=>t+(e.getInfo(i)?.visible?1:0),0)}_projectHudLayer(i,t,e){const s=i.stageObject,r=s.geometries[0],o=r.material;d(B,s.boundingVolumeWorldSpace.bounds.center),l(F,B,t.viewMatrix);const c=r.attributes,n=c.get("normal").data,a=c.get("centerOffset")?.data??_,[h]=c.get("groundDistance").data;o.applyShaderOffsets(B,F,n,s.transformation,a,h,t,e.screenSizePerspectiveEvaluators),f(L,F[0],F[1],F[2],1),g(Y,L,t.projectionMatrix),u(e.positionNDC,Y,1/Y[3]),o.applyShaderOffsetsNDC(e.positionNDC,a,h,t,e.positionNDC,J),e.distanceWithoutPolygonOffset=t.depthNDCToWorld(J[2]),e.distance=J[2]===e.positionNDC[2]?e.distanceWithoutPolygonOffset:t.depthNDCToWorld(e.positionNDC[2]),f(Y,e.positionNDC[0],e.positionNDC[1],e.positionNDC[2],1),g(L,Y,t.inverseProjectionMatrix),m(L,L,1/L[3]),p(e.positionView,L[0],L[1],L[2]),d(e.positionWorld,B)}_isCulledBySlice(i,t){return i.slicePlaneEnabled&&this._viewState.slicePlaneEnabled&&P(this._viewState.slicePlane,t)}_expandBoundingRect(i,t,s,r,{positionNDC:o,screenSizePerspectiveEvaluators:c}){const n=s.getScreenSize(ni);c.evaluator.applyVec2(n,n),n[0]*=t.pixelRatio,n[1]*=t.pixelRatio;const a=G(r.calculateRelativeScreenBounds(n,c.alignmentEvaluator.apply(t.pixelRatio),ii),e(0,t.fullWidth,.5+.5*o[0]),e(0,t.fullHeight,.5+.5*o[1])),l=this.marginFactor;if(0!==l){const i=l*Math.min(I(a),j(a));a[0]-=i,a[1]-=i,a[2]+=i,a[3]+=i}k(i,a,i)}_setGraphicVisibility(i,t){const e=i?.graphics3DGraphic;e&&!e.destroyed&&(e.setVisibilityFlag(this.visibilityGroup,8,t),16===this.visibilityGroup&&this.view.labeler.setLabelGraphicVisibility(e,t))}_setTransparentMode(i,t){const e=i?.graphics3DGraphic;if(e&&!e.destroyed)for(const s of e.layers){if("object3d"!==s?.type)continue;const{graphics3DSymbolLayer:i}=s;E(i)&&i.updateTransparentMode(s,t)}}};function ci(i,t){const e=i.graphics3DGraphic;e.destroyed||e.setVisibilityFlag(t,8,!0)}i([r({constructOnly:!0})],oi.prototype,"view",void 0),i([r({type:Boolean,readOnly:!0})],oi.prototype,"_readyToRun",null),i([r({type:Boolean,readOnly:!0})],oi.prototype,"updating",null),i([r({readOnly:!0})],oi.prototype,"_updatingHandles",void 0),oi=i([o("esri.views.3d.layers.graphics.Deconflictor")],oi);const ni=a();class ai{constructor(){this.positionWorld=y(),this.positionView=y(),this.positionNDC=y(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.distanceWithoutPolygonOffset=0,this.screenSizePerspectiveEvaluators=new H}get isOutsideScreen(){const i=this.positionNDC;return i[0]<-1||i[1]<-1||i[2]<-1||i[0]>=1||i[1]>=1||i[2]>=1}}function li(i,t,e){return d(Z.direction,i.positionView),p(Z.origin,0,0,0),!!t.intersectRay(Z,$)&&i.distanceWithoutPolygonOffset>e}function ui(i,t){return 16===t?i.labelLayers:i.layers}const hi=new ai;export{oi as Deconflictor,si as DeconflictorGraphic,ri as DeconflictorViewState};
2
+ import{__decorate as i}from"tslib";import t from"../../../../core/Accessor.js";import{lerp as e}from"../../../../core/mathUtils.js";import{destroyMaybe as s}from"../../../../core/maybe.js";import{property as r,subclass as o}from"../../../../core/accessorSupport/decorators.js";import{transpose as c}from"../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as n}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{create as a}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{transformMat4 as l,scale as u,round as h,copy as d,set as p}from"../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as _,create as y}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{set as f,transformMat4 as g,scale as m}from"../../../../core/libs/gl-matrix-2/math/vec4.js";import{create as v}from"../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{UpdatingHandles as b}from"../../../../core/support/UpdatingHandles.js";import{getReferenceEllipsoid as O}from"../../../../geometry/ellipsoidUtils.js";import{create as w,empty as Q,copy as D,offset as G,width as I,height as j,expand as k}from"../../../../geometry/support/aaBoundingRect.js";import{h as P,c as C,a as S}from"../../../../chunks/boundedPlane.js";import{create as T}from"../../../../geometry/support/ray.js";import{Sphere as x,sphereCSO as M}from"../../../../geometry/support/sphere.js";import{InternalRenderCategory as U}from"../../webgl.js";import{DeconflictAABR as V}from"./DeconflictAABR.js";import{prepare as R,drawPoly as A}from"./deconflictorDebug.js";import{isSymbolLayerWithTransparencyMode as E}from"./transparencyUtils.js";import N from"../../webgl/RenderCamera.js";import{GPUPointOcclusionQuery as q}from"../../webgl-engine/lib/GPUPointOcclusionQuery.js";import{SeparateScreenSizePerspectiveEvaluators as H}from"../../webgl-engine/lib/screenSizePerspectiveUtils.js";import{HUDMaterial as W}from"../../webgl-engine/materials/HUDMaterial.js";import{Yield as z}from"../../../support/Yield.js";const F=y(),B=y(),L=v(),Y=v(),J=y(),K=n(),X=new x,Z=T(),$=y(),ii=w();class ti{constructor(i){this.id=i,this.aabr=w(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.culled=!1,this.visible=!1,this.priority=0}}function ei(i,t){const e=0!==i.distanceToOccluder&&i.distance>i.distanceToOccluder,s=0!==t.distanceToOccluder&&t.distance>t.distanceToOccluder;return e!==s?+e-+s:i.priority!==t.priority?t.priority-i.priority:i.distance!==t.distance?i.distance-t.distance:i.visible!==t.visible?+t.visible-+i.visible:i.id-t.id}class si{constructor(i,t){this.graphics3DGraphic=i,this.slicePlaneEnabled=t,this._info=null,this._labelInfo=null}ensureInfo(i){let t=this.getInfo(i);return t||(t=new ti(this.graphics3DGraphic.graphic.uid),this._setInfo(i,t)),t}getInfo(i){return 16===i?this._labelInfo:this._info}removeInfo(i){this._setInfo(i,null)}_setInfo(i,t){16===i?this._labelInfo=t:this._info=t}}class ri{constructor(){this.camera=new N,this.slicePlane=C(),this.slicePlaneEnabled=!1}copyFrom(i){this.camera.equals(i.camera)||this.camera.copyFrom(i.camera),S(i.slicePlane,this.slicePlane),this.slicePlaneEnabled=i.slicePlaneEnabled}}let oi=class extends t{get dirty(){return this._dirty}get state(){return this._state}constructor(i){super(i),this._dirty=!1,this._viewState=new ri,this._state=0,this._checkOcclusion=new Map,this._active=new Map,this._checkOcclusionIterator=null,this._activeIterator=null,this._occlusionQueryUids=new Array,this._updatingHandles=new b,this._deconflictor=new V((i,t)=>{i.visible=t,this._setGraphicVisibility(this._active.get(i.id),t)},(i,t)=>i.id!==t.id,ei),this._baseOccludedVisibility=10,this._altitudeFactor=2,this._minAltitudeDifference=100}initialize(){this._updatingHandles.add(()=>(this.view?.map?.ground?.opacity??0)>0,()=>this.setDirty()),this._updatingHandles.add(()=>this.view.ready,()=>{this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this.setDirty()})}destroy(){this._occlusionQuery=null,this._opaqueOcclusionQuery=null,this._updatingHandles.destroy(),this._deconflictor.destroy(),this._checkOcclusion.clear(),this._active.clear()}setDirty(){!this._dirty&&(this._active.size>0||this._checkOcclusion.size>0)&&(this._dirty=!0,this.notifyChange("_readyToRun"))}setPriority(i,t){const e=this._active.get(i.graphic.uid)?.getInfo(this.visibilityGroup);e&&(e.priority=t)}get _readyToRun(){return 0!==this._state||this._dirty}get updating(){return this._readyToRun||this._updatingHandles.updating}get updatingProgress(){if(!this.updating)return 1;const i=this._state/5;return this._dirty?.5*i:i}get readyToRun(){return this.view.ready&&null!=this.view.state&&this._readyToRun}get usedMemory(){return this._occlusionQuery?.usedMemory??0+4*(this._occlusionQueryUids?.length??0)}runTask(i){switch(this._state){case 0:this._startUpdate(),i.madeProgress();case 1:if(this._state=1,!this._processCheckOcclusion(i))return;case 2:if(this._state=2,!(this._occlusionQuery?.done??!0)||!(this._opaqueOcclusionQuery?.done??!0))return z;this._readOcclusionQueryResult(),i.madeProgress();case 3:if(this._state=3,!this._collectActiveGraphics(i))return;case 4:if(this._state=4,this._deconflictor.run(i),!this._deconflictor.done)return;default:this._state=0,this.notifyChange("_readyToRun")}}setGraphicsActive(i,t){t?i.forEach(i=>this.addToActiveGraphics(i)):i.forEach(i=>this.removeFromActiveGraphics(i))}isSupportedLayer(i){if(null==i||!("hiddenIfDeconflicted"in i)||!i.hiddenIfDeconflicted)return!1;const t=i.stageObject;if(1!==(t?.geometries.length??0))return!1;const e=t?.geometries[0],s=e?.material;return s instanceof W}_startUpdate(){R(this.view),this._dirty=!1,this._viewState.copyFrom(this.viewState);const{fullWidth:i,fullHeight:t}=this._viewState.camera;if(this._deconflictor.reset(i,t),this._resetIterators(),this._occlusionQueryUids.length=0,!this._checkOcclusion.size)return this._occlusionQuery=s(this._occlusionQuery),void(this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery))}addToActiveGraphics(i){i.ensureInfo(this.visibilityGroup),this._active.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromActiveGraphics(i){this._active.get(i.graphics3DGraphic.graphic.uid)===i&&(ci(i,this.visibilityGroup),i.removeInfo(this.visibilityGroup),this._active.delete(i.graphics3DGraphic.graphic.uid),this.setDirty())}addToCheckOcclusion(i){this._checkOcclusion.set(i.graphics3DGraphic.graphic.uid,i),this.setDirty()}removeFromCheckOcclusion(i){this._checkOcclusion.get(i.graphics3DGraphic.graphic.uid)===i&&this._checkOcclusion.delete(i.graphics3DGraphic.graphic.uid)}_processCheckOcclusion(i){if(0===this._checkOcclusion.size)return!0;const t=this._ensureCheckOcclusionIterator(),e=this._viewState.camera,r=c(K,e.viewInverseTransposeMatrix),o=this.view.map.ground.opacity>0,n="global"===this.view.viewingMode&&o&&e.relativeElevation>0?X:null;let a=0;null!=n&&(l(n.center,_,e.viewMatrix),n.radius=O(this.view.spatialReference).radius,a=M.distanceToSilhouette(n,_));const u=w();for(;;){if(i.done)return!1;i.madeProgress();const s=t.next();if(!0===s.done)break;const o=s.value,c=o.graphics3DGraphic;if(c.destroyed)continue;if(!c.isVisible(1,8))continue;const h=ui(c,this.visibilityGroup);let d=null,p=!0,_=!1;for(const i of h){if(!this.isSupportedLayer(i))continue;d=hi,this._projectHudLayer(i,e,d),Q(u);const t=i.stageObject.geometries[0].material;if(this._expandBoundingRect(u,e,i,t,d),d.isOutsideScreen){p=!1;break}if(this._isCulledBySlice(o,d.positionWorld)){p=!1;break}if(null!=n&&li(d,n,a)){p=!1;break}d.altitude=this.view.renderCoordsHelper.getAltitude(d.positionWorld);const s=o.ensureInfo(this.visibilityGroup);if(s.altitude=d.altitude,s.distance=d.distance,s.distanceToOccluder=d.distanceToOccluder,s.culled=!1,D(s.aabr,u),!i.occlusionCheck)break;l(B,d.positionView,r);const h=this._ensureOcclusionQuery(),y=this._ensureOpaqueOcclusionQuery();0===this._occlusionQueryUids.length&&(this._initOcclusionQuery(h),this._initOcclusionQuery(y));const f=h.addPosition(B),g=y.addPosition(B);if(f===this._occlusionQueryUids.length&&g===f){const t=i.adaptiveOcclusion;this._occlusionQueryUids.push(t?-c.graphic.uid:c.graphic.uid),_=!0}break}const y=this._active.has(c.graphic.uid);if(y||_){if(y&&(!p||!d)){const i=o.ensureInfo(this.visibilityGroup);i.visible=!d,i.culled=!0}}else this._setGraphicVisibility(o,p)}return this._checkOcclusionIterator=null,this._occlusionQueryUids.length||(this._occlusionQuery=s(this._occlusionQuery),this._opaqueOcclusionQuery=s(this._opaqueOcclusionQuery)),this._occlusionQuery?.start(),this._opaqueOcclusionQuery?.start(),!0}_readOcclusionQueryResult(){if(!this._occlusionQuery||!this._occlusionQueryUids.length)return;const i=this._viewState.camera,t=this.view.renderCoordsHelper.getAltitude(i.eye);for(let e=0;e<this._occlusionQueryUids.length;e++){const i=this._occlusionQueryUids[e],s=Math.abs(i),r=i<0,o=this._checkOcclusion.get(s);if(!o)continue;const c=this._occlusionQuery.getOcclusion(e)??-1,n=this._opaqueOcclusionQuery?.getOcclusion(e)??-1,a=o.getInfo(this.visibilityGroup);a&&(a.distanceToOccluder=c>0?a.distance-c:0);const l=0===n||n>0&&this._occludedVisibility(a?a.distance-n:0,a?.distance??n,a?.altitude??0,t,r),u=0===c||c>0&&this._occludedVisibility(a?.distanceToOccluder??0,a?.distance??c,a?.altitude??0,t,r),h=l||u;h&&this._setTransparentMode(o,l&&!u),this._active.has(s)?a&&(a.culled=!h,a.visible=h):this._setGraphicVisibility(o,h)}this._occlusionQueryUids.length=0}_collectActiveGraphics(i){const t=this._ensureActiveGraphicsIterator(),e=16===this.visibilityGroup;for(;!i.done;){i.madeProgress();const s=t.next();if(!0===s.done)return this._activeIterator=null,!0;const r=s.value,o=r.getInfo(this.visibilityGroup);if(!o)continue;const c=!e||r.graphics3DGraphic.isVisible();!c||o.culled?(A(o.aabr,!1,!0),this._setGraphicVisibility(r,c&&o.visible)):this._deconflictor.add(o)}return!1}_occludedVisibility(i,t,e,s,r=!0){const o=Math.max(this._minAltitudeDifference,Math.abs(e-s))-this._minAltitudeDifference,c=r?this._baseOccludedVisibility+this._altitudeFactor*o:0;return 0===i||t-i<=c}_resetIterators(){this._checkOcclusionIterator=null,this._activeIterator=null}_ensureCheckOcclusionIterator(){return this._checkOcclusionIterator??=this._checkOcclusion.values(),this._checkOcclusionIterator}_ensureActiveGraphicsIterator(){return this._activeIterator??=this._active.values(),this._activeIterator}_initOcclusionQuery(i){if(!i)return;const{camera:t}=this._viewState,e=2,s=Math.max(e,e+Math.round(Math.log2(Math.abs(t.relativeElevation))));u(F,this._viewState.camera.eye,2**-s),u(F,h(F,F),2**s),i.init(this._checkOcclusion.size,F)}_ensureOcclusionQuery(){return this._occlusionQuery??=new q({view:this.view}),this._occlusionQuery}_ensureOpaqueOcclusionQuery(){return this._opaqueOcclusionQuery??=new q({view:this.view,category:U.OPAQUE_OCCLUSION_QUERY}),this._opaqueOcclusionQuery}_getNumVisible(i){return this._checkOcclusion.values().reduce((t,e)=>t+(e.getInfo(i)?.visible?1:0),0)}_projectHudLayer(i,t,e){const s=i.stageObject,r=s.geometries[0],o=r.material;d(B,s.boundingVolumeWorldSpace.bounds.center),l(F,B,t.viewMatrix);const c=r.attributes,n=c.get("normal").data,a=c.get("centerOffset")?.data??_,[h]=c.get("groundDistance").data;o.applyShaderOffsets(B,F,n,s.transformation,a,h,t,e.screenSizePerspectiveEvaluators),f(L,F[0],F[1],F[2],1),g(Y,L,t.projectionMatrix),u(e.positionNDC,Y,1/Y[3]),o.applyShaderOffsetsNDC(e.positionNDC,a,h,t,e.positionNDC,J),e.distanceWithoutPolygonOffset=t.depthNDCToWorld(J[2]),e.distance=J[2]===e.positionNDC[2]?e.distanceWithoutPolygonOffset:t.depthNDCToWorld(e.positionNDC[2]),f(Y,e.positionNDC[0],e.positionNDC[1],e.positionNDC[2],1),g(L,Y,t.inverseProjectionMatrix),m(L,L,1/L[3]),p(e.positionView,L[0],L[1],L[2]),d(e.positionWorld,B)}_isCulledBySlice(i,t){return i.slicePlaneEnabled&&this._viewState.slicePlaneEnabled&&P(this._viewState.slicePlane,t)}_expandBoundingRect(i,t,s,r,{positionNDC:o,screenSizePerspectiveEvaluators:c}){const n=s.getScreenSize(ni);c.evaluator.applyVec2(n,n),n[0]*=t.pixelRatio,n[1]*=t.pixelRatio;const a=G(r.calculateRelativeScreenBounds(n,c.alignmentEvaluator.apply(t.pixelRatio),ii),e(0,t.fullWidth,.5+.5*o[0]),e(0,t.fullHeight,.5+.5*o[1])),l=this.marginFactor;if(0!==l){const i=l*Math.min(I(a),j(a));a[0]-=i,a[1]-=i,a[2]+=i,a[3]+=i}k(i,a,i)}_setGraphicVisibility(i,t){const e=i?.graphics3DGraphic;e&&!e.destroyed&&(e.setVisibilityFlag(this.visibilityGroup,8,t),16===this.visibilityGroup&&this.view.labeler.setLabelGraphicVisibility(e,t))}_setTransparentMode(i,t){const e=i?.graphics3DGraphic;if(e&&!e.destroyed)for(const s of e.layers){if("object3d"!==s?.type)continue;const{graphics3DSymbolLayer:i}=s;E(i)&&i.updateTransparentMode(s,t)}}};function ci(i,t){const e=i.graphics3DGraphic;e.destroyed||e.setVisibilityFlag(t,8,!0)}i([r({constructOnly:!0})],oi.prototype,"view",void 0),i([r({type:Boolean,readOnly:!0})],oi.prototype,"_readyToRun",null),i([r({type:Boolean,readOnly:!0})],oi.prototype,"updating",null),i([r({readOnly:!0})],oi.prototype,"_updatingHandles",void 0),oi=i([o("esri.views.3d.layers.graphics.Deconflictor")],oi);const ni=a();class ai{constructor(){this.positionWorld=y(),this.positionView=y(),this.positionNDC=y(),this.altitude=0,this.distance=0,this.distanceToOccluder=0,this.distanceWithoutPolygonOffset=0,this.screenSizePerspectiveEvaluators=new H}get isOutsideScreen(){const i=this.positionNDC;return i[0]<-1||i[1]<-1||i[2]<-1||i[0]>=1||i[1]>=1||i[2]>=1}}function li(i,t,e){return d(Z.direction,i.positionView),p(Z.origin,0,0,0),!!t.intersectRay(Z,$)&&i.distanceWithoutPolygonOffset>e}function ui(i,t){return 16===t?i.labelLayers:i.layers}const hi=new ai;export{oi as Deconflictor,si as DeconflictorGraphic,ri as DeconflictorViewState};