@arcgis/core 4.32.0-next.20250121 → 4.32.0-next.20250123

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 (867) hide show
  1. package/Graphic.js +1 -1
  2. package/Viewpoint.js +1 -1
  3. package/WebLinkChart.js +1 -1
  4. package/analysis/LengthDimension.js +1 -1
  5. package/analysis/SlicePlane.js +1 -1
  6. package/analysis/Viewshed.js +1 -1
  7. package/analysis/ViewshedAnalysis.js +1 -1
  8. package/arcade/featureSetUtils.js +1 -1
  9. package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
  10. package/arcade/featureset/support/shared.js +1 -1
  11. package/arcade/functions/knowledgegraph.js +1 -1
  12. package/arcade/treeAnalysis.js +1 -1
  13. package/assets/components/assets/icon/crosshair16.json +1 -0
  14. package/assets/components/assets/icon/crosshair24.json +1 -0
  15. package/assets/components/assets/icon/crosshair32.json +1 -0
  16. package/assets/components/assets/icon/utilityNetworkLayer16.json +1 -0
  17. package/assets/components/assets/icon/utilityNetworkLayer24.json +1 -0
  18. package/assets/components/assets/icon/utilityNetworkLayer32.json +1 -0
  19. package/assets/esri/core/t9n/Units_ar.json +1 -1
  20. package/assets/esri/core/t9n/Units_bg.json +1 -1
  21. package/assets/esri/core/t9n/Units_bs.json +1 -1
  22. package/assets/esri/core/t9n/Units_ca.json +1 -1
  23. package/assets/esri/core/t9n/Units_cs.json +1 -1
  24. package/assets/esri/core/t9n/Units_da.json +1 -1
  25. package/assets/esri/core/t9n/Units_de.json +1 -1
  26. package/assets/esri/core/t9n/Units_el.json +1 -1
  27. package/assets/esri/core/t9n/Units_es.json +1 -1
  28. package/assets/esri/core/t9n/Units_et.json +1 -1
  29. package/assets/esri/core/t9n/Units_fi.json +1 -1
  30. package/assets/esri/core/t9n/Units_fr.json +1 -1
  31. package/assets/esri/core/t9n/Units_he.json +1 -1
  32. package/assets/esri/core/t9n/Units_hr.json +1 -1
  33. package/assets/esri/core/t9n/Units_hu.json +1 -1
  34. package/assets/esri/core/t9n/Units_id.json +1 -1
  35. package/assets/esri/core/t9n/Units_it.json +1 -1
  36. package/assets/esri/core/t9n/Units_ja.json +1 -1
  37. package/assets/esri/core/t9n/Units_ko.json +1 -1
  38. package/assets/esri/core/t9n/Units_lt.json +1 -1
  39. package/assets/esri/core/t9n/Units_lv.json +1 -1
  40. package/assets/esri/core/t9n/Units_nl.json +1 -1
  41. package/assets/esri/core/t9n/Units_no.json +1 -1
  42. package/assets/esri/core/t9n/Units_pl.json +1 -1
  43. package/assets/esri/core/t9n/Units_pt-BR.json +1 -1
  44. package/assets/esri/core/t9n/Units_pt-PT.json +1 -1
  45. package/assets/esri/core/t9n/Units_ro.json +1 -1
  46. package/assets/esri/core/t9n/Units_ru.json +1 -1
  47. package/assets/esri/core/t9n/Units_sk.json +1 -1
  48. package/assets/esri/core/t9n/Units_sl.json +1 -1
  49. package/assets/esri/core/t9n/Units_sr.json +1 -1
  50. package/assets/esri/core/t9n/Units_sv.json +1 -1
  51. package/assets/esri/core/t9n/Units_th.json +1 -1
  52. package/assets/esri/core/t9n/Units_tr.json +1 -1
  53. package/assets/esri/core/t9n/Units_uk.json +1 -1
  54. package/assets/esri/core/t9n/Units_vi.json +1 -1
  55. package/assets/esri/core/t9n/Units_zh-CN.json +1 -1
  56. package/assets/esri/core/t9n/Units_zh-HK.json +1 -1
  57. package/assets/esri/core/t9n/Units_zh-TW.json +1 -1
  58. package/assets/esri/core/workers/RemoteClient.js +1 -1
  59. package/assets/esri/core/workers/chunks/00479bc2393e5ad0e9b7.js +1 -0
  60. package/assets/esri/core/workers/chunks/0167cf867d8e46c818b0.js +1 -0
  61. package/assets/esri/core/workers/chunks/{6d17488396583d83d9be.js → 0711d3ad4d403bcfdcad.js} +1 -1
  62. package/assets/esri/core/workers/chunks/07360fde6ea65664e6ca.js +1 -0
  63. package/assets/esri/core/workers/chunks/{f8e188af5608293d5b2b.js → 07bff9e742f3e5877f3f.js} +1 -1
  64. package/assets/esri/core/workers/chunks/08ba4ab873a0da6a95eb.js +1 -0
  65. package/assets/esri/core/workers/chunks/{baf6b773b8c714d86cba.js → 0982611dd86f0805d102.js} +1 -1
  66. package/assets/esri/core/workers/chunks/12dd892cf61a76fb40ad.js +1 -0
  67. package/assets/esri/core/workers/chunks/13453393e40ab80329d9.js +1 -0
  68. package/assets/esri/core/workers/chunks/15e08e8a8a72b177d74c.js +1 -0
  69. package/assets/esri/core/workers/chunks/16f82e9d98371431b46d.js +1 -0
  70. package/assets/esri/core/workers/chunks/1787932b984ec8977095.js +1 -0
  71. package/assets/esri/core/workers/chunks/1e3ab66d0e8a7f160f33.js +1 -0
  72. package/assets/esri/core/workers/chunks/1f8eb143f5d665b95593.js +1 -0
  73. package/assets/esri/core/workers/chunks/2079d6e3da42d1ceb4c5.js +1 -0
  74. package/assets/esri/core/workers/chunks/207c040b0e42358a5389.js +1 -0
  75. package/assets/esri/core/workers/chunks/21016d58428b15f7427c.js +1 -0
  76. package/assets/esri/core/workers/chunks/{af0b0a7eedebcf99d05d.js → 2118e9ffb24178ed7f59.js} +1 -1
  77. package/assets/esri/core/workers/chunks/21c12edc0632eb911e73.js +1 -0
  78. package/assets/esri/core/workers/chunks/{12b2c8251ec2d0e2ca46.js → 22721fa9d1e8a8d47b0e.js} +1 -1
  79. package/assets/esri/core/workers/chunks/24a86c52c8bdd0b5eb4d.js +1 -0
  80. package/assets/esri/core/workers/chunks/{9970e0e74cf2877a7ffc.js → 2503beb30f905b78d85f.js} +2 -2
  81. package/assets/esri/core/workers/chunks/2503beb30f905b78d85f.js.LICENSE.txt +15 -0
  82. package/assets/esri/core/workers/chunks/25a6641938a9ccab39b7.js +1 -0
  83. package/assets/esri/core/workers/chunks/26a2bd432e7a1b3870c3.js +1 -0
  84. package/assets/esri/core/workers/chunks/26e9a1889d069e81a483.js +1 -0
  85. package/assets/esri/core/workers/chunks/2840705ae7fa909ab4ed.js +1 -0
  86. package/assets/esri/core/workers/chunks/2971266a49226e769360.js +1 -0
  87. package/assets/esri/core/workers/chunks/298da83f8d507d128213.js +1 -0
  88. package/assets/esri/core/workers/chunks/2a33e83ff2ef16a2b421.js +1 -0
  89. package/assets/esri/core/workers/chunks/2a7f5d09cdc0333fa4bd.js +1 -0
  90. package/assets/esri/core/workers/chunks/2e82c8882a0989ed5431.js +1 -0
  91. package/assets/esri/core/workers/chunks/2ea5e5e6c4660a06b516.js +1 -0
  92. package/assets/esri/core/workers/chunks/304722106439951da6e1.js +1 -0
  93. package/assets/esri/core/workers/chunks/324a5547c64a3bae670d.js +1 -0
  94. package/assets/esri/core/workers/chunks/349f31a1fb489fbfe60d.js +1 -0
  95. package/assets/esri/core/workers/chunks/{f95d4fb1199161d8b683.js → 34b31091e172e910d750.js} +1 -1
  96. package/assets/esri/core/workers/chunks/{c690268f48bc84778b23.js → 3b6f2e5ec0a372ae8b94.js} +1 -1
  97. package/assets/esri/core/workers/chunks/3c23e567cfb7372c44ba.js +1 -0
  98. package/assets/esri/core/workers/chunks/{66d40a486aa3caa76106.js → 3c591f76e7d6204b7780.js} +1 -1
  99. package/assets/esri/core/workers/chunks/3f25b7844816bbc3a9fe.js +1 -0
  100. package/assets/esri/core/workers/chunks/402de76b5de05615e111.js +1 -0
  101. package/assets/esri/core/workers/chunks/453f71ac3579524221b2.js +1 -0
  102. package/assets/esri/core/workers/chunks/454034bad60414a9ab7f.js +1 -0
  103. package/assets/esri/core/workers/chunks/472564bd841d0c5d8f17.js +1 -0
  104. package/assets/esri/core/workers/chunks/483787099d2ba8b8022d.js +1 -0
  105. package/assets/esri/core/workers/chunks/499e845c727b7891283d.js +2 -0
  106. package/assets/esri/core/workers/chunks/{34b86b4b9e6c1937ee39.js.LICENSE.txt → 499e845c727b7891283d.js.LICENSE.txt} +4 -6
  107. package/assets/esri/core/workers/chunks/4d7bd2bbe9045a2fee7a.js +1 -0
  108. package/assets/esri/core/workers/chunks/4e5cf2d489db2a57d3bd.js +1 -0
  109. package/assets/esri/core/workers/chunks/52a1c14dc33964e197f6.js +1 -0
  110. package/assets/esri/core/workers/chunks/{f8b85c0074d4fe4c158e.js → 571a0af503dbe8093814.js} +1 -1
  111. package/assets/esri/core/workers/chunks/57ebfa7f163a1b40cd1e.js +1 -0
  112. package/assets/esri/core/workers/chunks/589777dab423b619da47.js +1 -0
  113. package/assets/esri/core/workers/chunks/{2de5fe03e28ca8a72597.js → 5a83f90b55a5efbe1ef2.js} +1 -1
  114. package/assets/esri/core/workers/chunks/5c57aa9fdc4e1bab61ac.js +1 -0
  115. package/assets/esri/core/workers/chunks/5e889a675cbaff03ad5a.js +1 -0
  116. package/assets/esri/core/workers/chunks/5fbdb5fea7d6676fcf19.js +1 -0
  117. package/assets/esri/core/workers/chunks/610b33b7291cffcc4e5d.js +1 -0
  118. package/assets/esri/core/workers/chunks/644e83f48752a34f0d1a.js +1 -0
  119. package/assets/esri/core/workers/chunks/{c81204ae663e58c7b689.js → 6aa6a56bcece0793967e.js} +1 -1
  120. package/assets/esri/core/workers/chunks/6d179eb8edcefb91d5d7.js +1 -0
  121. package/assets/esri/core/workers/chunks/6df1bda3826a4a3c1dc9.js +1 -0
  122. package/assets/esri/core/workers/chunks/6e6422eda398774acbc7.js +1 -0
  123. package/assets/esri/core/workers/chunks/6eb829a7959df2269b0e.js +1 -0
  124. package/assets/esri/core/workers/chunks/7719fe672ea74cdc87be.js +1 -0
  125. package/assets/esri/core/workers/chunks/774cbf14c74504458a6f.js +1 -0
  126. package/assets/esri/core/workers/chunks/79afe4674a0557eb26e4.js +1 -0
  127. package/assets/esri/core/workers/chunks/{02b2175132c9720bc756.js → 7a0415db78c68d31733f.js} +1 -1
  128. package/assets/esri/core/workers/chunks/7a9e1696dc6120df15b0.js +1 -0
  129. package/assets/esri/core/workers/chunks/7ae1f26ded268099f429.js +1 -0
  130. package/assets/esri/core/workers/chunks/7bf08823f861628144a1.js +1 -0
  131. package/assets/esri/core/workers/chunks/7d49b5bc9eb102e467ab.js +1 -0
  132. package/assets/esri/core/workers/chunks/7e4d72279cc599b7029c.js +1 -0
  133. package/assets/esri/core/workers/chunks/{89198ca24466d939e4e8.js → 7ee2d34d9eaab5e8f589.js} +1 -1
  134. package/assets/esri/core/workers/chunks/7fd48f0a2b35779e680a.js +1 -0
  135. package/assets/esri/core/workers/chunks/81efe1f47fd41b7a5cc1.js +1 -0
  136. package/assets/esri/core/workers/chunks/835fa4484c58d9b31c78.js +1 -0
  137. package/assets/esri/core/workers/chunks/{44ec3c77339b9765aaa4.js → 8584ccce34972e28c040.js} +1 -1
  138. package/assets/esri/core/workers/chunks/86149b4a5a148744c7d1.js +1 -0
  139. package/assets/esri/core/workers/chunks/86b63a4805f7dfbf5857.js +1 -0
  140. package/assets/esri/core/workers/chunks/89df68dd6a0386210d5d.js +1 -0
  141. package/assets/esri/core/workers/chunks/8a13cd313d309281dbb9.js +1 -0
  142. package/assets/esri/core/workers/chunks/{1bf472f3ca67b0275667.js → 8a1e4f65fc81aba7a704.js} +1 -1
  143. package/assets/esri/core/workers/chunks/8b8dd0771fbc582e1e24.js +2 -0
  144. package/assets/esri/core/workers/chunks/{280b7b885b96a5a68716.js.LICENSE.txt → 8b8dd0771fbc582e1e24.js.LICENSE.txt} +4 -6
  145. package/assets/esri/core/workers/chunks/8e334fa440ae542e2e34.js +1 -0
  146. package/assets/esri/core/workers/chunks/91384398f01485631f70.js +1 -0
  147. package/assets/esri/core/workers/chunks/92155d112ebb6a4c6c6e.js +1 -0
  148. package/assets/esri/core/workers/chunks/{6a737f056b2b95f09776.js → 92871ebb339a7b6ff29c.js} +1 -1
  149. package/assets/esri/core/workers/chunks/92d243c7bc2f92f6cd33.js +1 -0
  150. package/assets/esri/core/workers/chunks/971c956de1f8dd230d0f.js +1 -0
  151. package/assets/esri/core/workers/chunks/9848e9b9cc62328bfeb4.js +1 -0
  152. package/assets/esri/core/workers/chunks/9848f496d534feff6df1.js +314 -0
  153. package/assets/esri/core/workers/chunks/9bd22cdf6eb158555906.js +1 -0
  154. package/assets/esri/core/workers/chunks/{3a3e9701e5d7b05f41b7.js → 9bfb091cec7eed6c8111.js} +1 -1
  155. package/assets/esri/core/workers/chunks/9c5c6ecaf5be24279fa5.js +1 -0
  156. package/assets/esri/core/workers/chunks/9c6380af3bc3130658e1.js +1 -0
  157. package/assets/esri/core/workers/chunks/{17726b0ab1bf66185d66.js → 9d6d82419de2b76508d8.js} +1 -1
  158. package/assets/esri/core/workers/chunks/9ed1691eab19dfb1cf04.js +1 -0
  159. package/assets/esri/core/workers/chunks/a0a4c7605c678d2de7ef.js +1 -0
  160. package/assets/esri/core/workers/chunks/a3ae5ea96898de327147.js +1 -0
  161. package/assets/esri/core/workers/chunks/aca9a39eb1181a7733bb.js +1 -0
  162. package/assets/esri/core/workers/chunks/ad215219e5eef8598745.js +1 -0
  163. package/assets/esri/core/workers/chunks/ad7596e7f81f557bb2c8.js +1 -0
  164. package/assets/esri/core/workers/chunks/adf361e8b2887921a69c.js +1 -0
  165. package/assets/esri/core/workers/chunks/adfa126cea32298c28e9.js +1 -0
  166. package/assets/esri/core/workers/chunks/b21b152fa15896577242.js +2 -0
  167. package/assets/esri/core/workers/chunks/b21b152fa15896577242.js.LICENSE.txt +8 -0
  168. package/assets/esri/core/workers/chunks/b3aeda290470dcb2bdd2.js +1 -0
  169. package/assets/esri/core/workers/chunks/b3f9d7a676076a7557f5.js +1 -0
  170. package/assets/esri/core/workers/chunks/b42ecc7c3eb2fd8d1308.js +1 -0
  171. package/assets/esri/core/workers/chunks/b44cf0e4c2f93408cabc.js +1 -0
  172. package/assets/esri/core/workers/chunks/b70a9d23e549d0e60e0f.js +1 -0
  173. package/assets/esri/core/workers/chunks/b882f921387e21fb263d.js +1 -0
  174. package/assets/esri/core/workers/chunks/ba3c18d1efde46461231.js +1 -0
  175. package/assets/esri/core/workers/chunks/bb73cd34fbae935ccbcc.js +1 -0
  176. package/assets/esri/core/workers/chunks/bbdf93f2ac9bd80338b2.js +1 -0
  177. package/assets/esri/core/workers/chunks/bc0183350841e09d71fa.js +1 -0
  178. package/assets/esri/core/workers/chunks/bddfdbb2fb1dd813e8f2.js +1 -0
  179. package/assets/esri/core/workers/chunks/bf3c4c1bff8b71bc0b13.js +1 -0
  180. package/assets/esri/core/workers/chunks/c1970657a287ec96001e.js +1 -0
  181. package/assets/esri/core/workers/chunks/{399e67ccb69a5b206354.js → c1fd87af3129873369fd.js} +1 -1
  182. package/assets/esri/core/workers/chunks/{82266ca8002554198208.js → c2336d1f5b2b7bf6e7a7.js} +1 -1
  183. package/assets/esri/core/workers/chunks/c571c2155589d711005c.js +1 -0
  184. package/assets/esri/core/workers/chunks/c83b26ff96e39266adc2.js +1 -0
  185. package/assets/esri/core/workers/chunks/ca5bd71bc2c1b1b3f9d9.js +1 -0
  186. package/assets/esri/core/workers/chunks/{98da074899c82f0ded0b.js → cdd8983cf3a301805680.js} +1 -1
  187. package/assets/esri/core/workers/chunks/{435c037ccba71f1e22d3.js → d31f7598629f7cc50233.js} +1 -1
  188. package/assets/esri/core/workers/chunks/d45ff061bf71b73e9f26.js +1 -0
  189. package/assets/esri/core/workers/chunks/d4760e583dfac95dc8a1.js +1 -0
  190. package/assets/esri/core/workers/chunks/{7fe92f072d3641ec4662.js → d5a749156cb4ade92128.js} +1 -1
  191. package/assets/esri/core/workers/chunks/d6f2a023ddd26a544eb4.js +1 -0
  192. package/assets/esri/core/workers/chunks/d71a5c029fc9f4820589.js +1 -0
  193. package/assets/esri/core/workers/chunks/d7ccbe9b36e89b385040.js +1 -0
  194. package/assets/esri/core/workers/chunks/{e9c21907fabcedbd32ae.js → d8386803854f4b3e2576.js} +1 -1
  195. package/assets/esri/core/workers/chunks/d8c762ca94e3a11b125d.js +1 -0
  196. package/assets/esri/core/workers/chunks/da01b509b2237689faad.js +1 -0
  197. package/assets/esri/core/workers/chunks/daeca0feb37bbb198677.js +1 -0
  198. package/assets/esri/core/workers/chunks/dbc447413ab40a79ba87.js +1 -0
  199. package/assets/esri/core/workers/chunks/de2ca2dc1b5d62c0d82e.js +1 -0
  200. package/assets/esri/core/workers/chunks/df86a49ddc505b4a7c4a.js +1 -0
  201. package/assets/esri/core/workers/chunks/dfa4be2e07cc4c0938b0.js +1 -0
  202. package/assets/esri/core/workers/chunks/{fa331c8b556bb7fb8ae3.js → dfaf1da323906ee60549.js} +1 -1
  203. package/assets/esri/core/workers/chunks/e067cef3b3ac3af49b88.js +1 -0
  204. package/assets/esri/core/workers/chunks/e1108227821a85a784bc.js +2 -0
  205. package/assets/esri/core/workers/chunks/e1108227821a85a784bc.js.LICENSE.txt +9 -0
  206. package/assets/esri/core/workers/chunks/e42c8045f54aa88c9f6e.js +1 -0
  207. package/assets/esri/core/workers/chunks/e56647e61296643c5f84.js +1 -0
  208. package/assets/esri/core/workers/chunks/e6087eda5e3b7e5ad3e1.js +1 -0
  209. package/assets/esri/core/workers/chunks/e89439cc20b7f4c6a9d1.js +1 -0
  210. package/assets/esri/core/workers/chunks/e9993d4f2bfdc434fbcc.js +1 -0
  211. package/assets/esri/core/workers/chunks/ecc3a2adc384677bec38.js +1 -0
  212. package/assets/esri/core/workers/chunks/{54c149f90bf94b797b36.js → ed30f46236da29c15430.js} +1 -1
  213. package/assets/esri/core/workers/chunks/f2cf05fbbb51d657d300.js +1 -0
  214. package/assets/esri/core/workers/chunks/{1c67f4f84fff70e20902.js → f31a9d88113bb86d946e.js} +2 -2
  215. package/assets/esri/core/workers/chunks/{1c67f4f84fff70e20902.js.LICENSE.txt → f31a9d88113bb86d946e.js.LICENSE.txt} +4 -6
  216. package/assets/esri/core/workers/chunks/f62f657f9fef28f492e0.js +1 -0
  217. package/assets/esri/core/workers/chunks/fd1506eedb1cee717822.js +2 -0
  218. package/assets/esri/core/workers/chunks/fd1506eedb1cee717822.js.LICENSE.txt +3 -0
  219. package/assets/esri/core/workers/chunks/fef135e55706d84d1947.js +1 -0
  220. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  221. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  222. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  223. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  224. package/assets/esri/themes/base/widgets/_FeatureTable.scss +8 -7
  225. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +24 -0
  226. package/assets/esri/themes/base/widgets/_UtilityNetworkTrace.scss +49 -24
  227. package/assets/esri/themes/dark/main.css +1 -1
  228. package/assets/esri/themes/light/main.css +1 -1
  229. package/assets/esri/themes/light/view.css +1 -1
  230. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  231. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ar.json +1 -1
  232. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bg.json +1 -1
  233. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_bs.json +1 -1
  234. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ca.json +1 -1
  235. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_cs.json +1 -1
  236. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_da.json +1 -1
  237. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_de.json +1 -1
  238. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_el.json +1 -1
  239. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  240. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_es.json +1 -1
  241. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_et.json +1 -1
  242. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fi.json +1 -1
  243. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_fr.json +1 -1
  244. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_he.json +1 -1
  245. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hr.json +1 -1
  246. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_hu.json +1 -1
  247. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_id.json +1 -1
  248. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_it.json +1 -1
  249. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ja.json +1 -1
  250. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ko.json +1 -1
  251. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lt.json +1 -1
  252. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_lv.json +1 -1
  253. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_nl.json +1 -1
  254. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_no.json +1 -1
  255. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pl.json +1 -1
  256. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-BR.json +1 -1
  257. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_pt-PT.json +1 -1
  258. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ro.json +1 -1
  259. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_ru.json +1 -1
  260. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sk.json +1 -1
  261. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sl.json +1 -1
  262. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sr.json +1 -1
  263. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_sv.json +1 -1
  264. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_th.json +1 -1
  265. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_tr.json +1 -1
  266. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_uk.json +1 -1
  267. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_vi.json +1 -1
  268. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-CN.json +1 -1
  269. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-HK.json +1 -1
  270. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_zh-TW.json +1 -1
  271. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace.json +1 -1
  272. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ar.json +1 -1
  273. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bg.json +1 -1
  274. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_bs.json +1 -1
  275. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ca.json +1 -1
  276. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_cs.json +1 -1
  277. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_da.json +1 -1
  278. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_de.json +1 -1
  279. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_el.json +1 -1
  280. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_en.json +1 -1
  281. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_es.json +1 -1
  282. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_et.json +1 -1
  283. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fi.json +1 -1
  284. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_fr.json +1 -1
  285. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_he.json +1 -1
  286. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hr.json +1 -1
  287. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_hu.json +1 -1
  288. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_id.json +1 -1
  289. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_it.json +1 -1
  290. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ja.json +1 -1
  291. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ko.json +1 -1
  292. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lt.json +1 -1
  293. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_lv.json +1 -1
  294. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_nl.json +1 -1
  295. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_no.json +1 -1
  296. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pl.json +1 -1
  297. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-BR.json +1 -1
  298. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_pt-PT.json +1 -1
  299. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ro.json +1 -1
  300. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_ru.json +1 -1
  301. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sk.json +1 -1
  302. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sl.json +1 -1
  303. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sr.json +1 -1
  304. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_sv.json +1 -1
  305. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_th.json +1 -1
  306. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_tr.json +1 -1
  307. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_uk.json +1 -1
  308. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_vi.json +1 -1
  309. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-CN.json +1 -1
  310. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-HK.json +1 -1
  311. package/assets/esri/widgets/UtilityNetworkTrace/t9n/UtilityNetworkTrace_zh-TW.json +1 -1
  312. package/chunks/BloomComposition.glsl.js +33 -23
  313. package/chunks/Fog.glsl.js +4 -6
  314. package/chunks/Viewshed.glsl.js +7 -15
  315. package/chunks/arcgis-knowledge-client-core-simd.js +1 -1
  316. package/chunks/arcgis-knowledge-client-core.js +1 -1
  317. package/chunks/cameraUtilsPlanar.js +1 -1
  318. package/chunks/cameraUtilsSpherical.js +1 -1
  319. package/chunks/lyr3DMain.js +1 -1
  320. package/chunks/lyr3DWorker.js +1 -1
  321. package/core/quantity.d.ts +1 -1
  322. package/core/quantity.js +5 -0
  323. package/core/units.d.ts +1 -1
  324. package/core/units.js +5 -0
  325. package/editing/sharedTemplates/SharedTemplate.js +1 -1
  326. package/editing/sharedTemplates/SharedTemplateMetadata.d.ts +4 -0
  327. package/editing/sharedTemplates/SharedTemplateMetadata.js +1 -1
  328. package/editing/sharedTemplates/templateDefinitions/parts/PresetTemplatePart.js +1 -1
  329. package/editing/templateUtils.js +5 -0
  330. package/form/elements/UtilityNetworkAssociationsElement.js +1 -1
  331. package/geometry/geometryEngine.js +1 -1
  332. package/geometry/geometryEngineAsync.js +1 -1
  333. package/geometry/operators/projectOperator.d.ts +4 -0
  334. package/geometry/operators/shapePreservingProjectOperator.d.ts +4 -0
  335. package/geometry/operators/support/GeographicTransformation.d.ts +4 -0
  336. package/geometry/operators/support/GeographicTransformation.js +1 -1
  337. package/geometry/operators/support/GeographicTransformationStep.d.ts +4 -0
  338. package/geometry/operators/support/apiConverter.js +1 -1
  339. package/geometry/operators/support/geographicTransformationUtils.d.ts +4 -0
  340. package/geometry/support/GeographicTransformation.d.ts +2 -2
  341. package/geometry/support/GeographicTransformationStep.d.ts +2 -2
  342. package/geometry/support/geodesicUtils.js +1 -1
  343. package/geometry/support/geometryUtils.js +1 -1
  344. package/geometry/support/meshUtils/elevation.js +1 -1
  345. package/geometry/support/near.js +1 -1
  346. package/geometry/support/rotate.js +1 -1
  347. package/geometry/support/typeUtils.js +1 -1
  348. package/geometry.js +1 -1
  349. package/grids/MeasuredGrid.js +1 -1
  350. package/interfaces.d.ts +2069 -622
  351. package/layers/BaseElevationLayer.js +1 -1
  352. package/layers/BingMapsLayer.js +1 -1
  353. package/layers/CSVLayer.js +1 -1
  354. package/layers/FeatureLayer.js +1 -1
  355. package/layers/GeoJSONLayer.js +1 -1
  356. package/layers/GeoRSSLayer.js +1 -1
  357. package/layers/ILyr3DWasmPerSceneView.js +1 -1
  358. package/layers/KMLLayer.js +1 -1
  359. package/layers/KnowledgeGraphLayer.js +1 -1
  360. package/layers/Layer.js +1 -1
  361. package/layers/LinkChartLayer.js +1 -1
  362. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  363. package/layers/MapNotesLayer.js +1 -1
  364. package/layers/OGCFeatureLayer.js +1 -1
  365. package/layers/OpenStreetMapLayer.js +1 -1
  366. package/layers/ParquetLayer.js +1 -1
  367. package/layers/RouteLayer.js +1 -1
  368. package/layers/SceneLayer.js +1 -1
  369. package/layers/StreamLayer.js +1 -1
  370. package/layers/VideoLayer.js +1 -1
  371. package/layers/WFSLayer.js +1 -1
  372. package/layers/WebTileLayer.js +1 -1
  373. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  374. package/layers/catalog/CatalogFootprintLayer.js +1 -1
  375. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  376. package/layers/graphics/controllers/StreamController.js +1 -1
  377. package/layers/graphics/data/QueryEngineResult.js +1 -1
  378. package/layers/graphics/hydratedFeatures.js +1 -1
  379. package/layers/graphics/sources/CSVSource.js +1 -1
  380. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  381. package/layers/graphics/sources/GeoJSONSource.js +1 -1
  382. package/layers/graphics/sources/MemorySource.js +1 -1
  383. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  384. package/layers/graphics/sources/ParquetSource.js +1 -1
  385. package/layers/graphics/sources/WFSSource.js +1 -1
  386. package/layers/graphics/sources/connections/GeoEventConnection.js +1 -1
  387. package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
  388. package/layers/graphics/sources/support/uploadAssets.js +1 -1
  389. package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
  390. package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
  391. package/layers/knowledgeGraph/SessionMemoryStorage.js +1 -1
  392. package/layers/knowledgeGraph/supportUtils.js +1 -1
  393. package/layers/mixins/ArcGISCachedService.js +1 -1
  394. package/layers/mixins/ArcGISImageService.js +1 -1
  395. package/layers/mixins/FeatureReductionLayer.js +1 -1
  396. package/layers/mixins/ImageryTileMixin.js +1 -1
  397. package/layers/ogc/ogcFeatureUtils.js +1 -1
  398. package/layers/ogc/wfsUtils.js +1 -1
  399. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  400. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  401. package/layers/orientedImagery/queries.js +1 -1
  402. package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
  403. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  404. package/layers/orientedImagery/transformations/utils.js +1 -1
  405. package/layers/support/ElevationSampler.js +1 -1
  406. package/layers/support/FeatureFilter.js +1 -1
  407. package/layers/support/FeatureReductionBinning.js +1 -1
  408. package/layers/support/FeatureReductionCluster.js +1 -1
  409. package/layers/support/KMLMapImage.js +1 -1
  410. package/layers/support/KMLSublayer.js +1 -1
  411. package/layers/support/LabelClass.js +1 -1
  412. package/layers/support/LocalMediaElementSource.js +1 -1
  413. package/layers/support/MultidimensionalSubset.js +1 -1
  414. package/layers/support/OrderByInfo.d.ts +4 -0
  415. package/layers/support/RasterWorker.js +1 -1
  416. package/layers/support/RouteStopSymbols.js +1 -1
  417. package/layers/support/RouteSymbols.js +1 -1
  418. package/layers/support/SceneModification.js +1 -1
  419. package/layers/support/Sublayer.js +1 -1
  420. package/layers/support/SubtypeSublayer.js +1 -1
  421. package/layers/support/TelemetryData.js +1 -1
  422. package/layers/support/TrackInfo.js +1 -1
  423. package/layers/support/VideoFrame.js +1 -1
  424. package/layers/support/featureLayerUtils.js +1 -1
  425. package/layers/support/mediaUtils.js +1 -1
  426. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  427. package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
  428. package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
  429. package/layers/support/rasterDatasets/InMemoryRaster.js +1 -1
  430. package/layers/support/rasterDatasets/MRFRaster.js +1 -1
  431. package/layers/support/rasterDatasets/RawBlockCache.js +1 -1
  432. package/layers/support/rasterDatasets/TIFFRaster.js +1 -1
  433. package/layers/support/rasterDatasets/WCSRaster.js +1 -1
  434. package/layers/support/rasterDatasets/covJSONParser.js +1 -1
  435. package/layers/support/rasterDatasets/pamParser.js +1 -1
  436. package/layers/support/rasterFunctions/ClipFunctionArguments.js +1 -1
  437. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  438. package/layers/support/rasterTransforms/PolynomialTransform.js +1 -1
  439. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  440. package/layers/support/source/QueryTableDataSource.js +1 -1
  441. package/layers/support/subtypeGroupLayerUtils.js +1 -1
  442. package/networks/Network.js +1 -1
  443. package/networks/support/utils.js +1 -1
  444. package/package.json +2 -2
  445. package/pointCloudRenderers.js +1 -1
  446. package/rasterRenderers.js +1 -1
  447. package/renderers/ClassBreaksRenderer.js +1 -1
  448. package/renderers/HeatmapRenderer.js +1 -1
  449. package/renderers/PieChartRenderer.js +1 -1
  450. package/renderers/UniqueValueRenderer.js +1 -1
  451. package/renderers/VectorFieldRenderer.js +1 -1
  452. package/renderers/support/RasterPresetRenderer.js +1 -1
  453. package/renderers/support/commonProperties.js +1 -1
  454. package/renderers/support/jsonUtils.js +1 -1
  455. package/renderers/support/rasterRendererHelper.js +1 -1
  456. package/renderers/support/rasterTypeUtils.js +5 -0
  457. package/renderers/support/typeUtils.js +5 -0
  458. package/renderers.js +1 -1
  459. package/rest/featureService/FeatureService.js +1 -1
  460. package/rest/geometryService/autoComplete.js +1 -1
  461. package/rest/geometryService/buffer.js +1 -1
  462. package/rest/geometryService/cut.js +1 -1
  463. package/rest/geometryService/trimExtend.js +1 -1
  464. package/rest/imageService.js +1 -1
  465. package/rest/knowledgeGraph/Entity.js +1 -1
  466. package/rest/knowledgeGraph/GraphQueryStreaming.js +1 -1
  467. package/rest/knowledgeGraph/ProtoFeatureCollection.js +1 -1
  468. package/rest/knowledgeGraph/Relationship.js +1 -1
  469. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.d.ts +4 -0
  470. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsConfiguration.js +5 -0
  471. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.d.ts +4 -0
  472. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsEntity.js +5 -0
  473. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +4 -0
  474. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.js +5 -0
  475. package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +4 -0
  476. package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.js +5 -0
  477. package/rest/knowledgeGraph/toolService/findPaths/FindPathsToolSettings.d.ts +4 -0
  478. package/rest/knowledgeGraph/toolService/findPaths/FindPathsToolSettings.js +5 -0
  479. package/rest/knowledgeGraph/wasmInterface/queryToWasmEncodedFactories.js +1 -1
  480. package/rest/knowledgeGraph/wasmInterface/updateToWasmEncodedFactories.js +1 -1
  481. package/rest/knowledgeGraph/wasmInterface/wasmToQueryResponseObjFactories.js +1 -1
  482. package/rest/knowledgeGraphService.js +1 -1
  483. package/rest/networks/support/Association.js +1 -1
  484. package/rest/networks/support/ValidateNetworkTopologyParameters.js +1 -1
  485. package/rest/places.js +1 -1
  486. package/rest/print.js +1 -1
  487. package/rest/query/executeForExtent.js +1 -1
  488. package/rest/query/executeForTopExtents.js +1 -1
  489. package/rest/support/AddressToLocationsParameters.js +1 -1
  490. package/rest/support/AddressesToLocationsParameters.js +1 -1
  491. package/rest/support/AggregateFeatureSet.js +1 -1
  492. package/rest/support/AttributeBinsQuery.js +1 -1
  493. package/rest/support/BaseImageMeasureParameters.js +1 -1
  494. package/rest/support/BufferParameters.js +1 -1
  495. package/rest/support/ClosestFacilityParameters.js +1 -1
  496. package/rest/support/DataLayer.js +1 -1
  497. package/rest/support/DensifyParameters.js +1 -1
  498. package/rest/support/DirectionLine.js +1 -1
  499. package/rest/support/DirectionPoint.js +1 -1
  500. package/rest/support/DirectionsEvent.js +1 -1
  501. package/rest/support/DirectionsFeature.js +1 -1
  502. package/rest/support/DirectionsFeatureSet.js +1 -1
  503. package/rest/support/DistanceParameters.js +1 -1
  504. package/rest/support/FeatureSet.js +1 -1
  505. package/rest/support/FindParameters.js +1 -1
  506. package/rest/support/FindResult.js +1 -1
  507. package/rest/support/IdentifyParameters.js +1 -1
  508. package/rest/support/IdentifyResult.js +1 -1
  509. package/rest/support/ImageAngleParameters.js +1 -1
  510. package/rest/support/ImageAngleResult.js +1 -1
  511. package/rest/support/ImageAreaParameters.js +1 -1
  512. package/rest/support/ImageBoundaryResult.js +1 -1
  513. package/rest/support/ImageDistanceParameters.js +1 -1
  514. package/rest/support/ImageGPSInfoParameters.js +1 -1
  515. package/rest/support/ImageHeightParameters.js +1 -1
  516. package/rest/support/ImageHistogramParameters.js +1 -1
  517. package/rest/support/ImageIdentifyParameters.js +1 -1
  518. package/rest/support/ImagePixelLocationParameters.js +1 -1
  519. package/rest/support/ImagePointParameters.js +1 -1
  520. package/rest/support/ImagePointResult.js +1 -1
  521. package/rest/support/ImageSampleParameters.js +1 -1
  522. package/rest/support/ImageToMapMultirayParameters.js +1 -1
  523. package/rest/support/ImageToMapParameters.js +1 -1
  524. package/rest/support/ImageVolumeParameters.js +1 -1
  525. package/rest/support/LengthsParameters.js +1 -1
  526. package/rest/support/LocationToAddressParameters.js +1 -1
  527. package/rest/support/MapToImageParameters.js +1 -1
  528. package/rest/support/MeasureAreaFromImageResult.js +1 -1
  529. package/rest/support/MeasureFromImageParameters.js +1 -1
  530. package/rest/support/MeasureLengthFromImageResult.js +1 -1
  531. package/rest/support/PointBarrier.js +1 -1
  532. package/rest/support/PolygonBarrier.js +1 -1
  533. package/rest/support/PolylineBarrier.js +1 -1
  534. package/rest/support/ProjectParameters.js +1 -1
  535. package/rest/support/QuantizationParameters.js +1 -1
  536. package/rest/support/Query.js +1 -1
  537. package/rest/support/RelationshipQuery.js +1 -1
  538. package/rest/support/RouteInfo.js +1 -1
  539. package/rest/support/RouteParameters.js +1 -1
  540. package/rest/support/ServiceAreaParameters.js +1 -1
  541. package/rest/support/Stop.js +1 -1
  542. package/rest/support/SuggestLocationsParameters.js +1 -1
  543. package/rest/support/TopFeaturesQuery.js +1 -1
  544. package/rest/support/TrimExtendParameters.js +1 -1
  545. package/rest/support/meshFeatureAttributes.js +1 -1
  546. package/smartMapping/labels/support/utils.js +1 -1
  547. package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
  548. package/smartMapping/renderers/color.js +1 -1
  549. package/smartMapping/renderers/dotDensity.js +1 -1
  550. package/smartMapping/renderers/heatmap.js +1 -1
  551. package/smartMapping/renderers/location.js +1 -1
  552. package/smartMapping/renderers/pieChart.js +1 -1
  553. package/smartMapping/renderers/size.js +1 -1
  554. package/smartMapping/renderers/support/referenceSizeUtils.js +1 -1
  555. package/smartMapping/renderers/support/utils.js +1 -1
  556. package/smartMapping/renderers/type.js +1 -1
  557. package/smartMapping/statistics/support/utils.js +1 -1
  558. package/support/arcadeOnDemand.js +1 -1
  559. package/support/arcadeUtils.js +1 -1
  560. package/support/revision.js +1 -1
  561. package/symbols/cim/CIMSymbolHelper.js +1 -1
  562. package/symbols/cim/cimAnalyzer.js +1 -1
  563. package/symbols/cim/effects/EffectBuffer.js +1 -1
  564. package/symbols/cim/effects/EffectDonut.js +1 -1
  565. package/symbols/cim/effects/EffectOffset.js +1 -1
  566. package/symbols/support/cimConversionUtils.js +1 -1
  567. package/symbols/support/defaults3D.js +1 -1
  568. package/symbols/support/jsonUtils.js +1 -1
  569. package/symbols/support/symbolConversion.js +1 -1
  570. package/symbols/support/typeUtils.js +5 -0
  571. package/symbols/support/utils.js +1 -1
  572. package/symbols/support/webStyleSymbolUtils.js +1 -1
  573. package/symbols.js +1 -1
  574. package/undoredo/support/Services.js +1 -1
  575. package/unionTypes.d.ts +4 -0
  576. package/unionTypes.js +5 -0
  577. package/views/2d/AnimationManager.js +1 -1
  578. package/views/2d/MapViewConstraints.js +1 -1
  579. package/views/2d/ViewState.js +1 -1
  580. package/views/2d/ViewStateManager.js +1 -1
  581. package/views/2d/engine/flow/FlowStrategy.js +1 -1
  582. package/views/2d/engine/flow/dataUtils.js +1 -1
  583. package/views/2d/engine/vectorTiles/tileInfoUtils.js +1 -1
  584. package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
  585. package/views/2d/engine/webgl/shaderGraph/techniques/createTestMeshData.js +1 -1
  586. package/views/2d/engine/webgl/shaderGraph/techniques/markers/ComputedMarkerParams.js +1 -1
  587. package/views/2d/grid/gridUtils.js +1 -1
  588. package/views/2d/interactive/SnappingVisualizer2D.js +1 -1
  589. package/views/2d/interactive/editingTools/ControlPointsTransformTool.js +1 -1
  590. package/views/2d/interactive/editingTools/TransformTool.js +1 -1
  591. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  592. package/views/2d/interactive/editingTools/draw/symbols.js +1 -1
  593. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  594. package/views/2d/layers/MediaLayerView2D.js +1 -1
  595. package/views/2d/layers/TileLayerView2D.js +1 -1
  596. package/views/2d/layers/VideoLayerView2D.js +1 -1
  597. package/views/2d/layers/features/processor/BinningStrategy.js +1 -1
  598. package/views/2d/layers/features/processor/TrackStrategy.js +1 -1
  599. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  600. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  601. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  602. package/views/2d/layers/support/clusterUtils.js +1 -1
  603. package/views/2d/navigation/actions/Pan.js +1 -1
  604. package/views/2d/navigation/actions/Rotate.js +1 -1
  605. package/views/2d/pointToPoint/Camera.js +1 -1
  606. package/views/3d/analysis/Dimension/DimensionTool.js +1 -1
  607. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  608. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  609. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  610. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  611. package/views/3d/analysis/LineOfSight/LineOfSightRayIntersector.js +1 -1
  612. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  613. package/views/3d/analysis/Viewshed/ViewshedComputedData.js +1 -1
  614. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  615. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  616. package/views/3d/environment/EnvironmentManager.js +1 -1
  617. package/views/3d/environment/Fog.glsl.js +1 -1
  618. package/views/3d/interactive/Manipulator3D.js +1 -1
  619. package/views/3d/interactive/editingTools/dragEventPipeline3D.js +1 -1
  620. package/views/3d/interactive/editingTools/media/MediaElementControllerControlPoints.js +1 -1
  621. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  622. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  623. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  624. package/views/3d/layers/Lyr3DWasm.js +1 -1
  625. package/views/3d/layers/VoxelLayerView3D.js +1 -1
  626. package/views/3d/layers/graphics/ElevationQuery.js +1 -1
  627. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  628. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  629. package/views/3d/layers/graphics/QueryEngine.js +1 -1
  630. package/views/3d/layers/graphics/elevationAlignPointsInFeatures.js +1 -1
  631. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  632. package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
  633. package/views/3d/layers/i3s/I3SUtil.js +1 -1
  634. package/views/3d/layers/support/FeatureTile.js +1 -1
  635. package/views/3d/layers/support/FeatureTileDescriptor.js +1 -1
  636. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  637. package/views/3d/layers/support/FeatureTileFetcher3DDebugger.js +1 -1
  638. package/views/3d/layers/support/FeatureTileMeasurements3D.js +1 -1
  639. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  640. package/views/3d/layers/support/FeatureTileTree3DDebugger.js +1 -1
  641. package/views/3d/layers/support/FeatureTileVisibility3D.js +1 -1
  642. package/views/3d/layers/support/I3STreeDebugger.js +1 -1
  643. package/views/3d/layers/support/TerrainTileTree3DDebugger.js +1 -1
  644. package/views/3d/state/ViewStateManager.js +1 -1
  645. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  646. package/views/3d/support/cameraUtilsPlanar.js +1 -1
  647. package/views/3d/support/cameraUtilsSpherical.js +1 -1
  648. package/views/3d/support/debugUtils.js +1 -1
  649. package/views/3d/support/hitTest.js +1 -1
  650. package/views/3d/support/viewpointUtils.js +1 -1
  651. package/views/3d/terrain/PlanarPatch.js +1 -1
  652. package/views/3d/terrain/SphericalPatch.js +1 -1
  653. package/views/3d/terrain/TerrainRenderer.js +1 -1
  654. package/views/3d/terrain/TerrainSurface.js +1 -1
  655. package/views/3d/terrain/Tile.js +1 -1
  656. package/views/3d/terrain/TilingScheme.js +1 -1
  657. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  658. package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
  659. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  660. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  661. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  662. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  663. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  664. package/views/SceneView.js +1 -1
  665. package/views/VideoView.js +1 -1
  666. package/views/View2D.js +1 -1
  667. package/views/draw/MultipointDrawAction.js +1 -1
  668. package/views/draw/PointDrawAction.js +1 -1
  669. package/views/draw/PolygonDrawAction.js +1 -1
  670. package/views/draw/PolylineDrawAction.js +1 -1
  671. package/views/draw/SegmentDrawAction.js +1 -1
  672. package/views/draw/drawSurfaces.js +1 -1
  673. package/views/draw/support/Box.js +1 -1
  674. package/views/draw/support/GraphicMover.js +1 -1
  675. package/views/draw/support/Reshape.js +1 -1
  676. package/views/draw/support/createUtils.js +1 -1
  677. package/views/draw/support/surfaceCoordinateSystems.js +1 -1
  678. package/views/interactive/sketch/constraintUtils.js +1 -1
  679. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
  680. package/views/layers/support/Geometry.js +1 -1
  681. package/views/support/HighlightOptions.d.ts +4 -0
  682. package/views/support/drapedUtils.js +1 -1
  683. package/webdoc/geotriggersInfo/FeatureFilter.js +1 -1
  684. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  685. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  686. package/widgets/CoordinateConversion/support/Format.js +1 -1
  687. package/widgets/CoordinateConversion/support/coordinateConversionUtils.js +1 -1
  688. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  689. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  690. package/widgets/Editor/UpdateWorkflow.js +1 -1
  691. package/widgets/Editor/workflowUtils.js +1 -1
  692. package/widgets/ElevationProfile/support/ProfileLine2D.js +1 -1
  693. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  694. package/widgets/Feature/FeatureViewModel.js +1 -1
  695. package/widgets/FeatureForm/FeatureFormUtilityNetworkAssociations/FeatureFormUtilityNetworkAssociationList.js +1 -1
  696. package/widgets/FeatureForm/UtilityNetworkAssociationInput.js +1 -1
  697. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  698. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  699. package/widgets/FeatureTable.js +1 -1
  700. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  701. package/widgets/FeatureTemplates/TemplateItem.js +1 -1
  702. package/widgets/FeatureTemplates/featureTemplatesUtils.js +1 -1
  703. package/widgets/FeatureTemplates.js +1 -1
  704. package/widgets/Features/FeaturesViewModel.js +1 -1
  705. package/widgets/LayerList/LayerListItem.js +1 -1
  706. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  707. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  708. package/widgets/Legend/support/utils.js +1 -1
  709. package/widgets/Locate.js +1 -1
  710. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  711. package/widgets/OrientedImageryViewer/OrientedImageryViewerVisibleElements.js +1 -1
  712. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  713. package/widgets/OrientedImageryViewer/adapters/view/MapViewAdapter.js +1 -1
  714. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  715. package/widgets/OrientedImageryViewer/components/ImageAreaMeasurement.js +5 -0
  716. package/widgets/OrientedImageryViewer/components/ImageDistanceMeasurement.js +5 -0
  717. package/widgets/OrientedImageryViewer/components/ImageMeasurement.js +5 -0
  718. package/widgets/OrientedImageryViewer/components/ImageViewerViewModel.js +1 -1
  719. package/widgets/OrientedImageryViewer/css.js +1 -1
  720. package/widgets/OrientedImageryViewer/imageMeasurementUtils.js +1 -1
  721. package/widgets/OrientedImageryViewer/symbols.js +1 -1
  722. package/widgets/OrientedImageryViewer.js +1 -1
  723. package/widgets/PanoramicViewer/PanoramicViewerViewModel.js +1 -1
  724. package/widgets/PanoramicViewer/constants.js +1 -1
  725. package/widgets/PanoramicViewer/utils.js +1 -1
  726. package/widgets/Print/PrintViewModel.js +1 -1
  727. package/widgets/Print.js +1 -1
  728. package/widgets/ScaleBar/ScaleBarViewModel.js +1 -1
  729. package/widgets/Search/SearchViewModel.js +1 -1
  730. package/widgets/Sketch/SketchViewModel.js +1 -1
  731. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeature.js +5 -0
  732. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceFeaturesDrillIn.js +5 -0
  733. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  734. package/widgets/UtilityNetworkTrace/support/GeometryHandler.js +1 -1
  735. package/widgets/UtilityNetworkTrace.js +1 -1
  736. package/widgets/support/GridControls/GridControlsViewModel.js +1 -1
  737. package/widgets/support/Selector2D/SelectionOperation.js +1 -1
  738. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationList.js +1 -1
  739. package/widgets/support/UtilityNetworkAssociations/UtilityNetworkAssociationsViewModel.js +1 -1
  740. package/assets/esri/core/workers/chunks/0651586dc7bd2e8b34db.js +0 -1
  741. package/assets/esri/core/workers/chunks/077070295499b9bfabb6.js +0 -1
  742. package/assets/esri/core/workers/chunks/090cfc7f088a729afd47.js +0 -1
  743. package/assets/esri/core/workers/chunks/0d387baa64a89f88b1de.js +0 -1
  744. package/assets/esri/core/workers/chunks/105dcc7b7284b1e965b7.js +0 -1
  745. package/assets/esri/core/workers/chunks/134de9fa142129a43b1e.js +0 -1
  746. package/assets/esri/core/workers/chunks/16fa0a5f73ab67a8d3e4.js +0 -1
  747. package/assets/esri/core/workers/chunks/1797f62e9bf8f1ac8d13.js +0 -1
  748. package/assets/esri/core/workers/chunks/182722e2fe0a35c4d8db.js +0 -1
  749. package/assets/esri/core/workers/chunks/184846d2dde25ee12904.js +0 -1
  750. package/assets/esri/core/workers/chunks/1b3215f3290fb2f07ab8.js +0 -1
  751. package/assets/esri/core/workers/chunks/1d34a146b32b959923b0.js +0 -1
  752. package/assets/esri/core/workers/chunks/1f4dd96aacf8c40a1120.js +0 -1
  753. package/assets/esri/core/workers/chunks/1fa705ee39556ef4bb3b.js +0 -1
  754. package/assets/esri/core/workers/chunks/206194cf069ad4bcc3ad.js +0 -1
  755. package/assets/esri/core/workers/chunks/217f8139bea225d1fcc6.js +0 -1
  756. package/assets/esri/core/workers/chunks/22748779ca94eda44de5.js +0 -1
  757. package/assets/esri/core/workers/chunks/2427a01678f3d9fbf30b.js +0 -1
  758. package/assets/esri/core/workers/chunks/243520d9f4a118e63bbc.js +0 -1
  759. package/assets/esri/core/workers/chunks/26c8e30a5ee8db0314c8.js +0 -1
  760. package/assets/esri/core/workers/chunks/2779cf112299b612a73a.js +0 -1
  761. package/assets/esri/core/workers/chunks/280b7b885b96a5a68716.js +0 -2
  762. package/assets/esri/core/workers/chunks/299ed506209562be4fad.js +0 -1
  763. package/assets/esri/core/workers/chunks/2f5722844208d0f5d616.js +0 -1
  764. package/assets/esri/core/workers/chunks/2fb884799de54182d2c3.js +0 -2
  765. package/assets/esri/core/workers/chunks/2fb884799de54182d2c3.js.LICENSE.txt +0 -11
  766. package/assets/esri/core/workers/chunks/300a5f4842b90bda55b3.js +0 -1
  767. package/assets/esri/core/workers/chunks/33a13544b9e5f4f20bce.js +0 -1
  768. package/assets/esri/core/workers/chunks/33eebe5cb22a03ae90c8.js +0 -1
  769. package/assets/esri/core/workers/chunks/346ec2f8c373337c18c7.js +0 -1
  770. package/assets/esri/core/workers/chunks/34b86b4b9e6c1937ee39.js +0 -2
  771. package/assets/esri/core/workers/chunks/3512d53abe9abee7f420.js +0 -1
  772. package/assets/esri/core/workers/chunks/423329432fbf007c620b.js +0 -1
  773. package/assets/esri/core/workers/chunks/467bd3c0da9518a0058b.js +0 -1
  774. package/assets/esri/core/workers/chunks/47745c4f74830f981fd4.js +0 -1
  775. package/assets/esri/core/workers/chunks/4af0674fabfc965f1660.js +0 -1
  776. package/assets/esri/core/workers/chunks/4c1d11a91291b28a73be.js +0 -1
  777. package/assets/esri/core/workers/chunks/4c40fd932113a71cbe8e.js +0 -1
  778. package/assets/esri/core/workers/chunks/51fbbd082ca78e4417d9.js +0 -1
  779. package/assets/esri/core/workers/chunks/5a937486b9fd62b57dca.js +0 -1
  780. package/assets/esri/core/workers/chunks/5c05c899f7e6f764fedd.js +0 -1
  781. package/assets/esri/core/workers/chunks/636b944604480a905888.js +0 -1
  782. package/assets/esri/core/workers/chunks/6400f39a965900f66ce7.js +0 -1
  783. package/assets/esri/core/workers/chunks/643da327858a68ffbd88.js +0 -1
  784. package/assets/esri/core/workers/chunks/6c1470dc0bd4389d1a2d.js +0 -1
  785. package/assets/esri/core/workers/chunks/6c3862f42b6b27edf1cf.js +0 -2
  786. package/assets/esri/core/workers/chunks/6c3862f42b6b27edf1cf.js.LICENSE.txt +0 -10
  787. package/assets/esri/core/workers/chunks/6e804ee2d96d4de85a5f.js +0 -1
  788. package/assets/esri/core/workers/chunks/712f0dd46932c544df68.js +0 -1
  789. package/assets/esri/core/workers/chunks/71e88c90e9f9a9bddcd8.js +0 -1
  790. package/assets/esri/core/workers/chunks/7341108896d0e4d44dab.js +0 -1
  791. package/assets/esri/core/workers/chunks/74ba752dfab8ea5b6d2a.js +0 -314
  792. package/assets/esri/core/workers/chunks/79903647d4ed16d9a402.js +0 -1
  793. package/assets/esri/core/workers/chunks/7b4880b2dc6b01d70ccc.js +0 -1
  794. package/assets/esri/core/workers/chunks/7c98e4fcba1dc24eb788.js +0 -1
  795. package/assets/esri/core/workers/chunks/7d0fc25ce1f74adcfeb6.js +0 -1
  796. package/assets/esri/core/workers/chunks/8249351daa45ca82ca0c.js +0 -1
  797. package/assets/esri/core/workers/chunks/87ddc3d5d751d565cd97.js +0 -1
  798. package/assets/esri/core/workers/chunks/87f33a60768801ca1ce8.js +0 -1
  799. package/assets/esri/core/workers/chunks/885205379220ccee5802.js +0 -1
  800. package/assets/esri/core/workers/chunks/88bb55bca76f978c0aa3.js +0 -1
  801. package/assets/esri/core/workers/chunks/8b2f0c33e10e163d5c8f.js +0 -1
  802. package/assets/esri/core/workers/chunks/8c5d1fd2b2c7c26e8ff5.js +0 -1
  803. package/assets/esri/core/workers/chunks/8cda8dbd95f0a78063a8.js +0 -1
  804. package/assets/esri/core/workers/chunks/8e0e5183c88a45fbfd8e.js +0 -1
  805. package/assets/esri/core/workers/chunks/90eea0c2435bb5d10460.js +0 -1
  806. package/assets/esri/core/workers/chunks/93c1541241f92fc07eaa.js +0 -1
  807. package/assets/esri/core/workers/chunks/964f2897794d8d71dcb7.js +0 -1
  808. package/assets/esri/core/workers/chunks/97169740043b4a0a40fb.js +0 -1
  809. package/assets/esri/core/workers/chunks/976daa00d35ee7f27a26.js +0 -1
  810. package/assets/esri/core/workers/chunks/97d66b0d0ff1132966de.js +0 -1
  811. package/assets/esri/core/workers/chunks/984d5533dcc831c426be.js +0 -1
  812. package/assets/esri/core/workers/chunks/9970e0e74cf2877a7ffc.js.LICENSE.txt +0 -17
  813. package/assets/esri/core/workers/chunks/99b4f146d0f1661a217c.js +0 -1
  814. package/assets/esri/core/workers/chunks/9e4d68da11995a5b66c3.js +0 -1
  815. package/assets/esri/core/workers/chunks/a6095a6abb2610bb95c1.js +0 -1
  816. package/assets/esri/core/workers/chunks/aa96a05b94ae642c1c9f.js +0 -1
  817. package/assets/esri/core/workers/chunks/b0055e7b2e840d478de8.js +0 -1
  818. package/assets/esri/core/workers/chunks/b1bf8ad629a6b8f4489a.js +0 -1
  819. package/assets/esri/core/workers/chunks/b1e3448ba51557ff6c13.js +0 -1
  820. package/assets/esri/core/workers/chunks/b30046a40bcfbec8abe4.js +0 -1
  821. package/assets/esri/core/workers/chunks/b538d02706a25bbbe2d0.js +0 -1
  822. package/assets/esri/core/workers/chunks/b81b8a800eec9db7ece2.js +0 -1
  823. package/assets/esri/core/workers/chunks/c1c216b0aebe86311fae.js +0 -1
  824. package/assets/esri/core/workers/chunks/c436a112a3119ceabebf.js +0 -1
  825. package/assets/esri/core/workers/chunks/c609bc34b14e4956292e.js +0 -1
  826. package/assets/esri/core/workers/chunks/c8a09db652389f0d254d.js +0 -1
  827. package/assets/esri/core/workers/chunks/c8a645601d041f411060.js +0 -1
  828. package/assets/esri/core/workers/chunks/c9741eb7a66ff7ec9184.js +0 -1
  829. package/assets/esri/core/workers/chunks/cb3b7f83b3efb315bd14.js +0 -1
  830. package/assets/esri/core/workers/chunks/cdc5e4cd1214362e752a.js +0 -1
  831. package/assets/esri/core/workers/chunks/ce0fb7cbf72bbb4cfe98.js +0 -1
  832. package/assets/esri/core/workers/chunks/cf244cbd0558cc1142ed.js +0 -1
  833. package/assets/esri/core/workers/chunks/d181447e2be06beaa23f.js +0 -1
  834. package/assets/esri/core/workers/chunks/d5c93caa3a8bb06a0b3f.js +0 -1
  835. package/assets/esri/core/workers/chunks/da5fc368eb5b3592d05e.js +0 -1
  836. package/assets/esri/core/workers/chunks/dae7e8357936466482fe.js +0 -1
  837. package/assets/esri/core/workers/chunks/db20b986a5681316070b.js +0 -2
  838. package/assets/esri/core/workers/chunks/db20b986a5681316070b.js.LICENSE.txt +0 -5
  839. package/assets/esri/core/workers/chunks/dc7fb41ebe57b463d408.js +0 -1
  840. package/assets/esri/core/workers/chunks/dd935b6335c674b6f596.js +0 -1
  841. package/assets/esri/core/workers/chunks/ddd20894b5107b76b815.js +0 -1
  842. package/assets/esri/core/workers/chunks/de00150030003de05146.js +0 -1
  843. package/assets/esri/core/workers/chunks/decd316936df1ad3fa65.js +0 -1
  844. package/assets/esri/core/workers/chunks/df4d7f100222ea671730.js +0 -1
  845. package/assets/esri/core/workers/chunks/e2320e4e6fd976966c0b.js +0 -1
  846. package/assets/esri/core/workers/chunks/e418c4f7866d03d5352e.js +0 -1
  847. package/assets/esri/core/workers/chunks/e4f4ad67d778dea5b956.js +0 -1
  848. package/assets/esri/core/workers/chunks/e610dd938d30f75778bc.js +0 -1
  849. package/assets/esri/core/workers/chunks/eb256e8488e341c4a6f2.js +0 -1
  850. package/assets/esri/core/workers/chunks/ebc0094355504ec09fb8.js +0 -1
  851. package/assets/esri/core/workers/chunks/ec195549b274cca09d81.js +0 -1
  852. package/assets/esri/core/workers/chunks/ec4a45b40021abdead45.js +0 -1
  853. package/assets/esri/core/workers/chunks/ee5f43fbe4c2cc199e64.js +0 -1
  854. package/assets/esri/core/workers/chunks/f0334d31c8cac38baa25.js +0 -1
  855. package/assets/esri/core/workers/chunks/f1b63f092e239f84b849.js +0 -1
  856. package/assets/esri/core/workers/chunks/f2126b79f41dc62cc576.js +0 -1
  857. package/assets/esri/core/workers/chunks/f3a75dffb285590cb451.js +0 -1
  858. package/assets/esri/core/workers/chunks/f3e0b0f07a622fcdd6ae.js +0 -1
  859. package/assets/esri/core/workers/chunks/f581aec77accce7411e0.js +0 -1
  860. package/assets/esri/core/workers/chunks/f606350e4d040ad70f4d.js +0 -1
  861. package/assets/esri/core/workers/chunks/f849ffe8e551bd5896ef.js +0 -1
  862. package/assets/esri/core/workers/chunks/f877bcbd277a28154d82.js +0 -1
  863. package/assets/esri/core/workers/chunks/fa1c68f2ffcdff7986b6.js +0 -1
  864. package/assets/esri/core/workers/chunks/fa849ff6132c2cd6d8e8.js +0 -1
  865. package/assets/esri/core/workers/chunks/feeb36ffdffb227c4353.js +0 -1
  866. package/renderers/support/types.js +0 -5
  867. package/widgets/support/templateUtils.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{isSome as t}from"../../../../../core/arrayUtils.js";import e from"../../../../../core/Logger.js";import{assertIsSome as s}from"../../../../../core/maybe.js";import{isLoaded as r,load as i,execute as a}from"../../../../../geometry/operators/gx/operatorGeodeticDensify.js";import{geodeticCurveType as o}from"../../../../../geometry/operators/support/geodeticCurveType.js";import{intersectsWithMargin as n,fromValues as l,intersects as c,empty as d,expandPointInPlace as u}from"../../../../../geometry/support/aaBoundingRect.js";import{getClosestDenormalizedXToReference as m}from"../../../../../geometry/support/normalizeUtils.js";import{normalizeCentralMeridianForDisplay as h}from"../../../../../geometry/support/normalizeUtilsSync.js";import{quantizeOptimizedGeometry as p,convertToGeometry as f,convertFromNestedArray as g}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as b}from"../../../../../layers/graphics/OptimizedFeature.js";import _ from"../../../../../layers/graphics/OptimizedGeometry.js";import{internalTrackPartField as y,TrackPart as I,externalTrackLineOidPrefix as v,internalTimeReceivedField as F}from"../../../../../layers/support/streamLayerUtils.js";import{tileSize as k}from"../../../engine/webgl/definitions.js";import{AccumulatedStatistics as j}from"../aggregation/AccumulatedStatistics.js";import{ComputedAggregateField as O}from"../aggregation/ComputedAggregateField.js";import{AAggregateStrategy as S}from"./AAggregateStrategy.js";import{ASendState as T}from"./AProcessorStrategy.js";import{FeatureTileUpdateMessage as x,FeatureTileAppendMessage as R}from"../sources/FeatureSourceMessage.js";import{createArcadeEvaluationOptions as L}from"../support/arcadeUtils.js";import{ComputedAttributeStorage as w}from"../support/ComputedAttributeStorage.js";import A from"../support/FeatureFilter.js";import{FeatureMetadata as G}from"../support/FeatureMetadata.js";import{FeatureSetReaderIndirect as D}from"../support/FeatureSetReaderIndirect.js";import{FeatureSetReaderJSON as C}from"../support/FeatureSetReaderJSON.js";let P;const M=()=>e.getLogger("esri.views.2d.layers.features.processor.TrackStrategy"),W=32;class z{constructor(t,e,s,r,i){this.chunkIndex=t,this.featureIndex=e,this.objectId=s,this.displayId=r,this.time=i}}class U{static getOid(t){return v+t}constructor(t,e,s,r,i,a,o,n){this._schema=t,this.trackId=e,this.objectId=s,this.displayId=r,this._fields=i,this._spatialReference=a,this._metadata=o,this._isStream=n,this._observationRecords=[],this._nextObservationRecords=[],this._trackLinePath=[],this._bounds=[],this._trackLineGeometry=new _}get _trackLineAttributes(){const t={...this._latestObservationFeature?.attributes??{},aggregateId:this.objectId,[y]:I.TrackLine};if(null!=this._statistics)for(const e of this._statistics.values())t[e.field.name]=e.value;return t}get _startTimeField(){return this._metadata.timeInfo?.startTimeField}get length(){return this._observationRecords.length}*observations(){yield*this._observationRecords}*previousObservations(){for(let t=0;t<this._observationRecords.length-1;t++)yield this._observationRecords[t]}stageObservation(t,e){this._nextObservationRecords.push(new z(t,e.getIndex(),e.getObjectId(),e.getDisplayId(),null!=this._startTimeField?e.readAttributeAsTimestamp(this._startTimeField):null))}commitObservations(t,e){const r=new Set(this._nextObservationRecords.map((t=>t.objectId))),i=this._observationRecords.filter((t=>!r.has(t.objectId))).map((t=>t.objectId));let a,o;switch(this._observationRecords=[],this._trackLinePath=[],this._isStream||null==this._startTimeField||this._nextObservationRecords.sort(((t,e)=>{const s=t.time,r=e.time;return null!=s&&null!=r?s-r:0})),this._schema.timeField){case"startTimeField":a=this._metadata.timeInfo?.startTimeField;break;case"endTimeField":a=this._metadata.timeInfo?.endTimeField;break;case"timeReceived":a=this._isStream?F:null}o=this._isStream?e?.end??Date.now():e?.end??-1/0;const n=t.map((t=>t.reader.getCursor()));let l;for(let c=this._nextObservationRecords.length-1;c>=0&&!(this._observationRecords.length>=this._schema.maxDisplayObservations);c--){const t=this._nextObservationRecords[c],e=n[t.chunkIndex];s(e),e.setIndex(t.featureIndex);const r=null!=a?e.readAttributeAsTimestamp(a):null;(null!=r?o-r:0)>=this._schema.maxDisplayDuration||(this._commitObservation(t,e),l??=t)}if(null!=l){const{chunkIndex:t,featureIndex:e,objectId:r,displayId:i}=l,a=n[t];s(a),a.setIndex(e);const o=new b(a.readGeometryWorldSpace(),{...a.readAttributes(),[y]:I.LatestObservation},null,r,i);this._latestObservationFeature=o}else this._latestObservationFeature=null;return this._trackLineGeometry=B(this._trackLineGeometry,this._trackLinePath,this._spatialReference),this._bounds=N(this._trackLineGeometry),this._nextObservationRecords=[],i}updateStatistics(t,e){this._statistics=j.create(this._fields);const r=t.map((t=>t.reader.getCursor()));for(const{chunkIndex:i,featureIndex:a}of this._observationRecords){const t=r[i];s(t),t.setIndex(a),this._statistics.insert(t,e)}}overlapsTile(t){for(const e of this._bounds)if(n(e,t.bounds,W))return!0;return!1}getLatestObservationFeatureForTile(t){if(null==this._latestObservationFeature)return null;const{objectId:e,displayId:s,geometry:r,attributes:i}=this._latestObservationFeature,a=new _;p(a,r,!1,!1,this._metadata.geometryType,t.subscription.tile.transform);const o=l(1/0,1/0,-1/0,-1/0);E(a,((t,e)=>u(o,[t,e])));if(!c(o,l(0,0,k,k)))return null;return new b(a,i,null,e,s)}getTrackLineFeatureForTile(t){const e=new _;p(e,this._trackLineGeometry,!1,!1,"esriGeometryPolyline",t.subscription.tile.transform);return new b(e,this._trackLineAttributes,null,this.objectId,this.displayId)}getTrackLineOptimizedFeature(){return new b(this._trackLineGeometry,this._trackLineAttributes,null,this.objectId,this.displayId)}getTrackLineDisplayFeature(){const{_trackLineGeometry:t,_trackLineAttributes:e,displayId:s}=this;return{geometry:f(t,"esriGeometryPolyline",!1,!1),attributes:e,displayId:s}}_commitObservation(t,e){const s=e.readCentroidWorldSpace();let r=s?.coords[0],i=s?.coords[1];null==s&&(r=e.readXWorldSpace(),i=e.readYWorldSpace()),null!=r&&null!=i&&(this._observationRecords.unshift(t),this._trackLinePath.unshift([r,i]))}}class X extends T{constructor(t){super(t),this.didSend=!1}}class Z extends S{static async create(t,e,s,a,o){const n=new w({spatialReference:e}),l=await Promise.all(t.fields.map((async t=>O.create(n,t)))),c=t.featureFilter?await A.create({geometryType:s.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:s.metadata.timeInfo,fieldsIndex:s.metadata.fieldsIndex,spatialReference:e,filterJSON:t.featureFilter}):null;return e.isWrappable||r()||await Promise.all([import("../../../../../geometry/operators/support/apiConverter.js"),import("../../../../../geometry/operators/support/jsonConverter.js"),i()]).then((([t,e,s])=>{P={fromGeometryToGXGeometry:e.fromGeometryToGXGeometry,toGeometry:e.toGeometry,fromSpatialReference:t.fromSpatialReference}})),new Z(t,s,a,e,l,c,o)}constructor(t,e,s,r,i,a,o){super(e,s,r,i),this._schema=t,this._featureFilter=a,this._arcadeContextInfo=o,this._tracks=new Map,this._metadata=e.metadata.cloneWithAdditionalFields([{name:y,alias:"trackPart",type:"esriFieldTypeSmallInteger"}]),this._trackLineMetadata=G.createFeature({geometryType:"esriGeometryPolyline",objectIdField:"aggregateId",fieldsIndex:{fields:[...this._source.metadata.fieldsIndex.fields,...this.aggregateFields,{name:y,alias:"trackPart",type:"esriFieldTypeSmallInteger"},{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"}],timeZoneByFieldName:null},globalIdField:null,spatialReference:e.metadata.spatialReference,subtypeField:null,subtypes:null,timeInfo:e.metadata.timeInfo,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null})}get _isStream(){return this._source.isStream}get enablePixelBuffering(){return!0}get isAggregate(){return!1}createState(t){return new X(t)}async*applyOverrideUpdate(t){M().error("Applying override to tracks is not supported")}displayMap(t,e,s){const r=new Map(t.map((t=>[e(t),t]))),i=[];for(const a of this._tracks.values()){const t=r.get(a.objectId);if(null==t)for(const e of a.observations()){const t=r.get(e.objectId);if(null!=t){const a=s(e.displayId,t,e.objectId);i.push(a),r.delete(e.objectId)}}else{const e=s(a.displayId,t,a.objectId);i.push(e),r.delete(a.objectId)}}return i}getDisplayFeatures(t){const e=new Set(t),s=[],r=[],i=this._source.chunks().map((t=>t.reader.getCursor()));for(const a of this._tracks.values()){e.has(a.displayId)&&r.push(a.getTrackLineDisplayFeature());for(const{displayId:t,chunkIndex:r,featureIndex:o}of a.observations())if(e.has(t)){const e=i[r];e.setIndex(o),s.push({displayId:t,attributes:{},...e.readLegacyFeatureWorldSpace()})}}return{features:s,aggregates:[],tracks:r}}getFeatureObjectIdsForAggregate(t){for(const e of this._tracks.values())if(e.objectId===t)return Array.from(e.observations(),(t=>t.objectId));return[]}async*updateChunks(){const t=this._source.chunks();if(!t.length)return;const e=this._metadata.timeInfo?.trackIdField;if(null==e)return;const s=new Set;for(let r=0;r<t.length;r++){const i=t[r].reader.getCursor();for(;i.next();){const t=i.readAttribute(e),a=i.getObjectId();if(null!=t&&null!=a&&(null===this._featureFilter||this._featureFilter.check(i))){if(i.getDisplayId()||i.setDisplayId(this._attributeStore.createDisplayIdForObjectId(a)),!this._tracks.has(t)){const e=U.getOid(t),s=this._attributeStore.createDisplayIdForObjectId(e),r=new U(this._schema,t,e,s,this.aggregateFields,this.spatialReference,this._source.metadata,this._isStream);this._tracks.set(t,r)}this._tracks.get(t).stageObservation(r,i),s.add(t)}}}for(const r of this._tracks.values())if(s.has(r.trackId)){const e=r.commitObservations(t,this._featureFilter?.timeExtent);for(const t of e)this._attributeStore.releaseDisplayIdForObjectId(t);r.updateStatistics(t,L(1,this._arcadeContextInfo))}else this._removeTrack(r);for(const r of this._sendStates.values())yield*this._update(r)}forEachAggregateWorldSpace(t){for(const e of this._tracks.values())t(e.getTrackLineOptimizedFeature())}_removeTrack(t){this._tracks.delete(t.trackId),this._attributeStore.releaseDisplayIdForObjectId(t.objectId);for(const{objectId:e}of t.observations())this._attributeStore.releaseDisplayIdForObjectId(e)}*_update(e){if(e.didSend)return;e.didSend=!this._source.updateTracking.updating;const s=[],r=[];for(const t of this._tracks.values())if(t.length>0){if(this._schema.showLatestObservation){const r=t.getLatestObservationFeatureForTile(e);null!=r&&s.push(r)}this._schema.showTrackLine&&t.overlapsTile(e.subscription.tile)&&r.push(t.getTrackLineFeatureForTile(e))}const i=C.fromOptimizedFeatures(s,this._metadata,e.subscription.tile.transform),a=C.fromOptimizedFeatures(r,this._trackLineMetadata,e.subscription.tile.transform);let o=[];if(this._schema.showPreviousObservations){const s=this._source.chunks().map((()=>[]));for(const t of this._tracks.values())for(const{chunkIndex:e,featureIndex:r}of t.previousObservations())s[e].push(r);o=this._source.chunks().map(((t,r)=>{const i=t.getTileReader(e.subscription.tile);if(null==i)return null;const a=D.from(i,s[r]);return a.setProcessorAttributes({[y]:I.PreviousObservation}),"esriGeometryPoint"!==a.geometryType&&null!=a.getInTransform()||a.setTransformForDisplay(e.subscription.tile.transform),a})).filter(t)}this.events.emit("changed");const n=e.subscription.tile.createArcadeEvaluationOptions(this._arcadeContextInfo),l=a.getCursor();for(;l.next();)this._attributeStore.setAttributeData(l.getDisplayId(),l,n);for(const t of o){const e=t.getCursor();for(;e.next();)this._attributeStore.setAttributeData(e.getDisplayId(),e,n)}const c=i.getCursor();for(;c.next();)this._attributeStore.setAttributeData(c.getDisplayId(),c,n);yield new x(e.subscription,a,[],!1,{});for(const t of o)yield new R(e.subscription,t,!1,!1,{});yield new x(e.subscription,i,[],!0,{})}}function B(t,e,s){if(e.length<2)return g(t,[e],!1,!1);if(s.isWrappable){let r=!1;for(let t=1;t<e.length;t++){const i=e[t][0],a=m(i,e[t-1][0],s);i!==a&&(e[t][0]=a,r=!0)}if(r){const r=h({paths:[e],spatialReference:s});if(null!=r)return g(t,r.paths,!1,!1)}return g(t,[e],!1,!1)}const r=P.fromGeometryToGXGeometry({hasM:!1,hasZ:!1,paths:[e]}),i=P.fromSpatialReference(s);if(null!=i){const e=a(r,1e6,i,o.geodesic);if(null!=e){const s=P.toGeometry(e,i);if(null!=s&&"paths"in s)return g(t,s.paths,!1,!1)}}return g(t,[e],!1,!1)}function E(t,e){const s=2,{coords:r,lengths:i}=t;if(!i.length)return void e(r[0],r[1]);let a=0;for(let o=0;o<i.length;o++){const t=i[o];let n=0,l=0;for(let i=0;i<t;i++)n+=r[s*(i+a)],l+=r[s*(i+a)+1],e(n,l);a+=t}}function N(t){const{lengths:e,coords:s}=t,r=2;if(!e.length)return[d()];const i=[];let a=0;for(let o=0;o<e.length;o++){const t=e[o],n=d();i.push(n);for(let e=0;e<t;e++){const t=s[r*(e+a)],i=s[r*(e+a)+1];u(n,[t,i])}a+=t}return i}export{Z as TrackStrategy};
5
+ import{isSome as t}from"../../../../../core/arrayUtils.js";import e from"../../../../../core/Logger.js";import{assertIsSome as s}from"../../../../../core/maybe.js";import{isLoaded as r,load as i,execute as a}from"../../../../../geometry/operators/gx/operatorGeodeticDensify.js";import{geodeticCurveType as o}from"../../../../../geometry/operators/support/geodeticCurveType.js";import{intersectsWithMargin as n,fromValues as l,intersects as c,empty as d,expandPointInPlace as u}from"../../../../../geometry/support/aaBoundingRect.js";import{getClosestDenormalizedXToReference as m}from"../../../../../geometry/support/normalizeUtils.js";import{normalizeCentralMeridianForDisplay as h}from"../../../../../geometry/support/normalizeUtilsSync.js";import{quantizeOptimizedGeometry as p,convertToGeometry as f,convertFromNestedArray as g}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as b}from"../../../../../layers/graphics/OptimizedFeature.js";import _ from"../../../../../layers/graphics/OptimizedGeometry.js";import{internalTrackPartField as y,TrackPart as I,externalTrackLineOidPrefix as v,internalTimeReceivedField as F}from"../../../../../layers/support/streamLayerUtils.js";import{tileSize as k}from"../../../engine/webgl/definitions.js";import{AccumulatedStatistics as j}from"../aggregation/AccumulatedStatistics.js";import{ComputedAggregateField as O}from"../aggregation/ComputedAggregateField.js";import{AAggregateStrategy as T}from"./AAggregateStrategy.js";import{ASendState as S}from"./AProcessorStrategy.js";import{FeatureTileAppendMessage as x}from"../sources/FeatureSourceMessage.js";import{createArcadeEvaluationOptions as R}from"../support/arcadeUtils.js";import{ComputedAttributeStorage as L}from"../support/ComputedAttributeStorage.js";import w from"../support/FeatureFilter.js";import{FeatureMetadata as A}from"../support/FeatureMetadata.js";import{FeatureSetReaderIndirect as G}from"../support/FeatureSetReaderIndirect.js";import{FeatureSetReaderJSON as D}from"../support/FeatureSetReaderJSON.js";let C;const P=()=>e.getLogger("esri.views.2d.layers.features.processor.TrackStrategy"),M=32;class W{constructor(t,e,s,r,i){this.chunkIndex=t,this.featureIndex=e,this.objectId=s,this.displayId=r,this.time=i}}class z{static getOid(t){return v+t}constructor(t,e,s,r,i,a,o,n){this._schema=t,this.trackId=e,this.objectId=s,this.displayId=r,this._fields=i,this._spatialReference=a,this._metadata=o,this._isStream=n,this._observationRecords=[],this._nextObservationRecords=[],this._trackLinePath=[],this._bounds=[],this._trackLineGeometry=new _}get _trackLineAttributes(){const t={...this._latestObservationFeature?.attributes??{},aggregateId:this.objectId,[y]:I.TrackLine};if(null!=this._statistics)for(const e of this._statistics.values())t[e.field.name]=e.value;return t}get _startTimeField(){return this._metadata.timeInfo?.startTimeField}get length(){return this._observationRecords.length}*observations(){yield*this._observationRecords}*previousObservations(){for(let t=0;t<this._observationRecords.length-1;t++)yield this._observationRecords[t]}stageObservation(t,e){this._nextObservationRecords.push(new W(t,e.getIndex(),e.getObjectId(),e.getDisplayId(),null!=this._startTimeField?e.readAttributeAsTimestamp(this._startTimeField):null))}commitObservations(t,e){const r=new Set(this._nextObservationRecords.map((t=>t.objectId))),i=this._observationRecords.filter((t=>!r.has(t.objectId))).map((t=>t.objectId));let a,o;switch(this._observationRecords=[],this._trackLinePath=[],this._isStream||null==this._startTimeField||this._nextObservationRecords.sort(((t,e)=>{const s=t.time,r=e.time;return null!=s&&null!=r?s-r:0})),this._schema.timeField){case"startTimeField":a=this._metadata.timeInfo?.startTimeField;break;case"endTimeField":a=this._metadata.timeInfo?.endTimeField;break;case"timeReceived":a=this._isStream?F:null}o=this._isStream?e?.end??Date.now():e?.end??-1/0;const n=t.map((t=>t.reader.getCursor()));let l;for(let c=this._nextObservationRecords.length-1;c>=0&&!(this._observationRecords.length>=this._schema.maxDisplayObservations);c--){const t=this._nextObservationRecords[c],e=n[t.chunkIndex];s(e),e.setIndex(t.featureIndex);const r=null!=a?e.readAttributeAsTimestamp(a):null;(null!=r?o-r:0)>=this._schema.maxDisplayDuration||(this._commitObservation(t,e),l??=t)}if(null!=l){const{chunkIndex:t,featureIndex:e,objectId:r,displayId:i}=l,a=n[t];s(a),a.setIndex(e);const o=new b(a.readGeometryWorldSpace(),{...a.readAttributes(),[y]:I.LatestObservation},null,r,i);this._latestObservationFeature=o}else this._latestObservationFeature=null;return this._trackLineGeometry=Z(this._trackLineGeometry,this._trackLinePath,this._spatialReference),this._bounds=E(this._trackLineGeometry),this._nextObservationRecords=[],i}updateStatistics(t,e){this._statistics=j.create(this._fields);const r=t.map((t=>t.reader.getCursor()));for(const{chunkIndex:i,featureIndex:a}of this._observationRecords){const t=r[i];s(t),t.setIndex(a),this._statistics.insert(t,e)}}overlapsTile(t){for(const e of this._bounds)if(n(e,t.bounds,M))return!0;return!1}getLatestObservationFeatureForTile(t){if(null==this._latestObservationFeature)return null;const{objectId:e,displayId:s,geometry:r,attributes:i}=this._latestObservationFeature,a=new _;p(a,r,!1,!1,this._metadata.geometryType,t.subscription.tile.transform);const o=l(1/0,1/0,-1/0,-1/0);B(a,((t,e)=>u(o,[t,e])));if(!c(o,l(0,0,k,k)))return null;return new b(a,i,null,e,s)}getTrackLineFeatureForTile(t){const e=new _;p(e,this._trackLineGeometry,!1,!1,"esriGeometryPolyline",t.subscription.tile.transform);return new b(e,this._trackLineAttributes,null,this.objectId,this.displayId)}getTrackLineOptimizedFeature(){return new b(this._trackLineGeometry,this._trackLineAttributes,null,this.objectId,this.displayId)}getTrackLineDisplayFeature(){const{_trackLineGeometry:t,_trackLineAttributes:e,displayId:s}=this;return{geometry:f(t,"esriGeometryPolyline",!1,!1),attributes:e,displayId:s}}_commitObservation(t,e){const s=e.readCentroidWorldSpace();let r=s?.coords[0],i=s?.coords[1];null==s&&(r=e.readXWorldSpace(),i=e.readYWorldSpace()),null!=r&&null!=i&&(this._observationRecords.unshift(t),this._trackLinePath.unshift([r,i]))}}class U extends S{constructor(t){super(t),this.done=!1}}class X extends T{static async create(t,e,s,a,o){const n=new L({spatialReference:e}),l=await Promise.all(t.fields.map((async t=>O.create(n,t)))),c=t.featureFilter?await w.create({geometryType:s.metadata.geometryType,hasM:!1,hasZ:!1,timeInfo:s.metadata.timeInfo,fieldsIndex:s.metadata.fieldsIndex,spatialReference:e,filterJSON:t.featureFilter}):null;return e.isWrappable||r()||await Promise.all([import("../../../../../geometry/operators/support/apiConverter.js"),import("../../../../../geometry/operators/support/jsonConverter.js"),i()]).then((([t,e,s])=>{C={fromGeometryToGXGeometry:e.fromGeometryToGXGeometry,toGeometry:e.toGeometry,fromSpatialReference:t.fromSpatialReference}})),new X(t,s,a,e,l,c,o)}constructor(t,e,s,r,i,a,o){super(e,s,r,i),this._schema=t,this._featureFilter=a,this._arcadeContextInfo=o,this._tracks=new Map,this._metadata=e.metadata.cloneWithAdditionalFields([{name:y,alias:"trackPart",type:"esriFieldTypeSmallInteger"}]),this._trackLineMetadata=A.createFeature({geometryType:"esriGeometryPolyline",objectIdField:"aggregateId",fieldsIndex:{fields:[...this._source.metadata.fieldsIndex.fields,...this.aggregateFields,{name:y,alias:"trackPart",type:"esriFieldTypeSmallInteger"},{name:"aggregateId",alias:"aggregateId",type:"esriFieldTypeOID"}],timeZoneByFieldName:null},globalIdField:null,spatialReference:e.metadata.spatialReference,subtypeField:null,subtypes:null,timeInfo:e.metadata.timeInfo,timeReferenceUnknownClient:null,dateFieldsTimeZone:null,typeIdField:null,types:null})}get _isStream(){return this._source.isStream}get enablePixelBuffering(){return!0}get isAggregate(){return!1}createState(t){return new U(t)}async*applyOverrideUpdate(t){P().error("Applying override to tracks is not supported")}displayMap(t,e,s){const r=new Map(t.map((t=>[e(t),t]))),i=[];for(const a of this._tracks.values()){const t=r.get(a.objectId);if(null==t)for(const e of a.observations()){const t=r.get(e.objectId);if(null!=t){const a=s(e.displayId,t,e.objectId);i.push(a),r.delete(e.objectId)}}else{const e=s(a.displayId,t,a.objectId);i.push(e),r.delete(a.objectId)}}return i}getDisplayFeatures(t){const e=new Set(t),s=[],r=[],i=this._source.chunks().map((t=>t.reader.getCursor()));for(const a of this._tracks.values()){e.has(a.displayId)&&r.push(a.getTrackLineDisplayFeature());for(const{displayId:t,chunkIndex:r,featureIndex:o}of a.observations())if(e.has(t)){const e=i[r];e.setIndex(o),s.push({displayId:t,attributes:{},...e.readLegacyFeatureWorldSpace()})}}return{features:s,aggregates:[],tracks:r}}getFeatureObjectIdsForAggregate(t){for(const e of this._tracks.values())if(e.objectId===t)return Array.from(e.observations(),(t=>t.objectId));return[]}async*updateChunks(){const t=this._source.chunks();if(!t.length)return;const e=this._metadata.timeInfo?.trackIdField;if(null==e)return;const s=new Set;for(let r=0;r<t.length;r++){const i=t[r].reader.getCursor();for(;i.next();){const t=i.readAttribute(e),a=i.getObjectId();if(null!=t&&null!=a&&(null===this._featureFilter||this._featureFilter.check(i))){if(i.getDisplayId()||i.setDisplayId(this._attributeStore.createDisplayIdForObjectId(a)),!this._tracks.has(t)){const e=z.getOid(t),s=this._attributeStore.createDisplayIdForObjectId(e),r=new z(this._schema,t,e,s,this.aggregateFields,this.spatialReference,this._source.metadata,this._isStream);this._tracks.set(t,r)}this._tracks.get(t).stageObservation(r,i),s.add(t)}}}for(const r of this._tracks.values())if(s.has(r.trackId)){const e=r.commitObservations(t,this._featureFilter?.timeExtent);for(const t of e)this._attributeStore.releaseDisplayIdForObjectId(t);r.updateStatistics(t,R(1,this._arcadeContextInfo))}else this._removeTrack(r);for(const r of this._sendStates.values())yield*this._update(r)}forEachAggregateWorldSpace(t){for(const e of this._tracks.values())t(e.getTrackLineOptimizedFeature())}_removeTrack(t){this._tracks.delete(t.trackId),this._attributeStore.releaseDisplayIdForObjectId(t.objectId);for(const{objectId:e}of t.observations())this._attributeStore.releaseDisplayIdForObjectId(e)}*_update(e){if(e.done)return;e.done=!this._source.updateTracking.updating;const s=[],r=[];for(const t of this._tracks.values())if(t.length>0){if(this._schema.showLatestObservation){const r=t.getLatestObservationFeatureForTile(e);null!=r&&s.push(r)}this._schema.showTrackLine&&t.overlapsTile(e.subscription.tile)&&r.push(t.getTrackLineFeatureForTile(e))}const i=D.fromOptimizedFeatures(s,this._metadata,e.subscription.tile.transform),a=D.fromOptimizedFeatures(r,this._trackLineMetadata,e.subscription.tile.transform);let o=[];if(this._schema.showPreviousObservations){const s=this._source.chunks().map((()=>[]));for(const t of this._tracks.values())for(const{chunkIndex:e,featureIndex:r}of t.previousObservations())s[e].push(r);o=this._source.chunks().map(((t,r)=>{const i=t.getTileReader(e.subscription.tile);if(null==i)return null;const a=G.from(i,s[r]);return a.setProcessorAttributes({[y]:I.PreviousObservation}),"esriGeometryPoint"!==a.geometryType&&null!=a.getInTransform()||a.setTransformForDisplay(e.subscription.tile.transform),a})).filter(t)}this.events.emit("changed");const n=e.subscription.tile.createArcadeEvaluationOptions(this._arcadeContextInfo),l=a.getCursor();for(;l.next();)this._attributeStore.setAttributeData(l.getDisplayId(),l,n);for(const t of o){const e=t.getCursor();for(;e.next();)this._attributeStore.setAttributeData(e.getDisplayId(),e,n)}const c=i.getCursor();for(;c.next();)this._attributeStore.setAttributeData(c.getDisplayId(),c,n);yield new x(e.subscription,a,!0,!1,{});for(const t of o)yield new x(e.subscription,t,!1,!1,{});yield new x(e.subscription,i,!1,e.done,{})}}function Z(t,e,s){if(e.length<2)return g(t,[e],!1,!1);if(s.isWrappable){let r=!1;for(let t=1;t<e.length;t++){const i=e[t][0],a=m(i,e[t-1][0],s);i!==a&&(e[t][0]=a,r=!0)}if(r){const r=h({paths:[e],spatialReference:s});if(null!=r)return g(t,r.paths,!1,!1)}return g(t,[e],!1,!1)}const r=C.fromGeometryToGXGeometry({hasM:!1,hasZ:!1,paths:[e]}),i=C.fromSpatialReference(s);if(null!=i){const e=a(r,1e6,i,o.geodesic);if(null!=e){const s=C.toGeometry(e,i);if(null!=s&&"paths"in s)return g(t,s.paths,!1,!1)}}return g(t,[e],!1,!1)}function B(t,e){const s=2,{coords:r,lengths:i}=t;if(!i.length)return void e(r[0],r[1]);let a=0;for(let o=0;o<i.length;o++){const t=i[o];let n=0,l=0;for(let i=0;i<t;i++)n+=r[s*(i+a)],l+=r[s*(i+a)+1],e(n,l);a+=t}}function E(t){const{lengths:e,coords:s}=t,r=2;if(!e.length)return[d()];const i=[];let a=0;for(let o=0;o<e.length;o++){const t=e[o],n=d();i.push(n);for(let e=0;e<t;e++){const t=s[r*(e+a)],i=s[r*(e+a)+1];u(n,[t,i])}a+=t}return i}export{X as TrackStrategy};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../../../../symbols.js";import e from"../../../../../../../core/Logger.js";import{pt2px as i}from"../../../../../../../core/screenUtils.js";import{generateGradient as a}from"../../../../../../../renderers/support/heatmapUtils.js";import{CIMSymbolHelper as l,slsDashToTemplateArray as r}from"../../../../../../../symbols/cim/CIMSymbolHelper.js";import{Alignment as t,ExtremityPlacement as o}from"../../../../../../../symbols/cim/enums.js";import{getSDFInfo as s}from"../../../../../../../symbols/cim/SDFHelper.js";import{getAlignmentFromPlacement as n}from"../../../../../engine/webgl/alignmentUtils.js";import{writeColor as u}from"../../../../../engine/webgl/color.js";import{dotDensityMaxFields as c}from"../../../../../engine/webgl/definitions.js";import{Techniques as p}from"../../../../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{premultiplyColor as f}from"../schemaUtils.js";import{createVisualVariableUniforms as b,getMaxSizeVVSize as m,noVisualVariables as S}from"../VisualVariablesSchema.js";import{createComplexSymbolInstances as V}from"./ComplexSymbolSchema.js";import{hasSizeVVUniform as y,hasRotationVVUniform as v}from"./utils.js";import h from"../../../../../../../symbols/SimpleFillSymbol.js";import z from"../../../../../../../symbols/SimpleMarkerSymbol.js";import d from"../../../../../../../symbols/SimpleLineSymbol.js";async function g(i,a){if(!i)return[];switch(i.type){case"simple-fill":return P(i,a);case"picture-fill":return U(i,a);case"simple-marker":return w(i,a);case"picture-marker":return O(i,a);case"simple-line":return F(i,a,!1);case"text":return L(i,a);case"label":return R(i,a);case"cim":return V(i.data,a);case"web-style":{const e=await i.fetchCIMSymbol();return V(e.data,a)}case"line-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Defaulting to simple-line`),F(new d,a,!1);case"point-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Defaulting to simple-marker`),w(new z,a);case"polygon-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Defaulting to simple-fill`),P(new h,a);case"mesh-3d":case"label-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Ignoring`),[];case"CIMSymbolReference":throw new Error("InternalError: CIMSymbolReference should already be resolved")}}async function M(e,i){const{schemaOptions:a}=i,{store:l}=a,r=new Array(c),t=new Array(c/4);for(let p=0;p<c;p++){const i=p<e.attributes.length?e.attributes[p].color:null;r[p]=[0,0,0,0],u(r[p],i)}for(let u=0;u<c/4;u++)t[u]=[0,0,0,0],t[u][0]=4*u<e.attributes.length?1:0,t[u][1]=4*u+1<e.attributes.length?1:0,t[u][2]=4*u+2<e.attributes.length?1:0,t[u][3]=4*u+3<e.attributes.length?1:0;const o={uniforms:{isActive:t,colors:r,dotValue:e.dotValue,dotScale:e.referenceScale,blending:e.dotBlendingEnabled,dotSize:e.dotSize,seed:e.seed},optionalAttributes:{}},s=l.ensureInstance(p.dotDensity,o).createMeshInfo({effects:null}),n=[],f=new h({color:e.backgroundColor??[0,0,0,0],outline:null}),b=await g(f,i);if(n.push(...b),n.push(s),e.outline){const a=F(e.outline,i,!0);n.push(...a)}return n}async function x(e,l){const{store:r}=l,{radius:t,minDensity:o,maxDensity:s,referenceScale:n,field:u,valueExpression:c,colorStops:f}=e,b=a(f);return[r.ensureInstance(p.heatmap,{uniforms:{radius:i(t),minDensity:o,maxDensity:s,referenceScale:n,isFieldActive:!(!u&&!c),gradient:b,gradientHash:b.join(",")},optionalAttributes:{}}).createMeshInfo({effects:null})]}async function C(e,a){const{store:l}=a,r=e.outline?.width||0,t=b(e),o=l.ensureInstance(p.pieChart,{uniforms:{shader:{outlineWidth:Math.round(i(r)),defaultColor:f(e.defaultColor),outlineColor:f(e.outline?.color),othersColor:f(e.othersCategory?.color),donutRatio:e.holePercentage,sectorThreshold:e.othersCategory?.threshold||0,colors:e.attributes.map((e=>f(e.color))),visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue,hittestUniforms:null},numberOfFields:e.attributes.length},optionalAttributes:{}}).createMeshInfo({size:e.size,outlineWidth:r,effects:null,scaleInfo:null,minPixelBuffer:m(t)});return[...e.backgroundFillSymbol?await P(e.backgroundFillSymbol,{schemaOptions:a,path:"",uniforms:S}):[],o]}function I(e){if("path"===e.style){if(null==e.path)throw new Error("Symbol with a style of type path must define a path");return{type:"sprite-rasterization-param",overrides:[],resource:{type:"path",path:e.path,asFill:!0}}}const i=l.fromSimpleMarker(e);if("outline"in e&&e.outline&&"none"!==e.outline.style){if("solid"!==e.outline.style){if(!i||!i.symbolLayers)throw new Error("Error handling marker! ");return{type:"sprite-rasterization-param",resource:i.symbolLayers[0],overrides:[]}}}return{type:"sprite-rasterization-param",resource:s(i),overrides:[]}}async function w(e,i){const{uniforms:a,schemaOptions:r}=i,{store:o}=r;if("path"===e.style||e.outline&&"solid"!==e.outline.style&&"none"!==e.outline.style){const r=l.fromSimpleMarker(e);if(!r||!r.symbolLayers)throw new Error("Error handling marker! ");if(a.visualVariableRotation&&(r.angleAlignment="Map"),"path"!==e.style){const e=r.symbolLayers[0];if(y(i.uniforms)){const a=m(i.uniforms,0,1);if(a>e.size){const i=a/e.size;e.size=a;const l=e.markerGraphics?.[0].symbol;(l.symbolLayers&&l.symbolLayers[0]).width*=i}}}return V({type:"CIMSymbolReference",symbol:r},i)}const s=o.ensureInstance(p.marker,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeMinMaxValue:a.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:a.visualVariableSizeScaleStops,visualVariableSizeStops:a.visualVariableSizeStops,visualVariableSizeUnitValue:a.visualVariableSizeUnitValue,visualVariableRotation:a.visualVariableRotation},optionalAttributes:{zoomRange:!1}}),n=I(e);let u=e.color?.toArray()??[0,0,0,0];"CIMVectorMarker"===n.resource.type&&(u=[255,255,255,255]);const c="triangle"===e.style?124/116:1,f=e.size,b=f*c,S=null!=a.visualVariableColor&&("cross"===e.style||"x"===e.style);return[s.createMeshInfo({type:"simple",color:u,height:f,width:b,offsetX:e.xoffset,offsetY:e.yoffset,angle:e.angle,alignment:v(a)?t.MAP:t.SCREEN,outlineColor:e.outline?.color?.toArray()??[0,0,0,0],outlineSize:e.outline?.width??1,referenceSize:f,sprite:n,overrideOutlineColor:S,hasSizeVV:y(a),placement:null,effects:null,transforms:null,scaleInfo:null,minPixelBuffer:m(a)})]}function O(e,i){const{uniforms:a,schemaOptions:r}=i,{store:o}=r,s=o.ensureInstance(p.marker,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeMinMaxValue:a.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:a.visualVariableSizeScaleStops,visualVariableSizeStops:a.visualVariableSizeStops,visualVariableSizeUnitValue:a.visualVariableSizeUnitValue,visualVariableRotation:a.visualVariableRotation},optionalAttributes:{zoomRange:!1}}),n=l.createPictureMarkerRasterizationParam(e);if(!n)return[];return[s.createMeshInfo({type:"picture",color:[255,255,255,255],height:e.height,width:e.width,offsetX:e.xoffset,offsetY:e.yoffset,angle:e.angle,alignment:v(a)?t.MAP:t.SCREEN,outlineColor:null,outlineSize:0,referenceSize:e.height,sprite:n,overrideOutlineColor:!1,hasSizeVV:y(a),placement:null,effects:null,transforms:null,scaleInfo:null,minPixelBuffer:m(a)})]}function A(e,i,a){const{uniforms:l,schemaOptions:r}=a,{store:s}=r,n=s.ensureInstance(p.marker,{uniforms:{visualVariableColor:l.visualVariableColor,visualVariableOpacity:l.visualVariableOpacity,visualVariableSizeMinMaxValue:l.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:l.visualVariableSizeScaleStops,visualVariableSizeStops:l.visualVariableSizeStops,visualVariableSizeUnitValue:l.visualVariableSizeUnitValue,visualVariableRotation:l.visualVariableRotation},optionalAttributes:{zoomRange:!1}}),u=I(e),c=6,f=c*i.width,b=f,S=e.color?.toArray()??i.color?.toArray()??[0,0,0,0],V="cross"===e.style||"x"===e.style;let h;switch(e.placement){case"begin-end":h=o.Both;break;case"begin":h=o.JustBegin;break;case"end":h=o.JustEnd;break;default:h=o.None}const z={type:"cim-marker-placement-param",placement:{type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:h,offsetAlongLine:0},overrides:[]};return[n.createMeshInfo({type:"simple",color:S,height:b,width:f,offsetX:0,offsetY:0,angle:0,alignment:v(l)?t.MAP:t.SCREEN,outlineColor:S,outlineSize:V?i.width:0,referenceSize:b/c,sprite:u,overrideOutlineColor:V&&null!=l.visualVariableColor,hasSizeVV:y(l),placement:z,transforms:null,effects:null,scaleInfo:null,minPixelBuffer:m(l)})]}function L(e,i){const{uniforms:a,schemaOptions:r}=i,{store:t}=r;return[t.ensureInstance(p.text,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableRotation:a.visualVariableRotation,visualVariableSizeMinMaxValue:a.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:a.visualVariableSizeScaleStops,visualVariableSizeStops:a.visualVariableSizeStops,visualVariableSizeUnitValue:a.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!1,clipAngle:!1,referenceSymbol:!1}}).createMeshInfo({boxBackgroundColor:e.backgroundColor?.toArray(),boxBorderLineColor:e.borderLineColor?.toArray(),boxBorderLineSize:e.borderLineSize??0,color:e.color?.toArray()??[0,0,0,0],offsetX:e.xoffset,offsetY:e.yoffset,postAngle:e.angle,fontSize:e.font.size,decoration:e.font.decoration,haloColor:e.haloColor?.toArray()??[0,0,0,0],haloSize:e.haloSize??0,outlineColor:[0,0,0,0],outlineSize:0,lineWidth:e.lineWidth,lineHeightRatio:e.lineHeight,horizontalAlignment:e.horizontalAlignment,verticalAlignment:e.verticalAlignment,useCIMAngleBehavior:!1,glyphs:{type:"text-rasterization-param",resource:{type:"text",font:e.font.toJSON(),textString:e.text,symbol:l.createCIMTextSymbolfromTextSymbol(e)},overrides:[]},referenceSize:null,effects:null,placement:null,scaleInfo:null,transforms:null,scaleFactor:1,minPixelBuffer:m(a),repeatLabel:null,repeatLabelDistance:null,allowOverrun:null,labelPosition:null})]}function R(e,a){const{schemaOptions:r,uniforms:t}=a,{store:o}=r,s=e.symbol,{allowOverrun:u,repeatLabel:c,repeatLabelDistance:f}=e,b={maxScale:e.maxScale??0,minScale:e.minScale??0},S=o.ensureInstance(p.label,{uniforms:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:t.visualVariableRotation,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!0,clipAngle:!0,referenceSymbol:!0}}),V=e.labelPlacement,[y,v]=n(V);return[S.createMeshInfo({boxBackgroundColor:s.backgroundColor?.toArray(),boxBorderLineColor:s.borderLineColor?.toArray(),boxBorderLineSize:s.borderLineSize??0,color:s.color?.toArray()??[0,0,0,0],offsetX:s.xoffset,offsetY:s.yoffset,postAngle:s.angle,fontSize:s.font.size,decoration:s.font.decoration,outlineColor:[0,0,0,0],outlineSize:0,haloColor:s.haloColor?.toArray()??[0,0,0,0],haloSize:s.haloSize??0,lineWidth:s.lineWidth,lineHeightRatio:s.lineHeight,horizontalAlignment:y,verticalAlignment:v,repeatLabel:c,repeatLabelDistance:i(f),allowOverrun:u,labelPosition:e.labelPosition,scaleInfo:b,minPixelBuffer:m(t),useCIMAngleBehavior:!1,glyphs:{type:"text-rasterization-param",resource:{type:"text",font:s.font.toJSON(),textString:s.text,symbol:l.createCIMTextSymbolfromTextSymbol(s),primitiveName:"label-override"},useLegacyLabelEvaluationRules:null==e.labelExpressionInfo?.expression,overrides:[{type:"CIMPrimitiveOverride",valueExpressionInfo:{type:"CIMExpressionInfo",expression:e.labelExpressionInfo?.expression??e.labelExpression,returnType:"String"},primitiveName:"label-override",propertyName:"textString",defaultValue:""}]},referenceSize:null,effects:null,placement:null,transforms:null,scaleFactor:1})]}function k(e,i){const a=e.width;return{outlineColor:e.color?.toArray()||[0,0,0,1],width:a,referenceWidth:a,capType:e.cap??"round",joinType:e.join??"round",miterLimit:e.miterLimit,hasSizeVV:i}}function j(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l,t=e.color?.toArray()??[0,0,0,0],o={type:"sprite-rasterization-param",resource:{type:"fill-style",style:e.style},overrides:[]};if("solid"===e.outline?.style){return[r.ensureInstance(p.patternOutlineFill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeScaleStops:a.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:t,...k(e.outline,!!a.visualVariableSizeOutlineScaleStops),sprite:o,scaleInfo:null,effects:null})]}const s=[],n=r.ensureInstance(p.patternFill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:e.color?.toArray()??[0,0,0,0],sprite:o,scaleInfo:null,effects:null});return s.push(n),e.outline&&s.push(...F(e.outline,i,!0)),s}function E(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l,t=e.color?.toArray()??[0,0,0,0];if("none"!==e.style&&"solid"===e.outline?.style){return[r.ensureInstance(p.outlineFill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeScaleStops:a.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:t,...k(e.outline,!!a.visualVariableSizeOutlineScaleStops),scaleInfo:null,effects:null})]}const o=[];if("none"!==e.style){const e=r.ensureInstance(p.fill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:t,scaleInfo:null,effects:null});o.push(e)}return e.outline&&o.push(...F(e.outline,i,!0)),o}async function P(e,i){if("cim"===e.type)return V(e.data,i);const{style:a}=e;return a&&"none"!==a&&"solid"!==a?j(e,i):E(e,i)}function U(e,i){const{outline:a}=e,{uniforms:r,schemaOptions:t}=i,{store:o}=t,s=[],n=l.createPictureFillRasterizationParam(e);if(!n)return[];const{width:u,height:c,xoffset:f,yoffset:b,xscale:m,yscale:S}=e,V={color:[255,255,255,255],sprite:n,height:c,aspectRatio:u/c,offsetX:f,offsetY:b,scaleX:m,scaleY:S,angle:0,applyRandomOffset:!1,sampleAlphaOnly:!1,scaleProportionally:!1,effects:null,scaleInfo:null};if("solid"===a?.style){return[o.ensureInstance(p.complexOutlineFill,{uniforms:{visualVariableColor:r.visualVariableColor,visualVariableOpacity:r.visualVariableOpacity,visualVariableSizeScaleStops:r.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!1}}).createMeshInfo({...V,...k(a,!!r.visualVariableSizeOutlineScaleStops)})]}const y=o.ensureInstance(p.complexFill,{uniforms:{visualVariableColor:r.visualVariableColor,visualVariableOpacity:r.visualVariableOpacity},optionalAttributes:{zoomRange:!1}});return s.push(y.createMeshInfo(V)),a&&s.push(...F(a,i,!0)),s}function F(e,i,a){const{color:l,style:t,width:o,cap:s,join:n}=e,{schemaOptions:u}=i,{store:c}=u,f=[],b=a?{...S,visualVariableSizeScaleStops:i.uniforms.visualVariableSizeOutlineScaleStops}:i.uniforms,m={uniforms:{visualVariableColor:b.visualVariableColor,visualVariableOpacity:b.visualVariableOpacity,visualVariableSizeMinMaxValue:b.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:b.visualVariableSizeScaleStops,visualVariableSizeStops:b.visualVariableSizeStops,visualVariableSizeUnitValue:b.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!1}},V={color:l?.toArray()??[0,0,0,0],width:o,referenceWidth:o,capType:s,joinType:n,miterLimit:e.miterLimit,hasSizeVV:y(b),effects:null,scaleInfo:null};if(null==t||"solid"===t){const e=c.ensureInstance(p.line,m).createMeshInfo(V);f.push(e)}else if("none"!==t){const e=c.ensureInstance(p.texturedLine,m).createMeshInfo({...V,offsetAlongLine:0,shouldScaleDash:!0,shouldSampleAlphaOnly:!1,isSDF:!0,sprite:{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:r(t,s)},overrides:[]}});f.push(e)}return null!=e.marker&&f.push(...A(e.marker,e,i)),f}export{M as createDotDensityMeshSchemas,x as createHeatmapMeshSchemas,F as createLineInstance,C as createPieChartMeshSchemas,g as createSymbolMeshSchemas};
5
+ import e from"../../../../../../../core/Logger.js";import{pt2px as i}from"../../../../../../../core/screenUtils.js";import{generateGradient as a}from"../../../../../../../renderers/support/heatmapUtils.js";import l from"../../../../../../../symbols/SimpleFillSymbol.js";import r from"../../../../../../../symbols/SimpleLineSymbol.js";import t from"../../../../../../../symbols/SimpleMarkerSymbol.js";import{CIMSymbolHelper as o,slsDashToTemplateArray as s}from"../../../../../../../symbols/cim/CIMSymbolHelper.js";import{Alignment as n,ExtremityPlacement as u}from"../../../../../../../symbols/cim/enums.js";import{getSDFInfo as c}from"../../../../../../../symbols/cim/SDFHelper.js";import{getAlignmentFromPlacement as p}from"../../../../../engine/webgl/alignmentUtils.js";import{writeColor as f}from"../../../../../engine/webgl/color.js";import{dotDensityMaxFields as b}from"../../../../../engine/webgl/definitions.js";import{Techniques as m}from"../../../../../engine/webgl/shaderGraph/techniques/TechniqueRegistry.js";import{premultiplyColor as S}from"../schemaUtils.js";import{createVisualVariableUniforms as V,getMaxSizeVVSize as y,noVisualVariables as v}from"../VisualVariablesSchema.js";import{createComplexSymbolInstances as h}from"./ComplexSymbolSchema.js";import{hasSizeVVUniform as z,hasRotationVVUniform as d}from"./utils.js";async function g(i,a){if(!i)return[];switch(i.type){case"simple-fill":return P(i,a);case"picture-fill":return U(i,a);case"simple-marker":return w(i,a);case"picture-marker":return O(i,a);case"simple-line":return F(i,a,!1);case"text":return L(i,a);case"label":return R(i,a);case"cim":return h(i.data,a);case"web-style":{const e=await i.fetchCIMSymbol();return h(e.data,a)}case"line-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Defaulting to simple-line`),F(new r,a,!1);case"point-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Defaulting to simple-marker`),w(new t,a);case"polygon-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Defaulting to simple-fill`),P(new l,a);case"mesh-3d":case"label-3d":return e.getLogger("esri.views.layers.FeatureLayerView").warn("unsupported-symbol",`Symbol of type "${i.type}" unsupported in MapView. Ignoring`),[];case"CIMSymbolReference":throw new Error("InternalError: CIMSymbolReference should already be resolved")}}async function M(e,i){const{schemaOptions:a}=i,{store:r}=a,t=new Array(b),o=new Array(b/4);for(let l=0;l<b;l++){const i=l<e.attributes.length?e.attributes[l].color:null;t[l]=[0,0,0,0],f(t[l],i)}for(let l=0;l<b/4;l++)o[l]=[0,0,0,0],o[l][0]=4*l<e.attributes.length?1:0,o[l][1]=4*l+1<e.attributes.length?1:0,o[l][2]=4*l+2<e.attributes.length?1:0,o[l][3]=4*l+3<e.attributes.length?1:0;const s={uniforms:{isActive:o,colors:t,dotValue:e.dotValue,dotScale:e.referenceScale,blending:e.dotBlendingEnabled,dotSize:e.dotSize,seed:e.seed},optionalAttributes:{}},n=r.ensureInstance(m.dotDensity,s).createMeshInfo({effects:null}),u=[],c=new l({color:e.backgroundColor??[0,0,0,0],outline:null}),p=await g(c,i);if(u.push(...p),u.push(n),e.outline){const a=F(e.outline,i,!0);u.push(...a)}return u}async function x(e,l){const{store:r}=l,{radius:t,minDensity:o,maxDensity:s,referenceScale:n,field:u,valueExpression:c,colorStops:p}=e,f=a(p);return[r.ensureInstance(m.heatmap,{uniforms:{radius:i(t),minDensity:o,maxDensity:s,referenceScale:n,isFieldActive:!(!u&&!c),gradient:f,gradientHash:f.join(",")},optionalAttributes:{}}).createMeshInfo({effects:null})]}async function C(e,a){const{store:l}=a,r=e.outline?.width||0,t=V(e),o=l.ensureInstance(m.pieChart,{uniforms:{shader:{outlineWidth:Math.round(i(r)),defaultColor:S(e.defaultColor),outlineColor:S(e.outline?.color),othersColor:S(e.othersCategory?.color),donutRatio:e.holePercentage,sectorThreshold:e.othersCategory?.threshold||0,colors:e.attributes.map((e=>S(e.color))),visualVariableOpacity:t.visualVariableOpacity,visualVariableSizeMinMaxValue:t.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:t.visualVariableSizeScaleStops,visualVariableSizeStops:t.visualVariableSizeStops,visualVariableSizeUnitValue:t.visualVariableSizeUnitValue,hittestUniforms:null},numberOfFields:e.attributes.length},optionalAttributes:{}}).createMeshInfo({size:e.size,outlineWidth:r,effects:null,scaleInfo:null,minPixelBuffer:y(t)});return[...e.backgroundFillSymbol?await P(e.backgroundFillSymbol,{schemaOptions:a,path:"",uniforms:v}):[],o]}function I(e){if("path"===e.style){if(null==e.path)throw new Error("Symbol with a style of type path must define a path");return{type:"sprite-rasterization-param",overrides:[],resource:{type:"path",path:e.path,asFill:!0}}}const i=o.fromSimpleMarker(e);if("outline"in e&&e.outline&&"none"!==e.outline.style){if("solid"!==e.outline.style){if(!i||!i.symbolLayers)throw new Error("Error handling marker! ");return{type:"sprite-rasterization-param",resource:i.symbolLayers[0],overrides:[]}}}return{type:"sprite-rasterization-param",resource:c(i),overrides:[]}}async function w(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l;if("path"===e.style||e.outline&&"solid"!==e.outline.style&&"none"!==e.outline.style){const l=o.fromSimpleMarker(e);if(!l||!l.symbolLayers)throw new Error("Error handling marker! ");if(a.visualVariableRotation&&(l.angleAlignment="Map"),"path"!==e.style){const e=l.symbolLayers[0];if(z(i.uniforms)){const a=y(i.uniforms,0,1);if(a>e.size){const i=a/e.size;e.size=a;const l=e.markerGraphics?.[0].symbol;(l.symbolLayers&&l.symbolLayers[0]).width*=i}}}return h({type:"CIMSymbolReference",symbol:l},i)}const t=r.ensureInstance(m.marker,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeMinMaxValue:a.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:a.visualVariableSizeScaleStops,visualVariableSizeStops:a.visualVariableSizeStops,visualVariableSizeUnitValue:a.visualVariableSizeUnitValue,visualVariableRotation:a.visualVariableRotation},optionalAttributes:{zoomRange:!1}}),s=I(e);let u=e.color?.toArray()??[0,0,0,0];"CIMVectorMarker"===s.resource.type&&(u=[255,255,255,255]);const c="triangle"===e.style?124/116:1,p=e.size,f=p*c,b=null!=a.visualVariableColor&&("cross"===e.style||"x"===e.style);return[t.createMeshInfo({type:"simple",color:u,height:p,width:f,offsetX:e.xoffset,offsetY:e.yoffset,angle:e.angle,alignment:d(a)?n.MAP:n.SCREEN,outlineColor:e.outline?.color?.toArray()??[0,0,0,0],outlineSize:e.outline?.width??1,referenceSize:p,sprite:s,overrideOutlineColor:b,hasSizeVV:z(a),placement:null,effects:null,transforms:null,scaleInfo:null,minPixelBuffer:y(a)})]}function O(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l,t=r.ensureInstance(m.marker,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeMinMaxValue:a.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:a.visualVariableSizeScaleStops,visualVariableSizeStops:a.visualVariableSizeStops,visualVariableSizeUnitValue:a.visualVariableSizeUnitValue,visualVariableRotation:a.visualVariableRotation},optionalAttributes:{zoomRange:!1}}),s=o.createPictureMarkerRasterizationParam(e);if(!s)return[];return[t.createMeshInfo({type:"picture",color:[255,255,255,255],height:e.height,width:e.width,offsetX:e.xoffset,offsetY:e.yoffset,angle:e.angle,alignment:d(a)?n.MAP:n.SCREEN,outlineColor:null,outlineSize:0,referenceSize:e.height,sprite:s,overrideOutlineColor:!1,hasSizeVV:z(a),placement:null,effects:null,transforms:null,scaleInfo:null,minPixelBuffer:y(a)})]}function A(e,i,a){const{uniforms:l,schemaOptions:r}=a,{store:t}=r,o=t.ensureInstance(m.marker,{uniforms:{visualVariableColor:l.visualVariableColor,visualVariableOpacity:l.visualVariableOpacity,visualVariableSizeMinMaxValue:l.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:l.visualVariableSizeScaleStops,visualVariableSizeStops:l.visualVariableSizeStops,visualVariableSizeUnitValue:l.visualVariableSizeUnitValue,visualVariableRotation:l.visualVariableRotation},optionalAttributes:{zoomRange:!1}}),s=I(e),c=6,p=c*i.width,f=p,b=e.color?.toArray()??i.color?.toArray()??[0,0,0,0],S="cross"===e.style||"x"===e.style;let V;switch(e.placement){case"begin-end":V=u.Both;break;case"begin":V=u.JustBegin;break;case"end":V=u.JustEnd;break;default:V=u.None}const v={type:"cim-marker-placement-param",placement:{type:"CIMMarkerPlacementAtExtremities",angleToLine:!0,offset:0,extremityPlacement:V,offsetAlongLine:0},overrides:[]};return[o.createMeshInfo({type:"simple",color:b,height:f,width:p,offsetX:0,offsetY:0,angle:0,alignment:d(l)?n.MAP:n.SCREEN,outlineColor:b,outlineSize:S?i.width:0,referenceSize:f/c,sprite:s,overrideOutlineColor:S&&null!=l.visualVariableColor,hasSizeVV:z(l),placement:v,transforms:null,effects:null,scaleInfo:null,minPixelBuffer:y(l)})]}function L(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l;return[r.ensureInstance(m.text,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableRotation:a.visualVariableRotation,visualVariableSizeMinMaxValue:a.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:a.visualVariableSizeScaleStops,visualVariableSizeStops:a.visualVariableSizeStops,visualVariableSizeUnitValue:a.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!1,clipAngle:!1,referenceSymbol:!1}}).createMeshInfo({boxBackgroundColor:e.backgroundColor?.toArray(),boxBorderLineColor:e.borderLineColor?.toArray(),boxBorderLineSize:e.borderLineSize??0,color:e.color?.toArray()??[0,0,0,0],offsetX:e.xoffset,offsetY:e.yoffset,postAngle:e.angle,fontSize:e.font.size,decoration:e.font.decoration,haloColor:e.haloColor?.toArray()??[0,0,0,0],haloSize:e.haloSize??0,outlineColor:[0,0,0,0],outlineSize:0,lineWidth:e.lineWidth,lineHeightRatio:e.lineHeight,horizontalAlignment:e.horizontalAlignment,verticalAlignment:e.verticalAlignment,useCIMAngleBehavior:!1,glyphs:{type:"text-rasterization-param",resource:{type:"text",font:e.font.toJSON(),textString:e.text,symbol:o.createCIMTextSymbolfromTextSymbol(e)},overrides:[]},referenceSize:null,effects:null,placement:null,scaleInfo:null,transforms:null,scaleFactor:1,minPixelBuffer:y(a),repeatLabel:null,repeatLabelDistance:null,allowOverrun:null,labelPosition:null})]}function R(e,a){const{schemaOptions:l,uniforms:r}=a,{store:t}=l,s=e.symbol,{allowOverrun:n,repeatLabel:u,repeatLabelDistance:c}=e,f={maxScale:e.maxScale??0,minScale:e.minScale??0},b=t.ensureInstance(m.label,{uniforms:{visualVariableColor:null,visualVariableOpacity:null,visualVariableRotation:r.visualVariableRotation,visualVariableSizeMinMaxValue:r.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:r.visualVariableSizeScaleStops,visualVariableSizeStops:r.visualVariableSizeStops,visualVariableSizeUnitValue:r.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!0,clipAngle:!0,referenceSymbol:!0}}),S=e.labelPlacement,[V,v]=p(S);return[b.createMeshInfo({boxBackgroundColor:s.backgroundColor?.toArray(),boxBorderLineColor:s.borderLineColor?.toArray(),boxBorderLineSize:s.borderLineSize??0,color:s.color?.toArray()??[0,0,0,0],offsetX:s.xoffset,offsetY:s.yoffset,postAngle:s.angle,fontSize:s.font.size,decoration:s.font.decoration,outlineColor:[0,0,0,0],outlineSize:0,haloColor:s.haloColor?.toArray()??[0,0,0,0],haloSize:s.haloSize??0,lineWidth:s.lineWidth,lineHeightRatio:s.lineHeight,horizontalAlignment:V,verticalAlignment:v,repeatLabel:u,repeatLabelDistance:i(c),allowOverrun:n,labelPosition:e.labelPosition,scaleInfo:f,minPixelBuffer:y(r),useCIMAngleBehavior:!1,glyphs:{type:"text-rasterization-param",resource:{type:"text",font:s.font.toJSON(),textString:s.text,symbol:o.createCIMTextSymbolfromTextSymbol(s),primitiveName:"label-override"},useLegacyLabelEvaluationRules:null==e.labelExpressionInfo?.expression,overrides:[{type:"CIMPrimitiveOverride",valueExpressionInfo:{type:"CIMExpressionInfo",expression:e.labelExpressionInfo?.expression??e.labelExpression,returnType:"String"},primitiveName:"label-override",propertyName:"textString",defaultValue:""}]},referenceSize:null,effects:null,placement:null,transforms:null,scaleFactor:1})]}function k(e,i){const a=e.width;return{outlineColor:e.color?.toArray()||[0,0,0,1],width:a,referenceWidth:a,capType:e.cap??"round",joinType:e.join??"round",miterLimit:e.miterLimit,hasSizeVV:i}}function E(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l,t=e.color?.toArray()??[0,0,0,0],o={type:"sprite-rasterization-param",resource:{type:"fill-style",style:e.style},overrides:[]};if("solid"===e.outline?.style){return[r.ensureInstance(m.patternOutlineFill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeScaleStops:a.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:t,...k(e.outline,!!a.visualVariableSizeOutlineScaleStops),sprite:o,scaleInfo:null,effects:null})]}const s=[],n=r.ensureInstance(m.patternFill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:e.color?.toArray()??[0,0,0,0],sprite:o,scaleInfo:null,effects:null});return s.push(n),e.outline&&s.push(...F(e.outline,i,!0)),s}function j(e,i){const{uniforms:a,schemaOptions:l}=i,{store:r}=l,t=e.color?.toArray()??[0,0,0,0];if("none"!==e.style&&"solid"===e.outline?.style){return[r.ensureInstance(m.outlineFill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity,visualVariableSizeScaleStops:a.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:t,...k(e.outline,!!a.visualVariableSizeOutlineScaleStops),scaleInfo:null,effects:null})]}const o=[];if("none"!==e.style){const e=r.ensureInstance(m.fill,{uniforms:{visualVariableColor:a.visualVariableColor,visualVariableOpacity:a.visualVariableOpacity},optionalAttributes:{zoomRange:!1}}).createMeshInfo({color:t,scaleInfo:null,effects:null});o.push(e)}return e.outline&&o.push(...F(e.outline,i,!0)),o}async function P(e,i){if("cim"===e.type)return h(e.data,i);const{style:a}=e;return a&&"none"!==a&&"solid"!==a?E(e,i):j(e,i)}function U(e,i){const{outline:a}=e,{uniforms:l,schemaOptions:r}=i,{store:t}=r,s=[],n=o.createPictureFillRasterizationParam(e);if(!n)return[];const{width:u,height:c,xoffset:p,yoffset:f,xscale:b,yscale:S}=e,V={color:[255,255,255,255],sprite:n,height:c,aspectRatio:u/c,offsetX:p,offsetY:f,scaleX:b,scaleY:S,angle:0,applyRandomOffset:!1,sampleAlphaOnly:!1,scaleProportionally:!1,effects:null,scaleInfo:null};if("solid"===a?.style){return[t.ensureInstance(m.complexOutlineFill,{uniforms:{visualVariableColor:l.visualVariableColor,visualVariableOpacity:l.visualVariableOpacity,visualVariableSizeScaleStops:l.visualVariableSizeOutlineScaleStops,visualVariableSizeMinMaxValue:null,visualVariableSizeStops:null,visualVariableSizeUnitValue:null},optionalAttributes:{zoomRange:!1}}).createMeshInfo({...V,...k(a,!!l.visualVariableSizeOutlineScaleStops)})]}const y=t.ensureInstance(m.complexFill,{uniforms:{visualVariableColor:l.visualVariableColor,visualVariableOpacity:l.visualVariableOpacity},optionalAttributes:{zoomRange:!1}});return s.push(y.createMeshInfo(V)),a&&s.push(...F(a,i,!0)),s}function F(e,i,a){const{color:l,style:r,width:t,cap:o,join:n}=e,{schemaOptions:u}=i,{store:c}=u,p=[],f=a?{...v,visualVariableSizeScaleStops:i.uniforms.visualVariableSizeOutlineScaleStops}:i.uniforms,b={uniforms:{visualVariableColor:f.visualVariableColor,visualVariableOpacity:f.visualVariableOpacity,visualVariableSizeMinMaxValue:f.visualVariableSizeMinMaxValue,visualVariableSizeScaleStops:f.visualVariableSizeScaleStops,visualVariableSizeStops:f.visualVariableSizeStops,visualVariableSizeUnitValue:f.visualVariableSizeUnitValue},optionalAttributes:{zoomRange:!1}},S={color:l?.toArray()??[0,0,0,0],width:t,referenceWidth:t,capType:o,joinType:n,miterLimit:e.miterLimit,hasSizeVV:z(f),effects:null,scaleInfo:null};if(null==r||"solid"===r){const e=c.ensureInstance(m.line,b).createMeshInfo(S);p.push(e)}else if("none"!==r){const e=c.ensureInstance(m.texturedLine,b).createMeshInfo({...S,offsetAlongLine:0,shouldScaleDash:!0,shouldSampleAlphaOnly:!1,isSDF:!0,sprite:{type:"sprite-rasterization-param",resource:{type:"dash",dashTemplate:s(r,o)},overrides:[]}});p.push(e)}return null!=e.marker&&p.push(...A(e.marker,e,i)),p}export{M as createDotDensityMeshSchemas,x as createHeatmapMeshSchemas,F as createLineInstance,C as createPieChartMeshSchemas,g as createSymbolMeshSchemas};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../../geometry.js";import{ArcadeDate as e}from"../../../../../arcade/ArcadeDate.js";import has from"../../../../../core/has.js";import{DateOnly as t}from"../../../../../core/sql/DateOnly.js";import{TimeOnly as r}from"../../../../../core/sql/TimeOnly.js";import{GeometryCursor as s}from"../../../../../geometry/GeometryCursor.js";import{fromRectValues as i}from"../../../../../geometry/support/aaBoundingBox.js";import{getLabelPoint as a}from"../../../../../geometry/support/labelPoint.js";import{getCentroidOptimizedGeometry as o}from"../../../../../layers/graphics/centroid.js";import{convertToGeometry as n,quantizeOptimizedGeometry as d,unquantizeOptimizedGeometry as u}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as h}from"../../../../../layers/graphics/OptimizedFeature.js";import c from"../../../../../layers/graphics/OptimizedGeometry.js";import{system as l,unknown as m}from"../../../../../time/timeZoneUtils.js";import{FeatureSetCache as y}from"./FeatureSetCache.js";import{fromJSON as f}from"../../../../../geometry/support/jsonUtils.js";const p=has("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],g=p[0],_=p[1],b=p[2],x=p[3],T=has("featurelayer-simplify-payload-size-factors")??[1,2,4],D=T[0],F=T[1],A=T[2],I=has("featurelayer-simplify-mobile-factor")??2,S=has("esri-mobile"),B=4294967295;function j(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class G{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._overrides=null,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}destroy(){}[Symbol.dispose](){this.destroy()}getAreaSimplificationThreshold(e,t){let r=1;const s=S?I:1;t>4e6?r=A*s:t>1e6?r=F*s:t>5e5?r=D*s:t>1e5&&(r=s);let i=0;return e>4e3?i=x*r:e>2e3?i=b*r:e>100?i=_:e>15&&(i=g),i}getBounds(e){if(j(this._boundsBuffer,4*this.getIndex()+4,0),this.getBoundsXMin()===B)return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(!t)return this.setBoundsXMin(B),!1;let r=1/0,s=1/0,a=-1/0,o=-1/0;return t.forEachVertex(((e,t)=>{r=Math.min(r,e),s=Math.min(s,t),a=Math.max(a,e),o=Math.max(o,t)})),this.setBoundsXMin(r),this.setBoundsYMin(s),this.setBoundsXMax(a),this.setBoundsYMax(o),i(e,r,s,a,o),!0}const t=this.getBoundsXMin(),r=this.getBoundsYMin(),s=this.getBoundsXMax(),a=this.getBoundsYMax();return i(e,t,r,s,a),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const s of this._joined){s.setIndex(this.getIndex());const r=s._readAttribute(e,t);if(void 0!==r)return r}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}registerOverrides(e){this._overrides=e}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace();return new h(e,t,r,this.getObjectId(),this.getDisplayId())}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return n(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryForDisplayTransformed(e){const t=this.readGeometryForDisplay(),r=new c;return d(r,t,this.hasZ,this.hasM,this.geometryType,e),r.deltaDecode()}readGeometryWorldSpace(){let e=this._readGeometry();if(e||(e=this._createGeometryFromServerCentroid()),!e)return null;const t=e.clone(),r=this.getInTransform();return null!=r&&u(t,t,this.hasZ,this.hasM,r),t}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();if(!t)return null;const r=t.clone(),s=this.getInTransform();return null!=s&&u(r,r,this.hasZ,this.hasM,s),r}setCache(e){let t=this._caches.get(e);null==t&&(t=new y(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);return"esriGeometryPoint"!==this.geometryType&&t&&this.getInTransform()?t.deltaDecode():t}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some((t=>t.hasField(e)))}geometry(){const e=this.readGeometryWorldSpace(),t=n(e,this.geometryType,this.hasZ,this.hasM),r=f(t);if(r){if(!this.metadata.spatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.spatialReference}return r}autocastArcadeDate(t,r){return r&&r instanceof Date?this.isUnknownDateTimeField(t)?e.unknownDateJSToArcadeDate(r):e.dateJSAndZoneToArcadeDate(r,this.contextTimeZone??l):r}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===m}field(s){let i=this.fields.get(s);if(i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return t.fromReader(this.readAttribute(s,!1));case"time-only":case"esriFieldTypeTimeOnly":return r.fromReader(this.readAttribute(s,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(this.readAttribute(s,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(s,this.readAttribute(s,!0));default:return this.readAttribute(s,!1)}for(const a of this._joined)if(a.setIndex(this.getIndex()),i=a.fields.get(s),i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return t.fromReader(a._readAttribute(s,!1));case"time-only":case"esriFieldTypeTimeOnly":return r.fromReader(a._readAttribute(s,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(a._readAttribute(s,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(s,a._readAttribute(s,!0));default:return this.readAttribute(s,!1)}throw new Error(`Field ${s} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map((e=>e.name))}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes??{}}};for(const s in r.attributes){const e=r.attributes[s];e instanceof Date&&(r.attributes[s]=e.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}_getExists(){if(this._overrides){const e=this.getObjectId();return!this._overrides.hasOverride(e)}return!0}_computeDisplayCentroid(e){if(null==this.getInTransform())return o(new c,e,this.hasM,this.hasZ);const t=s.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=a(t);return r?(r[1]*=-1,new c([],r)):null}copyInto(e){e._joined=this._joined,e._overrides=this._overrides,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return n(e,this.geometryType,!1,!1)}_createGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createQuantizedExtrudedGeometry(t,r)}_createQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createQuantizedExtrudedLine(e,t):this._createQuantizedExtrudedQuad(e,t)}_createQuantizedExtrudedQuad(e,t){return new c([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createQuantizedExtrudedLine(e,t){return new c([2],[e-1,t+1,1,-1])}}export{G as FeatureSetReader};
5
+ import{ArcadeDate as e}from"../../../../../arcade/ArcadeDate.js";import has from"../../../../../core/has.js";import{DateOnly as t}from"../../../../../core/sql/DateOnly.js";import{TimeOnly as r}from"../../../../../core/sql/TimeOnly.js";import{GeometryCursor as s}from"../../../../../geometry/GeometryCursor.js";import{fromRectValues as i}from"../../../../../geometry/support/aaBoundingBox.js";import{fromJSON as a}from"../../../../../geometry/support/jsonUtils.js";import{getLabelPoint as o}from"../../../../../geometry/support/labelPoint.js";import{getCentroidOptimizedGeometry as n}from"../../../../../layers/graphics/centroid.js";import{convertToGeometry as d,quantizeOptimizedGeometry as u,unquantizeOptimizedGeometry as h}from"../../../../../layers/graphics/featureConversionUtils.js";import{OptimizedFeature as c}from"../../../../../layers/graphics/OptimizedFeature.js";import l from"../../../../../layers/graphics/OptimizedGeometry.js";import{system as m,unknown as y}from"../../../../../time/timeZoneUtils.js";import{FeatureSetCache as f}from"./FeatureSetCache.js";const p=has("featurelayer-simplify-thresholds")??[.5,.5,.5,.5],g=p[0],_=p[1],b=p[2],x=p[3],T=has("featurelayer-simplify-payload-size-factors")??[1,2,4],D=T[0],F=T[1],A=T[2],I=has("featurelayer-simplify-mobile-factor")??2,S=has("esri-mobile"),B=4294967295;function j(e,t,r){if(!(e.length>t))for(;e.length<=t;)e.push(r)}class G{constructor(e){this.metadata=e,this.type="FeatureSetReader",this._overrides=null,this._joined=[],this._objectIdToIndex=null,this._boundsBuffer=[],this._caches=new Map,this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}destroy(){}[Symbol.dispose](){this.destroy()}getAreaSimplificationThreshold(e,t){let r=1;const s=S?I:1;t>4e6?r=A*s:t>1e6?r=F*s:t>5e5?r=D*s:t>1e5&&(r=s);let i=0;return e>4e3?i=x*r:e>2e3?i=b*r:e>100?i=_:e>15&&(i=g),i}getBounds(e){if(j(this._boundsBuffer,4*this.getIndex()+4,0),this.getBoundsXMin()===B)return!1;if(0===this.getBoundsXMin()){const t=this.readGeometryWorldSpace();if(!t)return this.setBoundsXMin(B),!1;let r=1/0,s=1/0,a=-1/0,o=-1/0;return t.forEachVertex(((e,t)=>{r=Math.min(r,e),s=Math.min(s,t),a=Math.max(a,e),o=Math.max(o,t)})),this.setBoundsXMin(r),this.setBoundsYMin(s),this.setBoundsXMax(a),this.setBoundsYMax(o),i(e,r,s,a,o),!0}const t=this.getBoundsXMin(),r=this.getBoundsYMin(),s=this.getBoundsXMax(),a=this.getBoundsYMax();return i(e,t,r,s,a),!0}getBoundsXMin(){return this._boundsBuffer[4*this.getIndex()]}setBoundsXMin(e){this._boundsBuffer[4*this.getIndex()]=e}getBoundsYMin(){return this._boundsBuffer[4*this.getIndex()+1]}setBoundsYMin(e){this._boundsBuffer[4*this.getIndex()+1]=e}getBoundsXMax(){return this._boundsBuffer[4*this.getIndex()+2]}setBoundsXMax(e){this._boundsBuffer[4*this.getIndex()+2]=e}getBoundsYMax(){return this._boundsBuffer[4*this.getIndex()+3]}setBoundsYMax(e){this._boundsBuffer[4*this.getIndex()+3]=e}readAttributeAsTimestamp(e){const t=this.readAttribute(e);return"string"==typeof t?new Date(t).getTime():"number"==typeof t||null==t?t:null}readAttribute(e,t=!1){const r=this._readAttribute(e,t);if(void 0!==r)return r;for(const s of this._joined){s.setIndex(this.getIndex());const r=s._readAttribute(e,t);if(void 0!==r)return r}}readAttributes(){const e=this._readAttributes();for(const t of this._joined){t.setIndex(this.getIndex());const r=t._readAttributes();for(const t of Object.keys(r))e[t]=r[t]}return e}joinAttributes(e){this._joined.push(e)}registerOverrides(e){this._overrides=e}readOptimizedFeatureWorldSpace(){const e=this.readGeometryWorldSpace(),t=this.readAttributes(),r=this.readCentroidWorldSpace();return new c(e,t,r,this.getObjectId(),this.getDisplayId())}readLegacyFeatureForDisplay(){const e=this.readCentroidForDisplay();return{attributes:this.readAttributes(),geometry:this.readLegacyGeometryForDisplay(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyFeatureWorldSpace(){const e=this.readCentroidWorldSpace();return{attributes:this.readAttributes(),geometry:this._readLegacyGeometryWorldSpace(),centroid:(e&&{x:e.coords[0],y:e.coords[1]})??null}}readLegacyGeometryForDisplay(){const e=this.readGeometryForDisplay();return d(e,this.geometryType,!1,!1)}readXForDisplay(){return this._readX()}readYForDisplay(){return this._readY()}readXWorldSpace(){const e=this._readX(),t=this.getInTransform();return null==t?e:e*t.scale[0]+t.translate[0]}readYWorldSpace(){const e=this._readY(),t=this.getInTransform();return null==t?e:t.translate[1]-e*t.scale[1]}readGeometryForDisplay(){const e=this._readGeometryDeltaDecoded(!0);if(!e){const e=this._createGeometryFromServerCentroid();return e?e.deltaDecode():null}return e}readGeometryForDisplayTransformed(e){const t=this.readGeometryForDisplay(),r=new l;return u(r,t,this.hasZ,this.hasM,this.geometryType,e),r.deltaDecode()}readGeometryWorldSpace(){let e=this._readGeometry();if(e||(e=this._createGeometryFromServerCentroid()),!e)return null;const t=e.clone(),r=this.getInTransform();return null!=r&&h(t,t,this.hasZ,this.hasM,r),t}readCentroidForDisplay(){const e=this.readGeometryForDisplay();return e?this._computeDisplayCentroid(e):this._readServerCentroid()}readCentroidWorldSpace(){const e=this.readGeometryForDisplay(),t=e?this._computeDisplayCentroid(e):this._readServerCentroid();if(!t)return null;const r=t.clone(),s=this.getInTransform();return null!=s&&h(r,r,this.hasZ,this.hasM,s),r}setCache(e){let t=this._caches.get(e);null==t&&(t=new f(this.getSize()),this._caches.set(e,t)),this._activeCache=t}setCachedValue(e){this._activeCache.set(this.getIndex(),e)}hasCachedValue(){return this._activeCache.has(this.getIndex())}getCachedValue(){return this._activeCache.get(this.getIndex())}_readGeometryDeltaDecoded(e){const t=this._readGeometry(e);return"esriGeometryPoint"!==this.geometryType&&t&&this.getInTransform()?t.deltaDecode():t}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this.fields.has(e)||this._joined.some((t=>t.hasField(e)))}geometry(){const e=this.readGeometryWorldSpace(),t=d(e,this.geometryType,this.hasZ,this.hasM),r=a(t);if(r){if(!this.metadata.spatialReference)throw new Error("InternalError: Expected spatial reference to be defined");r.spatialReference=this.metadata.spatialReference}return r}autocastArcadeDate(t,r){return r&&r instanceof Date?this.isUnknownDateTimeField(t)?e.unknownDateJSToArcadeDate(r):e.dateJSAndZoneToArcadeDate(r,this.contextTimeZone??m):r}isUnknownDateTimeField(e){return this.metadata.fieldsIndex.getTimeZone(e)===y}field(s){let i=this.fields.get(s);if(i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return t.fromReader(this.readAttribute(s,!1));case"time-only":case"esriFieldTypeTimeOnly":return r.fromReader(this.readAttribute(s,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(this.readAttribute(s,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(s,this.readAttribute(s,!0));default:return this.readAttribute(s,!1)}for(const a of this._joined)if(a.setIndex(this.getIndex()),i=a.fields.get(s),i)switch(i.type){case"date-only":case"esriFieldTypeDateOnly":return t.fromReader(a._readAttribute(s,!1));case"time-only":case"esriFieldTypeTimeOnly":return r.fromReader(a._readAttribute(s,!1));case"esriFieldTypeTimestampOffset":case"timestamp-offset":return e.fromReaderAsTimeStampOffset(a._readAttribute(s,!1));case"date":case"esriFieldTypeDate":return this.autocastArcadeDate(s,a._readAttribute(s,!0));default:return this.readAttribute(s,!1)}throw new Error(`Field ${s} does not exist`)}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this.fields.fields.map((e=>e.name))}castToText(e=!1){if(!e)return JSON.stringify(this.readLegacyFeatureForDisplay());const t=this.readLegacyFeatureForDisplay();if(!t)return JSON.stringify(null);const r={geometry:t.geometry,attributes:{...t.attributes??{}}};for(const s in r.attributes){const e=r.attributes[s];e instanceof Date&&(r.attributes[s]=e.getTime())}return JSON.stringify(r)}gdbVersion(){return null}fullSchema(){return this.metadata.arcadeSchema}castAsJson(e=null){return{attributes:this._readAttributes(),geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}_getExists(){if(this._overrides){const e=this.getObjectId();return!this._overrides.hasOverride(e)}return!0}_computeDisplayCentroid(e){if(null==this.getInTransform())return n(new l,e,this.hasM,this.hasZ);const t=s.fromOptimized(e,this.geometryType);t.yFactor*=-1;const r=o(t);return r?(r[1]*=-1,new l([],r)):null}copyInto(e){e._joined=this._joined,e._overrides=this._overrides,e._objectIdToIndex=this._objectIdToIndex,e._boundsBuffer=this._boundsBuffer,e._activeCache=this._activeCache,e._caches=this._caches,e._contextTimeZone=this._contextTimeZone}_readLegacyGeometryWorldSpace(){const e=this.readGeometryWorldSpace();return d(e,this.geometryType,!1,!1)}_createGeometryFromServerCentroid(){const e=this._readServerCentroid();if(!e)return null;const[t,r]=e.coords;return this._createQuantizedExtrudedGeometry(t,r)}_createQuantizedExtrudedGeometry(e,t){return"esriGeometryPolyline"===this.geometryType?this._createQuantizedExtrudedLine(e,t):this._createQuantizedExtrudedQuad(e,t)}_createQuantizedExtrudedQuad(e,t){return new l([5],[e-1,t,1,-1,1,1,-1,1,-1,-1])}_createQuantizedExtrudedLine(e,t){return new l([2],[e-1,t+1,1,-1])}}export{G as FeatureSetReader};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Logger.js";import{assertIsSome as s}from"../../../../core/maybe.js";import{debounce as r,isAbortError as a}from"../../../../core/promiseUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as n}from"../../../../core/support/UpdatingHandles.js";import h from"../../../../geometry/Point.js";import c from"../../../../layers/support/PixelBlock.js";import u from"../../../../layers/support/TileInfo.js";import{update as p,unregister as d,getRasterId as y,register as m}from"../../../../layers/support/rasterDatasets/RawBlockCache.js";import{getWorldWidth as g,computeProjectedScales as _}from"../../../../layers/support/rasterFunctions/rasterProjectionHelper.js";import f from"../../tiling/TileInfoView.js";import"../../tiling/TileKey.js";import b from"../../tiling/TileQueue.js";import w from"../../tiling/TileStrategy.js";import{tileSize as I}from"../../engine/webgl/definitions.js";import{TaskPriority as P}from"../../../support/Scheduler.js";import{getWebGLCapabilities as R}from"../../../webgl/capabilities.js";import C from"../../../../geometry/Extent.js";const S=[0,0];let v=class extends t{constructor(){super(...arguments),this._updatingHandles=new n,this._emptyTilePixelBlock=null,this._tileStrategy=null,this._tileInfoView=null,this._fetchQueue=null,this._blockCacheRegistryUrl=null,this._blockCacheRegistryId=null,this._srcResolutions=[],this.previousLOD=null,this._needBlockCacheUpdate=!1,this._globalSymbolizerParams=null,this._symbolizerParams=null,this._abortController=null,this._isCustomTilingScheme=!1,this._maxIndexedColormapSize=0,this._rasterFunctionState="na",this._globalUpdateRequested=!1,this.attached=!1,this.timeExtent=null,this.redrawOrRefetch=r((async(e={})=>{const t=this._rasterFunctionState;if(e.reprocess&&(await this._updatingHandles.addPromise(this.layer.updateRasterFunction()),this.updateRasterFunctionParameters()),!this.previousLOD||this.layerView.suspended)return;const i=this._rasterFunctionState,{type:s}=this;return e.refetch||"raster"!==s&&!!e.reprocess||"cpu"===i||"cpu"===t?this._updatingHandles.addPromise(this.doRefresh()):this._updatingHandles.addPromise(this._redrawImage(e.signal))}))}destroy(){this._updatingHandles.destroy()}get useWebGLForProcessing(){return this._get("useWebGLForProcessing")??!0}set useWebGLForProcessing(e){this._set("useWebGLForProcessing",e)}get useProgressiveUpdate(){return this._get("useProgressiveUpdate")??!0}set useProgressiveUpdate(e){if(this._tileStrategy&&this.useProgressiveUpdate!==e){this._tileStrategy.destroy(),this.container.removeAllChildren();const t=this._getCacheSize(e);this._tileStrategy=new w({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:t,tileInfoView:this._tileInfoView}),this._set("useProgressiveUpdate",e),this.layerView.requestUpdate()}}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume();const{extent:t,resolution:i,scale:s}=e.state,r=this._tileInfoView.getClosestInfoForScale(s);if(this.layer.raster){if(!this.useProgressiveUpdate||this._needBlockCacheUpdate){const e=this._srcResolutions[r.level],s="toJSON"in t?t:C.fromJSON(t);p(this._blockCacheRegistryUrl,this._blockCacheRegistryId,s,i,e,this.layer.raster.ioConfig.sampling)}this._needBlockCacheUpdate=!1,this.previousLOD?.level!==r.level&&(this.previousLOD=r,null==this._symbolizerParams||this.layerView.hasTilingEffects||this._updateSymbolizerParams(),this._tileStrategy.updateCacheSize(0))}}moveEnd(){!this.layerView.hasTilingEffects&&this.useProgressiveUpdate||(this._abortController&&this._abortController.abort(),this._abortController=new AbortController,0===this._fetchQueue.length&&this._redrawImage(this._abortController.signal).then((()=>{this._globalUpdateRequested=!1,this.layerView.requestUpdate()})));const e=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy.updateCacheSize(e),this.layerView.requestUpdate()}get updating(){return this._globalUpdateRequested||this._updatingHandles?.updating}attach(){const e=R();this._maxIndexedColormapSize=4*(e.maxTextureSize||4096),this._initializeTileInfo(),this._tileInfoView=new f(this.layerView.tileInfo,this.layerView.fullExtent);const t=this._computeFetchConcurrency();this._fetchQueue=new b({tileInfoView:this._tileInfoView,concurrency:t,process:(e,t)=>this._fetchTile(e,t),priority:P.MAPVIEW_FETCH_QUEUE,scheduler:this.scheduler});const i=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy=new w({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:i,tileInfoView:this._tileInfoView}),this._updateBlockCacheRegistry()}detach(){this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._fetchQueue=this._tileStrategy=this._tileInfoView=null,d(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryUrl=this._blockCacheRegistryId=null}acquireTile(e){const t=this.container.createTile(e);return this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this.layerView.requestUpdate(),this._needBlockCacheUpdate=!0,this._globalUpdateRequested=this.layerView.hasTilingEffects||!this.useProgressiveUpdate,t}releaseTile(e){this._fetchQueue.abort(e.key.id),this.container.removeChild(e),e.once("detach",(()=>{e.destroy(),this.layerView.requestUpdate()})),this.layerView.requestUpdate()}createEmptyTilePixelBlock(e=null){const t=null==e||e.join(",")===this._tileInfoView.tileInfo.size.join(",");if(t&&null!=this._emptyTilePixelBlock)return this._emptyTilePixelBlock;e=e||this._tileInfoView.tileInfo.size;const[i,s]=e,r=new c({width:i,height:s,pixels:[new Uint8Array(i*s)],mask:new Uint8Array(i*s),pixelType:"u8"});return t&&(this._emptyTilePixelBlock=r),r}_getBandIds(){if(!("rasterFunctionChain"in this.container)||!this.container.rasterFunctionChain)return this.layer.bandIds;const{bandIds:e,raster:t}=this.layer,i="rasterFunction"in t?t.rasterFunction.rawInputBandIds:null;return e?.length&&i?.length&&1!==t.rasterInfo.bandCount?e.map((e=>i[Math.min(e,i.length-1)])):e||i}updateRasterFunctionParameters(){}_fetchTile(e,t){const i=this._getFetchOptions(e.level,t.signal);return this.fetchTile(e,i)}_getFetchOptions(e,t){const i=this.canUseWebGLForProcessing(),{layerView:s}=this,{tileInfo:r}=s,a=!r.isWrappable&&null!=g(s.view.spatialReference),o=i&&this.layer.raster.hasUniqueSourceStorageInfo;return{allowPartialFill:!0,datumTransformation:s.datumTransformation,interpolation:i?"nearest":this.layer.interpolation,registryId:this._blockCacheRegistryId,requestRawData:o,skipRasterFunction:"raster"===this.type&&null!=this.container.rasterFunctionChain,signal:t,srcResolution:this._srcResolutions[e],timeExtent:s.timeExtent,tileInfo:r,disableWrapAround:a}}_getCacheSize(e){return e?40:0}_initializeTileInfo(){const{layerView:e}=this,t=e.view.spatialReference;if(this._canUseLayerLODs()){const{origin:i,lods:s}=this.layer.tileInfo,r=s.map((({scale:e})=>e)),a=u.create({spatialReference:t,size:I,scales:r,origin:i});return e.set("tileInfo",a),void(this._srcResolutions=s.map((({resolution:e})=>({x:e,y:e}))))}const{scales:i,srcResolutions:r,isCustomTilingScheme:a}=_(this.layer.serviceRasterInfo,t,{tileSize:I,alignGlobalDatasetWithAGOL:!0,limitToSrcResolution:!1}),o=u.create({spatialReference:t,size:I,scales:i}),l=0===o.origin.x;s(e.fullExtent);const{xmin:n,ymax:c}=e.fullExtent;(l||a&&o.origin.x>n)&&(o.origin=new h({x:n,y:c,spatialReference:t})),this._isCustomTilingScheme=a,e.set("tileInfo",o),this._srcResolutions=r??[]}_canUseLayerLODs(){const{layer:e,layerView:t}=this;if("Map"!==e.raster.tileType)return!1;const{lods:i}=e.tileInfo,s=t.view.constraints?.effectiveLODs;return s?.length===i.length&&s.every((({scale:e},t)=>Math.abs(e-i[t].scale)<.001))}_computeFetchConcurrency(){const{blockBoundary:e}=this.layer.serviceRasterInfo.storageInfo,t=e[e.length-1];return(t.maxCol-t.minCol+1)*(t.maxRow-t.minRow+1)>64?2:10}async _enqueueTileFetch(e,t){if(!this._fetchQueue.has(e.key.id)){try{const t=await this._fetchQueue.push(e.key),r=this._getBandIds();let o=!this.useProgressiveUpdate||this.layerView.hasTilingEffects&&!this._globalSymbolizerParams;if(this._globalUpdateRequested&&!this.layerView.moving&&0===this._fetchQueue.length){o=!1;try{await this._redrawImage(this._abortController?.signal)}catch(s){a(s)&&i.getLogger(this).error(s)}this._globalUpdateRequested=!1}!this.canUseWebGLForProcessing()&&"rasterVF"!==this.type||this.layerView.hasTilingEffects||null!=this._symbolizerParams||this._updateSymbolizerParams();const l=this._tileInfoView.getTileCoords(S,e.key),n=this._tileInfoView.getTileResolution(e.key);await this.updateTileSource(e,{source:t,symbolizerParams:this._symbolizerParams,globalSymbolizerParams:this._globalSymbolizerParams,suspended:o,bandIds:r,coords:l,resolution:n}),e.once("attach",(()=>this.layerView.requestUpdate())),this.container.addChild(e)}catch(s){a(s)||i.getLogger(this).error(s)}this.layerView.requestUpdate()}}async _redrawImage(e){if(0===this.container.children.length)return;await this.layer.updateRenderer(),this.layerView.hasTilingEffects?await this._updateGlobalSymbolizerParams(e):(this._updateSymbolizerParams(),this._globalSymbolizerParams=null);const t=this.container.children.map((async e=>this.updateTileSymbolizerParameters(e,{local:this._symbolizerParams,global:this._globalSymbolizerParams})));await Promise.allSettled(t),this.container.requestRender()}async _updateGlobalSymbolizerParams(e){const t=this._getFetchOptions(this.previousLOD.level,e),i=await this.layer.fetchPixels(this.layerView.view.extent,this.layerView.view.width,this.layerView.view.height,{...t,interpolation:"nearest",requestRawData:!1,skipRasterFunction:!1});if(!i?.pixelBlock)return;const{resolution:s}=this.previousLOD,r=this._getBandIds(),a=this.layer.symbolizer.generateWebGLParameters({pixelBlock:i.pixelBlock.extractBands(r),isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:s,y:s},bandIds:r});!this.canUseWebGLForProcessing()&&a&&"stretch"===a.type&&this.layer.renderer&&"raster-stretch"===this.layer.renderer.type&&(a.factor=a.factor.map((e=>255*e)),a.minOutput=Math.round(255*a.minOutput),a.maxOutput=Math.round(255*a.maxOutput)),this._globalSymbolizerParams=a}_updateSymbolizerParams(){const{resolution:e}=this.previousLOD,t=this._getBandIds();this._symbolizerParams=this.layer.symbolizer.generateWebGLParameters({pixelBlock:null,isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:e,y:e},bandIds:t})}_updateBlockCacheRegistry(e=!1){const{layer:t,layerView:i}=this,{raster:s}=t,{multidimensionalDefinition:r}=t.normalizeRasterFetchOptions({multidimensionalDefinition:t.multidimensionalDefinition,timeExtent:i.timeExtent}),a=s.rasterInfo.multidimensionalInfo?s.getSliceIndex(r):null,o=y(s.rasterId,a);if(o!==this._blockCacheRegistryUrl){if(null!=this._blockCacheRegistryUrl&&d(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryId=m(o,s.rasterInfo),e){const{view:e}=i,t=this._tileInfoView.getClosestInfoForScale(e.scale),r=this._srcResolutions[t.level];p(o,this._blockCacheRegistryId,e.extent,e.resolution,r,s.ioConfig.sampling)}this._blockCacheRegistryUrl=o}}async doRefresh(){if(!this.attached||!this.previousLOD||this.layerView.suspended)return;await this.layer.updateRenderer(),this.layerView.hasTilingEffects||this._updateSymbolizerParams(),this._updateBlockCacheRegistry(!0),this._fetchQueue.reset();const e=[];this._globalUpdateRequested=this.layerView.hasTilingEffects||!this.useProgressiveUpdate,this._tileStrategy.refresh((t=>e.push(this._enqueueTileFetch(t)))),await this._updatingHandles.addPromise(Promise.allSettled(e))}};e([o()],v.prototype,"_globalUpdateRequested",void 0),e([o()],v.prototype,"attached",void 0),e([o()],v.prototype,"container",void 0),e([o()],v.prototype,"layer",void 0),e([o()],v.prototype,"layerView",void 0),e([o()],v.prototype,"scheduler",void 0),e([o()],v.prototype,"type",void 0),e([o()],v.prototype,"useWebGLForProcessing",null),e([o()],v.prototype,"useProgressiveUpdate",null),e([o()],v.prototype,"timeExtent",void 0),e([o()],v.prototype,"updating",null),v=e([l("esri.views.2d.layers.imagery.BaseImageryTileSubView2D")],v);export{v as BaseImageryTileSubView2D};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import t from"../../../../core/Accessor.js";import i from"../../../../core/Logger.js";import{assertIsSome as s}from"../../../../core/maybe.js";import{debounce as r,isAbortError as a}from"../../../../core/promiseUtils.js";import{property as o}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/RandomLCG.js";import{subclass as l}from"../../../../core/accessorSupport/decorators/subclass.js";import{UpdatingHandles as n}from"../../../../core/support/UpdatingHandles.js";import h from"../../../../geometry/Extent.js";import c from"../../../../geometry/Point.js";import u from"../../../../layers/support/PixelBlock.js";import p from"../../../../layers/support/TileInfo.js";import{update as d,unregister as y,getRasterId as m,register as g}from"../../../../layers/support/rasterDatasets/RawBlockCache.js";import{getWorldWidth as _,computeProjectedScales as f}from"../../../../layers/support/rasterFunctions/rasterProjectionHelper.js";import b from"../../tiling/TileInfoView.js";import"../../tiling/TileKey.js";import w from"../../tiling/TileQueue.js";import I from"../../tiling/TileStrategy.js";import{tileSize as P}from"../../engine/webgl/definitions.js";import{TaskPriority as R}from"../../../support/Scheduler.js";import{getWebGLCapabilities as C}from"../../../webgl/capabilities.js";const S=[0,0];let v=class extends t{constructor(){super(...arguments),this._updatingHandles=new n,this._emptyTilePixelBlock=null,this._tileStrategy=null,this._tileInfoView=null,this._fetchQueue=null,this._blockCacheRegistryUrl=null,this._blockCacheRegistryId=null,this._srcResolutions=[],this.previousLOD=null,this._needBlockCacheUpdate=!1,this._globalSymbolizerParams=null,this._symbolizerParams=null,this._abortController=null,this._isCustomTilingScheme=!1,this._maxIndexedColormapSize=0,this._rasterFunctionState="na",this._globalUpdateRequested=!1,this.attached=!1,this.timeExtent=null,this.redrawOrRefetch=r((async(e={})=>{const t=this._rasterFunctionState;if(e.reprocess&&(await this._updatingHandles.addPromise(this.layer.updateRasterFunction()),this.updateRasterFunctionParameters()),!this.previousLOD||this.layerView.suspended)return;const i=this._rasterFunctionState,{type:s}=this;return e.refetch||"raster"!==s&&!!e.reprocess||"cpu"===i||"cpu"===t?this._updatingHandles.addPromise(this.doRefresh()):this._updatingHandles.addPromise(this._redrawImage(e.signal))}))}destroy(){this._updatingHandles.destroy()}get useWebGLForProcessing(){return this._get("useWebGLForProcessing")??!0}set useWebGLForProcessing(e){this._set("useWebGLForProcessing",e)}get useProgressiveUpdate(){return this._get("useProgressiveUpdate")??!0}set useProgressiveUpdate(e){if(this._tileStrategy&&this.useProgressiveUpdate!==e){this._tileStrategy.destroy(),this.container.removeAllChildren();const t=this._getCacheSize(e);this._tileStrategy=new I({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:t,tileInfoView:this._tileInfoView}),this._set("useProgressiveUpdate",e),this.layerView.requestUpdate()}}update(e){this._fetchQueue.pause(),this._fetchQueue.state=e.state,this._tileStrategy.update(e),this._fetchQueue.resume();const{extent:t,resolution:i,scale:s}=e.state,r=this._tileInfoView.getClosestInfoForScale(s);if(this.layer.raster){if(!this.useProgressiveUpdate||this._needBlockCacheUpdate){const e=this._srcResolutions[r.level],s="toJSON"in t?t:h.fromJSON(t);d(this._blockCacheRegistryUrl,this._blockCacheRegistryId,s,i,e,this.layer.raster.ioConfig.sampling)}this._needBlockCacheUpdate=!1,this.previousLOD?.level!==r.level&&(this.previousLOD=r,null==this._symbolizerParams||this.layerView.hasTilingEffects||this._updateSymbolizerParams(),this._tileStrategy.updateCacheSize(0))}}moveEnd(){!this.layerView.hasTilingEffects&&this.useProgressiveUpdate||(this._abortController&&this._abortController.abort(),this._abortController=new AbortController,0===this._fetchQueue.length&&this._redrawImage(this._abortController.signal).then((()=>{this._globalUpdateRequested=!1,this.layerView.requestUpdate()})));const e=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy.updateCacheSize(e),this.layerView.requestUpdate()}get updating(){return this._globalUpdateRequested||this._updatingHandles?.updating}attach(){const e=C();this._maxIndexedColormapSize=4*(e.maxTextureSize||4096),this._initializeTileInfo(),this._tileInfoView=new b(this.layerView.tileInfo,this.layerView.fullExtent);const t=this._computeFetchConcurrency();this._fetchQueue=new w({tileInfoView:this._tileInfoView,concurrency:t,process:(e,t)=>this._fetchTile(e,t),priority:R.MAPVIEW_FETCH_QUEUE,scheduler:this.scheduler});const i=this._getCacheSize(this.useProgressiveUpdate);this._tileStrategy=new I({cachePolicy:"purge",acquireTile:e=>this.acquireTile(e),releaseTile:e=>this.releaseTile(e),cacheSize:i,tileInfoView:this._tileInfoView}),this._updateBlockCacheRegistry()}detach(){this._tileStrategy.destroy(),this._fetchQueue.clear(),this.container.removeAllChildren(),this._fetchQueue=this._tileStrategy=this._tileInfoView=null,y(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryUrl=this._blockCacheRegistryId=null}acquireTile(e){const t=this.container.createTile(e);return this._updatingHandles.addPromise(this._enqueueTileFetch(t)),this.layerView.requestUpdate(),this._needBlockCacheUpdate=!0,this._globalUpdateRequested=this.layerView.hasTilingEffects||!this.useProgressiveUpdate,t}releaseTile(e){this._fetchQueue.abort(e.key.id),this.container.removeChild(e),e.once("detach",(()=>{e.destroy(),this.layerView.requestUpdate()})),this.layerView.requestUpdate()}createEmptyTilePixelBlock(e=null){const t=null==e||e.join(",")===this._tileInfoView.tileInfo.size.join(",");if(t&&null!=this._emptyTilePixelBlock)return this._emptyTilePixelBlock;e=e||this._tileInfoView.tileInfo.size;const[i,s]=e,r=new u({width:i,height:s,pixels:[new Uint8Array(i*s)],mask:new Uint8Array(i*s),pixelType:"u8"});return t&&(this._emptyTilePixelBlock=r),r}_getBandIds(){if(!("rasterFunctionChain"in this.container)||!this.container.rasterFunctionChain)return this.layer.bandIds;const{bandIds:e,raster:t}=this.layer,i="rasterFunction"in t?t.rasterFunction.rawInputBandIds:null;return e?.length&&i?.length&&1!==t.rasterInfo.bandCount?e.map((e=>i[Math.min(e,i.length-1)])):e||i}updateRasterFunctionParameters(){}_fetchTile(e,t){const i=this._getFetchOptions(e.level,t.signal);return this.fetchTile(e,i)}_getFetchOptions(e,t){const i=this.canUseWebGLForProcessing(),{layerView:s}=this,{tileInfo:r}=s,a=!r.isWrappable&&null!=_(s.view.spatialReference),o=i&&this.layer.raster.hasUniqueSourceStorageInfo;return{allowPartialFill:!0,datumTransformation:s.datumTransformation,interpolation:i?"nearest":this.layer.interpolation,registryId:this._blockCacheRegistryId,requestRawData:o,skipRasterFunction:"raster"===this.type&&null!=this.container.rasterFunctionChain,signal:t,srcResolution:this._srcResolutions[e],timeExtent:s.timeExtent,tileInfo:r,disableWrapAround:a}}_getCacheSize(e){return e?40:0}_initializeTileInfo(){const{layerView:e}=this,t=e.view.spatialReference;if(this._canUseLayerLODs()){const{origin:i,lods:s}=this.layer.tileInfo,r=s.map((({scale:e})=>e)),a=p.create({spatialReference:t,size:P,scales:r,origin:i});return e.set("tileInfo",a),void(this._srcResolutions=s.map((({resolution:e})=>({x:e,y:e}))))}const{scales:i,srcResolutions:r,isCustomTilingScheme:a}=f(this.layer.serviceRasterInfo,t,{tileSize:P,alignGlobalDatasetWithAGOL:!0,limitToSrcResolution:!1}),o=p.create({spatialReference:t,size:P,scales:i}),l=0===o.origin.x;s(e.fullExtent);const{xmin:n,ymax:h}=e.fullExtent;(l||a&&o.origin.x>n)&&(o.origin=new c({x:n,y:h,spatialReference:t})),this._isCustomTilingScheme=a,e.set("tileInfo",o),this._srcResolutions=r??[]}_canUseLayerLODs(){const{layer:e,layerView:t}=this;if("Map"!==e.raster.tileType)return!1;const{lods:i}=e.tileInfo,s=t.view.constraints?.effectiveLODs;return s?.length===i.length&&s.every((({scale:e},t)=>Math.abs(e-i[t].scale)<.001))}_computeFetchConcurrency(){const{blockBoundary:e}=this.layer.serviceRasterInfo.storageInfo,t=e[e.length-1];return(t.maxCol-t.minCol+1)*(t.maxRow-t.minRow+1)>64?2:10}async _enqueueTileFetch(e,t){if(!this._fetchQueue.has(e.key.id)){try{const t=await this._fetchQueue.push(e.key),r=this._getBandIds();let o=!this.useProgressiveUpdate||this.layerView.hasTilingEffects&&!this._globalSymbolizerParams;if(this._globalUpdateRequested&&!this.layerView.moving&&0===this._fetchQueue.length){o=!1;try{await this._redrawImage(this._abortController?.signal)}catch(s){a(s)&&i.getLogger(this).error(s)}this._globalUpdateRequested=!1}!this.canUseWebGLForProcessing()&&"rasterVF"!==this.type||this.layerView.hasTilingEffects||null!=this._symbolizerParams||this._updateSymbolizerParams();const l=this._tileInfoView.getTileCoords(S,e.key),n=this._tileInfoView.getTileResolution(e.key);await this.updateTileSource(e,{source:t,symbolizerParams:this._symbolizerParams,globalSymbolizerParams:this._globalSymbolizerParams,suspended:o,bandIds:r,coords:l,resolution:n}),e.once("attach",(()=>this.layerView.requestUpdate())),this.container.addChild(e)}catch(s){a(s)||i.getLogger(this).error(s)}this.layerView.requestUpdate()}}async _redrawImage(e){if(0===this.container.children.length)return;await this.layer.updateRenderer(),this.layerView.hasTilingEffects?await this._updateGlobalSymbolizerParams(e):(this._updateSymbolizerParams(),this._globalSymbolizerParams=null);const t=this.container.children.map((async e=>this.updateTileSymbolizerParameters(e,{local:this._symbolizerParams,global:this._globalSymbolizerParams})));await Promise.allSettled(t),this.container.requestRender()}async _updateGlobalSymbolizerParams(e){const t=this._getFetchOptions(this.previousLOD.level,e),i=await this.layer.fetchPixels(this.layerView.view.extent,this.layerView.view.width,this.layerView.view.height,{...t,interpolation:"nearest",requestRawData:!1,skipRasterFunction:!1});if(!i?.pixelBlock)return;const{resolution:s}=this.previousLOD,r=this._getBandIds(),a=this.layer.symbolizer.generateWebGLParameters({pixelBlock:i.pixelBlock.extractBands(r),isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:s,y:s},bandIds:r});!this.canUseWebGLForProcessing()&&a&&"stretch"===a.type&&this.layer.renderer&&"raster-stretch"===this.layer.renderer.type&&(a.factor=a.factor.map((e=>255*e)),a.minOutput=Math.round(255*a.minOutput),a.maxOutput=Math.round(255*a.maxOutput)),this._globalSymbolizerParams=a}_updateSymbolizerParams(){const{resolution:e}=this.previousLOD,t=this._getBandIds();this._symbolizerParams=this.layer.symbolizer.generateWebGLParameters({pixelBlock:null,isGCS:this.layerView.view.spatialReference.isGeographic,resolution:{x:e,y:e},bandIds:t})}_updateBlockCacheRegistry(e=!1){const{layer:t,layerView:i}=this,{raster:s}=t,{multidimensionalDefinition:r}=t.normalizeRasterFetchOptions({multidimensionalDefinition:t.multidimensionalDefinition,timeExtent:i.timeExtent}),a=s.rasterInfo.multidimensionalInfo?s.getSliceIndex(r):null,o=m(s.rasterId,a);if(o!==this._blockCacheRegistryUrl){if(null!=this._blockCacheRegistryUrl&&y(this._blockCacheRegistryUrl,this._blockCacheRegistryId),this._blockCacheRegistryId=g(o,s.rasterInfo),e){const{view:e}=i,t=this._tileInfoView.getClosestInfoForScale(e.scale),r=this._srcResolutions[t.level];d(o,this._blockCacheRegistryId,e.extent,e.resolution,r,s.ioConfig.sampling)}this._blockCacheRegistryUrl=o}}async doRefresh(){if(!this.attached||!this.previousLOD||this.layerView.suspended)return;await this.layer.updateRenderer(),this.layerView.hasTilingEffects||this._updateSymbolizerParams(),this._updateBlockCacheRegistry(!0),this._fetchQueue.reset();const e=[];this._globalUpdateRequested=this.layerView.hasTilingEffects||!this.useProgressiveUpdate,this._tileStrategy.refresh((t=>e.push(this._enqueueTileFetch(t)))),await this._updatingHandles.addPromise(Promise.allSettled(e))}};e([o()],v.prototype,"_globalUpdateRequested",void 0),e([o()],v.prototype,"attached",void 0),e([o()],v.prototype,"container",void 0),e([o()],v.prototype,"layer",void 0),e([o()],v.prototype,"layerView",void 0),e([o()],v.prototype,"scheduler",void 0),e([o()],v.prototype,"type",void 0),e([o()],v.prototype,"useWebGLForProcessing",null),e([o()],v.prototype,"useProgressiveUpdate",null),e([o()],v.prototype,"timeExtent",void 0),e([o()],v.prototype,"updating",null),v=e([l("esri.views.2d.layers.imagery.BaseImageryTileSubView2D")],v);export{v as BaseImageryTileSubView2D};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../renderers/ClassBreaksRenderer.js";import"../../../../renderers/DictionaryRenderer.js";import"../../../../renderers/DotDensityRenderer.js";import"../../../../renderers/HeatmapRenderer.js";import"../../../../renderers/PieChartRenderer.js";import"../../../../renderers/Renderer.js";import e from"../../../../renderers/SimpleRenderer.js";import"../../../../renderers/UniqueValueRenderer.js";import"../../../../renderers/support/jsonUtils.js";import r from"../../../../core/Logger.js";import"../../../../symbols.js";import s from"../../../../core/Error.js";import has from"../../../../core/has.js";import{createMD5Hash as i}from"../../../../core/MD5.js";import n from"../../../../layers/support/AggregateField.js";import t from"../../../../layers/support/ExpressionInfo.js";import o from"../../../../renderers/support/AuthoringInfo.js";import a from"../../../../symbols/SimpleMarkerSymbol.js";const l=()=>r.getLogger("esri.views.2d.layers.support.clusterUtils");has.add("esri-cluster-arcade-enabled",!0);const u=has("esri-cluster-arcade-enabled"),p=new Set(["simple-line","simple-fill","picture-fill"]);function d(r,s){let i=s.clone();if(!m(i))return i;if(s.symbols.some((e=>p.has(e.type)))&&(i=new e({symbol:new a})),i.authoringInfo||(i.authoringInfo=new o),i.authoringInfo.isAutoGenerated=!0,"visualVariables"in i){const e=(i.visualVariables||[]).filter((e=>"$view.scale"!==e.valueExpression));e.forEach((e=>{"rotation"===e.type?e.field?e.field=v(r,e.field,"avg_angle","number"):e.valueExpression&&(e.field=f(r,e.valueExpression,"avg_angle","number"),e.valueExpression=null):e.normalizationField?(e.field=v(r,e.field,"avg_norm","number",e.normalizationField),e.normalizationField=null):e.field?e.field=v(r,e.field,"avg","number"):e.valueExpression&&(e.field=f(r,e.valueExpression,"avg","number"),e.valueExpression=null)})),i.visualVariables=e}switch(i.type){case"simple":break;case"pie-chart":for(const e of i.attributes)e.field?e.field=v(r,e.field,"sum","number"):e.valueExpression&&(e.field=f(r,e.valueExpression,"sum","number"),e.valueExpression=null);break;case"unique-value":i.field?i.field=v(r,i.field,"mode","string"):i.valueExpression&&(i.field=f(r,i.valueExpression,"mode","string"),i.valueExpression=null);break;case"class-breaks":i.normalizationField?(i.field=v(r,i.field,"avg_norm","number",i.normalizationField),i.normalizationField=null):i.field?i.field=v(r,i.field,"avg","number"):i.valueExpression&&(i.field=f(r,i.valueExpression,"avg","number"),i.valueExpression=null)}return i}const m=e=>{const r=r=>l().error(new s("Unsupported-renderer",r,{renderer:e}));if(!e)return!1;switch(e.type){case"unique-value":if(e.field2||e.field3)return r("FeatureReductionCluster does not support multi-field UniqueValueRenderers"),!1;break;case"class-breaks":if(e.normalizationField){const s=e.normalizationType;if("field"!==s)return r(`FeatureReductionCluster does not support a normalizationType of ${s}`),!1}break;case"simple":case"pie-chart":break;default:return r(`FeatureReductionCluster does not support renderers of type ${e.type}`),!1}if(!u){if("valueExpression"in e&&e.valueExpression)return r("FeatureReductionCluster does not currently support renderer.valueExpression. Support will be added in a future release"),!1;if(("visualVariables"in e&&e.visualVariables||[]).some((e=>!(!("valueExpression"in e)||!e.valueExpression))))return r("FeatureReductionCluster does not currently support visualVariables with a valueExpression. Support will be added in a future release"),!1}return!0};function c(e,r,s){switch(e){case"sum":return`cluster_sum_${r}`;case"avg":case"avg_angle":return`cluster_avg_${r}`;case"mode":return`cluster_type_${r}`;case"avg_norm":{const e=s,n="field",t=r.toLowerCase()+",norm:"+n+","+e.toLowerCase();return"cluster_avg_"+i(t)}}}function f(e,r,s,o){const a=i(r),l="mode"===s?`cluster_type_${a}`:"sum"===s?`cluster_sum_${a}`:`cluster_avg_${a}`;return e.some((e=>e.name===l))||e.push(new n({name:l,isAutoGenerated:!0,onStatisticExpression:new t({expression:r,returnType:o}),statisticType:s})),l}function v(e,r,s,i,o){if("cluster_count"===r||e.some((e=>e.name===r)))return r;const a=c(s,r,o);return e.some((e=>e.name===a))||("avg_norm"===s?e.push(new n({name:a,isAutoGenerated:!0,onStatisticExpression:new t({expression:`$feature.${r} / $feature.${o}`,returnType:i}),statisticType:"avg"})):e.push(new n({name:a,isAutoGenerated:!0,onStatisticField:r,statisticType:s}))),a}export{d as createInferredClusterRenderer,m as isClusterCompatibleRenderer};
5
+ import e from"../../../../core/Error.js";import has from"../../../../core/has.js";import r from"../../../../core/Logger.js";import{createMD5Hash as s}from"../../../../core/MD5.js";import i from"../../../../layers/support/AggregateField.js";import n from"../../../../layers/support/ExpressionInfo.js";import t from"../../../../renderers/SimpleRenderer.js";import a from"../../../../renderers/support/AuthoringInfo.js";import o from"../../../../symbols/SimpleMarkerSymbol.js";const l=()=>r.getLogger("esri.views.2d.layers.support.clusterUtils");has.add("esri-cluster-arcade-enabled",!0);const u=has("esri-cluster-arcade-enabled"),p=new Set(["simple-line","simple-fill","picture-fill"]);function d(e,r){let s=r.clone();if(!m(s))return s;if(r.symbols.some((e=>p.has(e.type)))&&(s=new t({symbol:new o})),s.authoringInfo||(s.authoringInfo=new a),s.authoringInfo.isAutoGenerated=!0,"visualVariables"in s){const r=(s.visualVariables||[]).filter((e=>"$view.scale"!==e.valueExpression));r.forEach((r=>{"rotation"===r.type?r.field?r.field=v(e,r.field,"avg_angle","number"):r.valueExpression&&(r.field=c(e,r.valueExpression,"avg_angle","number"),r.valueExpression=null):r.normalizationField?(r.field=v(e,r.field,"avg_norm","number",r.normalizationField),r.normalizationField=null):r.field?r.field=v(e,r.field,"avg","number"):r.valueExpression&&(r.field=c(e,r.valueExpression,"avg","number"),r.valueExpression=null)})),s.visualVariables=r}switch(s.type){case"simple":break;case"pie-chart":for(const r of s.attributes)r.field?r.field=v(e,r.field,"sum","number"):r.valueExpression&&(r.field=c(e,r.valueExpression,"sum","number"),r.valueExpression=null);break;case"unique-value":s.field?s.field=v(e,s.field,"mode","string"):s.valueExpression&&(s.field=c(e,s.valueExpression,"mode","string"),s.valueExpression=null);break;case"class-breaks":s.normalizationField?(s.field=v(e,s.field,"avg_norm","number",s.normalizationField),s.normalizationField=null):s.field?s.field=v(e,s.field,"avg","number"):s.valueExpression&&(s.field=c(e,s.valueExpression,"avg","number"),s.valueExpression=null)}return s}const m=r=>{const s=s=>l().error(new e("Unsupported-renderer",s,{renderer:r}));if(!r)return!1;switch(r.type){case"unique-value":if(r.field2||r.field3)return s("FeatureReductionCluster does not support multi-field UniqueValueRenderers"),!1;break;case"class-breaks":if(r.normalizationField){const e=r.normalizationType;if("field"!==e)return s(`FeatureReductionCluster does not support a normalizationType of ${e}`),!1}break;case"simple":case"pie-chart":break;default:return s(`FeatureReductionCluster does not support renderers of type ${r.type}`),!1}if(!u){if("valueExpression"in r&&r.valueExpression)return s("FeatureReductionCluster does not currently support renderer.valueExpression. Support will be added in a future release"),!1;if(("visualVariables"in r&&r.visualVariables||[]).some((e=>!(!("valueExpression"in e)||!e.valueExpression))))return s("FeatureReductionCluster does not currently support visualVariables with a valueExpression. Support will be added in a future release"),!1}return!0};function f(e,r,i){switch(e){case"sum":return`cluster_sum_${r}`;case"avg":case"avg_angle":return`cluster_avg_${r}`;case"mode":return`cluster_type_${r}`;case"avg_norm":{const e=i,n="field",t=r.toLowerCase()+",norm:"+n+","+e.toLowerCase();return"cluster_avg_"+s(t)}}}function c(e,r,t,a){const o=s(r),l="mode"===t?`cluster_type_${o}`:"sum"===t?`cluster_sum_${o}`:`cluster_avg_${o}`;return e.some((e=>e.name===l))||e.push(new i({name:l,isAutoGenerated:!0,onStatisticExpression:new n({expression:r,returnType:a}),statisticType:t})),l}function v(e,r,s,t,a){if("cluster_count"===r||e.some((e=>e.name===r)))return r;const o=f(s,r,a);return e.some((e=>e.name===o))||("avg_norm"===s?e.push(new i({name:o,isAutoGenerated:!0,onStatisticExpression:new n({expression:`$feature.${r} / $feature.${a}`,returnType:t}),statisticType:"avg"})):e.push(new i({name:o,isAutoGenerated:!0,onStatisticField:r,statisticType:s}))),o}export{d as createInferredClusterRenderer,m as isClusterCompatibleRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import i from"../../../../Viewpoint.js";import o from"../../../../core/Accessor.js";import{when as e}from"../../../../core/reactiveUtils.js";import{createScreenPointArray as s}from"../../../../core/screenUtils.js";import{property as m}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import{h as r}from"../../../../chunks/vec32.js";import{create as a,fromValues as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{translateBy as c}from"../../viewpointUtils.js";import{PanPlanarMomentumEstimator as u}from"../../../navigation/PanPlanarMomentumEstimator.js";import h from"../../../../geometry/Point.js";let v=class extends o{constructor(t){super(t),this.animationTime=0,this.momentumEstimator=new u(500,6,.92),this.momentum=null,this.tmpMomentum=a(),this.momentumFinished=!1,this.viewpoint=new i({targetGeometry:new h,scale:0,rotation:0}),this._previousDrag=null,e((()=>this.momentumFinished),(()=>this.navigation.stop()))}begin(t,i){this.navigation.begin(),this.momentumEstimator.reset(),this.addToEstimator(i),this._previousDrag=i}update(t,i){this.addToEstimator(i);let o=i.center.x,e=i.center.y;const s=this._previousDrag;o=s?s.center.x-o:-o,e=s?e-s.center.y:e,t.viewpoint=c(this.viewpoint,t.viewpoint,[o||0,e||0]),this._previousDrag=i}end(t,i){this.addToEstimator(i);const o=t.navigation.effectiveMomentumEnabled;this.momentum=o?this.momentumEstimator.evaluateMomentum():null,this.animationTime=0,this.momentum&&this.onAnimationUpdate(t),this._previousDrag=null,this.navigation.end()}addToEstimator(t){const i=t.center.x,o=t.center.y,e=s(-i,o),m=p(-i,o,0);this.momentumEstimator.add(e,m,.001*t.timestamp)}onAnimationUpdate(t){this.navigation.animationManager?.animateContinuous(t.viewpoint,((i,o)=>{const{momentum:e,animationTime:s,tmpMomentum:m}=this,n=.001*o;if(!(this.momentumFinished=!e||e.isFinished(s))){const o=e.valueDelta(s,n);r(m,e.direction,o),c(i,i,m),t.constraints.constrainByGeometry(i)}this.animationTime+=n}))}stopMomentumNavigation(){this.momentum&&(this.momentumEstimator.reset(),this.momentum=null,this.navigation.stop())}};t([m()],v.prototype,"momentumFinished",void 0),t([m()],v.prototype,"viewpoint",void 0),t([m()],v.prototype,"navigation",void 0),v=t([n("esri.views.2d.navigation.actions.Pan")],v);const d=v;export{d as default};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import i from"../../../../Viewpoint.js";import o from"../../../../core/Accessor.js";import{when as e}from"../../../../core/reactiveUtils.js";import{createScreenPointArray as s}from"../../../../core/screenUtils.js";import{property as m}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as n}from"../../../../core/accessorSupport/decorators/subclass.js";import{h as r}from"../../../../chunks/vec32.js";import{create as a,fromValues as p}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import c from"../../../../geometry/Point.js";import{translateBy as u}from"../../viewpointUtils.js";import{PanPlanarMomentumEstimator as h}from"../../../navigation/PanPlanarMomentumEstimator.js";let v=class extends o{constructor(t){super(t),this.animationTime=0,this.momentumEstimator=new h(500,6,.92),this.momentum=null,this.tmpMomentum=a(),this.momentumFinished=!1,this.viewpoint=new i({targetGeometry:new c,scale:0,rotation:0}),this._previousDrag=null,e((()=>this.momentumFinished),(()=>this.navigation.stop()))}begin(t,i){this.navigation.begin(),this.momentumEstimator.reset(),this.addToEstimator(i),this._previousDrag=i}update(t,i){this.addToEstimator(i);let o=i.center.x,e=i.center.y;const s=this._previousDrag;o=s?s.center.x-o:-o,e=s?e-s.center.y:e,t.viewpoint=u(this.viewpoint,t.viewpoint,[o||0,e||0]),this._previousDrag=i}end(t,i){this.addToEstimator(i);const o=t.navigation.effectiveMomentumEnabled;this.momentum=o?this.momentumEstimator.evaluateMomentum():null,this.animationTime=0,this.momentum&&this.onAnimationUpdate(t),this._previousDrag=null,this.navigation.end()}addToEstimator(t){const i=t.center.x,o=t.center.y,e=s(-i,o),m=p(-i,o,0);this.momentumEstimator.add(e,m,.001*t.timestamp)}onAnimationUpdate(t){this.navigation.animationManager?.animateContinuous(t.viewpoint,((i,o)=>{const{momentum:e,animationTime:s,tmpMomentum:m}=this,n=.001*o;if(!(this.momentumFinished=!e||e.isFinished(s))){const o=e.valueDelta(s,n);r(m,e.direction,o),u(i,i,m),t.constraints.constrainByGeometry(i)}this.animationTime+=n}))}stopMomentumNavigation(){this.momentum&&(this.momentumEstimator.reset(),this.momentum=null,this.navigation.stop())}};t([m()],v.prototype,"momentumFinished",void 0),t([m()],v.prototype,"viewpoint",void 0),t([m()],v.prototype,"navigation",void 0),v=t([n("esri.views.2d.navigation.actions.Pan")],v);const d=v;export{d as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import e from"../../../../Viewpoint.js";import o from"../../../../core/Accessor.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{set as s,copy as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{getAnchor as a,rotateBy as c,angleBetween as m}from"../../viewpointUtils.js";import v from"../../../../geometry/Point.js";const d=p(),g=p();let j=class extends o{constructor(t){super(t),this._previousCenter=p(),this.viewpoint=new e({targetGeometry:new v,scale:0,rotation:0})}begin(t,e){this.navigation.begin(),s(this._previousCenter,e.center.x,e.center.y)}update(t,e){const{state:{size:o,padding:r}}=t;s(d,e.center.x,e.center.y),a(g,o,r),t.viewpoint=c(this.viewpoint,t.state.paddedViewState.viewpoint,m(g,this._previousCenter,d)),n(this._previousCenter,d)}end(){this.navigation.end()}};t([r()],j.prototype,"viewpoint",void 0),t([r()],j.prototype,"navigation",void 0),j=t([i("esri.views.2d.navigation.actions.Rotate")],j);const f=j;export{f as default};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../Viewpoint.js";import o from"../../../../core/Accessor.js";import{property as r}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/has.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as i}from"../../../../core/accessorSupport/decorators/subclass.js";import{set as s,copy as n}from"../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as p}from"../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import a from"../../../../geometry/Point.js";import{getAnchor as c,rotateBy as m,angleBetween as v}from"../../viewpointUtils.js";const d=p(),g=p();let f=class extends o{constructor(t){super(t),this._previousCenter=p(),this.viewpoint=new e({targetGeometry:new a,scale:0,rotation:0})}begin(t,e){this.navigation.begin(),s(this._previousCenter,e.center.x,e.center.y)}update(t,e){const{state:{size:o,padding:r}}=t;s(d,e.center.x,e.center.y),c(g,o,r),t.viewpoint=m(this.viewpoint,t.state.paddedViewState.viewpoint,v(g,this._previousCenter,d)),n(this._previousCenter,d)}end(){this.navigation.end()}};t([r()],f.prototype,"viewpoint",void 0),t([r()],f.prototype,"navigation",void 0),f=t([i("esri.views.2d.navigation.actions.Rotate")],f);const j=f;export{j as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../geometry.js";import t from"../../../Viewpoint.js";import{deg2rad as e,lerp as o}from"../../../core/mathUtils.js";import{distance as i}from"../../../geometry/support/pointUtils.js";import{getScaleToResolutionFactor as r,copy as s}from"../viewpointUtils.js";import n from"../../../geometry/Point.js";class a{constructor(e){this._view=e,this.viewpoint=new t({targetGeometry:new n,scale:0,rotation:0})}get view(){return this._view}get size(){const[t,e]=this._view.size;return Math.sqrt(t*t+e*e)}get scale(){return this.viewpoint.scale}get rotation(){return this.viewpoint.rotation}get center(){return this.viewpoint.targetGeometry}get scaleToResolutionFactor(){return r(this.center.spatialReference)}pixelsPerPanAtZoom(t){return 1/(t*this.scaleToResolutionFactor)}zoomAtPixelsPerPan(t){return 1/(t*this.scaleToResolutionFactor)}pixelsPerRotate(){return this.size/2}compareTo(t,o){o.pan=i(this.center,t.center);let r=Math.abs(t.rotation-this.rotation);r=r>=180?360-r:r,o.rotate=e(r),o.sourceZoom=this.scale,o.targetZoom=t.scale}interpolate(t,e,i){const{pan:r,rotate:s,zoom:n,zoomOffset:a}=i,{center:c}=this;c.spatialReference=t.center.spatialReference,c.x=o(t.center.x,e.center.x,r),c.y=o(t.center.y,e.center.y,r),this.viewpoint.scale=o(t.scale,e.scale+a,n);let p=t.rotation;const l=e.rotation;Math.abs(l-p)>=180&&(p+=360*(p<l?1:-1)),this.viewpoint.rotation=o(p,l,s)}copyFrom(t){s(this.viewpoint,t.viewpoint),this._view=t.view}}export{a as Camera};
5
+ import t from"../../../Viewpoint.js";import{deg2rad as e,lerp as o}from"../../../core/mathUtils.js";import i from"../../../geometry/Point.js";import{distance as r}from"../../../geometry/support/pointUtils.js";import{getScaleToResolutionFactor as s,copy as n}from"../viewpointUtils.js";class a{constructor(e){this._view=e,this.viewpoint=new t({targetGeometry:new i,scale:0,rotation:0})}get view(){return this._view}get size(){const[t,e]=this._view.size;return Math.sqrt(t*t+e*e)}get scale(){return this.viewpoint.scale}get rotation(){return this.viewpoint.rotation}get center(){return this.viewpoint.targetGeometry}get scaleToResolutionFactor(){return s(this.center.spatialReference)}pixelsPerPanAtZoom(t){return 1/(t*this.scaleToResolutionFactor)}zoomAtPixelsPerPan(t){return 1/(t*this.scaleToResolutionFactor)}pixelsPerRotate(){return this.size/2}compareTo(t,o){o.pan=r(this.center,t.center);let i=Math.abs(t.rotation-this.rotation);i=i>=180?360-i:i,o.rotate=e(i),o.sourceZoom=this.scale,o.targetZoom=t.scale}interpolate(t,e,i){const{pan:r,rotate:s,zoom:n,zoomOffset:a}=i,{center:c}=this;c.spatialReference=t.center.spatialReference,c.x=o(t.center.x,e.center.x,r),c.y=o(t.center.y,e.center.y,r),this.viewpoint.scale=o(t.scale,e.scale+a,n);let p=t.rotation;const l=e.rotation;Math.abs(l-p)>=180&&(p+=360*(p<l?1:-1)),this.viewpoint.rotation=o(p,l,s)}copyFrom(t){n(this.viewpoint,t.viewpoint),this._view=t.view}}export{a as Camera};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../chunks/tslib.es6.js";import"../../../../geometry.js";import{clock as t}from"../../../../core/clock.js";import{destroyHandle as i,makeHandle as o}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{removeMaybe as s}from"../../../../core/maybe.js";import{watch as n,syncAndInitial as r,when as a}from"../../../../core/reactiveUtils.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import{sv3d as m}from"../../../../geometry/support/vectorStacks.js";import{DidPointerMoveRecentlyFlag as p}from"./lengthDimensionManipulatorUtils.js";import{LengthDimensionSubTool as u}from"./LengthDimensionSubTool.js";import{pointerMoveTimeoutMs as h}from"./settings.js";import{AnalysisToolBase as d}from"../../../interactive/AnalysisToolBase.js";import{sketchKeys as v}from"../../../interactive/keybindings.js";import{newToolIntersector as _}from"../../../interactive/ToolIntersector.js";import{createScreenPointArrayFromEvent as y}from"../../../support/screenUtils.js";import T from"../../../../geometry/Point.js";var g;!function(e){e.Ready="ready",e.Creating="creating",e.Created="created"}(g||(g={}));let S=class extends d{constructor(e){super(e),this.automaticManipulatorSelection=!1,this.removeIncompleteOnCancel=!1,this._pointerMoveTimerMs=h,this._prevPointerMoveTimeout=null}initialize(){this._intersector=_(this.view.state.viewingMode),this._lengthDimensionSubTool=new u({analysis:this.analysis,analysisViewData:this.analysisViewData,manipulators:this.manipulators,parentTool:this,view:this.view}),this.addHandles([i(this._lengthDimensionSubTool),o((()=>this._clearPointerMoveTimeout())),n((()=>this.state),(e=>{e===g.Created&&this.finishToolCreation()}),r),a((()=>this.firstGrabbedManipulator),(e=>{this.selectedDimension=e.metadata}),r),n((()=>this.selectedDimension),(()=>this._resetPointerMoveTimeout()),r)])}get state(){return this.analysis.dimensions.some((e=>"length"===e.type))?null!=this._activeSubTool?g.Creating:g.Created:g.Ready}get updating(){return this._lengthDimensionSubTool.updating}get cursor(){return this.active?"crosshair":null}get selectedDimension(){return this.analysisViewData.selectedDimension}set selectedDimension(e){this.analysisViewData.selectedDimension=e}onInputEvent(e){switch(e.type){case"immediate-click":this._clickHandler(e);break;case"immediate-double-click":this._doubleClickHandler(e);break;case"pointer-move":this._pointerMoveHandler(e);break;case"key-down":if(v.cancel===e.key){if(null!=this._activeSubTool&&this._activeSubTool.removeStaged())return void e.stopPropagation();this.active||(this.selectedDimension=null)}else v.delete.includes(e.key)&&this._deleteKeyHandler()}}onActivate(){this._activeSubTool=this._lengthDimensionSubTool}onDeactivate(){null!=this._activeSubTool&&(this._activeSubTool.onDeactivate(),this._activeSubTool=null)}onShow(){this._resetPointerMoveTimeout()}onManipulatorSelectionChanged(){this._lengthDimensionSubTool.onManipulatorSelectionChanged()}onHide(){this.selectedDimension=null}_clickHandler(e){if(this.hasFocusedManipulators)return void e.stopPropagation();if(null==this._activeSubTool)return;const t=this._intersectScreen(e);null!=t&&(this.selectedDimension=this._activeSubTool.onClick({mapPoint:t,pointerType:e.pointerType}),e.stopPropagation())}_doubleClickHandler(e){this.active&&(this.view.activeTool=null,e.stopPropagation())}_pointerMoveHandler(e){if(this._resetPointerMoveTimeout(),null==this._activeSubTool)return;if(this.hasFocusedManipulators)return;const t=this._intersectScreen(e);null!=t&&this._activeSubTool.onPointerMove({mapPoint:t,pointerType:e.pointerType})}_deleteKeyHandler(){null!=this._activeSubTool&&this._activeSubTool.removeStaged(),this._removeSelected()}_intersectScreen(e){const t=y(e);this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(t,this._intersector);const i=this._intersector.results.min,o=m.get();return i.getIntersectionPoint(o)?this.view.renderCoordsHelper.fromRenderCoords(o,new T({spatialReference:this.view.spatialReference})):null}_removeSelected(){null!=this.selectedDimension&&(this.analysis.dimensions.remove(this.selectedDimension),this.selectedDimension=null)}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=s(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.manipulators.forEach((e=>e.manipulator.state|=p)),this._prevPointerMoveTimeout=t.setTimeout((()=>{this.manipulators.forEach((e=>e.manipulator.state&=~p))}),this._pointerMoveTimerMs)}get testInfo(){}};e([l({constructOnly:!0})],S.prototype,"view",void 0),e([l({constructOnly:!0})],S.prototype,"analysis",void 0),e([l({readOnly:!0})],S.prototype,"state",null),e([l({readOnly:!0})],S.prototype,"updating",null),e([l({readOnly:!0})],S.prototype,"cursor",null),e([l({constructOnly:!0})],S.prototype,"analysisViewData",void 0),e([l()],S.prototype,"selectedDimension",null),e([l()],S.prototype,"automaticManipulatorSelection",void 0),e([l()],S.prototype,"_activeSubTool",void 0),e([l()],S.prototype,"_lengthDimensionSubTool",void 0),S=e([c("esri.views.3d.analysis.Dimension.DimensionTool")],S);export{S as DimensionTool};
5
+ import{_ as e}from"../../../../chunks/tslib.es6.js";import{clock as t}from"../../../../core/clock.js";import{destroyHandle as i,makeHandle as o}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{removeMaybe as s}from"../../../../core/maybe.js";import{watch as n,syncAndInitial as r,when as a}from"../../../../core/reactiveUtils.js";import{property as l}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import"../../../../core/RandomLCG.js";import{subclass as c}from"../../../../core/accessorSupport/decorators/subclass.js";import u from"../../../../geometry/Point.js";import{sv3d as m}from"../../../../geometry/support/vectorStacks.js";import{DidPointerMoveRecentlyFlag as p}from"./lengthDimensionManipulatorUtils.js";import{LengthDimensionSubTool as h}from"./LengthDimensionSubTool.js";import{pointerMoveTimeoutMs as d}from"./settings.js";import{AnalysisToolBase as v}from"../../../interactive/AnalysisToolBase.js";import{sketchKeys as _}from"../../../interactive/keybindings.js";import{newToolIntersector as y}from"../../../interactive/ToolIntersector.js";import{createScreenPointArrayFromEvent as T}from"../../../support/screenUtils.js";var g;!function(e){e.Ready="ready",e.Creating="creating",e.Created="created"}(g||(g={}));let S=class extends v{constructor(e){super(e),this.automaticManipulatorSelection=!1,this.removeIncompleteOnCancel=!1,this._pointerMoveTimerMs=d,this._prevPointerMoveTimeout=null}initialize(){this._intersector=y(this.view.state.viewingMode),this._lengthDimensionSubTool=new h({analysis:this.analysis,analysisViewData:this.analysisViewData,manipulators:this.manipulators,parentTool:this,view:this.view}),this.addHandles([i(this._lengthDimensionSubTool),o((()=>this._clearPointerMoveTimeout())),n((()=>this.state),(e=>{e===g.Created&&this.finishToolCreation()}),r),a((()=>this.firstGrabbedManipulator),(e=>{this.selectedDimension=e.metadata}),r),n((()=>this.selectedDimension),(()=>this._resetPointerMoveTimeout()),r)])}get state(){return this.analysis.dimensions.some((e=>"length"===e.type))?null!=this._activeSubTool?g.Creating:g.Created:g.Ready}get updating(){return this._lengthDimensionSubTool.updating}get cursor(){return this.active?"crosshair":null}get selectedDimension(){return this.analysisViewData.selectedDimension}set selectedDimension(e){this.analysisViewData.selectedDimension=e}onInputEvent(e){switch(e.type){case"immediate-click":this._clickHandler(e);break;case"immediate-double-click":this._doubleClickHandler(e);break;case"pointer-move":this._pointerMoveHandler(e);break;case"key-down":if(_.cancel===e.key){if(null!=this._activeSubTool&&this._activeSubTool.removeStaged())return void e.stopPropagation();this.active||(this.selectedDimension=null)}else _.delete.includes(e.key)&&this._deleteKeyHandler()}}onActivate(){this._activeSubTool=this._lengthDimensionSubTool}onDeactivate(){null!=this._activeSubTool&&(this._activeSubTool.onDeactivate(),this._activeSubTool=null)}onShow(){this._resetPointerMoveTimeout()}onManipulatorSelectionChanged(){this._lengthDimensionSubTool.onManipulatorSelectionChanged()}onHide(){this.selectedDimension=null}_clickHandler(e){if(this.hasFocusedManipulators)return void e.stopPropagation();if(null==this._activeSubTool)return;const t=this._intersectScreen(e);null!=t&&(this.selectedDimension=this._activeSubTool.onClick({mapPoint:t,pointerType:e.pointerType}),e.stopPropagation())}_doubleClickHandler(e){this.active&&(this.view.activeTool=null,e.stopPropagation())}_pointerMoveHandler(e){if(this._resetPointerMoveTimeout(),null==this._activeSubTool)return;if(this.hasFocusedManipulators)return;const t=this._intersectScreen(e);null!=t&&this._activeSubTool.onPointerMove({mapPoint:t,pointerType:e.pointerType})}_deleteKeyHandler(){null!=this._activeSubTool&&this._activeSubTool.removeStaged(),this._removeSelected()}_intersectScreen(e){const t=T(e);this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(t,this._intersector);const i=this._intersector.results.min,o=m.get();return i.getIntersectionPoint(o)?this.view.renderCoordsHelper.fromRenderCoords(o,new u({spatialReference:this.view.spatialReference})):null}_removeSelected(){null!=this.selectedDimension&&(this.analysis.dimensions.remove(this.selectedDimension),this.selectedDimension=null)}_clearPointerMoveTimeout(){this._prevPointerMoveTimeout=s(this._prevPointerMoveTimeout)}_resetPointerMoveTimeout(){this._clearPointerMoveTimeout(),this.manipulators.forEach((e=>e.manipulator.state|=p)),this._prevPointerMoveTimeout=t.setTimeout((()=>{this.manipulators.forEach((e=>e.manipulator.state&=~p))}),this._pointerMoveTimerMs)}get testInfo(){}};e([l({constructOnly:!0})],S.prototype,"view",void 0),e([l({constructOnly:!0})],S.prototype,"analysis",void 0),e([l({readOnly:!0})],S.prototype,"state",null),e([l({readOnly:!0})],S.prototype,"updating",null),e([l({readOnly:!0})],S.prototype,"cursor",null),e([l({constructOnly:!0})],S.prototype,"analysisViewData",void 0),e([l()],S.prototype,"selectedDimension",null),e([l()],S.prototype,"automaticManipulatorSelection",void 0),e([l()],S.prototype,"_activeSubTool",void 0),e([l()],S.prototype,"_lengthDimensionSubTool",void 0),S=e([c("esri.views.3d.analysis.Dimension.DimensionTool")],S);export{S as DimensionTool};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../Color.js";import"../../../../geometry.js";import{LengthDimensionMeasureType as i}from"../../../../analysis/dimensionUtils.js";import a from"../../../../analysis/LengthDimension.js";import n from"../../../../core/Accessor.js";import s from"../../../../core/Handles.js";import{destroyHandle as o}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{equals as r}from"../../../../core/lang.js";import{destroyMaybe as p}from"../../../../core/maybe.js";import{memoize as l}from"../../../../core/memoize.js";import{ignoreAbortErrors as u}from"../../../../core/promiseUtils.js";import{watch as d,initial as c,mapCollection as m,sync as h,syncAndInitial as g,when as f}from"../../../../core/reactiveUtils.js";import{property as _}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as M}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as v}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as y}from"../../../../core/support/UpdatingHandles.js";import{clonePoint as C}from"../../../../layers/graphics/hydratedFeatures.js";import{reapplyConstraint as S,LengthDimensionConstraint as w,applyConstraint as b,computeConstraint as P,constraintDependencies as O}from"./lengthDimensionConstraintUtils.js";import{LengthDimensionManipulators as D,LengthDimensionPointManipulator as j,pointManipulatorHandles as H,createOffsetManipulator as T,offsetManipulatorHandles as G,LineOfSightOrientationManipulator as x,headingManipulatorHandles as z,rotationManipulatorHandles as U,createMeasureTypeManipulator as I,measureTypeManipulatorHandles as V,updateOffsetManipulatorTransform as R,updateHeadingManipulatorTransform as A,updateRotationManipulatorTransform as k,updateMeasureTypeManipulatorTransform as E,unfocusedOffsetWidth as L,focusedOffsetWidth as F}from"./lengthDimensionManipulatorUtils.js";import{isValidComputation as q,arePointsVerticallyAligned as B,computeGeometryFromDimension as N,computationToGeometryDependencies as J}from"./lengthDimensionUtils.js";import{disabledPointColor as K,pointRadius as Q,getTransparentAccentColor as W,getContrastColor as X,initialOffsetPx as Y}from"./settings.js";import{getRotateHeadingTexture as Z}from"../images/Factory.js";import{SnappingVisualizer3D as $}from"../../interactive/SnappingVisualizer3D.js";import{LineVisualElement as tt}from"../../interactive/visualElements/LineVisualElement.js";import{VerticesVisualElement as et}from"../../interactive/visualElements/VerticesVisualElement.js";import{RenderOccludedFlag as it}from"../../webgl-engine/lib/Material.js";import{ImageMaterial as at}from"../../webgl-engine/materials/ImageMaterial.js";import{createStipplePatternSimple as nt}from"../../webgl-engine/materials/lineStippleUtils.js";import{RibbonLineMaterial as st}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createCoordinateHelper as ot}from"../../../interactive/coordinateHelper.js";import{EditGeometry as rt}from"../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as pt}from"../../../interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as lt}from"../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as ut}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{acquire as dt}from"../../../interactive/snapping/SnappingManagerPool.js";import{SnappingOperation as ct}from"../../../interactive/snapping/SnappingOperation.js";import{setupSnappingToggleHandles as mt}from"../../../interactive/snapping/snappingUtils.js";import ht from"../../../../geometry/Point.js";let gt=class extends n{constructor(t){super(t),this._stagedDimension=null,this._computationManipulators=new Map,this._computationHandles=new s,this._orientationManipulatorTexture=null,this._updatingHandles=new y,this._getSnappingContext=l((t=>new lt({elevationInfo:{mode:"absolute-height",offset:0},pointer:t,editGeometryOperations:new pt(new rt("point",ot(!0,!1,this.view.spatialReference)),this.view.state.viewingMode),visualizer:new $})));const{view:i}=t;this._snappingManagerResult=dt(i),this.addHandles(this._snappingManagerResult),this._unfocusedOffsetManipulatorMaterial=this._createOffsetManipulatorMaterial(),this._focusedOffsetManipulatorMaterial=this._createOffsetManipulatorMaterial(),this._thinOffsetManipulatorMaterial=this._createOffsetManipulatorMaterial(),this._thinOffsetManipulatorMaterial.setParameters({stipplePattern:nt(2)}),this._constraintSnappingIndicator=new tt({view:i,attached:!0,width:1,renderOccluded:it.OccludeAndTransparent,stipplePattern:nt(5),isDecoration:!0});const a=e.toUnitRGBA(K);this._stagedStartIndicator=new et({view:i,attached:!1,elevationInfo:{mode:"absolute-height",offset:0},spatialReference:t.view.renderCoordsHelper.spatialReference,color:a,size:2*Q,outlineSize:0,renderOccluded:it.OccludeAndTransparent,isDecoration:!0})}initialize(){const{view:t}=this;this._snappingOperation=new ct({view:t});const i=!t._stage?.renderView.renderingContext.driverTest.svgPremultipliesAlpha.result;this._orientationManipulatorMaterial=new at({writeDepth:!1,renderOccluded:it.Opaque,isDecoration:!0}),this.addHandles(d((()=>({accentColor:W(t.effectiveTheme),contrastColor:X(t.effectiveTheme)})),(({accentColor:a,contrastColor:n})=>{const s=this._orientationManipulatorTexture,o=Z(t.textures,{accentColor:a,contrastColor:n,preMultiplyAlpha:i});this._orientationManipulatorMaterial.setParameters({textureId:o.texture.id}),this._orientationManipulatorTexture=o,s?.release();const r=e.toUnitRGBA(a);this._unfocusedOffsetManipulatorMaterial.setParameters({color:r}),this._focusedOffsetManipulatorMaterial.setParameters({color:r}),this._thinOffsetManipulatorMaterial.setParameters({color:r}),this._constraintSnappingIndicator.color=r}),c));const a=m((()=>this.analysisViewData.computations),(({computation:t})=>this._createManipulators(t)));this.addHandles(o(a)),this.addHandles([d((()=>({stagedPoint:this._snappingOperation.stagedPoint,stagedComputation:this._stagedComputation})),(({stagedPoint:t,stagedComputation:e})=>{if(null==e||null==t)return;const i=C(t,new ht);this._applyPointUpdate(e,{endPoint:i})}),h),d((()=>({stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator})),((t,e)=>{const{stagedDimension:i,selectedComputation:a,firstGrabbedManipulator:n}=t;if(i===e?.stagedDimension&&n===e?.firstGrabbedManipulator){for(const s of[a,e?.selectedComputation])if(null!=s){const e=this._computationManipulators.get(s);null!=e&&this._updateManipulators(s,e,t)}}else for(const[s,o]of this._computationManipulators)this._updateManipulators(s,o,t)}),g),d((()=>this.analysis.style.lineSize),(t=>{this._updateManipulatorStyle(t)}),c),d((()=>this.view.state.camera),(()=>{null!=this._stagedComputation&&this._updateStagedDimensionOffset(this._stagedComputation)})),d((()=>{const t=this._stagedComputation;if(!t)return null;const e=t.elevationAlignedStartPoint,i=v();return null!=e&&this.view.renderCoordsHelper.toRenderCoords(e,i)?i:null}),(t=>{null!=t?(this._stagedStartIndicator.vertices=[t],this._stagedStartIndicator.attached=!0):this._stagedStartIndicator.attached=!1}))]),this.addHandles(this._constraintHandles),this.addHandles(this._snappingIndicatorHandles),mt(this,(()=>{const t=this._activeComputation,e=this._stagedComputation;if(null==t||null!=e){const t=this.view.inputManager.latestPointerType??"mouse",e=this._getSnappingContext(t);this._updatingHandles.addPromise(u(this._snappingOperation.snapAgainNearPreviousMapPoint(this._snappingManager,e)))}if(null!=t){const{start:e,end:i}=this._computationManipulators.get(t);if(e.grabbing||i.grabbing){const i=e.grabbing?"start":"end",a=this._computeConstraint(t);S(t,i,{constraint:a,view:this.view})}}}))}destroy(){this._snappingOperation=p(this._snappingOperation),this._computationHandles.destroy(),this._constraintSnappingIndicator.destroy(),this._stagedStartIndicator.destroy(),this._orientationManipulatorTexture?.release()}get updating(){return this._updatingHandles.updating||this._snappingManager.updating}get firstGrabbedManipulator(){return this.parentTool.firstGrabbedManipulator}get hasGrabbedManipulators(){return this.parentTool.hasGrabbedManipulators}get snappingOptions(){return this._snappingManager.options}get _snappingManager(){return this._snappingManagerResult.snappingManager}get _activeComputation(){if(null!=this._stagedComputation)return this._stagedComputation;const{selectedComputation:t}=this.analysisViewData;return this.hasGrabbedManipulators&&null!=t?t:null}get _stagedComputation(){const t=this._stagedDimension,e=this.analysisViewData.computations.at(-1)?.computation;return null==t||null==e||e.dimension!==t?null:e}get _constraintHandles(){return[f((()=>this.analysisViewData.selectedComputation),(t=>{t.previousConstraint=this._computeConstraint(t)}),{...g,equals:r}),d((()=>{const t=this._activeComputation;if(null==t)return null;const{measureType:e,orientation:i}=t.dimension;return{measureType:e,orientation:i,computation:t}}),((t,e)=>{if(null!=t&&null==e){const{measureType:e,orientation:a,computation:n}=t;switch(n.previousConstraint){case w.Horizontal:n.preConstraintProperties={measureType:i.Horizontal,orientation:0};break;case w.Vertical:n.preConstraintProperties={measureType:i.Vertical,orientation:0};break;case w.Direct:n.preConstraintProperties={measureType:i.Direct,orientation:a};break;default:n.preConstraintProperties={measureType:e,orientation:a}}}null==t&&null!=e&&(e.computation.preConstraintProperties=null)}),h)]}get _snappingIndicatorHandles(){const t="snapping-indicator-event-handles";return[d((()=>({stagedComputation:this._stagedComputation,activeComputation:this._activeComputation})),(({stagedComputation:e,activeComputation:i})=>{const a=this._constraintSnappingIndicator;if(this.removeHandles(t),null!=i)if(i===e)a.attached=!0;else{const{start:e,end:n}=this._computationManipulators.get(i),s=()=>{a.attached=e.grabbing||n.grabbing};s(),this.addHandles([e.events.on("grab-changed",s),n.events.on("grab-changed",s)],t)}else a.attached=!1})),d((()=>{const t=this._activeComputation;return null!=t?{geometry:t.geometry,constraint:t.previousConstraint}:{}}),(({geometry:t,constraint:e})=>{const i=this._constraintSnappingIndicator;null!=t&&null!=e&&e!==w.Direct?(i.visible=!0,i.setGeometryFromSegment(t.directSegment)):i.visible=!1}))]}removeStaged(){return null!=this._stagedDimension&&(this.analysis.dimensions.remove(this._stagedDimension),this._stagedDimension=null,!0)}onDeactivate(){this.removeStaged(),this._resetSnappingState()}onClick(t){const{_stagedDimension:e}=this;if(null==e){const e=this._onUnstagedClick(t);return this.analysis.dimensions.add(e),null}return this._onStagedClick(t),e}onPointerMove({mapPoint:t,pointerType:e}){if("touch"===e)return;const i=this._getSnappingContext(e);this._updatingHandles.addPromise(u(this._snappingOperation.snap({point:t},this._snappingManager,i)))}onManipulatorSelectionChanged(){if(null!=this.analysisViewData.selectedComputation){this._computationManipulators.get(this.analysisViewData.selectedComputation).offset.selected||(this.analysisViewData.selectedDimension=null)}}_onUnstagedClick({mapPoint:t,pointerType:e}){let n=t;if("mouse"===e){const i=this._getSnappingContext(e);n=this._snappingManager.update({point:t,context:i})}const s=new a({startPoint:C(n,new ht),endPoint:null,measureType:i.Horizontal});return this._stagedDimension=s,this._resetSnappingState(),s}_onStagedClick({mapPoint:t,pointerType:e}){const i=this._stagedComputation;if(null==i)return;let a=t;if("mouse"===e){const i=this._getSnappingContext(e);a=this._snappingManager.update({point:t,context:i})}const n=C(a,new ht);this._applyPointUpdate(i,{endPoint:n}),this._stagedDimension=null,this._resetSnappingState()}_resetSnappingState(){this._snappingManager.doneSnapping(),this._snappingOperation.abort(),this._snappingOperation.stagedPoint=null}_createManipulators(t){const e=this._setupPointManipulator(t,{isStart:!0}),a=this._setupPointManipulator(t,{isStart:!1}),n=this._setupOffsetManipulator(t),s=this._setupHeadingManipulator(t),o=this._setupRotationManipulator(t),r=this._setupMeasureTypeManipulator(t,i.Direct),p=this._setupMeasureTypeManipulator(t,i.Horizontal),l=this._setupMeasureTypeManipulator(t,i.Vertical),u=new D({start:e,end:a,offset:n,heading:s,rotation:o,direct:r,horizontal:p,vertical:l});return this._setupComputationToManipulatorsSync(t,u),this._computationManipulators.set(t,u),this.manipulators.addMany(u.values()),{manipulators:u,remove:()=>{this._computationHandles.remove(t),this._computationManipulators.delete(t);for(const t of u.values())this.manipulators.remove(t)}}}_setupComputationToManipulatorsSync(t,e){this._computationHandles.add([d((()=>t.geometry),(()=>this._updateManipulators(t,e)),{...g,equals:r})],t)}_setupPointManipulator(t,e){const{view:i}=this,{dimension:a}=t,n=new j(i,{metadata:a}),s=H(n,{isStart:e.isStart,createSnappingPipelineStep:t=>ut({snappingContext:this._getSnappingContext(t),snappingManager:this._snappingManager,updatingHandles:this._updatingHandles}),dimension:a,onUpdate:e=>this._applyPointUpdate(t,e),view:i});return this._computationHandles.add(s,t),n}_setupOffsetManipulator(t){const{view:e}=this,i=T(e,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,metadata:t.dimension}),a=G(i,{computation:t,view:e});return this._computationHandles.add(a,t),i}_setupHeadingManipulator(t){const{view:e}=this,i=new x(e,{lineSizePt:this.analysis.style.lineSize,material:this._orientationManipulatorMaterial,metadata:t.dimension}),a=z(i,{computation:t,view:e});return this._computationHandles.add(a,t),i}_setupRotationManipulator(t){const{view:e}=this,i=new x(e,{lineSizePt:this.analysis.style.lineSize,material:this._orientationManipulatorMaterial,metadata:t.dimension}),a=U(i,{computation:t,view:e});return this._computationHandles.add(a,t),i}_setupMeasureTypeManipulator(t,e){const{view:i}=this,a=I(i,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,thinOffsetManipulatorMaterial:this._thinOffsetManipulatorMaterial,metadata:t.dimension}),n=V(a,{computation:t,manipulatorMeasureType:e,view:i});return this._computationHandles.add(n,t),a}_updateManipulators(t,e,a={stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator}){const{stagedDimension:n,selectedComputation:s,firstGrabbedManipulator:o}=a,{start:r,end:p,offset:l,heading:u,rotation:d}=e,c=s===t,m=q(t),{dimension:h}=t;for(const i of e.values()){const t=m&&null==n&&(null==o||i===o);i===l?(i.available=t,i.selected=c):i.available=t&&c}if(!m)return;null!=this._computeConstraint(t)?e.forEachMeasureTypeManipulator((t=>t.available=!1)):e.manipulatorForMeasureType(h.measureType).available=!1;for(const _ of[u,d])h.measureType===i.Direct&&0!==h.offset||(_.available=!1);B(t)?d.available=!1:u.available=!1;const{geometry:g}=t;r.renderLocation=g.directSegment.startRenderSpace,p.renderLocation=g.directSegment.endRenderSpace;const{renderCoordsHelper:f}=this.view;R(l,g,f),u.available&&A(u,t,f),d.available&&k(d,t,f),e.forEachMeasureTypeManipulator(((e,i)=>{e.available&&E(e,t,i,f)}))}_updateManipulatorStyle(t){const e=L(t),i=F(t),a={lineSizePt:t,material:this._orientationManipulatorMaterial};for(const{offset:n,heading:s,rotation:o}of this._computationManipulators.values())n.radius=i/2,s.update(a),o.update(a);this._unfocusedOffsetManipulatorMaterial.setParameters({width:e}),this._focusedOffsetManipulatorMaterial.setParameters({width:i})}_applyPointUpdate(t,e){const{view:i}=this,a=J(t);"startPoint"in e&&(a.elevationAlignedStartPoint=e.startPoint),"endPoint"in e&&(a.elevationAlignedEndPoint=e.endPoint);const n=N(a,i.renderCoordsHelper);if(null==n)return;const s=this._computeConstraint({...a,geometry:n});b(t,e,{...a,constraint:s,unconstrainedGeometry:n,view:i}),t===this._stagedComputation&&this._updateStagedDimensionOffset(t)}_updateStagedDimensionOffset(t){if(null==t.geometry)return;t.geometry.directSegment.eval(.5,ft);const{state:e,renderCoordsHelper:i}=this.view,a=e.camera.computeScreenPixelSizeAt(ft);t.dimension.offset=Y*a*i.unitInMeters}_computeConstraint(t){return P(O(t,this._snappingManager.options),this.view)}_createOffsetManipulatorMaterial(){return new st({width:1,renderOccluded:it.OccludeAndTransparent,writeDepth:!1,hasPolygonOffset:!0,isDecoration:!0})}get testInfo(){}};t([_({constructOnly:!0})],gt.prototype,"analysis",void 0),t([_({constructOnly:!0})],gt.prototype,"analysisViewData",void 0),t([_({constructOnly:!0})],gt.prototype,"manipulators",void 0),t([_({constructOnly:!0})],gt.prototype,"parentTool",void 0),t([_({constructOnly:!0,nonNullable:!0})],gt.prototype,"view",void 0),t([_({readOnly:!0})],gt.prototype,"updating",null),t([_()],gt.prototype,"firstGrabbedManipulator",null),t([_()],gt.prototype,"hasGrabbedManipulators",null),t([_()],gt.prototype,"snappingOptions",null),t([_()],gt.prototype,"_stagedDimension",void 0),t([_()],gt.prototype,"_activeComputation",null),t([_()],gt.prototype,"_stagedComputation",null),gt=t([M("esri.views.3d.analysis.Dimension.LengthDimensionSubTool")],gt);const ft=v();export{gt as LengthDimensionSubTool};
5
+ import{_ as t}from"../../../../chunks/tslib.es6.js";import e from"../../../../Color.js";import{LengthDimensionMeasureType as i}from"../../../../analysis/dimensionUtils.js";import a from"../../../../analysis/LengthDimension.js";import n from"../../../../core/Accessor.js";import s from"../../../../core/Handles.js";import{destroyHandle as o}from"../../../../core/handleUtils.js";import"../../../../core/has.js";import{equals as r}from"../../../../core/lang.js";import{destroyMaybe as p}from"../../../../core/maybe.js";import{memoize as l}from"../../../../core/memoize.js";import{ignoreAbortErrors as u}from"../../../../core/promiseUtils.js";import{watch as d,initial as c,mapCollection as m,sync as h,syncAndInitial as g,when as f}from"../../../../core/reactiveUtils.js";import{property as _}from"../../../../core/accessorSupport/decorators/property.js";import"../../../../core/Logger.js";import{subclass as M}from"../../../../core/accessorSupport/decorators/subclass.js";import{create as v}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{UpdatingHandles as y}from"../../../../core/support/UpdatingHandles.js";import C from"../../../../geometry/Point.js";import{clonePoint as S}from"../../../../layers/graphics/hydratedFeatures.js";import{reapplyConstraint as w,LengthDimensionConstraint as b,applyConstraint as P,computeConstraint as O,constraintDependencies as D}from"./lengthDimensionConstraintUtils.js";import{LengthDimensionManipulators as H,LengthDimensionPointManipulator as j,pointManipulatorHandles as T,createOffsetManipulator as G,offsetManipulatorHandles as x,LineOfSightOrientationManipulator as z,headingManipulatorHandles as U,rotationManipulatorHandles as I,createMeasureTypeManipulator as V,measureTypeManipulatorHandles as R,updateOffsetManipulatorTransform as A,updateHeadingManipulatorTransform as k,updateRotationManipulatorTransform as E,updateMeasureTypeManipulatorTransform as L,unfocusedOffsetWidth as F,focusedOffsetWidth as q}from"./lengthDimensionManipulatorUtils.js";import{isValidComputation as B,arePointsVerticallyAligned as N,computeGeometryFromDimension as J,computationToGeometryDependencies as K}from"./lengthDimensionUtils.js";import{disabledPointColor as Q,pointRadius as W,getTransparentAccentColor as X,getContrastColor as Y,initialOffsetPx as Z}from"./settings.js";import{getRotateHeadingTexture as $}from"../images/Factory.js";import{SnappingVisualizer3D as tt}from"../../interactive/SnappingVisualizer3D.js";import{LineVisualElement as et}from"../../interactive/visualElements/LineVisualElement.js";import{VerticesVisualElement as it}from"../../interactive/visualElements/VerticesVisualElement.js";import{RenderOccludedFlag as at}from"../../webgl-engine/lib/Material.js";import{ImageMaterial as nt}from"../../webgl-engine/materials/ImageMaterial.js";import{createStipplePatternSimple as st}from"../../webgl-engine/materials/lineStippleUtils.js";import{RibbonLineMaterial as ot}from"../../webgl-engine/materials/RibbonLineMaterial.js";import{createCoordinateHelper as rt}from"../../../interactive/coordinateHelper.js";import{EditGeometry as pt}from"../../../interactive/editGeometry/EditGeometry.js";import{EditGeometryOperations as lt}from"../../../interactive/editGeometry/EditGeometryOperations.js";import{SnappingContext as ut}from"../../../interactive/snapping/SnappingContext.js";import{createSnapDragEventPipelineStep as dt}from"../../../interactive/snapping/SnappingDragPipelineStep.js";import{acquire as ct}from"../../../interactive/snapping/SnappingManagerPool.js";import{SnappingOperation as mt}from"../../../interactive/snapping/SnappingOperation.js";import{setupSnappingToggleHandles as ht}from"../../../interactive/snapping/snappingUtils.js";let gt=class extends n{constructor(t){super(t),this._stagedDimension=null,this._computationManipulators=new Map,this._computationHandles=new s,this._orientationManipulatorTexture=null,this._updatingHandles=new y,this._getSnappingContext=l((t=>new ut({elevationInfo:{mode:"absolute-height",offset:0},pointer:t,editGeometryOperations:new lt(new pt("point",rt(!0,!1,this.view.spatialReference)),this.view.state.viewingMode),visualizer:new tt})));const{view:i}=t;this._snappingManagerResult=ct(i),this.addHandles(this._snappingManagerResult),this._unfocusedOffsetManipulatorMaterial=this._createOffsetManipulatorMaterial(),this._focusedOffsetManipulatorMaterial=this._createOffsetManipulatorMaterial(),this._thinOffsetManipulatorMaterial=this._createOffsetManipulatorMaterial(),this._thinOffsetManipulatorMaterial.setParameters({stipplePattern:st(2)}),this._constraintSnappingIndicator=new et({view:i,attached:!0,width:1,renderOccluded:at.OccludeAndTransparent,stipplePattern:st(5),isDecoration:!0});const a=e.toUnitRGBA(Q);this._stagedStartIndicator=new it({view:i,attached:!1,elevationInfo:{mode:"absolute-height",offset:0},spatialReference:t.view.renderCoordsHelper.spatialReference,color:a,size:2*W,outlineSize:0,renderOccluded:at.OccludeAndTransparent,isDecoration:!0})}initialize(){const{view:t}=this;this._snappingOperation=new mt({view:t});const i=!t._stage?.renderView.renderingContext.driverTest.svgPremultipliesAlpha.result;this._orientationManipulatorMaterial=new nt({writeDepth:!1,renderOccluded:at.Opaque,isDecoration:!0}),this.addHandles(d((()=>({accentColor:X(t.effectiveTheme),contrastColor:Y(t.effectiveTheme)})),(({accentColor:a,contrastColor:n})=>{const s=this._orientationManipulatorTexture,o=$(t.textures,{accentColor:a,contrastColor:n,preMultiplyAlpha:i});this._orientationManipulatorMaterial.setParameters({textureId:o.texture.id}),this._orientationManipulatorTexture=o,s?.release();const r=e.toUnitRGBA(a);this._unfocusedOffsetManipulatorMaterial.setParameters({color:r}),this._focusedOffsetManipulatorMaterial.setParameters({color:r}),this._thinOffsetManipulatorMaterial.setParameters({color:r}),this._constraintSnappingIndicator.color=r}),c));const a=m((()=>this.analysisViewData.computations),(({computation:t})=>this._createManipulators(t)));this.addHandles(o(a)),this.addHandles([d((()=>({stagedPoint:this._snappingOperation.stagedPoint,stagedComputation:this._stagedComputation})),(({stagedPoint:t,stagedComputation:e})=>{if(null==e||null==t)return;const i=S(t,new C);this._applyPointUpdate(e,{endPoint:i})}),h),d((()=>({stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator})),((t,e)=>{const{stagedDimension:i,selectedComputation:a,firstGrabbedManipulator:n}=t;if(i===e?.stagedDimension&&n===e?.firstGrabbedManipulator){for(const s of[a,e?.selectedComputation])if(null!=s){const e=this._computationManipulators.get(s);null!=e&&this._updateManipulators(s,e,t)}}else for(const[s,o]of this._computationManipulators)this._updateManipulators(s,o,t)}),g),d((()=>this.analysis.style.lineSize),(t=>{this._updateManipulatorStyle(t)}),c),d((()=>this.view.state.camera),(()=>{null!=this._stagedComputation&&this._updateStagedDimensionOffset(this._stagedComputation)})),d((()=>{const t=this._stagedComputation;if(!t)return null;const e=t.elevationAlignedStartPoint,i=v();return null!=e&&this.view.renderCoordsHelper.toRenderCoords(e,i)?i:null}),(t=>{null!=t?(this._stagedStartIndicator.vertices=[t],this._stagedStartIndicator.attached=!0):this._stagedStartIndicator.attached=!1}))]),this.addHandles(this._constraintHandles),this.addHandles(this._snappingIndicatorHandles),ht(this,(()=>{const t=this._activeComputation,e=this._stagedComputation;if(null==t||null!=e){const t=this.view.inputManager.latestPointerType??"mouse",e=this._getSnappingContext(t);this._updatingHandles.addPromise(u(this._snappingOperation.snapAgainNearPreviousMapPoint(this._snappingManager,e)))}if(null!=t){const{start:e,end:i}=this._computationManipulators.get(t);if(e.grabbing||i.grabbing){const i=e.grabbing?"start":"end",a=this._computeConstraint(t);w(t,i,{constraint:a,view:this.view})}}}))}destroy(){this._snappingOperation=p(this._snappingOperation),this._computationHandles.destroy(),this._constraintSnappingIndicator.destroy(),this._stagedStartIndicator.destroy(),this._orientationManipulatorTexture?.release()}get updating(){return this._updatingHandles.updating||this._snappingManager.updating}get firstGrabbedManipulator(){return this.parentTool.firstGrabbedManipulator}get hasGrabbedManipulators(){return this.parentTool.hasGrabbedManipulators}get snappingOptions(){return this._snappingManager.options}get _snappingManager(){return this._snappingManagerResult.snappingManager}get _activeComputation(){if(null!=this._stagedComputation)return this._stagedComputation;const{selectedComputation:t}=this.analysisViewData;return this.hasGrabbedManipulators&&null!=t?t:null}get _stagedComputation(){const t=this._stagedDimension,e=this.analysisViewData.computations.at(-1)?.computation;return null==t||null==e||e.dimension!==t?null:e}get _constraintHandles(){return[f((()=>this.analysisViewData.selectedComputation),(t=>{t.previousConstraint=this._computeConstraint(t)}),{...g,equals:r}),d((()=>{const t=this._activeComputation;if(null==t)return null;const{measureType:e,orientation:i}=t.dimension;return{measureType:e,orientation:i,computation:t}}),((t,e)=>{if(null!=t&&null==e){const{measureType:e,orientation:a,computation:n}=t;switch(n.previousConstraint){case b.Horizontal:n.preConstraintProperties={measureType:i.Horizontal,orientation:0};break;case b.Vertical:n.preConstraintProperties={measureType:i.Vertical,orientation:0};break;case b.Direct:n.preConstraintProperties={measureType:i.Direct,orientation:a};break;default:n.preConstraintProperties={measureType:e,orientation:a}}}null==t&&null!=e&&(e.computation.preConstraintProperties=null)}),h)]}get _snappingIndicatorHandles(){const t="snapping-indicator-event-handles";return[d((()=>({stagedComputation:this._stagedComputation,activeComputation:this._activeComputation})),(({stagedComputation:e,activeComputation:i})=>{const a=this._constraintSnappingIndicator;if(this.removeHandles(t),null!=i)if(i===e)a.attached=!0;else{const{start:e,end:n}=this._computationManipulators.get(i),s=()=>{a.attached=e.grabbing||n.grabbing};s(),this.addHandles([e.events.on("grab-changed",s),n.events.on("grab-changed",s)],t)}else a.attached=!1})),d((()=>{const t=this._activeComputation;return null!=t?{geometry:t.geometry,constraint:t.previousConstraint}:{}}),(({geometry:t,constraint:e})=>{const i=this._constraintSnappingIndicator;null!=t&&null!=e&&e!==b.Direct?(i.visible=!0,i.setGeometryFromSegment(t.directSegment)):i.visible=!1}))]}removeStaged(){return null!=this._stagedDimension&&(this.analysis.dimensions.remove(this._stagedDimension),this._stagedDimension=null,!0)}onDeactivate(){this.removeStaged(),this._resetSnappingState()}onClick(t){const{_stagedDimension:e}=this;if(null==e){const e=this._onUnstagedClick(t);return this.analysis.dimensions.add(e),null}return this._onStagedClick(t),e}onPointerMove({mapPoint:t,pointerType:e}){if("touch"===e)return;const i=this._getSnappingContext(e);this._updatingHandles.addPromise(u(this._snappingOperation.snap({point:t},this._snappingManager,i)))}onManipulatorSelectionChanged(){if(null!=this.analysisViewData.selectedComputation){this._computationManipulators.get(this.analysisViewData.selectedComputation).offset.selected||(this.analysisViewData.selectedDimension=null)}}_onUnstagedClick({mapPoint:t,pointerType:e}){let n=t;if("mouse"===e){const i=this._getSnappingContext(e);n=this._snappingManager.update({point:t,context:i})}const s=new a({startPoint:S(n,new C),endPoint:null,measureType:i.Horizontal});return this._stagedDimension=s,this._resetSnappingState(),s}_onStagedClick({mapPoint:t,pointerType:e}){const i=this._stagedComputation;if(null==i)return;let a=t;if("mouse"===e){const i=this._getSnappingContext(e);a=this._snappingManager.update({point:t,context:i})}const n=S(a,new C);this._applyPointUpdate(i,{endPoint:n}),this._stagedDimension=null,this._resetSnappingState()}_resetSnappingState(){this._snappingManager.doneSnapping(),this._snappingOperation.abort(),this._snappingOperation.stagedPoint=null}_createManipulators(t){const e=this._setupPointManipulator(t,{isStart:!0}),a=this._setupPointManipulator(t,{isStart:!1}),n=this._setupOffsetManipulator(t),s=this._setupHeadingManipulator(t),o=this._setupRotationManipulator(t),r=this._setupMeasureTypeManipulator(t,i.Direct),p=this._setupMeasureTypeManipulator(t,i.Horizontal),l=this._setupMeasureTypeManipulator(t,i.Vertical),u=new H({start:e,end:a,offset:n,heading:s,rotation:o,direct:r,horizontal:p,vertical:l});return this._setupComputationToManipulatorsSync(t,u),this._computationManipulators.set(t,u),this.manipulators.addMany(u.values()),{manipulators:u,remove:()=>{this._computationHandles.remove(t),this._computationManipulators.delete(t);for(const t of u.values())this.manipulators.remove(t)}}}_setupComputationToManipulatorsSync(t,e){this._computationHandles.add([d((()=>t.geometry),(()=>this._updateManipulators(t,e)),{...g,equals:r})],t)}_setupPointManipulator(t,e){const{view:i}=this,{dimension:a}=t,n=new j(i,{metadata:a}),s=T(n,{isStart:e.isStart,createSnappingPipelineStep:t=>dt({snappingContext:this._getSnappingContext(t),snappingManager:this._snappingManager,updatingHandles:this._updatingHandles}),dimension:a,onUpdate:e=>this._applyPointUpdate(t,e),view:i});return this._computationHandles.add(s,t),n}_setupOffsetManipulator(t){const{view:e}=this,i=G(e,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,metadata:t.dimension}),a=x(i,{computation:t,view:e});return this._computationHandles.add(a,t),i}_setupHeadingManipulator(t){const{view:e}=this,i=new z(e,{lineSizePt:this.analysis.style.lineSize,material:this._orientationManipulatorMaterial,metadata:t.dimension}),a=U(i,{computation:t,view:e});return this._computationHandles.add(a,t),i}_setupRotationManipulator(t){const{view:e}=this,i=new z(e,{lineSizePt:this.analysis.style.lineSize,material:this._orientationManipulatorMaterial,metadata:t.dimension}),a=I(i,{computation:t,view:e});return this._computationHandles.add(a,t),i}_setupMeasureTypeManipulator(t,e){const{view:i}=this,a=V(i,{lineSizePt:this.analysis.style.lineSize,unfocusedMaterial:this._unfocusedOffsetManipulatorMaterial,focusedMaterial:this._focusedOffsetManipulatorMaterial,thinOffsetManipulatorMaterial:this._thinOffsetManipulatorMaterial,metadata:t.dimension}),n=R(a,{computation:t,manipulatorMeasureType:e,view:i});return this._computationHandles.add(n,t),a}_updateManipulators(t,e,a={stagedDimension:this._stagedDimension,selectedComputation:this.analysisViewData.selectedComputation,firstGrabbedManipulator:this.firstGrabbedManipulator}){const{stagedDimension:n,selectedComputation:s,firstGrabbedManipulator:o}=a,{start:r,end:p,offset:l,heading:u,rotation:d}=e,c=s===t,m=B(t),{dimension:h}=t;for(const i of e.values()){const t=m&&null==n&&(null==o||i===o);i===l?(i.available=t,i.selected=c):i.available=t&&c}if(!m)return;null!=this._computeConstraint(t)?e.forEachMeasureTypeManipulator((t=>t.available=!1)):e.manipulatorForMeasureType(h.measureType).available=!1;for(const _ of[u,d])h.measureType===i.Direct&&0!==h.offset||(_.available=!1);N(t)?d.available=!1:u.available=!1;const{geometry:g}=t;r.renderLocation=g.directSegment.startRenderSpace,p.renderLocation=g.directSegment.endRenderSpace;const{renderCoordsHelper:f}=this.view;A(l,g,f),u.available&&k(u,t,f),d.available&&E(d,t,f),e.forEachMeasureTypeManipulator(((e,i)=>{e.available&&L(e,t,i,f)}))}_updateManipulatorStyle(t){const e=F(t),i=q(t),a={lineSizePt:t,material:this._orientationManipulatorMaterial};for(const{offset:n,heading:s,rotation:o}of this._computationManipulators.values())n.radius=i/2,s.update(a),o.update(a);this._unfocusedOffsetManipulatorMaterial.setParameters({width:e}),this._focusedOffsetManipulatorMaterial.setParameters({width:i})}_applyPointUpdate(t,e){const{view:i}=this,a=K(t);"startPoint"in e&&(a.elevationAlignedStartPoint=e.startPoint),"endPoint"in e&&(a.elevationAlignedEndPoint=e.endPoint);const n=J(a,i.renderCoordsHelper);if(null==n)return;const s=this._computeConstraint({...a,geometry:n});P(t,e,{...a,constraint:s,unconstrainedGeometry:n,view:i}),t===this._stagedComputation&&this._updateStagedDimensionOffset(t)}_updateStagedDimensionOffset(t){if(null==t.geometry)return;t.geometry.directSegment.eval(.5,ft);const{state:e,renderCoordsHelper:i}=this.view,a=e.camera.computeScreenPixelSizeAt(ft);t.dimension.offset=Z*a*i.unitInMeters}_computeConstraint(t){return O(D(t,this._snappingManager.options),this.view)}_createOffsetManipulatorMaterial(){return new ot({width:1,renderOccluded:at.OccludeAndTransparent,writeDepth:!1,hasPolygonOffset:!0,isDecoration:!0})}get testInfo(){}};t([_({constructOnly:!0})],gt.prototype,"analysis",void 0),t([_({constructOnly:!0})],gt.prototype,"analysisViewData",void 0),t([_({constructOnly:!0})],gt.prototype,"manipulators",void 0),t([_({constructOnly:!0})],gt.prototype,"parentTool",void 0),t([_({constructOnly:!0,nonNullable:!0})],gt.prototype,"view",void 0),t([_({readOnly:!0})],gt.prototype,"updating",null),t([_()],gt.prototype,"firstGrabbedManipulator",null),t([_()],gt.prototype,"hasGrabbedManipulators",null),t([_()],gt.prototype,"snappingOptions",null),t([_()],gt.prototype,"_stagedDimension",void 0),t([_()],gt.prototype,"_activeComputation",null),t([_()],gt.prototype,"_stagedComputation",null),gt=t([M("esri.views.3d.analysis.Dimension.LengthDimensionSubTool")],gt);const ft=v();export{gt as LengthDimensionSubTool};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.32/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../geometry.js";import{LengthDimensionMeasureType as e}from"../../../../analysis/dimensionUtils.js";import"../../../../core/has.js";import{p as t,h as n,f as i,d as o,k as r}from"../../../../chunks/vec32.js";import{sv3d as a}from"../../../../geometry/support/vectorStacks.js";import{automaticHeadingFromCamera as s}from"./lengthDimensionManipulatorUtils.js";import{isGeodesicDimension as l,directUp as c,directStartToEnd as d}from"./lengthDimensionUtils.js";import{constraintThresholdPx as m}from"./settings.js";import u from"../../../../geometry/Point.js";var p;function P(e,t){return{enabled:t.effectiveFeatureEnabled,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,geometry:e.geometry}}function f(e,s){if(l(e))return p.Direct;if(!e.enabled)return null;const{geometry:u}=e;if(null==u||t(u.directSegment.startRenderSpace,u.directSegment.endRenderSpace))return null;const{camera:P}=s.state,f=c(a.get(),u,s.renderCoordsHelper),g=d(a.get(),u),S=n(a.get(),f,i(g,f)),v=o(a.get(),g,S),y=r(v),A=r(S),{startRenderSpace:R,endRenderSpace:z}=u.directSegment,j=Math.max(P.computeScreenPixelSizeAt(R)*m,P.computeScreenPixelSizeAt(z)*m)**2;return y<j?p.Vertical:A<j?p.Horizontal:null}function g(e,t,{constraint:n,view:i}){const{unconstrainedGeometry:o}=e;if(null==o)return;const{renderCoordsHelper:r,spatialReference:a}=i,{startRenderSpace:s,endRenderSpace:l}=o.directSegment,c=r.fromRenderCoords(s,new u({spatialReference:a})),d=r.fromRenderCoords(l,new u({spatialReference:a}));let m;m="start"===t?{startPoint:c}:{endPoint:d},S(e,m,{constraint:n,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,unconstrainedGeometry:o,view:i})}function S(t,n,i){const{constraint:o,elevationAlignedStartPoint:r,elevationAlignedEndPoint:a,unconstrainedGeometry:l,view:c}=i,{dimension:d,previousConstraint:m,preConstraintProperties:u}=t;if(null==r||null==a)return;const P=()=>{"startPoint"in n?d.startPoint=n.startPoint:"endPoint"in n&&(d.endPoint=n.endPoint)};if(null==o)P(),null!=m&&null!=u&&(d.measureType=u.measureType,d.orientation=u.orientation);else switch(d.measureType=e.Direct,o){case p.Horizontal:if(o!==m&&(d.orientation=0),"startPoint"in n){const e=n.startPoint;null!=e&&(e.z=a.z),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.z=r.z),d.endPoint=e}break;case p.Vertical:if(o!==m&&(d.orientation=s(l,c)),"startPoint"in n){const e=n.startPoint;null!=e&&(e.x=a.x,e.y=a.y),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.x=r.x,e.y=r.y),d.endPoint=e}break;case p.Direct:o!==m&&null!=u&&(d.orientation=u.orientation),P()}t.previousConstraint=o,t.unconstrainedGeometry=l}!function(e){e[e.Horizontal=0]="Horizontal",e[e.Vertical=1]="Vertical",e[e.Direct=2]="Direct"}(p||(p={}));export{p as LengthDimensionConstraint,S as applyConstraint,f as computeConstraint,P as constraintDependencies,g as reapplyConstraint};
5
+ import{LengthDimensionMeasureType as e}from"../../../../analysis/dimensionUtils.js";import"../../../../core/has.js";import{p as t,h as n,f as i,d as o,k as r}from"../../../../chunks/vec32.js";import a from"../../../../geometry/Point.js";import{sv3d as s}from"../../../../geometry/support/vectorStacks.js";import{automaticHeadingFromCamera as l}from"./lengthDimensionManipulatorUtils.js";import{isGeodesicDimension as c,directUp as d,directStartToEnd as u}from"./lengthDimensionUtils.js";import{constraintThresholdPx as m}from"./settings.js";var P;function p(e,t){return{enabled:t.effectiveFeatureEnabled,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,geometry:e.geometry}}function f(e,a){if(c(e))return P.Direct;if(!e.enabled)return null;const{geometry:l}=e;if(null==l||t(l.directSegment.startRenderSpace,l.directSegment.endRenderSpace))return null;const{camera:p}=a.state,f=d(s.get(),l,a.renderCoordsHelper),g=u(s.get(),l),S=n(s.get(),f,i(g,f)),v=o(s.get(),g,S),y=r(v),A=r(S),{startRenderSpace:R,endRenderSpace:z}=l.directSegment,j=Math.max(p.computeScreenPixelSizeAt(R)*m,p.computeScreenPixelSizeAt(z)*m)**2;return y<j?P.Vertical:A<j?P.Horizontal:null}function g(e,t,{constraint:n,view:i}){const{unconstrainedGeometry:o}=e;if(null==o)return;const{renderCoordsHelper:r,spatialReference:s}=i,{startRenderSpace:l,endRenderSpace:c}=o.directSegment,d=r.fromRenderCoords(l,new a({spatialReference:s})),u=r.fromRenderCoords(c,new a({spatialReference:s}));let m;m="start"===t?{startPoint:d}:{endPoint:u},S(e,m,{constraint:n,elevationAlignedStartPoint:e.elevationAlignedStartPoint,elevationAlignedEndPoint:e.elevationAlignedEndPoint,unconstrainedGeometry:o,view:i})}function S(t,n,i){const{constraint:o,elevationAlignedStartPoint:r,elevationAlignedEndPoint:a,unconstrainedGeometry:s,view:c}=i,{dimension:d,previousConstraint:u,preConstraintProperties:m}=t;if(null==r||null==a)return;const p=()=>{"startPoint"in n?d.startPoint=n.startPoint:"endPoint"in n&&(d.endPoint=n.endPoint)};if(null==o)p(),null!=u&&null!=m&&(d.measureType=m.measureType,d.orientation=m.orientation);else switch(d.measureType=e.Direct,o){case P.Horizontal:if(o!==u&&(d.orientation=0),"startPoint"in n){const e=n.startPoint;null!=e&&(e.z=a.z),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.z=r.z),d.endPoint=e}break;case P.Vertical:if(o!==u&&(d.orientation=l(s,c)),"startPoint"in n){const e=n.startPoint;null!=e&&(e.x=a.x,e.y=a.y),d.startPoint=e}else if("endPoint"in n){const e=n.endPoint;null!=e&&(e.x=r.x,e.y=r.y),d.endPoint=e}break;case P.Direct:o!==u&&null!=m&&(d.orientation=m.orientation),p()}t.previousConstraint=o,t.unconstrainedGeometry=s}!function(e){e[e.Horizontal=0]="Horizontal",e[e.Vertical=1]="Vertical",e[e.Direct=2]="Direct"}(P||(P={}));export{P as LengthDimensionConstraint,S as applyConstraint,f as computeConstraint,p as constraintDependencies,g as reapplyConstraint};