@arcgis/core 5.1.0-next.19 → 5.1.0-next.20

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 (707) hide show
  1. package/assets/components/assets/carousel/t9n/messages.ar.json +1 -1
  2. package/assets/components/assets/carousel/t9n/messages.bg.json +1 -1
  3. package/assets/components/assets/carousel/t9n/messages.bs.json +1 -1
  4. package/assets/components/assets/carousel/t9n/messages.ca.json +1 -1
  5. package/assets/components/assets/carousel/t9n/messages.cs.json +1 -1
  6. package/assets/components/assets/carousel/t9n/messages.da.json +1 -1
  7. package/assets/components/assets/carousel/t9n/messages.de.json +1 -1
  8. package/assets/components/assets/carousel/t9n/messages.el.json +1 -1
  9. package/assets/components/assets/carousel/t9n/messages.es.json +1 -1
  10. package/assets/components/assets/carousel/t9n/messages.et.json +1 -1
  11. package/assets/components/assets/carousel/t9n/messages.fi.json +1 -1
  12. package/assets/components/assets/carousel/t9n/messages.fr.json +1 -1
  13. package/assets/components/assets/carousel/t9n/messages.he.json +1 -1
  14. package/assets/components/assets/carousel/t9n/messages.hr.json +1 -1
  15. package/assets/components/assets/carousel/t9n/messages.hu.json +1 -1
  16. package/assets/components/assets/carousel/t9n/messages.id.json +1 -1
  17. package/assets/components/assets/carousel/t9n/messages.it.json +1 -1
  18. package/assets/components/assets/carousel/t9n/messages.ja.json +1 -1
  19. package/assets/components/assets/carousel/t9n/messages.ko.json +1 -1
  20. package/assets/components/assets/carousel/t9n/messages.lt.json +1 -1
  21. package/assets/components/assets/carousel/t9n/messages.lv.json +1 -1
  22. package/assets/components/assets/carousel/t9n/messages.nl.json +1 -1
  23. package/assets/components/assets/carousel/t9n/messages.no.json +1 -1
  24. package/assets/components/assets/carousel/t9n/messages.pl.json +1 -1
  25. package/assets/components/assets/carousel/t9n/messages.pt-BR.json +1 -1
  26. package/assets/components/assets/carousel/t9n/messages.pt-PT.json +1 -1
  27. package/assets/components/assets/carousel/t9n/messages.ro.json +1 -1
  28. package/assets/components/assets/carousel/t9n/messages.ru.json +1 -1
  29. package/assets/components/assets/carousel/t9n/messages.sk.json +1 -1
  30. package/assets/components/assets/carousel/t9n/messages.sl.json +1 -1
  31. package/assets/components/assets/carousel/t9n/messages.sr.json +1 -1
  32. package/assets/components/assets/carousel/t9n/messages.sv.json +1 -1
  33. package/assets/components/assets/carousel/t9n/messages.th.json +1 -1
  34. package/assets/components/assets/carousel/t9n/messages.tr.json +1 -1
  35. package/assets/components/assets/carousel/t9n/messages.uk.json +1 -1
  36. package/assets/components/assets/carousel/t9n/messages.vi.json +1 -1
  37. package/assets/components/assets/carousel/t9n/messages.zh-CN.json +1 -1
  38. package/assets/components/assets/carousel/t9n/messages.zh-HK.json +1 -1
  39. package/assets/components/assets/carousel/t9n/messages.zh-TW.json +1 -1
  40. package/assets/esri/core/workers/RemoteClient.js +1 -1
  41. package/assets/esri/core/workers/chunks/0140dc583e20b031eac9.js +1 -0
  42. package/assets/esri/core/workers/chunks/018859b79f9ce7528ac7.js +1 -0
  43. package/assets/esri/core/workers/chunks/01dd849a2d335e9f3e16.js +1 -0
  44. package/assets/esri/core/workers/chunks/{6b3d8280a24f7a3aac40.js → 026c00ee272c64e53daf.js} +1 -1
  45. package/assets/esri/core/workers/chunks/02cab89336504e95ed99.js +1 -0
  46. package/assets/esri/core/workers/chunks/06df187a116709f69952.js +1 -0
  47. package/assets/esri/core/workers/chunks/0711c856144cd8700e7e.js +1 -0
  48. package/assets/esri/core/workers/chunks/0883c4e63424d6746ada.js +1 -0
  49. package/assets/esri/core/workers/chunks/0987cb20148f65222b44.js +1 -0
  50. package/assets/esri/core/workers/chunks/0a1f88cf16bcbb53b371.js +1 -0
  51. package/assets/esri/core/workers/chunks/0a66a2b4aaab0774c34f.js +1 -0
  52. package/assets/esri/core/workers/chunks/0bb3beedae1b73beb1fc.js +1 -0
  53. package/assets/esri/core/workers/chunks/0ca405ca26676137a4be.js +1 -0
  54. package/assets/esri/core/workers/chunks/0ce968c89c35535da63e.js +1 -0
  55. package/assets/esri/core/workers/chunks/0d56e3b3265a4470aaa6.js +1 -0
  56. package/assets/esri/core/workers/chunks/0debabe324c873066885.js +1 -0
  57. package/assets/esri/core/workers/chunks/0df585420c9cec6a7265.js +1 -0
  58. package/assets/esri/core/workers/chunks/0facd2c143a04cc7c4ff.js +1 -0
  59. package/assets/esri/core/workers/chunks/108d652a959e7de31cbf.js +1 -0
  60. package/assets/esri/core/workers/chunks/13d1cb50232ae761425b.js +2 -0
  61. package/assets/esri/core/workers/chunks/144c719d5ba9e3a30961.js +1 -0
  62. package/assets/esri/core/workers/chunks/1482262d0788ee65ddf7.js +1 -0
  63. package/assets/esri/core/workers/chunks/1503ca177e2466ec0e87.js +1 -0
  64. package/assets/esri/core/workers/chunks/1597d7b380d510ff5252.js +1 -0
  65. package/assets/esri/core/workers/chunks/15d7c9f5a55985ed00b4.js +1 -0
  66. package/assets/esri/core/workers/chunks/166652b7d69bf216d7a4.js +1 -0
  67. package/assets/esri/core/workers/chunks/179b3385c24ad8a05e1d.js +1 -0
  68. package/assets/esri/core/workers/chunks/{4f2c29168c9de0b08741.js → 1880c3b293cdfa804625.js} +1 -1
  69. package/assets/esri/core/workers/chunks/18a40606e4c39f244ecd.js +1 -0
  70. package/assets/esri/core/workers/chunks/190bc75254bc0542a6be.js +1 -0
  71. package/assets/esri/core/workers/chunks/1be4e308280149eae4fb.js +1 -0
  72. package/assets/esri/core/workers/chunks/1bea32b02d35ddb9b118.js +1 -0
  73. package/assets/esri/core/workers/chunks/1d0153c7d65bd9ea7d39.js +1 -0
  74. package/assets/esri/core/workers/chunks/1d697642fb2a6332b7f9.js +1 -0
  75. package/assets/esri/core/workers/chunks/1d78ec98eef7fef08f86.js +1 -0
  76. package/assets/esri/core/workers/chunks/1df8330823841b5bb6a5.js +1 -0
  77. package/assets/esri/core/workers/chunks/1e6062dc68c26fcf608f.js +1 -0
  78. package/assets/esri/core/workers/chunks/1e6271524602e159dbad.js +1 -0
  79. package/assets/esri/core/workers/chunks/1ee3d44e6d7add0b24cb.js +1 -0
  80. package/assets/esri/core/workers/chunks/1f54ed4a5238ba1a2551.js +1 -0
  81. package/assets/esri/core/workers/chunks/1f96d597ba736e088168.js +1 -0
  82. package/assets/esri/core/workers/chunks/1fa2bf0d6740092ec619.js +1 -0
  83. package/assets/esri/core/workers/chunks/210ef3f1cc6ef8a831bf.js +1 -0
  84. package/assets/esri/core/workers/chunks/23c856265dd24ce54fdb.js +1028 -0
  85. package/assets/esri/core/workers/chunks/241ef4a1bea20b49d812.js +1 -0
  86. package/assets/esri/core/workers/chunks/25bc7c7bc2793d209640.js +1 -0
  87. package/assets/esri/core/workers/chunks/2662750d5761ed2d0eb7.js +1 -0
  88. package/assets/esri/core/workers/chunks/26e41b08efe77d247409.js +1 -0
  89. package/assets/esri/core/workers/chunks/297b58f29c496923e1f3.js +1 -0
  90. package/assets/esri/core/workers/chunks/2a2a9fa62969644ea200.js +1 -0
  91. package/assets/esri/core/workers/chunks/2abb64323839367c9205.js +1 -0
  92. package/assets/esri/core/workers/chunks/2b296378d21e4e3c11d4.js +1 -0
  93. package/assets/esri/core/workers/chunks/2b76a8897ad7ba284d33.js +1 -0
  94. package/assets/esri/core/workers/chunks/2bd8bf6749d101d82d61.js +1 -0
  95. package/assets/esri/core/workers/chunks/2cbcf34cf896a438999b.js +1 -0
  96. package/assets/esri/core/workers/chunks/2ddb8bb00b3af83ebd7c.js +1 -0
  97. package/assets/esri/core/workers/chunks/2de299ff3a902d380be6.js +1 -0
  98. package/assets/esri/core/workers/chunks/2e06baf6469820697f17.js +1 -0
  99. package/assets/esri/core/workers/chunks/{531c55f3b8e708ccf767.js → 2f3aeaa25a76ab94b8e5.js} +1 -1
  100. package/assets/esri/core/workers/chunks/305b2a8dc6438c5fd4aa.js +1 -0
  101. package/assets/esri/core/workers/chunks/33de1d899a4fa9ab6ab1.js +1 -0
  102. package/assets/esri/core/workers/chunks/36da644678e6acf3bdb5.js +1 -0
  103. package/assets/esri/core/workers/chunks/3861644c06cfebe8f40c.js +2 -0
  104. package/assets/esri/core/workers/chunks/38d5dd4d457428244302.js +1 -0
  105. package/assets/esri/core/workers/chunks/394b645d51e7bf799382.js +1 -0
  106. package/assets/esri/core/workers/chunks/3a8320a40916c755c031.js +1 -0
  107. package/assets/esri/core/workers/chunks/3c2eb386c0165150e039.js +1 -0
  108. package/assets/esri/core/workers/chunks/3d0aa5f2db79c022243e.js +1 -0
  109. package/assets/esri/core/workers/chunks/3e26f9af6b8c75bad97a.js +1 -0
  110. package/assets/esri/core/workers/chunks/3ed7f19f77a11fa4d047.js +1 -0
  111. package/assets/esri/core/workers/chunks/3f812b0a28afb47aaaf0.js +2 -0
  112. package/assets/esri/core/workers/chunks/403060849a2573bbf110.js +1 -0
  113. package/assets/esri/core/workers/chunks/41a95ad470ec42ecd5a2.js +1 -0
  114. package/assets/esri/core/workers/chunks/43c8b1473695574c663e.js +2 -0
  115. package/assets/esri/core/workers/chunks/452d71789a1b77cff48d.js +1 -0
  116. package/assets/esri/core/workers/chunks/465cc0e00f03cdb640b2.js +1 -0
  117. package/assets/esri/core/workers/chunks/48a56b19bf825f05cc6e.js +1 -0
  118. package/assets/esri/core/workers/chunks/4d16b6ac52e25bd7e6aa.js +1 -0
  119. package/assets/esri/core/workers/chunks/4d7f7b1e7663cf6088d1.js +1 -0
  120. package/assets/esri/core/workers/chunks/50ab9a3f8bbb268fae59.js +1 -0
  121. package/assets/esri/core/workers/chunks/51ade971dda3ebe90f31.js +1 -0
  122. package/assets/esri/core/workers/chunks/{cbcb3530375e280bfeac.js → 53f8c1d56ef3b24d2226.js} +1 -1
  123. package/assets/esri/core/workers/chunks/544bfa97837770a8792f.js +1 -0
  124. package/assets/esri/core/workers/chunks/{ec63c0fa21cd3c872633.js → 54794b18edc584fd7515.js} +1 -1
  125. package/assets/esri/core/workers/chunks/561484ab6ed564e4b90f.js +1 -0
  126. package/assets/esri/core/workers/chunks/5690b49f355a5e2083a9.js +1 -0
  127. package/assets/esri/core/workers/chunks/56c7d7c7217557375fb6.js +1 -0
  128. package/assets/esri/core/workers/chunks/592f6bf0283152481f21.js +1 -0
  129. package/assets/esri/core/workers/chunks/5a6a6e7151085a3cd3dd.js +1 -0
  130. package/assets/esri/core/workers/chunks/5a6d6082c5bcb1a80eda.js +1 -0
  131. package/assets/esri/core/workers/chunks/5b2dd164dd84fd1ca4f7.js +1 -0
  132. package/assets/esri/core/workers/chunks/5b70ee8122262de5bbdf.js +1 -0
  133. package/assets/esri/core/workers/chunks/5b991b0d4ca257291cb0.js +1 -0
  134. package/assets/esri/core/workers/chunks/5e3019ba1b4c88977a19.js +1 -0
  135. package/assets/esri/core/workers/chunks/5e360f933da02d8d2455.js +1 -0
  136. package/assets/esri/core/workers/chunks/5e4ea6a2784eed1423f1.js +1 -0
  137. package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +1 -0
  138. package/assets/esri/core/workers/chunks/5f6942ac94acd7842926.js +1 -0
  139. package/assets/esri/core/workers/chunks/601e44839fd46e449aa8.js +1 -0
  140. package/assets/esri/core/workers/chunks/62c228ca16fdc7a2c695.js +1 -0
  141. package/assets/esri/core/workers/chunks/639202a461b17840a13f.js +1 -0
  142. package/assets/esri/core/workers/chunks/63934843c9f4ef779a07.js +1 -0
  143. package/assets/esri/core/workers/chunks/63b5b57f27c7c6194d44.js +1 -0
  144. package/assets/esri/core/workers/chunks/{003019c2741aef2d1aa0.js → 65520a443e3811255bea.js} +1 -1
  145. package/assets/esri/core/workers/chunks/693d269637135047a0c4.js +1 -0
  146. package/assets/esri/core/workers/chunks/{36215b2c0b1020743458.js → 6a14ec2d2de6778a4e7a.js} +1 -1
  147. package/assets/esri/core/workers/chunks/6ac84e6d33104e74398d.js +1 -0
  148. package/assets/esri/core/workers/chunks/6cdda5aa35fa12ea9345.js +1 -0
  149. package/assets/esri/core/workers/chunks/6d3467997b5d01630b08.js +1 -0
  150. package/assets/esri/core/workers/chunks/6dfcb0c804e63e87e311.js +1 -0
  151. package/assets/esri/core/workers/chunks/6f079f1fd6d00d2d174c.js +1 -0
  152. package/assets/esri/core/workers/chunks/6fde745f3a62e7f5a97d.js +1 -0
  153. package/assets/esri/core/workers/chunks/70263c2182dc43046742.js +1 -0
  154. package/assets/esri/core/workers/chunks/72cd450b24fdfcef6547.js +1 -0
  155. package/assets/esri/core/workers/chunks/7386a61f9610b8e5c608.js +1 -0
  156. package/assets/esri/core/workers/chunks/73e02f6c7ccc2013c812.js +1 -0
  157. package/assets/esri/core/workers/chunks/73e384fd93cf22503d84.js +1 -0
  158. package/assets/esri/core/workers/chunks/74a6d840813ac29b0bda.js +1 -0
  159. package/assets/esri/core/workers/chunks/{f6aa34577c5fab8cc1f5.js → 74e3c224e879edb37812.js} +1 -1
  160. package/assets/esri/core/workers/chunks/75664587bb80f4e187e1.js +1 -0
  161. package/assets/esri/core/workers/chunks/75fd96fd9557ac1f8e10.js +1 -0
  162. package/assets/esri/core/workers/chunks/7642905920e169a147f3.js +1 -0
  163. package/assets/esri/core/workers/chunks/764d080f77dec5e7a02c.js +1 -0
  164. package/assets/esri/core/workers/chunks/777b0e07f72c42470d36.js +1 -0
  165. package/assets/esri/core/workers/chunks/7873ee080c175d17a444.js +1 -0
  166. package/assets/esri/core/workers/chunks/7975abb2162a82c88edb.js +1 -0
  167. package/assets/esri/core/workers/chunks/7a2dd3d85d31dce29d94.js +1 -0
  168. package/assets/esri/core/workers/chunks/7b297a2f712361bfae2e.js +1 -0
  169. package/assets/esri/core/workers/chunks/7cec3252e3ee56424b9e.js +1 -0
  170. package/assets/esri/core/workers/chunks/7d274a077bdfa8c485e8.js +1 -0
  171. package/assets/esri/core/workers/chunks/7dd1e93469d0b1d652bc.js +1 -0
  172. package/assets/esri/core/workers/chunks/8012fdc49a7a10982f78.js +1 -0
  173. package/assets/esri/core/workers/chunks/835a929e37811d0f82cb.js +1 -0
  174. package/assets/esri/core/workers/chunks/835d6dd8c5a00682d879.js +1 -0
  175. package/assets/esri/core/workers/chunks/83d913dab3c2b0d6a7cc.js +1 -0
  176. package/assets/esri/core/workers/chunks/854fe80272b59fafc2e9.js +1 -0
  177. package/assets/esri/core/workers/chunks/85e0fd618625a639387f.js +1 -0
  178. package/assets/esri/core/workers/chunks/85f309c1888c1c8411b1.js +1 -0
  179. package/assets/esri/core/workers/chunks/86161025b53b916328ff.js +1 -0
  180. package/assets/esri/core/workers/chunks/861817be5e050e9522ab.js +1 -0
  181. package/assets/esri/core/workers/chunks/86465d4bb185d7460087.js +1 -0
  182. package/assets/esri/core/workers/chunks/87e7378b242debbfd575.js +1 -0
  183. package/assets/esri/core/workers/chunks/8838ff9668b472af16a1.js +1 -0
  184. package/assets/esri/core/workers/chunks/889835e61ea97f090082.js +1 -0
  185. package/assets/esri/core/workers/chunks/8aabc71d7f15c4407d7d.js +1 -0
  186. package/assets/esri/core/workers/chunks/8c2e5b116bac21e7d577.js +1 -0
  187. package/assets/esri/core/workers/chunks/8cf58806671ed491a456.js +1 -0
  188. package/assets/esri/core/workers/chunks/8d1d0c3f0532aa98487d.js +1 -0
  189. package/assets/esri/core/workers/chunks/8d6da6573d07385f4ed5.js +1 -0
  190. package/assets/esri/core/workers/chunks/90b19e60c056f32623e7.js +1 -0
  191. package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +1 -0
  192. package/assets/esri/core/workers/chunks/91e56959b2fddf1a9743.js +1 -0
  193. package/assets/esri/core/workers/chunks/925980d26d71987ac80c.js +1 -0
  194. package/assets/esri/core/workers/chunks/93515f52d9b5fa12bd04.js +1 -0
  195. package/assets/esri/core/workers/chunks/9461f7225c42cf15a114.js +1 -0
  196. package/assets/esri/core/workers/chunks/946698d9cefffdb63082.js +1 -0
  197. package/assets/esri/core/workers/chunks/978649cb6df99ee728be.js +1 -0
  198. package/assets/esri/core/workers/chunks/99101789035f1787c630.js +1 -0
  199. package/assets/esri/core/workers/chunks/9a2b1f0ca66c1b87c830.js +1 -0
  200. package/assets/esri/core/workers/chunks/9c6e96b1c2b0418a4f1c.js +1 -0
  201. package/assets/esri/core/workers/chunks/9f1f5fb648302c43ad12.js +1 -0
  202. package/assets/esri/core/workers/chunks/9f5f4da954228d876219.js +1 -0
  203. package/assets/esri/core/workers/chunks/a010fc1123bc0eeda478.js +1 -0
  204. package/assets/esri/core/workers/chunks/a1a12552d34ea9eea130.js +1 -0
  205. package/assets/esri/core/workers/chunks/a2323c957c8b2fe225b4.js +1 -0
  206. package/assets/esri/core/workers/chunks/a34e3c6da7d98569c052.js +1 -0
  207. package/assets/esri/core/workers/chunks/a36a33f43610c3cd985b.js +1 -0
  208. package/assets/esri/core/workers/chunks/a381932eef77f4d80292.js +1 -0
  209. package/assets/esri/core/workers/chunks/a495e60996a36ce19a32.js +1 -0
  210. package/assets/esri/core/workers/chunks/a53fa34681efff8fc024.js +1 -0
  211. package/assets/esri/core/workers/chunks/a7a9716582b256d76e5b.js +1 -0
  212. package/assets/esri/core/workers/chunks/a96c7432ca97cbeef4b8.js +1 -0
  213. package/assets/esri/core/workers/chunks/{ec0fcb1834c88090e7af.js → aa60f735ccd39cedef7e.js} +1 -1
  214. package/assets/esri/core/workers/chunks/aa9c11f25d95372998a3.js +1 -0
  215. package/assets/esri/core/workers/chunks/{128cdb4a02549abc68b5.js → aec33bdb355bd04f28ae.js} +1 -1
  216. package/assets/esri/core/workers/chunks/aece665144aed2065ffc.js +1 -0
  217. package/assets/esri/core/workers/chunks/af75e91b88e747aa76ac.js +1 -0
  218. package/assets/esri/core/workers/chunks/b089947c9a492c96ca27.js +1 -0
  219. package/assets/esri/core/workers/chunks/b35ea099334c867bde02.js +1 -0
  220. package/assets/esri/core/workers/chunks/b553264db0f10bb8c5f7.js +1 -0
  221. package/assets/esri/core/workers/chunks/b586f1021a27c5e1551a.js +2 -0
  222. package/assets/esri/core/workers/chunks/{236f8137ae505c8f0764.js → b65550b2f685ba760b2c.js} +1 -1
  223. package/assets/esri/core/workers/chunks/b6e4c35b76379088035c.js +1 -0
  224. package/assets/esri/core/workers/chunks/b730131e52f9220db031.js +1 -0
  225. package/assets/esri/core/workers/chunks/{9332db133a0925d522fe.js → b8b2f160518e3a225d99.js} +1 -1
  226. package/assets/esri/core/workers/chunks/bbf2afa05314e267893f.js +1 -0
  227. package/assets/esri/core/workers/chunks/bc982142e61598bd367c.js +1 -0
  228. package/assets/esri/core/workers/chunks/bcd701892ee120e13a18.js +1 -0
  229. package/assets/esri/core/workers/chunks/bd278f8081be8304be8d.js +1 -0
  230. package/assets/esri/core/workers/chunks/bd2f577cae61facdde4a.js +1 -0
  231. package/assets/esri/core/workers/chunks/c1a26956713262cb3cb3.js +1 -0
  232. package/assets/esri/core/workers/chunks/c1dc14b07282474a7c2d.js +1 -0
  233. package/assets/esri/core/workers/chunks/c327fe276238af60fda4.js +1 -0
  234. package/assets/esri/core/workers/chunks/c4a78ab84186c7be599a.js +1 -0
  235. package/assets/esri/core/workers/chunks/c4dc60617152d885f3da.js +1 -0
  236. package/assets/esri/core/workers/chunks/c6d5f6cfbb31a3fd11ff.js +1 -0
  237. package/assets/esri/core/workers/chunks/c7f27a84268a9b0d8cdb.js +1 -0
  238. package/assets/esri/core/workers/chunks/c80c6e60c87c3e5f5e62.js +1 -0
  239. package/assets/esri/core/workers/chunks/c91993503de5faa404f0.js +1 -0
  240. package/assets/esri/core/workers/chunks/c9a42d86185a0ad35dd1.js +1 -0
  241. package/assets/esri/core/workers/chunks/c9d600dc6b6b5aafff1c.js +1 -0
  242. package/assets/esri/core/workers/chunks/ca33847a997ccfe8ddc2.js +1 -0
  243. package/assets/esri/core/workers/chunks/ca64867bc322a354be8e.js +1 -0
  244. package/assets/esri/core/workers/chunks/cb6a7ca4ba2cf0b5ced7.js +1 -0
  245. package/assets/esri/core/workers/chunks/cc3939983cf6f78f7243.js +1 -0
  246. package/assets/esri/core/workers/chunks/cca19c9564be2d02a277.js +1 -0
  247. package/assets/esri/core/workers/chunks/ccc2f2b3db008d8a495f.js +1 -0
  248. package/assets/esri/core/workers/chunks/cce2ea441adb47d15a06.js +1 -0
  249. package/assets/esri/core/workers/chunks/ce063df750018024c9ed.js +1 -0
  250. package/assets/esri/core/workers/chunks/ce3e192fbb53a9c6eb3b.js +1 -0
  251. package/assets/esri/core/workers/chunks/d3734c8de029f1a65315.js +1 -0
  252. package/assets/esri/core/workers/chunks/d7229019876c0e4ff545.js +1 -0
  253. package/assets/esri/core/workers/chunks/d72d5031887373d35610.js +1 -0
  254. package/assets/esri/core/workers/chunks/d7840c3e792efcccee35.js +1 -0
  255. package/assets/esri/core/workers/chunks/d9f900975ac915a0f24f.js +1 -0
  256. package/assets/esri/core/workers/chunks/da780342f16e65b55ac8.js +1 -0
  257. package/assets/esri/core/workers/chunks/db005d9419bb718b3962.js +1 -0
  258. package/assets/esri/core/workers/chunks/db5bbc240a1b8cd5af52.js +1 -0
  259. package/assets/esri/core/workers/chunks/dcc8363faa22e6211351.js +1 -0
  260. package/assets/esri/core/workers/chunks/dcef87f7d06c45cd928b.js +1 -0
  261. package/assets/esri/core/workers/chunks/dd5d66f067e2386e0514.js +1 -0
  262. package/assets/esri/core/workers/chunks/dd6efa0afe879bd11a2e.js +1 -0
  263. package/assets/esri/core/workers/chunks/deaca3cd202851ecf9c2.js +1 -0
  264. package/assets/esri/core/workers/chunks/df321c37b61099f6e4c2.js +1 -0
  265. package/assets/esri/core/workers/chunks/e021b2f0e15aee5bf3ad.js +1 -0
  266. package/assets/esri/core/workers/chunks/e0344b45af88081fa186.js +1 -0
  267. package/assets/esri/core/workers/chunks/{77fc225259f1c5800095.js → e2661d39c48376163adf.js} +1 -1
  268. package/assets/esri/core/workers/chunks/e2bdb0e87422e222646e.js +1 -0
  269. package/assets/esri/core/workers/chunks/e3fe1db9380633292b27.js +1 -0
  270. package/assets/esri/core/workers/chunks/e67bdd8bf38ebe89a344.js +1 -0
  271. package/assets/esri/core/workers/chunks/e6f51f66b71e0d6525ec.js +1 -0
  272. package/assets/esri/core/workers/chunks/e7bee85f28d7ec03825a.js +1 -0
  273. package/assets/esri/core/workers/chunks/e8495c655a0a4f534636.js +1 -0
  274. package/assets/esri/core/workers/chunks/e9dd60d0220036545ebb.js +1 -0
  275. package/assets/esri/core/workers/chunks/ea245d3a6fd601fffd88.js +1 -0
  276. package/assets/esri/core/workers/chunks/eb4ffb72c9360062141c.js +1 -0
  277. package/assets/esri/core/workers/chunks/ebae903845643d60b44a.js +1 -0
  278. package/assets/esri/core/workers/chunks/ebb0372e8da0f75c09dd.js +1 -0
  279. package/assets/esri/core/workers/chunks/eef102e13fd8878eeb96.js +1 -0
  280. package/assets/esri/core/workers/chunks/ef267b938327c41727c1.js +1 -0
  281. package/assets/esri/core/workers/chunks/ef72f4822284bcad75d8.js +1 -0
  282. package/assets/esri/core/workers/chunks/efb2a8879011d2d77a81.js +1 -0
  283. package/assets/esri/core/workers/chunks/f0e6a26a3625068b08ab.js +1 -0
  284. package/assets/esri/core/workers/chunks/f12f96770a45ce6d1ed7.js +1 -0
  285. package/assets/esri/core/workers/chunks/f349f64f683620bdf9b5.js +30 -0
  286. package/assets/esri/core/workers/chunks/f379f94adbe79dc305a2.js +1 -0
  287. package/assets/esri/core/workers/chunks/f4301ea9a6cb3bcef906.js +1 -0
  288. package/assets/esri/core/workers/chunks/f5144e570952ca62a1b0.js +1 -0
  289. package/assets/esri/core/workers/chunks/f5cebeaad3e7d87d7997.js +1 -0
  290. package/assets/esri/core/workers/chunks/f6c9742691ccdaed44a2.js +1 -0
  291. package/assets/esri/core/workers/chunks/f76c2b09e6ba9d107898.js +1 -0
  292. package/assets/esri/core/workers/chunks/f7d67b7c9785a1955b17.js +1 -0
  293. package/assets/esri/core/workers/chunks/faad127dc07e54e7f6d1.js +1 -0
  294. package/assets/esri/core/workers/chunks/fcf962f3dec6b5440983.js +1 -0
  295. package/assets/esri/core/workers/chunks/feececf6809231f72c5a.js +1 -0
  296. package/chunks/Compositing.glsl.js +3 -4
  297. package/chunks/OITBlend.glsl.js +8 -7
  298. package/config.d.ts +94 -34
  299. package/config.js +1 -1
  300. package/core/SetUtils.js +1 -1
  301. package/geometry/support/curves/curveUtils.js +1 -1
  302. package/identity/IdentityManager.d.ts +11 -7
  303. package/identity/IdentityManagerBase.d.ts +13 -9
  304. package/kernel.js +1 -1
  305. package/layers/SubtypeGroupLayer.d.ts +0 -1
  306. package/layers/support/EditingCapabilities.js +1 -1
  307. package/layers/support/SubtypeSublayer.js +1 -1
  308. package/package.json +4 -4
  309. package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
  310. package/smartMapping/raster/renderers/classBreaks.d.ts +1 -1
  311. package/smartMapping/raster/renderers/flow.d.ts +2 -1
  312. package/smartMapping/renderers/color.d.ts +19 -3
  313. package/smartMapping/renderers/dotDensity.d.ts +6 -1
  314. package/smartMapping/renderers/heatmap.d.ts +4 -1
  315. package/smartMapping/renderers/location.d.ts +2 -2
  316. package/smartMapping/renderers/opacity.d.ts +2 -2
  317. package/smartMapping/renderers/pieChart.d.ts +2 -2
  318. package/smartMapping/renderers/predominance.d.ts +2 -2
  319. package/smartMapping/renderers/relationship.d.ts +2 -2
  320. package/smartMapping/renderers/size.d.ts +7 -6
  321. package/smartMapping/renderers/support/rendererUtils.d.ts +2 -2
  322. package/smartMapping/renderers/type.d.ts +4 -3
  323. package/smartMapping/renderers/univariateColorSize.d.ts +2 -2
  324. package/smartMapping/statistics/support/ageUtils.d.ts +3 -2
  325. package/smartMapping/statistics/types.d.ts +8 -7
  326. package/smartMapping/support/adapters/types.d.ts +6 -0
  327. package/smartMapping/symbology/color.d.ts +1 -1
  328. package/smartMapping/symbology/support/colorRamps.d.ts +2 -2
  329. package/smartMapping/symbology/support/colorRamps.js +1 -1
  330. package/support/revision.js +1 -1
  331. package/symbols/support/OccludedVisibility.d.ts +1 -1
  332. package/symbols/support/OccludedVisibility.js +1 -1
  333. package/symbols/support/Symbol3DEmissive.d.ts +33 -17
  334. package/views/2d/engine/webgl/MaterialManager.js +1 -1
  335. package/views/2d/engine/webgl/brushes/BrushClip.js +1 -1
  336. package/views/2d/engine/webgl/brushes/WGLBrushStencil.js +1 -1
  337. package/views/2d/engine/webgl/shaderGraph/typed/TypedShaderProgram.js +1 -1
  338. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  339. package/views/2d/interactive/SnappingVisualizer2D.js +1 -1
  340. package/views/2d/layers/graphics/GraphicBoundsRenderer.js +1 -1
  341. package/views/2d/webglDeps.js +1 -1
  342. package/views/3d/environment/CloudsComposition.js +1 -1
  343. package/views/3d/environment/CloudsTechnique.js +1 -1
  344. package/views/3d/environment/Fog.js +1 -1
  345. package/views/3d/environment/FogTechnique.js +1 -1
  346. package/views/3d/environment/NoiseTextureAtlasTechnique.js +1 -1
  347. package/views/3d/environment/PrecipitationTechnique.js +1 -1
  348. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  349. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  350. package/views/3d/layers/graphics/GraphicStateTracking.js +1 -1
  351. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  352. package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
  353. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  354. package/views/3d/terrain/BlendLayersTechnique.js +1 -1
  355. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
  356. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  357. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js +1 -1
  358. package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueRepository.js +1 -1
  359. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  360. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  361. package/views/3d/webgl-engine/effects/glow/GlowBlurTechnique.js +1 -1
  362. package/views/3d/webgl-engine/effects/glow/GlowCompositionTechnique.js +1 -1
  363. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  364. package/views/3d/webgl-engine/effects/haze/HazeCompositingTechnique.js +1 -1
  365. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  366. package/views/3d/webgl-engine/effects/highlight/HighlightApplyTechnique.js +1 -1
  367. package/views/3d/webgl-engine/effects/highlight/HighlightBlurTechnique.js +1 -1
  368. package/views/3d/webgl-engine/effects/highlight/HighlightDownsampleTechnique.js +1 -1
  369. package/views/3d/webgl-engine/effects/highlight/HighlightToSingleTechnique.js +1 -1
  370. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  371. package/views/3d/webgl-engine/effects/highlight/ShadowHighlightTechnique.js +1 -1
  372. package/views/3d/webgl-engine/effects/laserlines/LaserLineRenderer.js +1 -1
  373. package/views/3d/webgl-engine/effects/laserlines/LaserlinePathTechnique.js +1 -1
  374. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  375. package/views/3d/webgl-engine/effects/smaa/SMAABlendWeightsTechnique.js +1 -1
  376. package/views/3d/webgl-engine/effects/smaa/SMAABlurTechnique.js +1 -1
  377. package/views/3d/webgl-engine/effects/smaa/SMAAEdgeDetectTechnique.js +1 -1
  378. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  379. package/views/3d/webgl-engine/effects/ssao/SSAOBlurTechnique.js +1 -1
  380. package/views/3d/webgl-engine/effects/stars/StarsTechnique.js +1 -1
  381. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  382. package/views/3d/webgl-engine/effects/transparency/OITBlendTechnique.js +1 -1
  383. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  384. package/views/3d/webgl-engine/effects/transparency/OITDimTechnique.js +1 -1
  385. package/views/3d/webgl-engine/lib/Compositor.js +2 -0
  386. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  387. package/views/3d/webgl-engine/lib/Program.js +1 -1
  388. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  389. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  390. package/views/3d/webgl-engine/materials/renderers/MergedBuffer.js +1 -1
  391. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  392. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  393. package/views/3d/webgl-engine/shaders/AtmosphereCompositingTechnique.js +1 -1
  394. package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
  395. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  396. package/views/3d/webgl-engine/shaders/CompositingTechniqueConfiguration.js +1 -1
  397. package/views/3d/webgl-engine/shaders/CutFillCompositionTechnique.js +1 -1
  398. package/views/3d/webgl-engine/shaders/CutFillDepthTechnique.js +1 -1
  399. package/views/3d/webgl-engine/shaders/CutFillMaskTechnique.js +1 -1
  400. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  401. package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
  402. package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
  403. package/views/3d/webgl-engine/shaders/OverlayCompositingTechnique.js +1 -1
  404. package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
  405. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  406. package/views/3d/webgl-engine/shaders/ShadowCastAccumulateTechnique.js +1 -1
  407. package/views/3d/webgl-engine/shaders/ShadowCastClearTechnique.js +1 -1
  408. package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
  409. package/views/View.d.ts +8 -0
  410. package/views/draw/DrawTool.js +1 -1
  411. package/views/draw/plugins/PolygonPlugin.js +1 -1
  412. package/views/draw/support/InteractiveHandle.js +1 -1
  413. package/views/draw/support/managers/InteractiveHandleManager.js +1 -1
  414. package/views/draw/support/managers/TooltipManager.js +1 -1
  415. package/views/interactive/sketch/constraints.js +1 -1
  416. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  417. package/views/interactive/snapping/SnappingVisualizer.js +1 -1
  418. package/views/interactive/snapping/candidates/EdgeSnappingCandidate.js +1 -1
  419. package/views/interactive/snapping/featureSources/queryEngineUtils.js +1 -1
  420. package/views/interactive/snapping/hints/CurveSnappingHint.js +2 -0
  421. package/views/interactive/snapping/hints/LineSnappingHint.js +1 -1
  422. package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
  423. package/views/support/imageReprojection.js +1 -1
  424. package/views/webgl/AllocationTracer.js +1 -1
  425. package/views/webgl/AppleAmdDriverHelper.js +1 -1
  426. package/views/webgl/Program.js +1 -1
  427. package/views/webgl/ProgramCache.js +1 -1
  428. package/views/webgl/ProgramTemplate.js +1 -1
  429. package/views/webgl/RenderingContext.js +1 -1
  430. package/views/webgl/WebGLDriverTestModule.js +1 -1
  431. package/views/webgl/testAppleAmdDrawArrays.js +1 -1
  432. package/views/webgl/testFloatBufferBlend.js +1 -1
  433. package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
  434. package/webscene/Glow.d.ts +19 -14
  435. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  436. package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
  437. package/widgets/Editor/EditorViewModel.d.ts +15 -4
  438. package/widgets/Editor/EditorViewModel.js +1 -1
  439. package/widgets/Editor/SplitFeatureWorkflow.js +1 -1
  440. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  441. package/widgets/Editor/UpdateFeatureWorkflowData.js +1 -1
  442. package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
  443. package/widgets/Editor/UpdateFeaturesWorkflowData.js +1 -1
  444. package/widgets/Editor/UpdateRecordWorkflowData.js +1 -1
  445. package/widgets/Editor/UpdateWorkflow.js +1 -1
  446. package/widgets/Editor/Workflow.js +1 -1
  447. package/widgets/Editor/components/Notices.js +1 -1
  448. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  449. package/widgets/Editor/support/EditorItem.js +1 -1
  450. package/widgets/Editor/support/SketchController.js +1 -1
  451. package/widgets/Editor/workflowUtils.js +1 -1
  452. package/widgets/Editor.d.ts +17 -5
  453. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +17 -5
  454. package/widgets/FeatureTable.d.ts +16 -4
  455. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.d.ts +9 -1
  456. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  457. package/widgets/OrientedImageryViewer.d.ts +9 -1
  458. package/widgets/OrientedImageryViewer.js +1 -1
  459. package/widgets/Sketch/support/PluginManager.js +1 -1
  460. package/assets/esri/core/workers/chunks/00bb90a3f0560800279b.js +0 -1
  461. package/assets/esri/core/workers/chunks/02d862fe58670c1f4722.js +0 -1
  462. package/assets/esri/core/workers/chunks/033b4f9ca08791e0c001.js +0 -1
  463. package/assets/esri/core/workers/chunks/045e4e520d6dffe06ba7.js +0 -1
  464. package/assets/esri/core/workers/chunks/04f82b740325e3388d23.js +0 -1
  465. package/assets/esri/core/workers/chunks/05d6cd51ca970705e46a.js +0 -1
  466. package/assets/esri/core/workers/chunks/08d73543c713984f6ecf.js +0 -1028
  467. package/assets/esri/core/workers/chunks/0b59e5be22139387bd84.js +0 -1
  468. package/assets/esri/core/workers/chunks/0e1d559d05229ef92e35.js +0 -1
  469. package/assets/esri/core/workers/chunks/0e6ffb02a929130ddb50.js +0 -1
  470. package/assets/esri/core/workers/chunks/112227b862b935123ddf.js +0 -2
  471. package/assets/esri/core/workers/chunks/11882cbb28710e5f9fc5.js +0 -1
  472. package/assets/esri/core/workers/chunks/12cfe900ce04af22f162.js +0 -1
  473. package/assets/esri/core/workers/chunks/1336f685bae5f1251558.js +0 -1
  474. package/assets/esri/core/workers/chunks/13512a23655258fa77f4.js +0 -1
  475. package/assets/esri/core/workers/chunks/13da9e3b96d8f653cbad.js +0 -1
  476. package/assets/esri/core/workers/chunks/1469e6d1d0d4e310b8f8.js +0 -1
  477. package/assets/esri/core/workers/chunks/15d46482ec096e3ce161.js +0 -1
  478. package/assets/esri/core/workers/chunks/1757133063fac226fdd4.js +0 -1
  479. package/assets/esri/core/workers/chunks/1794db88a2006711eff3.js +0 -1
  480. package/assets/esri/core/workers/chunks/189e22df73414a1a3989.js +0 -1
  481. package/assets/esri/core/workers/chunks/1951ff6789b9a598f122.js +0 -1
  482. package/assets/esri/core/workers/chunks/1ba756289468064f6204.js +0 -1
  483. package/assets/esri/core/workers/chunks/1cfa8d404d42b9eccf78.js +0 -1
  484. package/assets/esri/core/workers/chunks/1e916e552ce7d53692d2.js +0 -1
  485. package/assets/esri/core/workers/chunks/1fb6b65d8fd21fb9a21e.js +0 -1
  486. package/assets/esri/core/workers/chunks/2011da6dfc4bb89829c6.js +0 -1
  487. package/assets/esri/core/workers/chunks/203ef5459fc5dde12851.js +0 -1
  488. package/assets/esri/core/workers/chunks/215c54520d0da638fe57.js +0 -1
  489. package/assets/esri/core/workers/chunks/22045f85e503ae0ec8f4.js +0 -1
  490. package/assets/esri/core/workers/chunks/2351b713ba3d05de0728.js +0 -1
  491. package/assets/esri/core/workers/chunks/249630af2fb01257eb75.js +0 -1
  492. package/assets/esri/core/workers/chunks/24dd404612c35f6a3fc3.js +0 -1
  493. package/assets/esri/core/workers/chunks/25d34552bfb255af9467.js +0 -1
  494. package/assets/esri/core/workers/chunks/27c34a73fb380fc57f6e.js +0 -1
  495. package/assets/esri/core/workers/chunks/27d60fd727e9a68973f6.js +0 -1
  496. package/assets/esri/core/workers/chunks/27e14277128446e76b45.js +0 -1
  497. package/assets/esri/core/workers/chunks/2a3e82a230b7ee4dfd55.js +0 -1
  498. package/assets/esri/core/workers/chunks/2c69d8bb1c950b95278d.js +0 -1
  499. package/assets/esri/core/workers/chunks/2c6dbb9a8d7cc35f5093.js +0 -1
  500. package/assets/esri/core/workers/chunks/2d376f82cdf020e1fca9.js +0 -1
  501. package/assets/esri/core/workers/chunks/2d67ab4927a968d5c8d4.js +0 -1
  502. package/assets/esri/core/workers/chunks/2e50b7651f8c037bb3b0.js +0 -1
  503. package/assets/esri/core/workers/chunks/2e63e18df96e5a2461de.js +0 -1
  504. package/assets/esri/core/workers/chunks/2e82e284bbb3ff769a0b.js +0 -1
  505. package/assets/esri/core/workers/chunks/31184dc458281af654c7.js +0 -1
  506. package/assets/esri/core/workers/chunks/3214763f268622f09986.js +0 -1
  507. package/assets/esri/core/workers/chunks/32a1ccc145c9f6091e13.js +0 -1
  508. package/assets/esri/core/workers/chunks/34691b147318b2cfdd45.js +0 -1
  509. package/assets/esri/core/workers/chunks/34b367f617a7b3db55e0.js +0 -1
  510. package/assets/esri/core/workers/chunks/37d4a0b941bb2a7f113a.js +0 -1
  511. package/assets/esri/core/workers/chunks/3875b075ffaa1ed0089f.js +0 -1
  512. package/assets/esri/core/workers/chunks/3d3b1ce112be6ea31d93.js +0 -1
  513. package/assets/esri/core/workers/chunks/3dfc088a2c5289e6c79f.js +0 -1
  514. package/assets/esri/core/workers/chunks/3f3c63420644f9522ab1.js +0 -1
  515. package/assets/esri/core/workers/chunks/3fcab49eb215a477d8c4.js +0 -1
  516. package/assets/esri/core/workers/chunks/41108f58f0f439ebba3f.js +0 -1
  517. package/assets/esri/core/workers/chunks/415957a42e45eb21aa84.js +0 -1
  518. package/assets/esri/core/workers/chunks/4375d046b041a770c871.js +0 -1
  519. package/assets/esri/core/workers/chunks/43c797bfc2191b51875b.js +0 -1
  520. package/assets/esri/core/workers/chunks/460a82f3e4838b13e3b4.js +0 -1
  521. package/assets/esri/core/workers/chunks/473e43a74f56cb9bfe65.js +0 -1
  522. package/assets/esri/core/workers/chunks/4801e48cd4a14bacab78.js +0 -1
  523. package/assets/esri/core/workers/chunks/499d594dc0d282dfe777.js +0 -1
  524. package/assets/esri/core/workers/chunks/4ad6f80488aa218b95e3.js +0 -1
  525. package/assets/esri/core/workers/chunks/4db259316b193fcc4541.js +0 -1
  526. package/assets/esri/core/workers/chunks/4e9863a11d09900baf30.js +0 -1
  527. package/assets/esri/core/workers/chunks/4fe210314813ea1f7a26.js +0 -1
  528. package/assets/esri/core/workers/chunks/51603e99469847aa3ac4.js +0 -1
  529. package/assets/esri/core/workers/chunks/52705ccbb452a3edb064.js +0 -1
  530. package/assets/esri/core/workers/chunks/53e348f5585fa8c53fe8.js +0 -2
  531. package/assets/esri/core/workers/chunks/54c545f44b7ce21fb604.js +0 -1
  532. package/assets/esri/core/workers/chunks/54db2d2418721e92fbb0.js +0 -1
  533. package/assets/esri/core/workers/chunks/552e5c413828e181f89a.js +0 -1
  534. package/assets/esri/core/workers/chunks/558e9fed2e58cbbf9947.js +0 -1
  535. package/assets/esri/core/workers/chunks/55c5c4fcec0f8c4d59b2.js +0 -1
  536. package/assets/esri/core/workers/chunks/58134617fb7530836b81.js +0 -1
  537. package/assets/esri/core/workers/chunks/58c4be467a922fe37f01.js +0 -1
  538. package/assets/esri/core/workers/chunks/5924fe7de9f5ff8984ad.js +0 -1
  539. package/assets/esri/core/workers/chunks/5cd39bb8123adc80d8a7.js +0 -1
  540. package/assets/esri/core/workers/chunks/5cd8bbb719d95cb32cab.js +0 -1
  541. package/assets/esri/core/workers/chunks/5dba08099036e69e0a04.js +0 -1
  542. package/assets/esri/core/workers/chunks/5eb5d3b2329ec648cf3f.js +0 -1
  543. package/assets/esri/core/workers/chunks/5f10f39835cb40179000.js +0 -1
  544. package/assets/esri/core/workers/chunks/5f9eeab833a6c08c76c4.js +0 -1
  545. package/assets/esri/core/workers/chunks/606b4f1be91905a10bdb.js +0 -1
  546. package/assets/esri/core/workers/chunks/628056a312d919e98fa3.js +0 -1
  547. package/assets/esri/core/workers/chunks/62e9a9821f1563515ab4.js +0 -1
  548. package/assets/esri/core/workers/chunks/639302042c30e4265694.js +0 -1
  549. package/assets/esri/core/workers/chunks/645e086291b04bc036d7.js +0 -1
  550. package/assets/esri/core/workers/chunks/651b46aeabf22ff53a38.js +0 -1
  551. package/assets/esri/core/workers/chunks/65ad8838911a6d71816b.js +0 -1
  552. package/assets/esri/core/workers/chunks/65f86594c42ff82095fe.js +0 -1
  553. package/assets/esri/core/workers/chunks/6772468d1721d6d2a529.js +0 -1
  554. package/assets/esri/core/workers/chunks/677f5e444ff588ab670f.js +0 -1
  555. package/assets/esri/core/workers/chunks/6869f975d42b5a2936e2.js +0 -1
  556. package/assets/esri/core/workers/chunks/69ab42b965bccc3bad4f.js +0 -1
  557. package/assets/esri/core/workers/chunks/6a083fde0e207625fd0b.js +0 -1
  558. package/assets/esri/core/workers/chunks/6a9a96aa811c1d3b6edb.js +0 -1
  559. package/assets/esri/core/workers/chunks/6b3494e5a32912ee6325.js +0 -1
  560. package/assets/esri/core/workers/chunks/6b5d2cef309a2581d0d1.js +0 -1
  561. package/assets/esri/core/workers/chunks/6bf7d8de86b9eb76f920.js +0 -1
  562. package/assets/esri/core/workers/chunks/6c0b7890c8eec7febe28.js +0 -1
  563. package/assets/esri/core/workers/chunks/6c85396c90941a042c33.js +0 -1
  564. package/assets/esri/core/workers/chunks/6d02fdcaa1559b741f89.js +0 -1
  565. package/assets/esri/core/workers/chunks/6f337c3ccd84d90a35e5.js +0 -1
  566. package/assets/esri/core/workers/chunks/71159f66d9867aaea6cf.js +0 -1
  567. package/assets/esri/core/workers/chunks/711bec78dc00fad0f78d.js +0 -1
  568. package/assets/esri/core/workers/chunks/71ad08a5b69cf2e6714e.js +0 -1
  569. package/assets/esri/core/workers/chunks/7382c9882525101eddad.js +0 -1
  570. package/assets/esri/core/workers/chunks/750dfcbfcadf0629daf6.js +0 -1
  571. package/assets/esri/core/workers/chunks/75907e5d009b71ce723b.js +0 -1
  572. package/assets/esri/core/workers/chunks/79c69ae86a1f4a56f7c7.js +0 -1
  573. package/assets/esri/core/workers/chunks/79ee97609f72e4cf989c.js +0 -1
  574. package/assets/esri/core/workers/chunks/7a037fbfd91dd22e3bf0.js +0 -1
  575. package/assets/esri/core/workers/chunks/7cf8fc491877d59caf3a.js +0 -1
  576. package/assets/esri/core/workers/chunks/7d2b1e5402a88b6bee85.js +0 -1
  577. package/assets/esri/core/workers/chunks/7ec83fc059325e207825.js +0 -1
  578. package/assets/esri/core/workers/chunks/7ee7529fcbd0d169047c.js +0 -1
  579. package/assets/esri/core/workers/chunks/7f385e9c88df3395e678.js +0 -1
  580. package/assets/esri/core/workers/chunks/80d51d58db09b9f96cb5.js +0 -1
  581. package/assets/esri/core/workers/chunks/81a45d7e9dadf678b584.js +0 -1
  582. package/assets/esri/core/workers/chunks/81c758bdc07ed9d9a132.js +0 -1
  583. package/assets/esri/core/workers/chunks/822a115c7d718e4e3d2b.js +0 -1
  584. package/assets/esri/core/workers/chunks/825ffcde4f224006e776.js +0 -1
  585. package/assets/esri/core/workers/chunks/83711695e16912e9b9c5.js +0 -1
  586. package/assets/esri/core/workers/chunks/8374658d17f69bde6b08.js +0 -1
  587. package/assets/esri/core/workers/chunks/84b6ac0965d83704ba5d.js +0 -1
  588. package/assets/esri/core/workers/chunks/88a02b3a802d484c08a8.js +0 -1
  589. package/assets/esri/core/workers/chunks/89cd0e3420ab31e98a77.js +0 -1
  590. package/assets/esri/core/workers/chunks/8c3bf66f8543cedc72ef.js +0 -1
  591. package/assets/esri/core/workers/chunks/8cade3af17a8bb6d4e37.js +0 -1
  592. package/assets/esri/core/workers/chunks/8eea620f770576d18809.js +0 -1
  593. package/assets/esri/core/workers/chunks/9138503cc61989b00444.js +0 -1
  594. package/assets/esri/core/workers/chunks/920d6330df72e2f01d19.js +0 -1
  595. package/assets/esri/core/workers/chunks/936974764f433eb928a8.js +0 -1
  596. package/assets/esri/core/workers/chunks/99c9f35a29f9f6c9e4ce.js +0 -1
  597. package/assets/esri/core/workers/chunks/9a52bb5949ca836b7e79.js +0 -1
  598. package/assets/esri/core/workers/chunks/9a5327d3c3658e60564d.js +0 -1
  599. package/assets/esri/core/workers/chunks/9dc7abca1d1eb9ba5b58.js +0 -1
  600. package/assets/esri/core/workers/chunks/9e054c264b17f04b7efa.js +0 -1
  601. package/assets/esri/core/workers/chunks/a143a6f8e2f21548b244.js +0 -1
  602. package/assets/esri/core/workers/chunks/a33a3c9bbe6bc7273285.js +0 -1
  603. package/assets/esri/core/workers/chunks/a48a6232fa33084cb686.js +0 -1
  604. package/assets/esri/core/workers/chunks/a4947d5d2fa6b7bd399b.js +0 -1
  605. package/assets/esri/core/workers/chunks/a49f1172b17c14527acf.js +0 -1
  606. package/assets/esri/core/workers/chunks/a7d4d257f49f3b153c26.js +0 -1
  607. package/assets/esri/core/workers/chunks/aaf3ed508d30ed583915.js +0 -1
  608. package/assets/esri/core/workers/chunks/aceec85ce64a3e6d8761.js +0 -1
  609. package/assets/esri/core/workers/chunks/b10b3eb8c2ed9be14ab2.js +0 -1
  610. package/assets/esri/core/workers/chunks/b220fedcb8a2d6450408.js +0 -1
  611. package/assets/esri/core/workers/chunks/b315b3771d0d19681aa5.js +0 -1
  612. package/assets/esri/core/workers/chunks/b397a9f87082705301a4.js +0 -2
  613. package/assets/esri/core/workers/chunks/b40e4ed067da65c3d7ce.js +0 -1
  614. package/assets/esri/core/workers/chunks/b4b16914950792c46bd3.js +0 -1
  615. package/assets/esri/core/workers/chunks/b5f291e8ed7f7cac158d.js +0 -1
  616. package/assets/esri/core/workers/chunks/b6969a42602517a6ef1c.js +0 -1
  617. package/assets/esri/core/workers/chunks/b732ad893d352db79ee1.js +0 -1
  618. package/assets/esri/core/workers/chunks/b9226dd0342cfd30ece0.js +0 -1
  619. package/assets/esri/core/workers/chunks/baad696d84ab78b3d00e.js +0 -2
  620. package/assets/esri/core/workers/chunks/bab1c3f48d089d71e983.js +0 -30
  621. package/assets/esri/core/workers/chunks/bab6dee8f4715d05d984.js +0 -1
  622. package/assets/esri/core/workers/chunks/bc2dcbdc414d157ab727.js +0 -1
  623. package/assets/esri/core/workers/chunks/bcb254cb7297fec88679.js +0 -1
  624. package/assets/esri/core/workers/chunks/bd2125e0a68378533641.js +0 -1
  625. package/assets/esri/core/workers/chunks/bdb4f216ae8881b98604.js +0 -1
  626. package/assets/esri/core/workers/chunks/bde2c3199f667b63dbe8.js +0 -1
  627. package/assets/esri/core/workers/chunks/be52d98da81b413388b3.js +0 -1
  628. package/assets/esri/core/workers/chunks/bf42b5c77f5757dc9328.js +0 -1
  629. package/assets/esri/core/workers/chunks/bf595eb10f99b8a96baa.js +0 -1
  630. package/assets/esri/core/workers/chunks/c0b6706f86665cec85f8.js +0 -1
  631. package/assets/esri/core/workers/chunks/c2ef5e5a3a4fad7f65db.js +0 -1
  632. package/assets/esri/core/workers/chunks/c3c6d337ff53e5d921e8.js +0 -1
  633. package/assets/esri/core/workers/chunks/c461c19e4fdbdd2e94d4.js +0 -1
  634. package/assets/esri/core/workers/chunks/c5fa5645f3a10dfdd7fb.js +0 -1
  635. package/assets/esri/core/workers/chunks/c66aa57b6360963bd938.js +0 -1
  636. package/assets/esri/core/workers/chunks/c873ac660e7d5dc88781.js +0 -1
  637. package/assets/esri/core/workers/chunks/c99f36159b5ed6f9267e.js +0 -1
  638. package/assets/esri/core/workers/chunks/c9a57f6d0d35b968ebea.js +0 -1
  639. package/assets/esri/core/workers/chunks/ca6a65f149e7f34dab9c.js +0 -1
  640. package/assets/esri/core/workers/chunks/cb5f4820277f3fc7ff2f.js +0 -1
  641. package/assets/esri/core/workers/chunks/cf4202ad468501ef24cf.js +0 -1
  642. package/assets/esri/core/workers/chunks/d03d50f3247327257d8b.js +0 -1
  643. package/assets/esri/core/workers/chunks/d1bfb6a229a58e2af761.js +0 -1
  644. package/assets/esri/core/workers/chunks/d2017b0b27b9e4ada922.js +0 -1
  645. package/assets/esri/core/workers/chunks/d2d9c1f32a75befe168b.js +0 -1
  646. package/assets/esri/core/workers/chunks/d309172ad61de2b3c15d.js +0 -1
  647. package/assets/esri/core/workers/chunks/d3416e6da0c1cbb53b3a.js +0 -1
  648. package/assets/esri/core/workers/chunks/d39f5d57f7e35c00ca16.js +0 -1
  649. package/assets/esri/core/workers/chunks/d4422e6e1f09d8c9352e.js +0 -1
  650. package/assets/esri/core/workers/chunks/d4770dddfbfdc3845749.js +0 -1
  651. package/assets/esri/core/workers/chunks/d5b4487a983921572e58.js +0 -1
  652. package/assets/esri/core/workers/chunks/d5f06cb4797629648997.js +0 -1
  653. package/assets/esri/core/workers/chunks/d78b2f85ec9212a973e8.js +0 -1
  654. package/assets/esri/core/workers/chunks/d7f89a3372730dacc04c.js +0 -1
  655. package/assets/esri/core/workers/chunks/d9dc8d9fc8ab2706f96b.js +0 -1
  656. package/assets/esri/core/workers/chunks/da42da04a9df651b06cc.js +0 -1
  657. package/assets/esri/core/workers/chunks/dc7860179a2d1fd05ac2.js +0 -1
  658. package/assets/esri/core/workers/chunks/dc7df2072c0ebed5602c.js +0 -1
  659. package/assets/esri/core/workers/chunks/dc96f2f6e0e02e47476f.js +0 -1
  660. package/assets/esri/core/workers/chunks/dd24cddc406f610d2483.js +0 -1
  661. package/assets/esri/core/workers/chunks/dd3789e71270a4640551.js +0 -1
  662. package/assets/esri/core/workers/chunks/dd6d4a0f1f3215ca34a5.js +0 -1
  663. package/assets/esri/core/workers/chunks/de6438fdbe38d32c4ad5.js +0 -1
  664. package/assets/esri/core/workers/chunks/ded71a656e2626a411f9.js +0 -1
  665. package/assets/esri/core/workers/chunks/df1fa0f7e8f7e2bcc2e6.js +0 -1
  666. package/assets/esri/core/workers/chunks/df80d5345765b769416f.js +0 -1
  667. package/assets/esri/core/workers/chunks/e16d542648bae86e890f.js +0 -1
  668. package/assets/esri/core/workers/chunks/e1827e86226bf9a0f4ea.js +0 -1
  669. package/assets/esri/core/workers/chunks/e2e03622936d2b35afc0.js +0 -1
  670. package/assets/esri/core/workers/chunks/e33f5780fb45ac7ca889.js +0 -1
  671. package/assets/esri/core/workers/chunks/e3ee2b699c42fd113b46.js +0 -1
  672. package/assets/esri/core/workers/chunks/e4611ebd7dba7692a914.js +0 -1
  673. package/assets/esri/core/workers/chunks/e508f8e707eb3207cfcc.js +0 -1
  674. package/assets/esri/core/workers/chunks/e52793690dff1a199647.js +0 -1
  675. package/assets/esri/core/workers/chunks/e55859fce1908c24423a.js +0 -1
  676. package/assets/esri/core/workers/chunks/e56a10a475ce128b5fce.js +0 -1
  677. package/assets/esri/core/workers/chunks/e93df239fc54af2bd6ba.js +0 -1
  678. package/assets/esri/core/workers/chunks/ea633a6a3b9ea8ce965d.js +0 -1
  679. package/assets/esri/core/workers/chunks/eae1c098c16e2faaf90d.js +0 -1
  680. package/assets/esri/core/workers/chunks/eaf5d55060ffc55aac39.js +0 -1
  681. package/assets/esri/core/workers/chunks/ece363681bb09072f379.js +0 -1
  682. package/assets/esri/core/workers/chunks/edaae0fc63d16b0f675d.js +0 -2
  683. package/assets/esri/core/workers/chunks/ee31d9f44e028df16bd5.js +0 -1
  684. package/assets/esri/core/workers/chunks/ee89564d11c077169b31.js +0 -1
  685. package/assets/esri/core/workers/chunks/ee905e24320241959965.js +0 -1
  686. package/assets/esri/core/workers/chunks/eebf59ac2dd60b9fb262.js +0 -1
  687. package/assets/esri/core/workers/chunks/ef4237dc7b67c9039826.js +0 -1
  688. package/assets/esri/core/workers/chunks/ef9106ee818ec732b670.js +0 -1
  689. package/assets/esri/core/workers/chunks/f0780abe66118b3a0bf2.js +0 -1
  690. package/assets/esri/core/workers/chunks/f121a0bf33c03abfa0b6.js +0 -1
  691. package/assets/esri/core/workers/chunks/f4329e3e4e072fac8dc0.js +0 -1
  692. package/assets/esri/core/workers/chunks/f5dbffd5e8b3c16336a1.js +0 -1
  693. package/assets/esri/core/workers/chunks/f62e37863a549f72093c.js +0 -1
  694. package/assets/esri/core/workers/chunks/f984248e2ce417e49f2f.js +0 -1
  695. package/assets/esri/core/workers/chunks/fab7e3e07d700d7bb651.js +0 -1
  696. package/assets/esri/core/workers/chunks/fcc8d0b60f7c2397e550.js +0 -1
  697. package/assets/esri/core/workers/chunks/fcf592dc8c017a08fee0.js +0 -1
  698. package/assets/esri/core/workers/chunks/fcf6a47f44c917490deb.js +0 -1
  699. package/assets/esri/core/workers/chunks/fe3c8a6fc080fdf2ad94.js +0 -1
  700. package/assets/esri/core/workers/chunks/fe5aec7e2da4465422b4.js +0 -1
  701. package/assets/esri/core/workers/chunks/fefc94944f07c768ad66.js +0 -1
  702. package/views/3d/webgl-engine/lib/CompositingHelper.js +0 -2
  703. /package/assets/esri/core/workers/chunks/{53e348f5585fa8c53fe8.js.LICENSE.txt → 13d1cb50232ae761425b.js.LICENSE.txt} +0 -0
  704. /package/assets/esri/core/workers/chunks/{b397a9f87082705301a4.js.LICENSE.txt → 3861644c06cfebe8f40c.js.LICENSE.txt} +0 -0
  705. /package/assets/esri/core/workers/chunks/{112227b862b935123ddf.js.LICENSE.txt → 3f812b0a28afb47aaaf0.js.LICENSE.txt} +0 -0
  706. /package/assets/esri/core/workers/chunks/{edaae0fc63d16b0f675d.js.LICENSE.txt → 43c8b1473695574c663e.js.LICENSE.txt} +0 -0
  707. /package/assets/esri/core/workers/chunks/{baad696d84ab78b3d00e.js.LICENSE.txt → b586f1021a27c5e1551a.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../core/has.js";import{webglValidateShadersEnabled as t,webglDebugEnabled as e}from"./checkWebGLError.js";import{ResourceType as o}from"./enums.js";import{transpileShader as i}from"./ShaderTranspiler.js";const n=4294967295,r=!!has("esri-tests-disable-gpu-memory-measurements");class s{constructor(e,s,m,h,f=new Map,l=[]){this._context=e,this._refCount=1,this._compiled=!1,this._linesOfCode=0,this._nameToUniformLocation=new Map,this._nameToUniform1=new Map,this._nameToUniform1v=new Map,this._nameToUniform2=new Map,this._nameToUniform3=new Map,this._nameToUniform4=new Map,this._nameToUniformMatrix3=new Map,this._nameToUniformMatrix4=new Map,e||console.error("RenderingContext isn't initialized!"),0===s.length&&console.error("Shaders source should not be empty!"),s=i(s,35633),m=i(m,35632),this._vShader=a(this._context,35633,s),this._fShader=a(this._context,35632,m),c.enabled&&(this._linesOfCode=s.match(/\n/g).length+m.match(/\n/g).length+2,e.instanceCounter.increment(o.LinesOfCode,this._vShader,this._linesOfCode)),this._vShader&&this._fShader||console.error("Error loading shaders!"),e.instanceCounter.increment(o.Shader,this),t()&&(this.vertexShader=s,this.fragmentShader=m),this.usedMemory=r?0:s.length+m.length;const _=this._context.gl,g=_.createProgram();_.attachShader(g,this._vShader),_.attachShader(g,this._fShader),h.forEach((t,e)=>_.bindAttribLocation(g,t,e)),this.hasTransformFeedbackVaryings=!!l?.length,this.hasTransformFeedbackVaryings&&_.transformFeedbackVaryings(g,l,_.SEPARATE_ATTRIBS),_.linkProgram(g),t()&&!_.getProgramParameter(g,_.LINK_STATUS)&&console.error(`Could not link shader\nvalidated: ${_.getProgramParameter(g,_.VALIDATE_STATUS)}, gl error ${_.getError()}, vertex: ${_.getShaderParameter(this._vShader,_.COMPILE_STATUS)}, fragment: ${_.getShaderParameter(this._fShader,_.COMPILE_STATUS)}, info log: ${_.getProgramInfoLog(g)}, vertex source: ${this.vertexShader}, fragment source: ${this.fragmentShader}`);for(const[t,o]of f){const e=_.getUniformBlockIndex(g,t);e<n&&_.uniformBlockBinding(g,e,o)}this._glName=g,e.instanceCounter.increment(o.Program,this)}get glName(){return this._glName}get hasGLName(){return null!=this._glName}get compiled(){return!!this._compiled||(this._context.capabilities.parallelShaderCompile&&null!=this.glName?(this._compiled=!!this._context.gl.getProgramParameter(this.glName,37297),this._compiled):(this._compiled=!0,!0))}dispose(){if(--this._refCount>0)return;const t=this._context.gl,e=this._context.instanceCounter;this._nameToUniformLocation.forEach(t=>t&&e.decrement(o.Uniform,t)),this._nameToUniformLocation.clear(),this._vShader&&(this._linesOfCode>0&&(e.decrement(o.LinesOfCode,this._vShader,this._linesOfCode),this._linesOfCode=0),t.deleteShader(this._vShader),this._vShader=null,e.decrement(o.Shader,this)),this._fShader&&(t.deleteShader(this._fShader),this._fShader=null),this._glName&&(t.deleteProgram(this._glName),this._glName=null,e.decrement(o.Program,this))}ref(){++this._refCount}_getUniformLocation(t){const e=this._nameToUniformLocation.get(t);if(void 0!==e)return e;if(this.glName){const e=this._context.gl.getUniformLocation(this.glName,t);return this._nameToUniformLocation.set(t,e),e&&this._context.instanceCounter.increment(o.Uniform,e),e}return null}hasUniform(t){return null!=this._getUniformLocation(t)}setUniform1i(t,e,o){l(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1i(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1iv(t,e,o){_(o,e),f(this._nameToUniform1v,t,e)&&this._context.gl.uniform1iv(this._getUniformLocation(t),e)}setUniform2iv(t,e,o){_(o,e),f(this._nameToUniform2,t,e)&&this._context.gl.uniform2iv(this._getUniformLocation(t),e)}setUniform3iv(t,e,o){_(o,e),f(this._nameToUniform3,t,e)&&this._context.gl.uniform3iv(this._getUniformLocation(t),e)}setUniform4iv(t,e,o){_(o,e),f(this._nameToUniform4,t,e)&&this._context.gl.uniform4iv(this._getUniformLocation(t),e)}setUniform1f(t,e,o){l(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1f(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1fv(t,e,o){_(o,e),f(this._nameToUniform1v,t,e)&&this._context.gl.uniform1fv(this._getUniformLocation(t),e)}setUniform2f(t,e,o,i){l(i,e,o);const n=this._nameToUniform2.get(t);void 0===n?(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),this._nameToUniform2.set(t,[e,o])):e===n[0]&&o===n[1]||(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),n[0]=e,n[1]=o)}setUniform2fv(t,e,o){_(o,e),f(this._nameToUniform2,t,e)&&this._context.gl.uniform2fv(this._getUniformLocation(t),e)}setUniform3f(t,e,o,i,n){l(n,e,o,i);const r=this._nameToUniform3.get(t);void 0===r?(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),this._nameToUniform3.set(t,[e,o,i])):e===r[0]&&o===r[1]&&i===r[2]||(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),r[0]=e,r[1]=o,r[2]=i)}setUniform3fv(t,e,o){_(o,e);const i=this._getUniformLocation(t);null!=i&&f(this._nameToUniform3,t,e)&&this._context.gl.uniform3fv(i,e)}setUniform4f(t,e,o,i,n,r){l(r,e,o,i,n);const s=this._nameToUniform4.get(t);void 0===s?(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),this._nameToUniform4.set(t,[e,o,i,n])):void 0!==s&&e===s[0]&&o===s[1]&&i===s[2]&&n===s[3]||(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),s[0]=e,s[1]=o,s[2]=i,s[3]=n)}setUniform4fv(t,e,o){_(o,e);const i=this._getUniformLocation(t);null!=i&&f(this._nameToUniform4,t,e)&&this._context.gl.uniform4fv(i,e)}setUniformMatrix3fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);null!=n&&f(this._nameToUniformMatrix3,t,e)&&this._context.gl.uniformMatrix3fv(n,o,e)}setUniformMatrix4fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);if(null!=n){const i=this._nameToUniformMatrix4,r=i.get(t);let s=!1;if(r){const o=e.length;if(r.length!==o)i.set(t,Array.from(e)),s=!0;else for(let t=0;t<o;++t){const i=e[t];if(r[t]!==i){for(r[t]=i;t<o;++t)r[t]=e[t];s=!0;break}}}else i.set(t,Array.from(e)),s=!0;s&&this._context.gl.uniformMatrix4fv(n,o,e)}}setUniformMatrices4fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);null!=n&&f(this._nameToUniformMatrix4,t,e)&&this._context.gl.uniformMatrix4fv(n,o,e)}stop(){}}function a(e,o,i){const n=e.gl,r=n.createShader(o);return n.shaderSource(r,i),n.compileShader(r),t()&&!n.getShaderParameter(r,n.COMPILE_STATUS)&&(console.error("Compile error in ".concat(35633===o?"vertex":"fragment"," shader")),console.error(n.getShaderInfoLog(r)),console.error(m(i))),r}function m(t){let e=2;return t.replaceAll("\n",()=>"\n"+h(e++)+":")}function h(t){return t>=1e3?t.toString():(" "+t).slice(-3)}function f(t,e,o){const i=t.get(e);if(!i)return t.set(e,Array.from(o)),!0;const n=o.length;if(i.length!==n)return t.set(e,Array.from(o)),!0;for(let r=0;r<n;++r){const t=o[r];if(i[r]!==t){for(i[r]=t;r<n;++r)i[r]=o[r];return!0}}return!1}const c={enabled:!1},l=e()?(t,...e)=>_(t,e):()=>{},_=e()?(t,e)=>{if(t?.supportsNaN)return;const o=e.length;for(let i=0;i<o;++i){const t=e[i];Number.isNaN(t)&&console.error(`Got ${t} as uniform value from ${(new Error).stack}`)}}:()=>{};export{s as Program,c as test};
2
+ import has from"../../core/has.js";import{webglValidateShadersEnabled as t,webglDebugEnabled as e}from"./checkWebGLError.js";import{ResourceType as o}from"./enums.js";import{transpileShader as i}from"./ShaderTranspiler.js";const n=4294967295,r=!!has("esri-tests-disable-gpu-memory-measurements");class s{constructor(e,s,m,h,f=new Map,l=[]){this._context=e,this._compiled=!1,this._linesOfCode=0,this._nameToUniformLocation=new Map,this._nameToUniform1=new Map,this._nameToUniform1v=new Map,this._nameToUniform2=new Map,this._nameToUniform3=new Map,this._nameToUniform4=new Map,this._nameToUniformMatrix3=new Map,this._nameToUniformMatrix4=new Map,e||console.error("RenderingContext isn't initialized!"),0===s.length&&console.error("Shaders source should not be empty!"),s=i(s,35633),m=i(m,35632),this._vShader=a(this._context,35633,s),this._fShader=a(this._context,35632,m),c.enabled&&(this._linesOfCode=s.match(/\n/g).length+m.match(/\n/g).length+2,e.instanceCounter.increment(o.LinesOfCode,this._vShader,this._linesOfCode)),this._vShader&&this._fShader||console.error("Error loading shaders!"),e.instanceCounter.increment(o.Shader,this),t()&&(this.vertexShader=s,this.fragmentShader=m),this.usedMemory=r?0:s.length+m.length;const _=this._context.gl,g=_.createProgram();_.attachShader(g,this._vShader),_.attachShader(g,this._fShader),h.forEach((t,e)=>_.bindAttribLocation(g,t,e)),this.hasTransformFeedbackVaryings=!!l?.length,this.hasTransformFeedbackVaryings&&_.transformFeedbackVaryings(g,l,_.SEPARATE_ATTRIBS),_.linkProgram(g),t()&&!_.getProgramParameter(g,_.LINK_STATUS)&&console.error(`Could not link shader\nvalidated: ${_.getProgramParameter(g,_.VALIDATE_STATUS)}, gl error ${_.getError()}, vertex: ${_.getShaderParameter(this._vShader,_.COMPILE_STATUS)}, fragment: ${_.getShaderParameter(this._fShader,_.COMPILE_STATUS)}, info log: ${_.getProgramInfoLog(g)}, vertex source: ${this.vertexShader}, fragment source: ${this.fragmentShader}`);for(const[t,o]of f){const e=_.getUniformBlockIndex(g,t);e<n&&_.uniformBlockBinding(g,e,o)}this._glName=g,e.instanceCounter.increment(o.Program,this)}get glName(){return this._glName}get hasGLName(){return null!=this._glName}get compiled(){return!!this._compiled||(this._context.capabilities.parallelShaderCompile&&null!=this.glName?(this._compiled=!!this._context.gl.getProgramParameter(this.glName,37297),this._compiled):(this._compiled=!0,!0))}dispose(){const t=this._context.gl,e=this._context.instanceCounter;this._nameToUniformLocation.forEach(t=>t&&e.decrement(o.Uniform,t)),this._nameToUniformLocation.clear(),this._vShader&&(this._linesOfCode>0&&(e.decrement(o.LinesOfCode,this._vShader,this._linesOfCode),this._linesOfCode=0),t.deleteShader(this._vShader),this._vShader=null,e.decrement(o.Shader,this)),this._fShader&&(t.deleteShader(this._fShader),this._fShader=null),this._glName&&(t.deleteProgram(this._glName),this._glName=null,e.decrement(o.Program,this))}_getUniformLocation(t){const e=this._nameToUniformLocation.get(t);if(void 0!==e)return e;if(this.glName){const e=this._context.gl.getUniformLocation(this.glName,t);return this._nameToUniformLocation.set(t,e),e&&this._context.instanceCounter.increment(o.Uniform,e),e}return null}hasUniform(t){return null!=this._getUniformLocation(t)}setUniform1i(t,e,o){l(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1i(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1iv(t,e,o){_(o,e),f(this._nameToUniform1v,t,e)&&this._context.gl.uniform1iv(this._getUniformLocation(t),e)}setUniform2iv(t,e,o){_(o,e),f(this._nameToUniform2,t,e)&&this._context.gl.uniform2iv(this._getUniformLocation(t),e)}setUniform3iv(t,e,o){_(o,e),f(this._nameToUniform3,t,e)&&this._context.gl.uniform3iv(this._getUniformLocation(t),e)}setUniform4iv(t,e,o){_(o,e),f(this._nameToUniform4,t,e)&&this._context.gl.uniform4iv(this._getUniformLocation(t),e)}setUniform1f(t,e,o){l(o,e);const i=this._nameToUniform1.get(t);void 0!==i&&e===i||(this._context.gl.uniform1f(this._getUniformLocation(t),e),this._nameToUniform1.set(t,e))}setUniform1fv(t,e,o){_(o,e),f(this._nameToUniform1v,t,e)&&this._context.gl.uniform1fv(this._getUniformLocation(t),e)}setUniform2f(t,e,o,i){l(i,e,o);const n=this._nameToUniform2.get(t);void 0===n?(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),this._nameToUniform2.set(t,[e,o])):e===n[0]&&o===n[1]||(this._context.gl.uniform2f(this._getUniformLocation(t),e,o),n[0]=e,n[1]=o)}setUniform2fv(t,e,o){_(o,e),f(this._nameToUniform2,t,e)&&this._context.gl.uniform2fv(this._getUniformLocation(t),e)}setUniform3f(t,e,o,i,n){l(n,e,o,i);const r=this._nameToUniform3.get(t);void 0===r?(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),this._nameToUniform3.set(t,[e,o,i])):e===r[0]&&o===r[1]&&i===r[2]||(this._context.gl.uniform3f(this._getUniformLocation(t),e,o,i),r[0]=e,r[1]=o,r[2]=i)}setUniform3fv(t,e,o){_(o,e);const i=this._getUniformLocation(t);null!=i&&f(this._nameToUniform3,t,e)&&this._context.gl.uniform3fv(i,e)}setUniform4f(t,e,o,i,n,r){l(r,e,o,i,n);const s=this._nameToUniform4.get(t);void 0===s?(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),this._nameToUniform4.set(t,[e,o,i,n])):void 0!==s&&e===s[0]&&o===s[1]&&i===s[2]&&n===s[3]||(this._context.gl.uniform4f(this._getUniformLocation(t),e,o,i,n),s[0]=e,s[1]=o,s[2]=i,s[3]=n)}setUniform4fv(t,e,o){_(o,e);const i=this._getUniformLocation(t);null!=i&&f(this._nameToUniform4,t,e)&&this._context.gl.uniform4fv(i,e)}setUniformMatrix3fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);null!=n&&f(this._nameToUniformMatrix3,t,e)&&this._context.gl.uniformMatrix3fv(n,o,e)}setUniformMatrix4fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);if(null!=n){const i=this._nameToUniformMatrix4,r=i.get(t);let s=!1;if(r){const o=e.length;if(r.length!==o)i.set(t,Array.from(e)),s=!0;else for(let t=0;t<o;++t){const i=e[t];if(r[t]!==i){for(r[t]=i;t<o;++t)r[t]=e[t];s=!0;break}}}else i.set(t,Array.from(e)),s=!0;s&&this._context.gl.uniformMatrix4fv(n,o,e)}}setUniformMatrices4fv(t,e,o=!1,i){_(i,e);const n=this._getUniformLocation(t);null!=n&&f(this._nameToUniformMatrix4,t,e)&&this._context.gl.uniformMatrix4fv(n,o,e)}stop(){}}function a(e,o,i){const n=e.gl,r=n.createShader(o);return n.shaderSource(r,i),n.compileShader(r),t()&&!n.getShaderParameter(r,n.COMPILE_STATUS)&&(console.error("Compile error in ".concat(35633===o?"vertex":"fragment"," shader")),console.error(n.getShaderInfoLog(r)),console.error(m(i))),r}function m(t){let e=2;return t.replaceAll("\n",()=>"\n"+h(e++)+":")}function h(t){return t>=1e3?t.toString():(" "+t).slice(-3)}function f(t,e,o){const i=t.get(e);if(!i)return t.set(e,Array.from(o)),!0;const n=o.length;if(i.length!==n)return t.set(e,Array.from(o)),!0;for(let r=0;r<n;++r){const t=o[r];if(i[r]!==t){for(i[r]=t;r<n;++r)i[r]=o[r];return!0}}return!1}const c={enabled:!1},l=e()?(t,...e)=>_(t,e):()=>{},_=e()?(t,e)=>{if(t?.supportsNaN)return;const o=e.length;for(let i=0;i<o;++i){const t=e[i];Number.isNaN(t)&&console.error(`Got ${t} as uniform value from ${(new Error).stack}`)}}:()=>{};export{s as DisposableProgram,c as test};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import"../../core/has.js";import{Program as r}from"./Program.js";class t{constructor(r){this._rctx=r,this._store=new Map}dispose(){this._store.forEach(r=>r.dispose()),this._store.clear()}acquire(t,s,e,o){const i=t+s+JSON.stringify(Array.from(e.entries())),c=this._store.get(i);if(null!=c)return c.ref(),c;const n=new r(this._rctx,t,s,e,o);return n.ref(),this._store.set(i,n),n}get test(){}}export{t as ProgramCache};
2
+ import"../../core/has.js";import{DisposableProgram as t}from"./Program.js";class s{constructor(t){this._rctx=t,this._store=new Map}dispose(){this._store.forEach(t=>t.dispose()),this._store.clear()}get(s,r,e,o){const i=s+r+JSON.stringify(Array.from(e.entries())),c=this._store.get(i);if(c)return c;const h=new t(this._rctx,s,r,e,o);return this._store.set(i,h),h}get test(){}}export{s as ProgramCache};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{Program as r}from"./Program.js";function e(e,t,n,o=""){return new r(e,o+t.vertexShader,o+t.fragmentShader,n)}export{e as createProgram};
2
+ import{DisposableProgram as r}from"./Program.js";function e(e,t,n,o=""){return new r(e,o+t.vertexShader,o+t.fragmentShader,n)}export{e as createProgram};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../core/has.js";import t from"../../core/Logger.js";import{disposeMaybe as e}from"../../core/maybe.js";import{after as s}from"../../core/promiseUtils.js";import{Milliseconds as i}from"../../core/time.js";import{webglDebugEnabled as a,checkWebGLError as r,getErrorMessage as n}from"./checkWebGLError.js";import{ContextState as l}from"./ContextState.js";import{DrawBufferBack as h,DrawBufferNone as f,ColorAttachment0 as o,baseTextureUnit as u,ResourceType as c,PrimitiveType as d}from"./enums.js";import{InstanceCounter as _}from"./InstanceCounter.js";import{Parameters as b}from"./Parameters.js";import{ProgramCache as g}from"./ProgramCache.js";import{StateTracker as p}from"./renderState.js";import m from"./Texture.js";import{WebGLDriverTest as B}from"./WebGLDriverTest.js";import{Capabilities as F}from"./capabilities/Capabilities.js";const T=()=>t.getLogger("esri.views.webgl.RenderingContext");let x=class{constructor(t,e){this.gl=t,this.instanceCounter=new _,this._programCache=new g(this),this._transformFeedbackRequestInfo=null,this._state=new l,this._numOfDrawCalls=0,this._numOfTriangles=0,this._options=e,this.configure(e)}configure(t){this._options=t,this._capabilities=new F(this.gl,t),this._parameters=new b(this.gl,this._capabilities,t),m.TEXTURE_UNIT_FOR_UPDATES=this._parameters.maxTextureImageUnits-1;const s=this.gl.getParameter(this.gl.VIEWPORT);this._state=new l,this._state.viewport={x:s[0],y:s[1],width:s[2],height:s[3]},this._stateTracker=new p({setBlending:t=>{if(t){this.setBlendingEnabled(!0),this.setBlendEquationSeparate(t.opRgb,t.opAlpha),this.setBlendFunctionSeparate(t.srcRgb,t.dstRgb,t.srcAlpha,t.dstAlpha);const e=t.color;this.setBlendColor(e.r,e.g,e.b,e.a)}else this.setBlendingEnabled(!1)},setCulling:t=>{t?(this.setFaceCullingEnabled(!0),this.setCullFace(t.face),this.setFrontFace(t.mode)):this.setFaceCullingEnabled(!1)},setPolygonOffset:t=>{t?(this.setPolygonOffsetFillEnabled(!0),this.setPolygonOffset(t.factor,t.units)):this.setPolygonOffsetFillEnabled(!1)},setDepthTest:t=>{t?(this.setDepthTestEnabled(!0),this.setDepthFunction(t.func)):this.setDepthTestEnabled(!1)},setStencilTest:t=>{if(t){this.setStencilTestEnabled(!0);const e=t.function;this.setStencilFunction(e.func,e.ref,e.mask);const s=t.operation;this.setStencilOp(s.fail,s.zFail,s.zPass)}else this.setStencilTestEnabled(!1)},setDepthWrite:t=>{t?(this.setDepthWriteEnabled(!0),this.setDepthRange(t.zNear,t.zFar)):this.setDepthWriteEnabled(!1)},setColorWrite:t=>{t?this.setColorMask(t.r,t.g,t.b,t.a):this.setColorMask(!1,!1,!1,!1)},setStencilWrite:t=>{t?this.setStencilWriteMask(t.mask):this.setStencilWriteMask(0)},setDrawBuffers:t=>{if(t)this.setDrawBuffers(t.buffers);else{const{drawFramebuffer:t}=this._state;null===t?this.setDrawBuffers([h]):0===t.colorAttachments.length?this.setDrawBuffers([f]):this.setDrawBuffers([o])}}}),this.enforceState(),e(this._driverTest),this._driverTest=new B(this)}updateOptions(t){this._options={...this._options,...t},this._parameters=new b(this.gl,this._capabilities,this._options)}dispose(){this._driverTest=e(this._driverTest),this._programCache=e(this._programCache),this.bindVAO(null),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this._state.uniformBufferBindingPoints.length=0,this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663),this._state.textureUnitMap.length=0,this._state=null,this._capabilities=null,this._stateTracker=null,a()&&console.log(this.instanceCounter.resourceInformation)}get driverTest(){return this._driverTest}get contextAttributes(){return this.gl.getContextAttributes()}get parameters(){return this._parameters}get programCache(){return this._programCache}setPipelineState(t){this._stateTracker.setPipeline(t)}getPipelineState(){return this._stateTracker.getPipelineState()}setBlendingEnabled(t){this._state.blend!==t&&(!0===t?this.gl.enable(this.gl.BLEND):this.gl.disable(this.gl.BLEND),this._state.blend=t,this._stateTracker.invalidateBlending())}externalProgramUpdate(){this._state.program?.stop(),this._state.program=null}externalTextureUnitUpdate(t,e){for(let s=0;s<t.length;++s)this._state.textureUnitMap[t[s]]=null;e>=0&&(this._state.activeTexture=e)}externalVertexArrayObjectUpdate(){this.gl.bindVertexArray(null),this._state.vertexArrayObject=null,this._state.vertexBuffer=null,this._state.indexBuffer=null}externalVertexBufferUpdate(){this._state.vertexBuffer=null}externalIndexBufferUpdate(){this._state.indexBuffer=null}setBlendColor(t,e,s,i){t===this._state.blendColor.r&&e===this._state.blendColor.g&&s===this._state.blendColor.b&&i===this._state.blendColor.a||(this.gl.blendColor(t,e,s,i),this._state.blendColor.r=t,this._state.blendColor.g=e,this._state.blendColor.b=s,this._state.blendColor.a=i,this._stateTracker.invalidateBlending())}setBlendFunction(t,e){t===this._state.blendFunction.srcRGB&&e===this._state.blendFunction.dstRGB||(this.gl.blendFunc(t,e),this._state.blendFunction.srcRGB=t,this._state.blendFunction.srcAlpha=t,this._state.blendFunction.dstRGB=e,this._state.blendFunction.dstAlpha=e,this._stateTracker.invalidateBlending())}setBlendFunctionSeparate(t,e,s,i){this._state.blendFunction.srcRGB===t&&this._state.blendFunction.srcAlpha===s&&this._state.blendFunction.dstRGB===e&&this._state.blendFunction.dstAlpha===i||(this.gl.blendFuncSeparate(t,e,s,i),this._state.blendFunction.srcRGB=t,this._state.blendFunction.srcAlpha=s,this._state.blendFunction.dstRGB=e,this._state.blendFunction.dstAlpha=i,this._stateTracker.invalidateBlending())}setBlendEquation(t){this._state.blendEquation.mode!==t&&(this.gl.blendEquation(t),this._state.blendEquation.mode=t,this._state.blendEquation.modeAlpha=t,this._stateTracker.invalidateBlending())}setBlendEquationSeparate(t,e){this._state.blendEquation.mode===t&&this._state.blendEquation.modeAlpha===e||(this.gl.blendEquationSeparate(t,e),this._state.blendEquation.mode=t,this._state.blendEquation.modeAlpha=e,this._stateTracker.invalidateBlending())}setColorMask(t,e,s,i){this._state.colorMask.r===t&&this._state.colorMask.g===e&&this._state.colorMask.b===s&&this._state.colorMask.a===i||(this.gl.colorMask(t,e,s,i),this._state.colorMask.r=t,this._state.colorMask.g=e,this._state.colorMask.b=s,this._state.colorMask.a=i,this._stateTracker.invalidateColorWrite())}setClearColor(t,e,s,i){this._state.clearColor.r===t&&this._state.clearColor.g===e&&this._state.clearColor.b===s&&this._state.clearColor.a===i||(this.gl.clearColor(t,e,s,i),this._state.clearColor.r=t,this._state.clearColor.g=e,this._state.clearColor.b=s,this._state.clearColor.a=i)}setFaceCullingEnabled(t){this._state.faceCulling!==t&&(!0===t?this.gl.enable(this.gl.CULL_FACE):this.gl.disable(this.gl.CULL_FACE),this._state.faceCulling=t,this._stateTracker.invalidateCulling())}setPolygonOffsetFillEnabled(t){this._state.polygonOffsetFill!==t&&(!0===t?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL),this._state.polygonOffsetFill=t,this._stateTracker.invalidatePolygonOffset())}setPolygonOffset(t,e){this._state.polygonOffset[0]===t&&this._state.polygonOffset[1]===e||(this._state.polygonOffset[0]=t,this._state.polygonOffset[1]=e,this.gl.polygonOffset(t,e),this._stateTracker.invalidatePolygonOffset())}setCullFace(t){this._state.cullFace!==t&&(this.gl.cullFace(t),this._state.cullFace=t,this._stateTracker.invalidateCulling())}setFrontFace(t){this._state.frontFace!==t&&(this.gl.frontFace(t),this._state.frontFace=t,this._stateTracker.invalidateCulling())}setScissorTestEnabled(t){this._state.scissorTest!==t&&(!0===t?this.gl.enable(this.gl.SCISSOR_TEST):this.gl.disable(this.gl.SCISSOR_TEST),this._state.scissorTest=t)}setScissorRect(t,e,s,i){this._state.scissorRect.x===t&&this._state.scissorRect.y===e&&this._state.scissorRect.width===s&&this._state.scissorRect.height===i||(this.gl.scissor(t,e,s,i),this._state.scissorRect.x=t,this._state.scissorRect.y=e,this._state.scissorRect.width=s,this._state.scissorRect.height=i)}setDepthTestEnabled(t){this._state.depthTest!==t&&(!0===t?this.gl.enable(this.gl.DEPTH_TEST):this.gl.disable(this.gl.DEPTH_TEST),this._state.depthTest=t,this._stateTracker.invalidateDepthTest())}setClearDepth(t){this._state.clearDepth!==t&&(this.gl.clearDepth(t),this._state.clearDepth=t)}setDepthFunction(t){this._state.depthFunction!==t&&(this.gl.depthFunc(t),this._state.depthFunction=t,this._stateTracker.invalidateDepthTest())}setDepthWriteEnabled(t){this._state.depthWrite!==t&&(this.gl.depthMask(t),this._state.depthWrite=t,this._stateTracker.invalidateDepthWrite())}setDepthRange(t,e){this._state.depthRange.zNear===t&&this._state.depthRange.zFar===e||(this.gl.depthRange(t,e),this._state.depthRange.zNear=t,this._state.depthRange.zFar=e,this._stateTracker.invalidateDepthWrite())}setStencilTestEnabled(t){this._state.stencilTest!==t&&(!0===t?this.gl.enable(this.gl.STENCIL_TEST):this.gl.disable(this.gl.STENCIL_TEST),this._state.stencilTest=t,this._stateTracker.invalidateStencilTest())}setClearStencil(t){t!==this._state.clearStencil&&(this.gl.clearStencil(t),this._state.clearStencil=t)}setStencilFunction(t,e,s){this._state.stencilFunction.func===t&&this._state.stencilFunction.ref===e&&this._state.stencilFunction.mask===s||(this.gl.stencilFunc(t,e,s),this._state.stencilFunction.face=1032,this._state.stencilFunction.func=t,this._state.stencilFunction.ref=e,this._state.stencilFunction.mask=s,this._stateTracker.invalidateStencilTest())}setStencilFunctionSeparate(t,e,s,i){this._state.stencilFunction.face===t&&this._state.stencilFunction.func===e&&this._state.stencilFunction.ref===s&&this._state.stencilFunction.mask===i||(this.gl.stencilFuncSeparate(t,e,s,i),this._state.stencilFunction.face=t,this._state.stencilFunction.func=e,this._state.stencilFunction.ref=s,this._state.stencilFunction.mask=i,this._stateTracker.invalidateStencilTest())}setStencilWriteMask(t){this._state.stencilWriteMask!==t&&(this.gl.stencilMask(t),this._state.stencilWriteMask=t,this._stateTracker.invalidateStencilWrite())}setStencilOp(t,e,s){1032===this._state.stencilOperation.face&&this._state.stencilOperation.fail===t&&this._state.stencilOperation.zFail===e&&this._state.stencilOperation.zPass===s||(this.gl.stencilOp(t,e,s),this._state.stencilOperation.face=1032,this._state.stencilOperation.fail=t,this._state.stencilOperation.zFail=e,this._state.stencilOperation.zPass=s,this._stateTracker.invalidateStencilTest())}setStencilOpSeparate(t,e,s,i){this._state.stencilOperation.face===t&&this._state.stencilOperation.fail===e&&this._state.stencilOperation.zFail===s&&this._state.stencilOperation.zPass===i||(this.gl.stencilOpSeparate(t,e,s,i),this._state.stencilOperation.face=t,this._state.stencilOperation.fail=e,this._state.stencilOperation.zFail=s,this._state.stencilOperation.zPass=i,this._stateTracker.invalidateStencilTest())}setActiveTexture(t,e=!1){const s=this._state.activeTexture;return t>=0&&(e||t!==this._state.activeTexture)&&(this.gl.activeTexture(u+t),this._state.activeTexture=t),s}setDrawBuffers(t){const{drawFramebuffer:e}=this._state,s=null===e,i=s?this._state.drawBuffers.defaultFramebuffer:this._state.drawBuffers.fbos.get(e);if(i?.length!==t.length||!i.every((e,s)=>e===t[s]))if(t.length>this.parameters.maxDrawBuffers)T().error(`Setting more active draw buffers (${t.length}) than GL.MAX_DRAW_BUFFERS allows ( ${this.parameters.maxDrawBuffers}).`);else{if(s){if(t.length>1)return void T().error(`The default framebuffer can only have 1 active draw buffer but was requested with ${t.length}.`);if(t[0]!==h&&t[0]!==f)return void T().error(`The default framebuffer can only use the constants GL.BACK or GL.NONE as draw buffers but got ${t[0]}`)}s||!t.includes(h)?(this.gl.drawBuffers(t),r(this.gl),s?this._state.drawBuffers.defaultFramebuffer=t:this._state.drawBuffers.fbos.set(e,t),this._stateTracker.invalidateDrawBuffers()):T().error("A framebuffer object can only use the constants GL.COLOR_ATTACHMENTx or GL.NONE as draw buffers.")}}clear(t,e=255){if(t){if(16384&t){const t=this._state.drawFramebuffer?.colorAttachments;t&&this.setDrawBuffers(t),this.setColorMask(!0,!0,!0,!0)}256&t&&this.setDepthWriteEnabled(!0),1024&t&&this.setStencilWriteMask(e),this.gl.clear(t)}}clearFramebuffer(t,e=!1,s=!1){let i=0;if(t){const e=1e-13,s=Math.max(e,t[3]);this.setClearColor(t[0],t[1],t[2],s),i|=16384}e&&(i|=256),!1===s?s=0:(!0===s&&(s=255),i|=1024),i&&this.clear(i,s)}clearBuffer(t,e,s=6144,i=void 0){this.gl.clearBufferfv(s,t,e,i)}clearBufferInteger(t,e,s=6144,i=void 0){this.gl.clearBufferiv(s,t,e,i)}clearBufferUnsignedInteger(t,e,s=6144,i=void 0){this.gl.clearBufferuiv(s,t,e,i)}drawArrays(t,e,s){if(this._transformFeedbackRequestInfo){if(t!==this._transformFeedbackRequestInfo.primitiveType)throw new Error("DrawArrays called during transform feedback, but primitiveType does not match that of the current transform feedback request");if(null==this._state.program?.hasTransformFeedbackVaryings)throw new Error("DrawArrays called during transform feedback, but the shader program was not linked with a transform feedback varying")}if(a()&&(this._numOfDrawCalls++,this._numOfTriangles+=k(t,s),has("enable-feature:webgl-debug:textureReadWrite"))){const t=this._state.textureUnitMap;for(let e=0;e<t.length;e++){const s=t[e];if(null!=s&&s===this._state.drawFramebuffer?.colorTexture)throw new Error(`Detected readWrite. Texture already bound at index ${e}`)}}this.gl.drawArrays(t,e,s),r(this.gl)}drawArraysInstanced(t,e,s,i){this.gl.drawArraysInstanced(t,e,s,i),r(this.gl)}drawElements(t,e,s,i){if(this._transformFeedbackRequestInfo)throw new Error("Cannot called drawElements during a transform feedback request");if(a()&&(this._numOfDrawCalls++,this._numOfTriangles+=k(t,e)),this.gl.drawElements(t,e,s,i),a()){const a=n(this.gl);if(a){const r=this.getBoundVAO(),n=r?.indexBuffer,l=r?.buffers,h={indexBuffer:n,vertexBuffers:l},f={mode:t,count:e,type:s,offset:i},o=n?.size??0,u=i+e,c=o<u?`. Buffer is too small. Attempted to draw index ${u} of ${o}`:"";T().error(`drawElements: ${a}${c}`,{args:f,vao:h})}}}drawElementsInstanced(t,e,s,i,a){this.gl.drawElementsInstanced(t,e,s,i,a),r(this.gl)}logInfo(){a()&&console.log(`DrawCalls: ${this._numOfDrawCalls}, Triangles: ${this._numOfTriangles}`)}resetInfo(){a()&&(this._numOfDrawCalls=0,this._numOfTriangles=0)}get capabilities(){return this._capabilities}setViewport(t,e,s,i){s=Math.max(Math.round(s),1),i=Math.max(Math.round(i),1);const a=this._state.viewport;a.x===t&&a.y===e&&a.width===s&&a.height===i||(a.x=t,a.y=e,a.width=s,a.height=i,this.gl.viewport(t,e,s,i))}setViewport4fv(t){this.setViewport(t[0],t[1],t[2],t[3])}restoreViewport({x:t,y:e,width:s,height:i}){this.setViewport(t,e,s,i)}getViewport(){const t=this._state.viewport;return{x:t.x,y:t.y,width:t.width,height:t.height}}useProgram(t){this._state.program!==t&&(this._state.program?.stop(),this._state.program=t,this.gl.useProgram(t?.glName??null))}bindTexture(t,e,s=!1){(e>=this.parameters.maxTextureImageUnits||e<0)&&T().error(`Input texture unit (${e}) is out of range of available units (0...${this.parameters.maxTextureImageUnits})\n `);const i=this._state.textureUnitMap[e];return null==t?.glName?(null!=i&&(this.setActiveTexture(e,s),this.gl.bindTexture(i.descriptor.target,null)),this._state.textureUnitMap[e]=null,i):s||i!==t?(this.setActiveTexture(e,s),this.gl.bindTexture(t.descriptor.target,t.glName),t.applyChanges(),this._state.textureUnitMap[e]=t,i):(t.isDirty&&(this.setActiveTexture(e,s),t.applyChanges()),i)}unbindTexture(t){if(null!=t)for(let e=0;e<this.parameters.maxTextureImageUnits;e++)this._state.textureUnitMap[e]===t&&(this.bindTexture(null,e),this._state.textureUnitMap[e]=null)}bindFramebuffer(t,e=!1){if(e||this._state.readFramebuffer!==t||this._state.drawFramebuffer!==t){if(this._stateTracker.invalidateDrawBuffers(),null==t)return this.gl.bindFramebuffer(36160,null),void(this._state.readFramebuffer=this._state.drawFramebuffer=null);t.initializeAndBind(36160),this._state.readFramebuffer=t,this._state.drawFramebuffer=t}}bindFramebufferSeparate(t,e,s=!1){const i=36008===e,a=i?this._state.readFramebuffer:this._state.drawFramebuffer;(s||a!==t)&&(null==t?this.gl.bindFramebuffer(e,null):t.initializeAndBind(e),i?this._state.readFramebuffer=t??null:(this._stateTracker.invalidateDrawBuffers(),this._state.drawFramebuffer=t??null))}blitFramebuffer(t,e,s=16384,i=9728,a=0,r=0,n=t.width,l=t.height,h=0,f=0,o=e.width,u=e.height){this.bindFramebufferSeparate(t,36008,!0),this.bindFramebufferSeparate(e,36009,!0),this.gl.blitFramebuffer(a,r,n,l,h,f,o,u,s,i)}bindBuffer(t,e){if(t)switch(e??=t.bufferType,e){case 34962:this._state.vertexBuffer=w(this.gl,t,e,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=w(this.gl,t,e,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=w(this.gl,t,e,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=w(this.gl,t,e,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=w(this.gl,t,e,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=w(this.gl,t,e,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=w(this.gl,t,e,this._state.copyWriteBuffer);break;case 35982:this._state.transformFeedbackBuffer=w(this.gl,t,e,this._state.transformFeedbackBuffer)}}bindRenderbuffer(t){const e=this.gl;t||(e.bindRenderbuffer(e.RENDERBUFFER,null),this._state.renderbuffer=null),this._state.renderbuffer!==t&&(e.bindRenderbuffer(e.RENDERBUFFER,t.glName),this._state.renderbuffer=t)}_getBufferBinding(t,e){if(e>=this.parameters.maxUniformBufferBindings||e<0)return T().error(`Uniform buffer binding point (${e}) is out of range (0...${this.parameters.maxUniformBufferBindings})\n `),null;const s=35345===t?this._state.uniformBufferBindingPoints:this._state.transformBufferBindingPoints;let i=s[e];return null==i&&(i={buffer:null,offset:0,size:0},s[e]=i),i}bindBufferBase(t,e,s){const i=this._getBufferBinding(t,e);null!=i&&(i.buffer===s&&0===i.offset&&0===i.size||(this.gl.bindBufferBase(t,e,s?s.glName:null),i.buffer=s,i.offset=0,i.size=0))}bindBufferRange(t,e,s,i,a){const r=this._getBufferBinding(t,e);null!=r&&(r.buffer===s&&r.offset===i&&r.size===a||(i%this._parameters.uniformBufferOffsetAlignment===0?(this.gl.bindBufferRange(t,e,s.glName,i,a),r.buffer=s,r.offset=i,r.size=a):T().error("Uniform buffer binding offset is not a multiple of the context offset alignment")))}bindUBO(t,e,s,i){null!=e?(a()&&(i??e.byteLength)>this._parameters.maxUniformBlockSize&&T().error("Attempting to bind more data than the maximum uniform block size"),e.initialize(),void 0!==s&&void 0!==i?this.bindBufferRange(35345,t,e.buffer,s,i):this.bindBufferBase(35345,t,e.buffer)):this.bindBufferBase(35345,t,null)}unbindUBO(t){for(let e=0,s=this._state.uniformBufferBindingPoints.length;e<s;e++){const s=this._state.uniformBufferBindingPoints[e];null!=s&&s.buffer===t.buffer&&this.bindBufferBase(35345,e,null)}}unbindBuffer(t){switch(t){case 34962:this._state.vertexBuffer=w(this.gl,null,t,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=w(this.gl,null,t,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=w(this.gl,null,t,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=w(this.gl,null,t,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=w(this.gl,null,t,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=w(this.gl,null,t,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=w(this.gl,null,t,this._state.copyWriteBuffer)}}bindVAO(t,e){if(null==t)return this._state.vertexArrayObject?.unbind(),void(this._state.vertexArrayObject=null);this._state.vertexArrayObject!==t&&(t.bind(e),this._state.vertexArrayObject=t)}bindTransformFeedback(t){const{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,t.glName)}beginTransformFeedback(t,e){if(this._transformFeedbackRequestInfo)throw new Error("Already in a transform feedback request");const{gl:s}=this;s.bindTransformFeedback(s.TRANSFORM_FEEDBACK,t.glName),s.beginTransformFeedback(e),this._transformFeedbackRequestInfo={primitiveType:e}}endTransformFeedback(){if(!this._transformFeedbackRequestInfo)throw new Error("Not in a transform feedback request");const{gl:t}=this;t.endTransformFeedback(),t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,null),this._transformFeedbackRequestInfo=null}async clientWaitAsync(t=i(10)){const{gl:e}=this,a=e.fenceSync(37143,0);if(!a)throw new Error("Client wait failed, could not create sync object");let r;this.instanceCounter.increment(c.Sync,a),e.flush();do{await s(t),r=e.clientWaitSync(a,0,0)}while(37147===r);if(this.instanceCounter.decrement(c.Sync,a),e.deleteSync(a),37149===r)throw new Error("Client wait failed")}getBoundFramebufferObject(t=36160){return 36008===t?this._state.readFramebuffer:this._state.drawFramebuffer}temporaryBindFramebufferObject(t,e,s=!1){const i=this.getBoundFramebufferObject();try{this.bindFramebuffer(t,s),e()}finally{this.bindFramebuffer(i,s)}}getBoundVAO(){return this._state.vertexArrayObject}resetState(){this.useProgram(null),this.bindVAO(null),this.bindFramebuffer(null,!0),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this._state.uniformBufferBindingPoints.length=0,this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663);for(let t=0;t<this.parameters.maxTextureImageUnits;++t)this.bindTexture(null,t);this.setBlendingEnabled(!1),this.setBlendFunction(1,0),this.setBlendEquation(32774),this.setBlendColor(0,0,0,0),this.setFaceCullingEnabled(!1),this.setCullFace(1029),this.setFrontFace(2305),this.setPolygonOffsetFillEnabled(!1),this.setPolygonOffset(0,0),this.setScissorTestEnabled(!1),this.setScissorRect(0,0,this.gl.canvas.width,this.gl.canvas.height),this.setDepthTestEnabled(!1),this.setDepthFunction(513),this.setDepthRange(0,1),this.setStencilTestEnabled(!1),this.setStencilFunction(519,0,0),this.setStencilOp(7680,7680,7680),this.setClearColor(0,0,0,0),this.setClearDepth(1),this.setClearStencil(0),this.setColorMask(!0,!0,!0,!0),this.setStencilWriteMask(4294967295),this.setDepthWriteEnabled(!0),this.setDrawBuffers([h]),this.setViewport(0,0,this.gl.canvas.width,this.gl.canvas.height)}enforceState(){const{gl:t}=this;t.bindVertexArray(null);for(let s=0;s<this.parameters.maxVertexAttributes;s++)t.disableVertexAttribArray(s);this._state.vertexBuffer?t.bindBuffer(this._state.vertexBuffer.bufferType,this._state.vertexBuffer.glName):t.bindBuffer(34962,null),this._state.indexBuffer?t.bindBuffer(this._state.indexBuffer.bufferType,this._state.indexBuffer.glName):t.bindBuffer(34963,null),this._state.uniformBuffer?t.bindBuffer(this._state.uniformBuffer.bufferType,this._state.uniformBuffer.glName):t.bindBuffer(35345,null);for(let s=0;s<this._parameters.maxUniformBufferBindings;s++){const e=this._state.uniformBufferBindingPoints[s];if(null!=e){const{buffer:i,offset:a,size:r}=e;null!==i?0===a&&0===r?t.bindBufferBase(35345,s,i.glName):t.bindBufferRange(35345,s,i.glName,a,r):t.bindBufferBase(35345,s,null)}}if(this._state.pixelPackBuffer?t.bindBuffer(this._state.pixelPackBuffer.bufferType,this._state.pixelPackBuffer.glName):t.bindBuffer(35051,null),this._state.pixelUnpackBuffer?t.bindBuffer(this._state.pixelUnpackBuffer.bufferType,this._state.pixelUnpackBuffer.glName):t.bindBuffer(35052,null),this._state.copyReadBuffer?t.bindBuffer(this._state.copyReadBuffer.bufferType,this._state.copyReadBuffer.glName):t.bindBuffer(36662,null),this._state.copyWriteBuffer?t.bindBuffer(this._state.copyWriteBuffer.bufferType,this._state.copyWriteBuffer.glName):t.bindBuffer(36663,null),t.bindFramebuffer(36008,null),t.readBuffer(t.BACK),this._state.readFramebuffer&&(t.bindFramebuffer(36008,this._state.readFramebuffer.glName),t.readBuffer(o)),t.bindFramebuffer(36009,this._state.drawFramebuffer?.glName??null),null===this._state.drawFramebuffer){const e=this._state.drawBuffers.defaultFramebuffer;t.drawBuffers(e??[h])}else{const e=this._state.drawBuffers.fbos.get(this._state.drawFramebuffer);t.drawBuffers(e??[o])}if(this._state.vertexArrayObject){const t=this._state.vertexArrayObject;this._state.vertexArrayObject&&(this._state.vertexArrayObject.unbind(),this._state.vertexArrayObject=null),this.bindVAO(t)}t.useProgram(this._state.program?.glName??null),t.blendColor(this._state.blendColor.r,this._state.blendColor.g,this._state.blendColor.b,this._state.blendColor.a),t.bindRenderbuffer(t.RENDERBUFFER,this._state.renderbuffer?.glName??null),!0===this._state.blend?t.enable(this.gl.BLEND):t.disable(this.gl.BLEND),t.blendEquationSeparate(this._state.blendEquation.mode,this._state.blendEquation.modeAlpha),t.blendFuncSeparate(this._state.blendFunction.srcRGB,this._state.blendFunction.dstRGB,this._state.blendFunction.srcAlpha,this._state.blendFunction.dstAlpha),t.clearColor(this._state.clearColor.r,this._state.clearColor.g,this._state.clearColor.b,this._state.clearColor.a),t.clearDepth(this._state.clearDepth),t.clearStencil(this._state.clearStencil),t.colorMask(this._state.colorMask.r,this._state.colorMask.g,this._state.colorMask.b,this._state.colorMask.a),t.cullFace(this._state.cullFace),t.depthFunc(this._state.depthFunction),t.depthRange(this._state.depthRange.zNear,this._state.depthRange.zFar),!0===this._state.depthTest?t.enable(t.DEPTH_TEST):t.disable(t.DEPTH_TEST),t.depthMask(this._state.depthWrite),t.frontFace(this._state.frontFace),t.lineWidth(1),!0===this._state.faceCulling?t.enable(t.CULL_FACE):t.disable(t.CULL_FACE),t.polygonOffset(this._state.polygonOffset[0],this._state.polygonOffset[1]),!0===this._state.polygonOffsetFill?t.enable(t.POLYGON_OFFSET_FILL):t.disable(t.POLYGON_OFFSET_FILL),t.scissor(this._state.scissorRect.x,this._state.scissorRect.y,this._state.scissorRect.width,this._state.scissorRect.height),!0===this._state.scissorTest?t.enable(t.SCISSOR_TEST):t.disable(t.SCISSOR_TEST),t.stencilFunc(this._state.stencilFunction.func,this._state.stencilFunction.ref,this._state.stencilFunction.mask),t.stencilOpSeparate(this._state.stencilOperation.face,this._state.stencilOperation.fail,this._state.stencilOperation.zFail,this._state.stencilOperation.zPass),!0===this._state.stencilTest?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),t.stencilMask(this._state.stencilWriteMask);for(let s=0;s<this.parameters.maxTextureImageUnits;s++){t.activeTexture(u+s),t.bindTexture(3553,null),t.bindTexture(34067,null),t.bindTexture(32879,null),t.bindTexture(35866,null);const e=this._state.textureUnitMap[s];null!=e&&t.bindTexture(e.descriptor.target,e.glName)}t.activeTexture(u+this._state.activeTexture);const e=this._state.viewport;t.viewport(e.x,e.y,e.width,e.height),this.resetInfo()}};function w(t,e,s,i){return e?i!==e&&t.bindBuffer(s,e.glName):t.bindBuffer(s,null),e}function k(t,e){switch(t){case d.POINTS:return 2*e;case d.TRIANGLES:return e/3;case d.TRIANGLE_STRIP:case d.TRIANGLE_FAN:return e-2;default:return 0}}export{x as RenderingContext};
2
+ import has from"../../core/has.js";import t from"../../core/Logger.js";import{disposeMaybe as e}from"../../core/maybe.js";import{after as s}from"../../core/promiseUtils.js";import{Milliseconds as i}from"../../core/time.js";import{webglDebugEnabled as a,checkWebGLError as r,getErrorMessage as n,webglValidateShadersEnabled as l}from"./checkWebGLError.js";import{ContextState as h}from"./ContextState.js";import{DrawBufferBack as f,DrawBufferNone as o,ColorAttachment0 as u,baseTextureUnit as c,ResourceType as d,PrimitiveType as _}from"./enums.js";import{InstanceCounter as b}from"./InstanceCounter.js";import{Parameters as g}from"./Parameters.js";import{ProgramCache as p}from"./ProgramCache.js";import{StateTracker as m}from"./renderState.js";import B from"./Texture.js";import{WebGLDriverTest as F}from"./WebGLDriverTest.js";import{Capabilities as T}from"./capabilities/Capabilities.js";const x=()=>t.getLogger("esri.views.webgl.RenderingContext");let w=class{constructor(t,e){this.gl=t,this.instanceCounter=new b,this._programCache=new p(this),this._transformFeedbackRequestInfo=null,this._state=new h,this._numOfDrawCalls=0,this._numOfTriangles=0,this._options=e,this.configure(e)}configure(t){this._options=t,this._capabilities=new T(this.gl,t),this._parameters=new g(this.gl,this._capabilities,t),B.TEXTURE_UNIT_FOR_UPDATES=this._parameters.maxTextureImageUnits-1;const s=this.gl.getParameter(this.gl.VIEWPORT);this._state=new h,this._state.viewport={x:s[0],y:s[1],width:s[2],height:s[3]},this._stateTracker=new m({setBlending:t=>{if(t){this.setBlendingEnabled(!0),this.setBlendEquationSeparate(t.opRgb,t.opAlpha),this.setBlendFunctionSeparate(t.srcRgb,t.dstRgb,t.srcAlpha,t.dstAlpha);const e=t.color;this.setBlendColor(e.r,e.g,e.b,e.a)}else this.setBlendingEnabled(!1)},setCulling:t=>{t?(this.setFaceCullingEnabled(!0),this.setCullFace(t.face),this.setFrontFace(t.mode)):this.setFaceCullingEnabled(!1)},setPolygonOffset:t=>{t?(this.setPolygonOffsetFillEnabled(!0),this.setPolygonOffset(t.factor,t.units)):this.setPolygonOffsetFillEnabled(!1)},setDepthTest:t=>{t?(this.setDepthTestEnabled(!0),this.setDepthFunction(t.func)):this.setDepthTestEnabled(!1)},setStencilTest:t=>{if(t){this.setStencilTestEnabled(!0);const e=t.function;this.setStencilFunction(e.func,e.ref,e.mask);const s=t.operation;this.setStencilOp(s.fail,s.zFail,s.zPass)}else this.setStencilTestEnabled(!1)},setDepthWrite:t=>{t?(this.setDepthWriteEnabled(!0),this.setDepthRange(t.zNear,t.zFar)):this.setDepthWriteEnabled(!1)},setColorWrite:t=>{t?this.setColorMask(t.r,t.g,t.b,t.a):this.setColorMask(!1,!1,!1,!1)},setStencilWrite:t=>{t?this.setStencilWriteMask(t.mask):this.setStencilWriteMask(0)},setDrawBuffers:t=>{if(t)this.setDrawBuffers(t.buffers);else{const{drawFramebuffer:t}=this._state;null===t?this.setDrawBuffers([f]):0===t.colorAttachments.length?this.setDrawBuffers([o]):this.setDrawBuffers([u])}}}),this.enforceState(),e(this._driverTest),this._driverTest=new F(this)}updateOptions(t){this._options={...this._options,...t},this._parameters=new g(this.gl,this._capabilities,this._options)}dispose(){this._driverTest=e(this._driverTest),this._programCache=e(this._programCache),this.bindVAO(null),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this._state.uniformBufferBindingPoints.length=0,this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663),this._state.textureUnitMap.length=0,this._state=null,this._capabilities=null,this._stateTracker=null,a()&&console.log(this.instanceCounter.resourceInformation)}get driverTest(){return this._driverTest}get contextAttributes(){return this.gl.getContextAttributes()}get parameters(){return this._parameters}get programCache(){return this._programCache}setPipelineState(t){this._stateTracker.setPipeline(t)}getPipelineState(){return this._stateTracker.getPipelineState()}setBlendingEnabled(t){this._state.blend!==t&&(!0===t?this.gl.enable(this.gl.BLEND):this.gl.disable(this.gl.BLEND),this._state.blend=t,this._stateTracker.invalidateBlending())}externalProgramUpdate(){this._state.program?.stop(),this._state.program=null}externalTextureUnitUpdate(t,e){for(let s=0;s<t.length;++s)this._state.textureUnitMap[t[s]]=null;e>=0&&(this._state.activeTexture=e)}externalVertexArrayObjectUpdate(){this.gl.bindVertexArray(null),this._state.vertexArrayObject=null,this._state.vertexBuffer=null,this._state.indexBuffer=null}externalVertexBufferUpdate(){this._state.vertexBuffer=null}externalIndexBufferUpdate(){this._state.indexBuffer=null}setBlendColor(t,e,s,i){t===this._state.blendColor.r&&e===this._state.blendColor.g&&s===this._state.blendColor.b&&i===this._state.blendColor.a||(this.gl.blendColor(t,e,s,i),this._state.blendColor.r=t,this._state.blendColor.g=e,this._state.blendColor.b=s,this._state.blendColor.a=i,this._stateTracker.invalidateBlending())}setBlendFunction(t,e){t===this._state.blendFunction.srcRGB&&e===this._state.blendFunction.dstRGB||(this.gl.blendFunc(t,e),this._state.blendFunction.srcRGB=t,this._state.blendFunction.srcAlpha=t,this._state.blendFunction.dstRGB=e,this._state.blendFunction.dstAlpha=e,this._stateTracker.invalidateBlending())}setBlendFunctionSeparate(t,e,s,i){this._state.blendFunction.srcRGB===t&&this._state.blendFunction.srcAlpha===s&&this._state.blendFunction.dstRGB===e&&this._state.blendFunction.dstAlpha===i||(this.gl.blendFuncSeparate(t,e,s,i),this._state.blendFunction.srcRGB=t,this._state.blendFunction.srcAlpha=s,this._state.blendFunction.dstRGB=e,this._state.blendFunction.dstAlpha=i,this._stateTracker.invalidateBlending())}setBlendEquation(t){this._state.blendEquation.mode!==t&&(this.gl.blendEquation(t),this._state.blendEquation.mode=t,this._state.blendEquation.modeAlpha=t,this._stateTracker.invalidateBlending())}setBlendEquationSeparate(t,e){this._state.blendEquation.mode===t&&this._state.blendEquation.modeAlpha===e||(this.gl.blendEquationSeparate(t,e),this._state.blendEquation.mode=t,this._state.blendEquation.modeAlpha=e,this._stateTracker.invalidateBlending())}setColorMask(t,e,s,i){this._state.colorMask.r===t&&this._state.colorMask.g===e&&this._state.colorMask.b===s&&this._state.colorMask.a===i||(this.gl.colorMask(t,e,s,i),this._state.colorMask.r=t,this._state.colorMask.g=e,this._state.colorMask.b=s,this._state.colorMask.a=i,this._stateTracker.invalidateColorWrite())}setClearColor(t,e,s,i){this._state.clearColor.r===t&&this._state.clearColor.g===e&&this._state.clearColor.b===s&&this._state.clearColor.a===i||(this.gl.clearColor(t,e,s,i),this._state.clearColor.r=t,this._state.clearColor.g=e,this._state.clearColor.b=s,this._state.clearColor.a=i)}setFaceCullingEnabled(t){this._state.faceCulling!==t&&(!0===t?this.gl.enable(this.gl.CULL_FACE):this.gl.disable(this.gl.CULL_FACE),this._state.faceCulling=t,this._stateTracker.invalidateCulling())}setPolygonOffsetFillEnabled(t){this._state.polygonOffsetFill!==t&&(!0===t?this.gl.enable(this.gl.POLYGON_OFFSET_FILL):this.gl.disable(this.gl.POLYGON_OFFSET_FILL),this._state.polygonOffsetFill=t,this._stateTracker.invalidatePolygonOffset())}setPolygonOffset(t,e){this._state.polygonOffset[0]===t&&this._state.polygonOffset[1]===e||(this._state.polygonOffset[0]=t,this._state.polygonOffset[1]=e,this.gl.polygonOffset(t,e),this._stateTracker.invalidatePolygonOffset())}setCullFace(t){this._state.cullFace!==t&&(this.gl.cullFace(t),this._state.cullFace=t,this._stateTracker.invalidateCulling())}setFrontFace(t){this._state.frontFace!==t&&(this.gl.frontFace(t),this._state.frontFace=t,this._stateTracker.invalidateCulling())}setScissorTestEnabled(t){this._state.scissorTest!==t&&(!0===t?this.gl.enable(this.gl.SCISSOR_TEST):this.gl.disable(this.gl.SCISSOR_TEST),this._state.scissorTest=t)}setScissorRect(t,e,s,i){this._state.scissorRect.x===t&&this._state.scissorRect.y===e&&this._state.scissorRect.width===s&&this._state.scissorRect.height===i||(this.gl.scissor(t,e,s,i),this._state.scissorRect.x=t,this._state.scissorRect.y=e,this._state.scissorRect.width=s,this._state.scissorRect.height=i)}setDepthTestEnabled(t){this._state.depthTest!==t&&(!0===t?this.gl.enable(this.gl.DEPTH_TEST):this.gl.disable(this.gl.DEPTH_TEST),this._state.depthTest=t,this._stateTracker.invalidateDepthTest())}setClearDepth(t){this._state.clearDepth!==t&&(this.gl.clearDepth(t),this._state.clearDepth=t)}setDepthFunction(t){this._state.depthFunction!==t&&(this.gl.depthFunc(t),this._state.depthFunction=t,this._stateTracker.invalidateDepthTest())}setDepthWriteEnabled(t){this._state.depthWrite!==t&&(this.gl.depthMask(t),this._state.depthWrite=t,this._stateTracker.invalidateDepthWrite())}setDepthRange(t,e){this._state.depthRange.zNear===t&&this._state.depthRange.zFar===e||(this.gl.depthRange(t,e),this._state.depthRange.zNear=t,this._state.depthRange.zFar=e,this._stateTracker.invalidateDepthWrite())}setStencilTestEnabled(t){this._state.stencilTest!==t&&(!0===t?this.gl.enable(this.gl.STENCIL_TEST):this.gl.disable(this.gl.STENCIL_TEST),this._state.stencilTest=t,this._stateTracker.invalidateStencilTest())}setClearStencil(t){t!==this._state.clearStencil&&(this.gl.clearStencil(t),this._state.clearStencil=t)}setStencilFunction(t,e,s){this._state.stencilFunction.func===t&&this._state.stencilFunction.ref===e&&this._state.stencilFunction.mask===s||(this.gl.stencilFunc(t,e,s),this._state.stencilFunction.face=1032,this._state.stencilFunction.func=t,this._state.stencilFunction.ref=e,this._state.stencilFunction.mask=s,this._stateTracker.invalidateStencilTest())}setStencilFunctionSeparate(t,e,s,i){this._state.stencilFunction.face===t&&this._state.stencilFunction.func===e&&this._state.stencilFunction.ref===s&&this._state.stencilFunction.mask===i||(this.gl.stencilFuncSeparate(t,e,s,i),this._state.stencilFunction.face=t,this._state.stencilFunction.func=e,this._state.stencilFunction.ref=s,this._state.stencilFunction.mask=i,this._stateTracker.invalidateStencilTest())}setStencilWriteMask(t){this._state.stencilWriteMask!==t&&(this.gl.stencilMask(t),this._state.stencilWriteMask=t,this._stateTracker.invalidateStencilWrite())}setStencilOp(t,e,s){1032===this._state.stencilOperation.face&&this._state.stencilOperation.fail===t&&this._state.stencilOperation.zFail===e&&this._state.stencilOperation.zPass===s||(this.gl.stencilOp(t,e,s),this._state.stencilOperation.face=1032,this._state.stencilOperation.fail=t,this._state.stencilOperation.zFail=e,this._state.stencilOperation.zPass=s,this._stateTracker.invalidateStencilTest())}setStencilOpSeparate(t,e,s,i){this._state.stencilOperation.face===t&&this._state.stencilOperation.fail===e&&this._state.stencilOperation.zFail===s&&this._state.stencilOperation.zPass===i||(this.gl.stencilOpSeparate(t,e,s,i),this._state.stencilOperation.face=t,this._state.stencilOperation.fail=e,this._state.stencilOperation.zFail=s,this._state.stencilOperation.zPass=i,this._stateTracker.invalidateStencilTest())}setActiveTexture(t,e=!1){const s=this._state.activeTexture;return t>=0&&(e||t!==this._state.activeTexture)&&(this.gl.activeTexture(c+t),this._state.activeTexture=t),s}setDrawBuffers(t){const{drawFramebuffer:e}=this._state,s=null===e,i=s?this._state.drawBuffers.defaultFramebuffer:this._state.drawBuffers.fbos.get(e);if(i?.length!==t.length||!i.every((e,s)=>e===t[s]))if(t.length>this.parameters.maxDrawBuffers)x().error(`Setting more active draw buffers (${t.length}) than GL.MAX_DRAW_BUFFERS allows ( ${this.parameters.maxDrawBuffers}).`);else{if(s){if(t.length>1)return void x().error(`The default framebuffer can only have 1 active draw buffer but was requested with ${t.length}.`);if(t[0]!==f&&t[0]!==o)return void x().error(`The default framebuffer can only use the constants GL.BACK or GL.NONE as draw buffers but got ${t[0]}`)}s||!t.includes(f)?(this.gl.drawBuffers(t),r(this.gl),s?this._state.drawBuffers.defaultFramebuffer=t:this._state.drawBuffers.fbos.set(e,t),this._stateTracker.invalidateDrawBuffers()):x().error("A framebuffer object can only use the constants GL.COLOR_ATTACHMENTx or GL.NONE as draw buffers.")}}clear(t,e=255){if(t){if(16384&t){const t=this._state.drawFramebuffer?.colorAttachments;t&&this.setDrawBuffers(t),this.setColorMask(!0,!0,!0,!0)}256&t&&this.setDepthWriteEnabled(!0),1024&t&&this.setStencilWriteMask(e),this.gl.clear(t)}}clearFramebuffer(t,e=!1,s=!1){let i=0;if(t){const e=1e-13,s=Math.max(e,t[3]);this.setClearColor(t[0],t[1],t[2],s),i|=16384}e&&(i|=256),!1===s?s=0:(!0===s&&(s=255),i|=1024),i&&this.clear(i,s)}clearBuffer(t,e,s=6144,i=void 0){this.gl.clearBufferfv(s,t,e,i)}clearBufferInteger(t,e,s=6144,i=void 0){this.gl.clearBufferiv(s,t,e,i)}clearBufferUnsignedInteger(t,e,s=6144,i=void 0){this.gl.clearBufferuiv(s,t,e,i)}drawArrays(t,e,s){if(this._transformFeedbackRequestInfo){if(t!==this._transformFeedbackRequestInfo.primitiveType)throw new Error("DrawArrays called during transform feedback, but primitiveType does not match that of the current transform feedback request");if(null==this._state.program?.hasTransformFeedbackVaryings)throw new Error("DrawArrays called during transform feedback, but the shader program was not linked with a transform feedback varying")}if(a()&&(this._numOfDrawCalls++,this._numOfTriangles+=E(t,s),has("enable-feature:webgl-debug:textureReadWrite"))){const t=this._state.textureUnitMap;for(let e=0;e<t.length;e++){const s=t[e];if(null!=s&&s===this._state.drawFramebuffer?.colorTexture)throw new Error(`Detected readWrite. Texture already bound at index ${e}`)}}this.gl.drawArrays(t,e,s),r(this.gl)}drawArraysInstanced(t,e,s,i){this.gl.drawArraysInstanced(t,e,s,i),r(this.gl)}drawElements(t,e,s,i){if(this._transformFeedbackRequestInfo)throw new Error("Cannot called drawElements during a transform feedback request");if(a()&&(this._numOfDrawCalls++,this._numOfTriangles+=E(t,e)),this.gl.drawElements(t,e,s,i),a()){const a=n(this.gl);if(a){const r=this.getBoundVAO(),n=r?.indexBuffer,l=r?.buffers,h={indexBuffer:n,vertexBuffers:l},f={mode:t,count:e,type:s,offset:i},o=n?.size??0,u=i+e,c=o<u?`. Buffer is too small. Attempted to draw index ${u} of ${o}`:"";x().error(`drawElements: ${a}${c}`,{args:f,vao:h})}}}drawElementsInstanced(t,e,s,i,a){this.gl.drawElementsInstanced(t,e,s,i,a),r(this.gl)}logInfo(){a()&&console.log(`DrawCalls: ${this._numOfDrawCalls}, Triangles: ${this._numOfTriangles}`)}resetInfo(){a()&&(this._numOfDrawCalls=0,this._numOfTriangles=0)}get capabilities(){return this._capabilities}setViewport(t,e,s,i){s=Math.max(Math.round(s),1),i=Math.max(Math.round(i),1);const a=this._state.viewport;a.x===t&&a.y===e&&a.width===s&&a.height===i||(a.x=t,a.y=e,a.width=s,a.height=i,this.gl.viewport(t,e,s,i))}setViewport4fv(t){this.setViewport(t[0],t[1],t[2],t[3])}restoreViewport({x:t,y:e,width:s,height:i}){this.setViewport(t,e,s,i)}getViewport(){const t=this._state.viewport;return{x:t.x,y:t.y,width:t.width,height:t.height}}useProgram(t){if(this._state.program!==t){if(t&&null==t.glName&&l())throw new Error("Attempting to use disposed or invalid Program");this._state.program?.stop(),this._state.program=t,this.gl.useProgram(t?.glName??null)}}bindTexture(t,e,s=!1){(e>=this.parameters.maxTextureImageUnits||e<0)&&x().error(`Input texture unit (${e}) is out of range of available units (0...${this.parameters.maxTextureImageUnits})\n `);const i=this._state.textureUnitMap[e];return null==t?.glName?(null!=i&&(this.setActiveTexture(e,s),this.gl.bindTexture(i.descriptor.target,null)),this._state.textureUnitMap[e]=null,i):s||i!==t?(this.setActiveTexture(e,s),this.gl.bindTexture(t.descriptor.target,t.glName),t.applyChanges(),this._state.textureUnitMap[e]=t,i):(t.isDirty&&(this.setActiveTexture(e,s),t.applyChanges()),i)}unbindTexture(t){if(null!=t)for(let e=0;e<this.parameters.maxTextureImageUnits;e++)this._state.textureUnitMap[e]===t&&(this.bindTexture(null,e),this._state.textureUnitMap[e]=null)}bindFramebuffer(t,e=!1){if(e||this._state.readFramebuffer!==t||this._state.drawFramebuffer!==t){if(this._stateTracker.invalidateDrawBuffers(),null==t)return this.gl.bindFramebuffer(36160,null),void(this._state.readFramebuffer=this._state.drawFramebuffer=null);t.initializeAndBind(36160),this._state.readFramebuffer=t,this._state.drawFramebuffer=t}}bindFramebufferSeparate(t,e,s=!1){const i=36008===e,a=i?this._state.readFramebuffer:this._state.drawFramebuffer;(s||a!==t)&&(null==t?this.gl.bindFramebuffer(e,null):t.initializeAndBind(e),i?this._state.readFramebuffer=t??null:(this._stateTracker.invalidateDrawBuffers(),this._state.drawFramebuffer=t??null))}blitFramebuffer(t,e,s=16384,i=9728,a=0,r=0,n=t.width,l=t.height,h=0,f=0,o=e.width,u=e.height){this.bindFramebufferSeparate(t,36008,!0),this.bindFramebufferSeparate(e,36009,!0),this.gl.blitFramebuffer(a,r,n,l,h,f,o,u,s,i)}bindBuffer(t,e){if(t)switch(e??=t.bufferType,e){case 34962:this._state.vertexBuffer=k(this.gl,t,e,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=k(this.gl,t,e,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=k(this.gl,t,e,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=k(this.gl,t,e,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=k(this.gl,t,e,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=k(this.gl,t,e,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=k(this.gl,t,e,this._state.copyWriteBuffer);break;case 35982:this._state.transformFeedbackBuffer=k(this.gl,t,e,this._state.transformFeedbackBuffer)}}bindRenderbuffer(t){const e=this.gl;t||(e.bindRenderbuffer(e.RENDERBUFFER,null),this._state.renderbuffer=null),this._state.renderbuffer!==t&&(e.bindRenderbuffer(e.RENDERBUFFER,t.glName),this._state.renderbuffer=t)}_getBufferBinding(t,e){if(e>=this.parameters.maxUniformBufferBindings||e<0)return x().error(`Uniform buffer binding point (${e}) is out of range (0...${this.parameters.maxUniformBufferBindings})\n `),null;const s=35345===t?this._state.uniformBufferBindingPoints:this._state.transformBufferBindingPoints;let i=s[e];return null==i&&(i={buffer:null,offset:0,size:0},s[e]=i),i}bindBufferBase(t,e,s){const i=this._getBufferBinding(t,e);null!=i&&(i.buffer===s&&0===i.offset&&0===i.size||(this.gl.bindBufferBase(t,e,s?s.glName:null),i.buffer=s,i.offset=0,i.size=0))}bindBufferRange(t,e,s,i,a){const r=this._getBufferBinding(t,e);null!=r&&(r.buffer===s&&r.offset===i&&r.size===a||(i%this._parameters.uniformBufferOffsetAlignment===0?(this.gl.bindBufferRange(t,e,s.glName,i,a),r.buffer=s,r.offset=i,r.size=a):x().error("Uniform buffer binding offset is not a multiple of the context offset alignment")))}bindUBO(t,e,s,i){null!=e?(a()&&(i??e.byteLength)>this._parameters.maxUniformBlockSize&&x().error("Attempting to bind more data than the maximum uniform block size"),e.initialize(),void 0!==s&&void 0!==i?this.bindBufferRange(35345,t,e.buffer,s,i):this.bindBufferBase(35345,t,e.buffer)):this.bindBufferBase(35345,t,null)}unbindUBO(t){for(let e=0,s=this._state.uniformBufferBindingPoints.length;e<s;e++){const s=this._state.uniformBufferBindingPoints[e];null!=s&&s.buffer===t.buffer&&this.bindBufferBase(35345,e,null)}}unbindBuffer(t){switch(t){case 34962:this._state.vertexBuffer=k(this.gl,null,t,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=k(this.gl,null,t,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=k(this.gl,null,t,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=k(this.gl,null,t,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=k(this.gl,null,t,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=k(this.gl,null,t,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=k(this.gl,null,t,this._state.copyWriteBuffer)}}bindVAO(t,e){if(null==t)return this._state.vertexArrayObject?.unbind(),void(this._state.vertexArrayObject=null);this._state.vertexArrayObject!==t&&(t.bind(e),this._state.vertexArrayObject=t)}bindTransformFeedback(t){const{gl:e}=this;e.bindTransformFeedback(e.TRANSFORM_FEEDBACK,t.glName)}beginTransformFeedback(t,e){if(this._transformFeedbackRequestInfo)throw new Error("Already in a transform feedback request");const{gl:s}=this;s.bindTransformFeedback(s.TRANSFORM_FEEDBACK,t.glName),s.beginTransformFeedback(e),this._transformFeedbackRequestInfo={primitiveType:e}}endTransformFeedback(){if(!this._transformFeedbackRequestInfo)throw new Error("Not in a transform feedback request");const{gl:t}=this;t.endTransformFeedback(),t.bindTransformFeedback(t.TRANSFORM_FEEDBACK,null),this._transformFeedbackRequestInfo=null}async clientWaitAsync(t=i(10)){const{gl:e}=this,a=e.fenceSync(37143,0);if(!a)throw new Error("Client wait failed, could not create sync object");let r;this.instanceCounter.increment(d.Sync,a),e.flush();do{await s(t),r=e.clientWaitSync(a,0,0)}while(37147===r);if(this.instanceCounter.decrement(d.Sync,a),e.deleteSync(a),37149===r)throw new Error("Client wait failed")}getBoundFramebufferObject(t=36160){return 36008===t?this._state.readFramebuffer:this._state.drawFramebuffer}temporaryBindFramebufferObject(t,e,s=!1){const i=this.getBoundFramebufferObject();try{this.bindFramebuffer(t,s),e()}finally{this.bindFramebuffer(i,s)}}getBoundVAO(){return this._state.vertexArrayObject}resetState(){this.useProgram(null),this.bindVAO(null),this.bindFramebuffer(null,!0),this.unbindBuffer(34962),this.unbindBuffer(34963),this.unbindBuffer(35345),this._state.uniformBufferBindingPoints.length=0,this.unbindBuffer(35051),this.unbindBuffer(35052),this.unbindBuffer(36662),this.unbindBuffer(36663);for(let t=0;t<this.parameters.maxTextureImageUnits;++t)this.bindTexture(null,t);this.setBlendingEnabled(!1),this.setBlendFunction(1,0),this.setBlendEquation(32774),this.setBlendColor(0,0,0,0),this.setFaceCullingEnabled(!1),this.setCullFace(1029),this.setFrontFace(2305),this.setPolygonOffsetFillEnabled(!1),this.setPolygonOffset(0,0),this.setScissorTestEnabled(!1),this.setScissorRect(0,0,this.gl.canvas.width,this.gl.canvas.height),this.setDepthTestEnabled(!1),this.setDepthFunction(513),this.setDepthRange(0,1),this.setStencilTestEnabled(!1),this.setStencilFunction(519,0,0),this.setStencilOp(7680,7680,7680),this.setClearColor(0,0,0,0),this.setClearDepth(1),this.setClearStencil(0),this.setColorMask(!0,!0,!0,!0),this.setStencilWriteMask(4294967295),this.setDepthWriteEnabled(!0),this.setDrawBuffers([f]),this.setViewport(0,0,this.gl.canvas.width,this.gl.canvas.height)}enforceState(){const{gl:t}=this;t.bindVertexArray(null);for(let s=0;s<this.parameters.maxVertexAttributes;s++)t.disableVertexAttribArray(s);this._state.vertexBuffer?t.bindBuffer(this._state.vertexBuffer.bufferType,this._state.vertexBuffer.glName):t.bindBuffer(34962,null),this._state.indexBuffer?t.bindBuffer(this._state.indexBuffer.bufferType,this._state.indexBuffer.glName):t.bindBuffer(34963,null),this._state.uniformBuffer?t.bindBuffer(this._state.uniformBuffer.bufferType,this._state.uniformBuffer.glName):t.bindBuffer(35345,null);for(let s=0;s<this._parameters.maxUniformBufferBindings;s++){const e=this._state.uniformBufferBindingPoints[s];if(null!=e){const{buffer:i,offset:a,size:r}=e;null!==i?0===a&&0===r?t.bindBufferBase(35345,s,i.glName):t.bindBufferRange(35345,s,i.glName,a,r):t.bindBufferBase(35345,s,null)}}if(this._state.pixelPackBuffer?t.bindBuffer(this._state.pixelPackBuffer.bufferType,this._state.pixelPackBuffer.glName):t.bindBuffer(35051,null),this._state.pixelUnpackBuffer?t.bindBuffer(this._state.pixelUnpackBuffer.bufferType,this._state.pixelUnpackBuffer.glName):t.bindBuffer(35052,null),this._state.copyReadBuffer?t.bindBuffer(this._state.copyReadBuffer.bufferType,this._state.copyReadBuffer.glName):t.bindBuffer(36662,null),this._state.copyWriteBuffer?t.bindBuffer(this._state.copyWriteBuffer.bufferType,this._state.copyWriteBuffer.glName):t.bindBuffer(36663,null),t.bindFramebuffer(36008,null),t.readBuffer(t.BACK),this._state.readFramebuffer&&(t.bindFramebuffer(36008,this._state.readFramebuffer.glName),t.readBuffer(u)),t.bindFramebuffer(36009,this._state.drawFramebuffer?.glName??null),null===this._state.drawFramebuffer){const e=this._state.drawBuffers.defaultFramebuffer;t.drawBuffers(e??[f])}else{const e=this._state.drawBuffers.fbos.get(this._state.drawFramebuffer);t.drawBuffers(e??[u])}if(this._state.vertexArrayObject){const t=this._state.vertexArrayObject;this._state.vertexArrayObject&&(this._state.vertexArrayObject.unbind(),this._state.vertexArrayObject=null),this.bindVAO(t)}t.useProgram(this._state.program?.glName??null),t.blendColor(this._state.blendColor.r,this._state.blendColor.g,this._state.blendColor.b,this._state.blendColor.a),t.bindRenderbuffer(t.RENDERBUFFER,this._state.renderbuffer?.glName??null),!0===this._state.blend?t.enable(this.gl.BLEND):t.disable(this.gl.BLEND),t.blendEquationSeparate(this._state.blendEquation.mode,this._state.blendEquation.modeAlpha),t.blendFuncSeparate(this._state.blendFunction.srcRGB,this._state.blendFunction.dstRGB,this._state.blendFunction.srcAlpha,this._state.blendFunction.dstAlpha),t.clearColor(this._state.clearColor.r,this._state.clearColor.g,this._state.clearColor.b,this._state.clearColor.a),t.clearDepth(this._state.clearDepth),t.clearStencil(this._state.clearStencil),t.colorMask(this._state.colorMask.r,this._state.colorMask.g,this._state.colorMask.b,this._state.colorMask.a),t.cullFace(this._state.cullFace),t.depthFunc(this._state.depthFunction),t.depthRange(this._state.depthRange.zNear,this._state.depthRange.zFar),!0===this._state.depthTest?t.enable(t.DEPTH_TEST):t.disable(t.DEPTH_TEST),t.depthMask(this._state.depthWrite),t.frontFace(this._state.frontFace),t.lineWidth(1),!0===this._state.faceCulling?t.enable(t.CULL_FACE):t.disable(t.CULL_FACE),t.polygonOffset(this._state.polygonOffset[0],this._state.polygonOffset[1]),!0===this._state.polygonOffsetFill?t.enable(t.POLYGON_OFFSET_FILL):t.disable(t.POLYGON_OFFSET_FILL),t.scissor(this._state.scissorRect.x,this._state.scissorRect.y,this._state.scissorRect.width,this._state.scissorRect.height),!0===this._state.scissorTest?t.enable(t.SCISSOR_TEST):t.disable(t.SCISSOR_TEST),t.stencilFunc(this._state.stencilFunction.func,this._state.stencilFunction.ref,this._state.stencilFunction.mask),t.stencilOpSeparate(this._state.stencilOperation.face,this._state.stencilOperation.fail,this._state.stencilOperation.zFail,this._state.stencilOperation.zPass),!0===this._state.stencilTest?t.enable(t.STENCIL_TEST):t.disable(t.STENCIL_TEST),t.stencilMask(this._state.stencilWriteMask);for(let s=0;s<this.parameters.maxTextureImageUnits;s++){t.activeTexture(c+s),t.bindTexture(3553,null),t.bindTexture(34067,null),t.bindTexture(32879,null),t.bindTexture(35866,null);const e=this._state.textureUnitMap[s];null!=e&&t.bindTexture(e.descriptor.target,e.glName)}t.activeTexture(c+this._state.activeTexture);const e=this._state.viewport;t.viewport(e.x,e.y,e.width,e.height),this.resetInfo()}};function k(t,e,s,i){return e?i!==e&&t.bindBuffer(s,e.glName):t.bindBuffer(s,null),e}function E(t,e){switch(t){case _.POINTS:return 2*e;case _.TRIANGLES:return e/3;case _.TRIANGLE_STRIP:case _.TRIANGLE_FAN:return e-2;default:return 0}}export{w as RenderingContext};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{disposeMaybe as s}from"../../core/maybe.js";class t{constructor(){this._result=!1}dispose(){this._program=s(this._program)}get result(){return null!=this._program&&(this._result=this._test(this._program),this.dispose()),this._result}}export{t as WebGLDriverTestModule};
2
+ class s{constructor(){this._result=!1}dispose(){this._program=null}get result(){return null!=this._program&&(this._result=this._test(this._program),this.dispose()),this._result}}export{s as WebGLDriverTestModule};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"../../core/has.js";import{glsl as e}from"../3d/webgl-engine/core/shaderModules/glsl.js";import{AppleAmdDriverHelper as r}from"./AppleAmdDriverHelper.js";import{BufferObject as t}from"./BufferObject.js";import{PrimitiveType as o,DataType as n,PixelType as i}from"./enums.js";import{FramebufferObject as s}from"./FramebufferObject.js";import{TextureDescriptor as a}from"./TextureDescriptor.js";import{WebGLDriverTestModule as p}from"./WebGLDriverTestModule.js";class l extends p{constructor(e){super(),this._rctx=e,this._helperProgram=null,has("mac")&&has("chrome")&&(this._program=this._prepareProgram(),this._helperProgram=this._prepareHelperProgram())}dispose(){super.dispose(),this._helperProgram?.dispose(),this._helperProgram=null}_test(e){const r=this._rctx,p=r.getBoundFramebufferObject(),{x:l,y:c,width:m,height:g}=r.getViewport();r.resetState();const f=new a(1);f.wrapMode=33071,f.samplingMode=9728;const d=new s(r,f),h=t.createIndex(this._rctx,35044,new Uint8Array([0]));r.bindFramebuffer(d),r.setViewport(0,0,1,1),r.useProgram(this._helperProgram),r.bindBuffer(h,34963),r.drawElements(o.POINTS,1,n.UNSIGNED_BYTE,0),r.useProgram(e),r.bindVAO(null),r.drawArrays(o.TRIANGLES,0,258);const u=new Uint8Array(4);return d.readPixels(0,0,1,1,6408,i.UNSIGNED_BYTE,u),r.setViewport(l,c,m,g),r.bindFramebuffer(p),d.dispose(),h.dispose(),255===u[0]}_prepareProgram(){const r=85,t=`#version 300 es\n precision highp float;\n\n out float triangleId;\n\n const vec3 triangleVertices[3] = vec3[3](vec3(-0.5, -0.5, 0.0), vec3(0.5, -0.5, 0.0), vec3(0.0, 0.5, 0.0));\n\n void main(void) {\n triangleId = floor(float(gl_VertexID)/3.0);\n\n vec3 position = triangleVertices[gl_VertexID % 3];\n float offset = triangleId / ${e.float(r)};\n position.z = 0.5 - offset;\n\n gl_Position = vec4(position, 1.0);\n }\n `,o=`#version 300 es\n precision highp float;\n\n in float triangleId;\n\n out vec4 fragColor;\n\n void main(void) {\n fragColor = triangleId == ${e.float(r)} ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);\n }\n `;return this._rctx.programCache.acquire(t,o,new Map([]))}_prepareHelperProgram(){const e=r.getShaderSources();return this._rctx.programCache.acquire(e.vertex,e.fragment,new Map([]))}}export{l as DrawArraysRequiresIndicesTypeReset};
2
+ import has from"../../core/has.js";import{glsl as e}from"../3d/webgl-engine/core/shaderModules/glsl.js";import{AppleAmdDriverHelper as r}from"./AppleAmdDriverHelper.js";import{BufferObject as t}from"./BufferObject.js";import{PrimitiveType as o,DataType as n,PixelType as i}from"./enums.js";import{FramebufferObject as s}from"./FramebufferObject.js";import{TextureDescriptor as a}from"./TextureDescriptor.js";import{WebGLDriverTestModule as p}from"./WebGLDriverTestModule.js";class c extends p{constructor(e){super(),this._rctx=e,this._helperProgram=null,has("mac")&&has("chrome")&&(this._program=this._prepareProgram(),this._helperProgram=this._prepareHelperProgram())}_test(e){const r=this._rctx,p=r.getBoundFramebufferObject(),{x:c,y:l,width:m,height:g}=r.getViewport();r.resetState();const f=new a(1);f.wrapMode=33071,f.samplingMode=9728;const d=new s(r,f),h=t.createIndex(this._rctx,35044,new Uint8Array([0]));r.bindFramebuffer(d),r.setViewport(0,0,1,1),r.useProgram(this._helperProgram),r.bindBuffer(h,34963),r.drawElements(o.POINTS,1,n.UNSIGNED_BYTE,0),r.useProgram(e),r.bindVAO(null),r.drawArrays(o.TRIANGLES,0,258);const u=new Uint8Array(4);return d.readPixels(0,0,1,1,6408,i.UNSIGNED_BYTE,u),r.setViewport(c,l,m,g),r.bindFramebuffer(p),d.dispose(),h.dispose(),255===u[0]}_prepareProgram(){const r=85,t=`#version 300 es\n precision highp float;\n\n out float triangleId;\n\n const vec3 triangleVertices[3] = vec3[3](vec3(-0.5, -0.5, 0.0), vec3(0.5, -0.5, 0.0), vec3(0.0, 0.5, 0.0));\n\n void main(void) {\n triangleId = floor(float(gl_VertexID)/3.0);\n\n vec3 position = triangleVertices[gl_VertexID % 3];\n float offset = triangleId / ${e.float(r)};\n position.z = 0.5 - offset;\n\n gl_Position = vec4(position, 1.0);\n }\n `,o=`#version 300 es\n precision highp float;\n\n in float triangleId;\n\n out vec4 fragColor;\n\n void main(void) {\n fragColor = triangleId == ${e.float(r)} ? vec4(0.0, 1.0, 0.0, 1.0) : vec4(1.0, 0.0, 0.0, 1.0);\n }\n `;return this._rctx.programCache.get(t,o,new Map([]))}_prepareHelperProgram(){const e=r.getShaderSources();return this._rctx.programCache.get(e.vertex,e.fragment,new Map([]))}}export{c as DrawArraysRequiresIndicesTypeReset};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{PixelType as r,SizedPixelFormat as e,PrimitiveType as t}from"./enums.js";import{FramebufferObject as o}from"./FramebufferObject.js";import{makePipelineState as i,destinationTimesOneMinusSourceAlpha as n}from"./renderState.js";import{TextureDescriptor as s}from"./TextureDescriptor.js";import{VertexArrayObject as a}from"./VertexArrayObject.js";import{Pos2usLocations as p,Pos2us as c}from"./VertexAttributeLayouts.js";import{VertexBuffer as f}from"./VertexBuffer.js";import{WebGLDriverTestModule as l}from"./WebGLDriverTestModule.js";class m extends l{constructor(r){if(super(),this._rctx=r,!r.gl)return;if(!(r.capabilities.colorBufferFloat?.textureFloat&&r.capabilities.colorBufferFloat?.floatBlend))return;const e="\n precision highp float;\n attribute vec2 position;\n\n void main() {\n gl_Position = vec4(position * 2.0 - 1.0, 0.0, 1.0);\n }\n ",t="\n precision highp float;\n\n void main() {\n gl_FragColor = vec4(0.5, 0.5, 0.5, 0.5);\n }\n ";this._program=r.programCache.acquire(e,t,p)}_test(p){const l=this._rctx,m=new s(1);m.wrapMode=33071,m.dataType=r.FLOAT,m.internalFormat=e.RGBA32F,m.samplingMode=9728;const u=new o(l,m),b=new f(l,c,new Uint16Array([0,0,1,0,0,1,1,1])),d=new a(l,b);l.gl.getError(),l.useProgram(p);const g=l.getBoundFramebufferObject(),{x:w,y:A,width:j,height:x}=l.getViewport();l.bindFramebuffer(u),l.setViewport(0,0,1,1),l.bindVAO(d),l.drawArrays(t.TRIANGLE_STRIP,0,4);const h=i({blending:n});l.setPipelineState(h),l.drawArrays(t.TRIANGLE_STRIP,0,4);const F=l.gl.getError();return l.setViewport(w,A,j,x),l.bindFramebuffer(g),d.dispose(),u.dispose(),F!==l.gl.INVALID_OPERATION||(console.warn("Device claims support for WebGL extension EXT_float_blend but does not support it. Using fall back."),!1)}}export{m as FloatBufferBlend};
2
+ import{PixelType as r,SizedPixelFormat as e,PrimitiveType as t}from"./enums.js";import{FramebufferObject as o}from"./FramebufferObject.js";import{makePipelineState as i,destinationTimesOneMinusSourceAlpha as n}from"./renderState.js";import{TextureDescriptor as s}from"./TextureDescriptor.js";import{VertexArrayObject as a}from"./VertexArrayObject.js";import{Pos2usLocations as p,Pos2us as c}from"./VertexAttributeLayouts.js";import{VertexBuffer as f}from"./VertexBuffer.js";import{WebGLDriverTestModule as l}from"./WebGLDriverTestModule.js";class m extends l{constructor(r){if(super(),this._rctx=r,!r.gl)return;if(!(r.capabilities.colorBufferFloat?.textureFloat&&r.capabilities.colorBufferFloat?.floatBlend))return;const e="\n precision highp float;\n attribute vec2 position;\n\n void main() {\n gl_Position = vec4(position * 2.0 - 1.0, 0.0, 1.0);\n }\n ",t="\n precision highp float;\n\n void main() {\n gl_FragColor = vec4(0.5, 0.5, 0.5, 0.5);\n }\n ";this._program=r.programCache.get(e,t,p)}_test(p){const l=this._rctx,m=new s(1);m.wrapMode=33071,m.dataType=r.FLOAT,m.internalFormat=e.RGBA32F,m.samplingMode=9728;const u=new o(l,m),b=new f(l,c,new Uint16Array([0,0,1,0,0,1,1,1])),d=new a(l,b);l.gl.getError(),l.useProgram(p);const g=l.getBoundFramebufferObject(),{x:w,y:A,width:j,height:x}=l.getViewport();l.bindFramebuffer(u),l.setViewport(0,0,1,1),l.bindVAO(d),l.drawArrays(t.TRIANGLE_STRIP,0,4);const h=i({blending:n});l.setPipelineState(h),l.drawArrays(t.TRIANGLE_STRIP,0,4);const F=l.gl.getError();return l.setViewport(w,A,j,x),l.bindFramebuffer(g),d.dispose(),u.dispose(),F!==l.gl.INVALID_OPERATION||(console.warn("Device claims support for WebGL extension EXT_float_blend but does not support it. Using fall back."),!1)}}export{m as FloatBufferBlend};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{PrimitiveType as e,PixelType as r}from"./enums.js";import{FramebufferObject as t}from"./FramebufferObject.js";import i from"./Texture.js";import{TextureDescriptor as o}from"./TextureDescriptor.js";import{VertexArrayObject as n}from"./VertexArrayObject.js";import{Pos2usLocations as s,Pos2us as a}from"./VertexAttributeLayouts.js";import{VertexBuffer as p}from"./VertexBuffer.js";import{WebGLDriverTestModule as m}from"./WebGLDriverTestModule.js";class u extends m{constructor(e){super(),this._rctx=e;const r="\n precision highp float;\n\n attribute vec2 position;\n varying vec2 v_uv;\n\n void main() {\n v_uv = position;\n gl_Position = vec4(position * 2.0 - 1.0, 0.0, 1.0);\n }\n ",t="\n precision highp float;\n\n varying vec2 v_uv;\n\n uniform sampler2D u_texture;\n\n void main() {\n gl_FragColor = texture2D(u_texture, v_uv);\n }\n ";this._program=e.programCache.acquire(r,t,s)}dispose(){super.dispose()}_test(s){const m=this._rctx;if(!m.gl)return s.dispose(),!0;const u=new o(1);u.wrapMode=33071,u.samplingMode=9728;const d=new t(m,u),g=new p(m,a,new Uint16Array([0,0,1,0,0,1,1,1])),f=new n(m,g),l=new o;l.samplingMode=9729,l.wrapMode=33071;const v=new i(m,l,c);m.useProgram(s),m.bindTexture(v,0),s.setUniform1i("u_texture",0);const w=m.getBoundFramebufferObject(),{x:h,y:x,width:b,height:_}=m.getViewport();m.bindFramebuffer(d),m.setViewport(0,0,1,1),m.setClearColor(0,0,0,0),m.setBlendingEnabled(!1),m.clear(16384),m.bindVAO(f),m.drawArrays(e.TRIANGLE_STRIP,0,4);const j=new Uint8Array(4);return d.readPixels(0,0,1,1,6408,r.UNSIGNED_BYTE,j),f.dispose(),d.dispose(),v.dispose(),m.setViewport(h,x,b,_),m.bindFramebuffer(w),255!==j[0]}}const c=new Image;c.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",c.width=5,c.height=5,c.decode();export{u as SVGPremultipliedAlpha};
2
+ import{PrimitiveType as e,PixelType as r}from"./enums.js";import{FramebufferObject as t}from"./FramebufferObject.js";import i from"./Texture.js";import{TextureDescriptor as o}from"./TextureDescriptor.js";import{VertexArrayObject as n}from"./VertexArrayObject.js";import{Pos2usLocations as s,Pos2us as a}from"./VertexAttributeLayouts.js";import{VertexBuffer as m}from"./VertexBuffer.js";import{WebGLDriverTestModule as p}from"./WebGLDriverTestModule.js";class u extends p{constructor(e){super(),this._rctx=e;const r="\n precision highp float;\n\n attribute vec2 position;\n varying vec2 v_uv;\n\n void main() {\n v_uv = position;\n gl_Position = vec4(position * 2.0 - 1.0, 0.0, 1.0);\n }\n ",t="\n precision highp float;\n\n varying vec2 v_uv;\n\n uniform sampler2D u_texture;\n\n void main() {\n gl_FragColor = texture2D(u_texture, v_uv);\n }\n ";this._program=e.programCache.get(r,t,s)}dispose(){super.dispose()}_test(s){const p=this._rctx;if(!p.gl)return!0;const u=new o(1);u.wrapMode=33071,u.samplingMode=9728;const d=new t(p,u),g=new m(p,a,new Uint16Array([0,0,1,0,0,1,1,1])),f=new n(p,g),l=new o;l.samplingMode=9729,l.wrapMode=33071;const v=new i(p,l,c);p.useProgram(s),p.bindTexture(v,0),s.setUniform1i("u_texture",0);const w=p.getBoundFramebufferObject(),{x:h,y:x,width:b,height:_}=p.getViewport();p.bindFramebuffer(d),p.setViewport(0,0,1,1),p.setClearColor(0,0,0,0),p.setBlendingEnabled(!1),p.clear(16384),p.bindVAO(f),p.drawArrays(e.TRIANGLE_STRIP,0,4);const j=new Uint8Array(4);return d.readPixels(0,0,1,1,6408,r.UNSIGNED_BYTE,j),f.dispose(),d.dispose(),v.dispose(),p.setViewport(h,x,b,_),p.bindFramebuffer(w),255!==j[0]}}const c=new Image;c.src="data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8'%3F%3E%3Csvg width='5' height='5' version='1.1' viewBox='0 0 5 5' xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='5' height='5' fill='%23f00' fill-opacity='.5'/%3E%3C/svg%3E%0A",c.width=5,c.height=5,c.decode();export{u as SVGPremultipliedAlpha};
@@ -4,18 +4,22 @@ import type { JSONSupport } from "../core/JSONSupport.js";
4
4
  export interface GlowProperties extends Partial<Pick<Glow, "intensity">> {}
5
5
 
6
6
  /**
7
- * [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) accentuates the effects of light emitters for illustrative visualizations, such as highlighting
8
- * or filtering. When [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) is `null`, mimic the natural behavior of light scattering in the atmosphere.
9
- * Without glow, emissive elements display with a bright, natural appearance. Glow enables a stylized look of emissive
10
- * elements in the scene.
7
+ * [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) is a global stylized effect that enhances the appearance of light-emitting elements and applies
8
+ * to all emitters in the scene. If a scene contains no emissive elements, enabling glow has no visible effect.
11
9
  *
12
- * An intensity setting of `0` adds a subtle glow only, while an intensity setting `1` adds
13
- * an exaggerated glow, helpful for strong emphasis of emissive elements.
10
+ * When [Glow](https://developers.arcgis.com/javascript/latest/references/core/webscene/Glow/) is set to null, emissive elements render naturally, simulating atmospheric light scattering
11
+ * with a bright but realistic appearance. The intensity controls the strength of the effect: a value of 0 produces a
12
+ * subtle glow, while 1 creates a pronounced, exaggerated glow for strong visual emphasis.
14
13
  *
15
- * | ![glowNull](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/emissiveStrength1.png)|![glow0](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/glow0.png)|![glow1](https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/glow1.png)|
14
+ * Add light emitters to the scene by configuring [Symbol3DEmissive](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/Symbol3DEmissive/) property in [Symbol3DMaterial](https://developers.arcgis.com/javascript/latest/references/core/symbols/support/Symbol3DMaterial/)
15
+ * on volumetric symbol layers, or by including 3D models with emission defined (for example, via emissive maps or
16
+ * materials with an emissive color or factor). See the [Visualization with light-emitting symbols](https://developers.arcgis.com/javascript/latest/sample-code/light-emitting-symbols/) sample to learn how
17
+ * to use emissive materials and glow to highlight features and build nighttime scenes.
18
+ *
19
+ * |<img src="https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/emissiveStrength1.png" style="width:250px;"/>|<img src="https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/glow0.png" style="width:250px;"/>|<img src="https://developers.arcgis.com/javascript/latest/assets/references/core/symbols/symbol3Dmaterial/glow1.png" style="width:250px;"/>|
16
20
  * | ---------- | ----------- | ----------- |
17
21
  * | `glow: null`|`glow: { intensity: 0 }`|`glow: { intensity: 1 }`|
18
- * | Without glow, emissive elements display with a bright, natural appearance. | Glow enables a more stylized look of emissive elements across the scene. `intensity:0` adds a subtle glow only. | While `intensity:1` adds an exaggerated glow, helpful for strong emphasis of emissive elements.
22
+ * | Without glow, emissive elements display with a bright, natural appearance. | Glow enables a more stylized look of emissive elements across the scene. `intensity:0` adds a subtle glow only. | `intensity:1` adds an exaggerated glow, helpful for strong emphasis of emissive elements.
19
23
  *
20
24
  * > [!WARNING]
21
25
  * >
@@ -25,14 +29,15 @@ export interface GlowProperties extends Partial<Pick<Glow, "intensity">> {}
25
29
  * Example:
26
30
  * ```js
27
31
  * let view = new SceneView({
28
- * container: "viewDiv",
29
- *
30
32
  * map: new Map({
31
33
  * basemap: "satellite",
32
34
  * ground: "world-elevation"
33
35
  * }),
34
36
  * environment: {
35
- * glow: new Glow()
37
+ * lighting: {
38
+ * type: "sun",
39
+ * glow: { intensity: 0.2 },
40
+ * }
36
41
  * }
37
42
  * });
38
43
  * ```
@@ -43,14 +48,14 @@ export interface GlowProperties extends Partial<Pick<Glow, "intensity">> {}
43
48
  * });
44
49
  * ```
45
50
  *
46
- * @see [Visualization with light-emitting symbols](https://developers.arcgis.com/javascript/latest/light-emitting-symbols/)
51
+ * @see [Sample - Visualization with light-emitting symbols](https://developers.arcgis.com/javascript/latest/sample-code/light-emitting-symbols/)
47
52
  * @since 5.0
48
53
  */
49
54
  export default class Glow extends GlowSuperclass {
50
55
  constructor(properties?: GlowProperties);
51
56
  /**
52
- * Specifies the magnitude of the glow around light emitters within a range of 0 to 1. Higher values will increase the
53
- * affected area around light emitters.
57
+ * Amount of stylized glow on emissive elements in the scene. The range spans from 0 to 1, going from subtle to strong
58
+ * stylized glow for emphasis.
54
59
  *
55
60
  * @default 0.5
56
61
  */
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../Graphic.js";import a from"../../core/Error.js";import{makeHandle as i,handlesGroup as r,abortHandle as s}from"../../core/handleUtils.js";import"../../core/has.js";import o from"../../core/Logger.js";import{removeMaybe as n,destroyMaybe as l}from"../../core/maybe.js";import{isPromiseLike as d,debounce as c}from"../../core/promiseUtils.js";import{watch as u,when as h,initial as p,whenOnce as m,syncAndInitial as f}from"../../core/reactiveUtils.js";import{generateBracedUUID as w}from"../../core/uuid.js";import{property as g,subclass as y}from"../../core/accessorSupport/decorators.js";import{isSharedTemplateOrMetadata as v,isSharedTemplate as _,getCreationAttributes as F,isStandardFeatureTemplate as b}from"../../editing/templateUtils.js";import{getFullTemplate as M}from"../../editing/sharedTemplates/templateLoader.js";import I from"../../layers/GraphicsLayer.js";import{isTable as V}from"../../layers/support/layerUtils.js";import{isNumber as k}from"../../support/guards.js";import{getDisplayedSymbol as S}from"../../symbols/support/symbolUtils.js";import{getDrawHelpMessage as T}from"../../views/draw/support/helpMessageUtils.js";import A from"../../views/draw/support/HighlightHelper.js";import C from"../../views/interactive/sketch/SketchOptions.js";import P from"../../views/interactive/snapping/FeatureSnappingLayerSource.js";import{temporaryHighlightName as E}from"../../views/support/HighlightDefaults.js";import H from"./CreateFeaturesWorkflowData.js";import{isModelUpload as L,handleModelUpload as U}from"./modelUploadUtils.js";import j from"./Workflow.js";import{createToolFromGeometryType as x,findEditorItemForLayer as O,getServiceEditsFromWorkflowData as z,getServiceInfoForLayer as W,orderEditsByRelationshipDependencies as D,getServiceLayersById as R,startCreatingNewFeature as G,findLayerInfo as N,updateGraphicSymbolWhenRequired as K,isTerminalUpdateEventType as Z,getVisualVariableAttributes as q,startUpdatingFeatureGeometry as B,createWorkflowSteps as J,avoidFeatureTemplateSelectionWithOnlyOneItem as Q,setUpSketchCreateWatchers as X,setRelationshipFields as Y,prepareAttachmentsForCreateFeaturesWorkflow as $,showProgressCursor as ee,setVisualVariablesAndElevationInfoForUpdate as te,visualVariableInteractiveUpdate as ae}from"./workflowUtils.js";import ie from"../FeatureForm/FeatureFormViewModel.js";import re from"../Sketch/SketchViewModel.js";var se;const oe=Symbol(),ne=Symbol(),le=Symbol(),de=Symbol(),ce={point:["point"],multipoint:["multipoint"],polygon:["polygon","freehandPolygon","rectangle","circle"],polyline:["polyline","freehandPolyline"],mesh:[],multipatch:[]};let ue=se=class extends j{constructor(e){super(e),this.type="create-features",this.createFeatureState="create-new",this.data=void 0,this.isNested=!1,this._getDrawMeshHelpMessage=void 0,this._webStyleCache=new Map,this._featureFormHandle=null,this._visualVariableAttributes={rotation:null,size:null},this._formViewModel=new ie,this._sketchLayer=null,this._sketchViewModel=null,this._attachmentFileInfos=new Map,this._isActive=!0}initialize(){this.isNested&&(this._isActive=!1),this._initializeSketchViewModel()}destroy(){this._sketchViewModel.destroy()}get allowSave(){return!this.updating}get formViewModel(){return this._formViewModel}get hasInvalidFormTemplate(){return!!this.data.editorItem?.hasInvalidFormTemplate}get hasPendingEdits(){if(this.pendingFeatures.some(e=>!!this.data.getEditsForPendingFeature(e)?.modified))return!0;const{creationInfo:e,upload:t}=this.data,{activeComponent:a,createGraphic:i}=this._sketchViewModel,r=i?.geometry?.type;return!("polyline"!==r&&"polygon"!==r&&"multipoint"!==r||"draw-2d"!==a?.type&&"draw-3d"!==a?.type)&&a.drawOperation.committedVertices.length>0||(!(!t||"pending"!==t.state&&"success"!==t.state)||!!e?.geometryToPlace)}get hasPreviousStep(){return this._stepIndex>0||"update-pending"===this.createFeatureState&&!!this.data.selectedPendingFeature&&!this.parent&&!L(this.data.creationInfo)}get helpMessage(){const{creationInfo:e,viewModel:t}=this.data;if("creating-features"!==this.stepId||!e)return;const{_sketchViewModel:a}=this,{drawTool:i,isUsingLegacyCreateTools:r}=a;if(!r)return i?.helpMessageKey??"noTool";const s=e.layer.geometryType,o=a.createGraphic;if("mesh"===s){this._getDrawMeshHelpMessage||import("../../views/draw/support/helpMessageUtils3d.js").then(e=>{this._getDrawMeshHelpMessage=e.getDrawMeshHelpMessage});const{view:e}=t;return"3d"===e?.type?this._getDrawMeshHelpMessage?.(o,e):void 0}const{activeCreateToolDrawMode:n,activeTool:l}=a;return T("rectangle"===l||"circle"===l?l:s,o?.geometry,n)}get layer(){return this.data.creationInfo?.layer}get numPendingFeatures(){return this.pendingFeatures.length}get numPendingFeaturesExcludingHidden(){return this.pendingFeatures.filter(e=>this.data.isDisplayable(e)).length}get parent(){return this.data.parent}get pendingFeatures(){return this.data.pendingFeatures}get keyboardCancellationEnabled(){return 0===this.numPendingFeatures}get reliesOnOwnerAdminPrivileges(){return this.data.editorItem?.capabilities.create.reliesOnOwnerAdminPrivileges??!1}get saveActionLabel(){return"create"}get shouldShowAttachments(){return(this.data.selectedPendingFeature&&this.data.editorItem?.capabilities.create.attachments.enabled)??!1}get shouldAllowAttachmentEditing(){return this.shouldShowAttachments}get sketchViewModel(){return this._sketchViewModel}get test(){}get availableCreateTools(){const e=this.data.creationInfo?.layer.geometryType,t=this.data.viewModel.view;if(!e)return[];if(this.data.creationInfo?.maxFeatures&&this.data.creationInfo.maxFeatures<=this.numPendingFeatures)return[];if(v(this.data.fullTemplate)){const{tool:t}=x(e,this.data.fullTemplate);return[t]}return"2d"!==t?.type&&"multipoint"===e?[]:[...ce[e]]}get _attachmentsActive(){const e=this.data.viewModel.attachmentsViewModel.mode,t=this.stepId;return this.shouldShowAttachments&&("add"===e||"edit"===e||"adding-attachment"===t||"editing-attachment"===t)}async enter(){this._isActive=!0,"awaiting-feature-creation-info"!==this.stepId&&await this._updatingHandles.addPromise(this._setUpCreatingFeaturesStep())}exit(){this._isActive=!1,this.removeHandles([le])}async updatePendingFeature(e){if(e!==this.data.selectedPendingFeature)return this._sketchViewModel.cancel(),this._startUpdating({feature:e})}async start(){return await super.start(),V(this.data.creationInfo?.layer)?null:{enter:async()=>{},exit:async()=>{},viewModel:this._sketchViewModel}}async save(){const{formViewModel:e}=this;if(e.pendingSubtypeChoice)return;e.submit(),this._stashValidationState();const t=this.data.selectedPendingFeature,a=this._hasValidationErrors(t)?t:this.data.pendingFeatures.find(e=>this._hasValidationErrors(e));return a?(await this._startUpdating({feature:a}),void e?.submit()):super.save()}back(e){return"update-pending"!==this.createFeatureState||!this.data.selectedPendingFeature||L(this.data.creationInfo)||this._attachmentsActive||this.parent?super.back(e):this._clearSelectedFeature()}previous(e){return"update-pending"!==this.createFeatureState||!this.data.selectedPendingFeature||L(this.data.creationInfo)||this._attachmentsActive?super.previous(e):this._clearSelectedFeature()}cancelFeature(e){this.data.isSharedTemplateWorkflow?o.getLogger(this).warn("Cannot cancel individual features created by shared templates."):(this.data.removePendingFeature(e),this.sketchViewModel.removeGraphic(e))}static create(e){const{addAttachmentsCallback:t,applyEdits:a,applyEditsFeatureService:i,isNested:r,creationInfo:s,parent:o,snappingManager:n,startAt:l,viewModel:d}=e,c=e.sketchOptions??new C,u=s?.layer,h=u?O(d.editorItems,u):void 0,p=new se({data:new H({creationInfo:s,editorItem:h,parent:o,sketchOptions:c,snappingManager:n,viewModel:d}),isNested:r,onCommit:async e=>{const{creationInfo:r}=e;if(!r)return;p._sketchViewModel.cancel();const s=e.pendingFeatures.toArray(),{layer:o}=r,n=o.capabilities?.editing.supportsGlobalId&&"globalIdField"in o,l=p._attachmentFileInfos,{fullTemplate:c}=e,u=z(p.data),h=_(c)&&u;if(n){if(fe(s),h){let t=ge(u,l);const a=await(W(o,d.view)?.load());a&&(t=D({edits:t,serviceInfo:a,view:d.view,findOriginalFeature:t=>e.getEditsForPendingFeature(t)?.initialFeature??t})),await i(c.featureService,t,{globalIdUsed:!0,honorSequenceOfEdits:!0,gdbVersion:c.layer.gdbVersion??void 0})}else{const e=we(s,l);await a(o,e,{globalIdUsed:!0})}return}const m=h?await i(c.featureService,u,{gdbVersion:c.layer.gdbVersion??void 0}):[await a(o,{addFeatures:s})];m&&l.size>0&&await Promise.all(m.map(e=>{if(e?.addFeatureResults)return t(o,me(s,e.addFeatureResults,o,l))}))}});return p._set("steps",this._createWorkflowSteps(p,l)),p}_fadeExistingFeatures(e){if("effect"in e){const t=e.effect;return e.effect="saturate(0.6) opacity(0.8)",i(()=>e.effect=t)}const t=e.opacity;return e.opacity=.7,i(()=>e.opacity=t)}async _initializeFullTemplateAndExecutorInfo(e){const{creationInfo:t}=e,{view:a}=e.viewModel;if(!t||!a)return null;const i=await M(a,t.template);if(e.fullTemplate=i,i&&_(i)){const{createTemplateExecutor:r}=await import("../../editing/sharedTemplates/executor/createTemplateExecutor.js"),s={completionResults:[],executor:await r(i),serviceLayersById:R(t.layer,a)};e.templateExecutorInfo=s}return i}async _startCreating(){this.removeHandles(ne);const{data:e}=this;if(!e.creationInfo)return;const t=this.data.creationInfo?.maxFeatures;if(t&&this.numPendingFeatures>=t)return this.sketchViewModel.cancel(),void(this.numPendingFeatures&&await this._startUpdating({feature:this.pendingFeatures.at(-1)}));this.createFeatureState="create-new",await G(this._sketchViewModel,this._sketchLayer,e,this._webStyleCache)}async _clearSelectedFeature(){const e=this._formViewModel.pendingSubtypeChoice;e&&(e.resolve("undo"),await e.promise),this._stashValidationState(),this.sketchViewModel.cancel(),this.data.selectedPendingFeature=null,this._featureFormHandle=n(this._featureFormHandle),this._formViewModel.feature=null;const t=this.data.viewModel.attachmentsViewModel;"add"!==t.mode&&"edit"!==t.mode||await(this.data.viewModel.activeWorkflow?.previous())}_stashValidationState(){const e=this._formViewModel.feature,t=e&&this.data.getEditsForPendingFeature(e);t&&(t.submittable=this._formViewModel.submittable)}async _selectFeatureForUpdate({feature:e,initialFeature:t=e}){this._stashValidationState();const{data:a,pendingFeatures:i,_webStyleCache:s}=this;i.includes(e)||a.addPendingFeature(e,t),a.selectedPendingFeature=e;const{_formViewModel:o,_sketchViewModel:l}=this,{creationInfo:d,viewModel:c}=a,{attachmentsViewModel:h,layerInfos:p,view:m}=c;if(!m||!d)return;n(this._featureFormHandle);const f=e.sourceLayer,w=N(p,f),g=w?.formTemplate,y=m.spatialReference;o.set({editType:"INSERT",feature:e,formTemplate:g,spatialReference:y,map:m.map}),"add"!==h.mode&&"edit"!==h.mode||await(c.activeWorkflow?.previous()),h.graphic=e,h.fileInfos.removeAll(),h.mode="view";(this._attachmentFileInfos.get(e)||[]).forEach(({file:e,form:t})=>h.addFile(e,t)),await K(e,s,"2d"===m.type?m.scale:null);const v=a.getEditsForPendingFeature(e);this._featureFormHandle=r([o.on("value-change",async({fieldName:t,value:a})=>{if(v?.updateAttributes(o.getValues()),k(a)){const e=this._visualVariableAttributes;e.size&&!e.size.isUpdatingInteractively&&t===e.size.field&&e.size.setInitialValue(a),e.rotation&&!e.rotation.isUpdatingInteractively&&t===e.rotation.field&&e.rotation.setInitialValue(a)}await K(e,s,"2d"===m.type?m.scale:null)}),l.on(["update","undo","redo"],e=>{("undo"===e.type||"redo"===e.type||"update"===e.type&&null!=e.toolEventInfo&&Z(e.toolEventInfo.type))&&o.notifyFeatureGeometryChanged()}),u(()=>o.feature?.sourceLayer,t=>e.sourceLayer=t),u(()=>[o.feature,o.submittable],()=>this._stashValidationState())]),this.createFeatureState="update-pending"}async _startUpdating({feature:e,initialFeature:t=e}){await this._selectFeatureForUpdate({feature:e,initialFeature:t});const{_sketchLayer:a,_sketchViewModel:i,data:r}=this,{creationInfo:s,viewModel:o}=r,{view:n}=o;if(!n||!s)return;const l=e.sourceLayer??s.layer;return V(l)?void 0:(this._visualVariableAttributes=q(e),B({graphic:e,sketchLayer:a,sketchViewModel:i,sourceLayer:l,visualVariables:this._visualVariableAttributes,webStyleCache:this._webStyleCache}))}static _createWorkflowSteps(e,t="awaiting-feature-creation-info"){const{data:a}=e,i=J(["awaiting-feature-creation-info","creating-features","adding-attachment","editing-attachment"],t,{"awaiting-feature-creation-info":()=>({id:"awaiting-feature-creation-info",async setUp(){const{creationInfo:t,viewModel:i}=a,{view:r}=i;r&&(L(t)?e.addHandles(await U({view:r,data:a,next:()=>e.next(),cancel:()=>i.cancelWorkflow({warnIfNoWorkflow:!1})}),this.id):(a.parent&&t&&e.addHandles(i.restrictFeatureTemplatesViewModelToLayer(t.layer),this.id),e.addHandles(i.featureTemplatesViewModel.on("select",({item:t})=>{t&&(a.creationInfo={...a.creationInfo,layer:t.layer,template:t.template},e.next())}),this.id)))},async tearDown(){e.removeHandles(this.id)}}),"creating-features":()=>({id:"creating-features",async setUp(){e._isActive&&await e._setUpCreatingFeaturesStep()},async tearDown(t){const{viewModel:i}=a;t.canceled&&(e.removeHandles([le,oe,ne,de]),i.attachmentsViewModel.fileInfos.removeAll(),e._attachmentFileInfos.clear())}}),"adding-attachment":()=>({id:"adding-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=a.viewModel,{graphic:i,fileInfos:r}=t;e._attachmentFileInfos.set(i,r.toArray()),t.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=a.viewModel,{graphic:i,fileInfos:r}=t;e._attachmentFileInfos.set(i,r.toArray()),t.mode="view"}})});return Q(a,i)}static _configureSketchViewModel(e){const{data:t,_sketchLayer:a,_sketchViewModel:s,_webStyleCache:o}=e,{creationInfo:n,viewModel:l}=t,{view:d}=l,p=[];if(!d)return i();if("2d"===d.type){n&&p.push(e._fadeExistingFeatures(n.layer));const t=c((e,t)=>Promise.all(e.map(e=>K(e,o,t))));p.push(u(()=>d.scale,e=>t(a.graphics,e)))}const m=F(t.fullTemplate,n?.attributeOverrides),f=u(()=>s.createGraphic,a=>{a&&!e.hasHandles(ne)&&e._updatingHandles.consumePromise(X({creationAttributes:m,data:t,sketchViewModel:s,view:d,webStyleCache:o}).then(t=>e.addHandles(t,ne)))}),w=async t=>{if("cancel"!==t.state&&"complete"!==t.state||e.removeHandles(ne),"cancel"===t.state&&null!==d.activeTool&&d.activeTool!==e.sketchViewModel.activeComponent&&(await e._waitForActiveToolCleared(),await e._startCreating()),"complete"===t.state&&t.graphic){const a=await e._processEdits(t.graphic,{scale:"2d"===d.type?d.scale:null,useSourceLayer:!0,webStyleCache:e._webStyleCache});a&&(await e._waitForActiveToolCleared(),await e._startUpdating({feature:a}))}},g=async i=>{const{attachmentsViewModel:r}=l,{_formViewModel:o}=e;if(i.graphics.length>1)return void await e._clearSelectedFeature();const c=i.graphics[0];if("complete"===i.state){const{submittable:t}=o;if(e.numPendingFeatures!==n?.maxFeatures&&t||o.submit(),await e._clearSelectedFeature(),"add"!==r.mode&&"edit"!==r.mode||await(l.activeWorkflow?.previous()),!i.aborted&&d.activeTool===e.sketchViewModel.activeComponent&&(await e.sketchViewModel.wait(),"ready"===e.sketchViewModel.state&&"mesh"!==e.data.creationInfo?.layer.geometryType))return e._startCreating()}else{if("start"===i.state)return c.sourceLayer??=t.creationInfo?.layer,await te({graphic:c,sketchLayer:a,sketchViewModel:s,visualVariables:e._visualVariableAttributes,webStyleCache:e._webStyleCache,sourceLayer:c.sourceLayer}),e._selectFeatureForUpdate({feature:c});if("active"===i.state){await e.updatePendingFeature(c);const t=e._visualVariableAttributes;ae(d,c,i,t)&&await K(c,e._webStyleCache,"2d"===d.type?d.scale:null);const a=c.attributes,{rotation:r,size:s}=t;if(null!=r){const{field:e}=r;o.setValue(e,a[e])}if(null!=s){const{field:e}=s;o.setValue(e,a[e])}}}},y=async a=>{if(a.graphics.forEach(e=>{t.removePendingFeature(e)}),!L(t.creationInfo))return e._startCreating()},v=async()=>{if(L(t.creationInfo))try{await e.data.viewModel.back()}catch{}return e._startCreating()};p.push(f,s.on("create",t=>e._updatingHandles.addPromise(w(t))),s.on("update",t=>e._updatingHandles.addPromise(g(t))),s.on("delete",t=>e._updatingHandles.addPromise(y(t))),h(()=>!e.numPendingFeatures,()=>e._updatingHandles.addPromise(v())),i(()=>{s.cancel()}),he(s,a,t),...pe(t));const _=r(p);return s.addHandles(_),_}_initializeSketchViewModel(){const{data:e}=this,{view:t}=e.viewModel,a=new I({elevationInfo:e.creationInfo?.layer.elevationInfo,internal:!0,listMode:"hide",title:"createFeaturesWorkflow-internal"}),r=new re({layer:a,creationMode:"single",sketchOptions:e.sketchOptions,snappingManager:e.snappingManager,useLegacyCreateTools:e.viewModel.useLegacyCreateTools,updateOnGraphicClick:!1,defaultUpdateOptions:{multipleSelectionEnabled:!1},view:t});this._sketchLayer=a,this._sketchViewModel=r,t?.map.add(a),this.addHandles([i(()=>{t?.destroyed||t?.map.remove(a),a.destroy()}),u(()=>this.numPendingFeatures>0,e=>this._sketchViewModel.updateOnGraphicClick=e,p)])}_hasValidationErrors(e){return!!e&&(!this.data.isSubmittable(e)||!!this._formViewModel.validateContingencyConstraints(e.attributes,{includeIncompleteViolations:!0})?.length)}async _processEdits(e,t){const{data:a,_formViewModel:i,_sketchLayer:r}=this,{layerInfos:s,view:o}=a.viewModel;i.editType="INSERT",i.map=o?.map,i.spatialReference=o?.spatialReference;const{templateExecutorInfo:n}=a;if(!n){const t=e.clone();return t.geometry=null,await this._addAndInitializeEdits(e,t),e}r.remove(e);const{executor:l}=n,c=l(e.geometry,"completion"),u=d(c)?await c:c;n.completionResults.push(u),Y(u.relationships),i.editType="INSERT",i.map=o?.map,i.spatialReference=o?.spatialReference,u.primary&&a.creationInfo?.attributeOverrides&&(u.primary.graphic.attributes={...u.primary.graphic.attributes,...a.creationInfo.attributeOverrides});for(const d of u.edits){let e=null;if(d.addFeatures)for(const a of d.addFeatures){const i=a.clone();i.geometry=null,null!=a.geometry&&(a.symbol=await S(a,t),r.add(a)),a.sourceLayer!==e?.layer&&(e=N(s,a.sourceLayer));const o=!!u.associationGraphics?.has(a);await this._addAndInitializeEdits(a,i,e,o)}}i.feature=null,await m(()=>!i.updating);return u.edits.reduce((e,t)=>e+(t.addFeatures?.length??0),0)>1?null:u.primary?.graphic}async _addAndInitializeEdits(e,t,a,i=!1){const{data:r,_formViewModel:s}=this,{layerInfos:o}=r.viewModel,n=r.addPendingFeature(e,t,{isAssociation:i});a??=N(o,e.sourceLayer),s.feature=e,s.formTemplate=a?.formTemplate,await m(()=>!s.updating),n.updateAttributes(s.getValues()),n.submittable=s.submittable}async _setUpCreatingFeaturesStep(){if(this.hasHandles(le))return;const{data:e,sketchViewModel:s}=this,{creationInfo:o,viewModel:l}=e,{attachmentsViewModel:d,view:c}=l;if(!c||!o?.layer)throw new a("missing-parameters","CreateFeaturesWorkflow requires a view and creationInfo.");const{initialFeature:h,layer:m}=o,f=[],w=[];this._featureFormHandle=n(this._featureFormHandle),this._visualVariableAttributes={rotation:null,size:null},e.editorItem=O(l.editorItems,o.layer),o.template&&(null==e.fullTemplate&&await this._initializeFullTemplateAndExecutorInfo(e),w.push(i(()=>{e.templateExecutorInfo&&(e.templateExecutorInfo.completionResults=[])}))),s.allowDeleteKey=!e.isSharedTemplateWorkflow,$(d),f.push(u(()=>d.mode,e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}}));const g=ee(c);f.push(g);const y=V(o.layer),{template:_}=o,M=!_||b(_)||v(_)&&"feature"===_.type,I=y&&M;try{if(I){const a=h??new t({attributes:F(e.fullTemplate,o.attributeOverrides),sourceLayer:m}),i=await this._processEdits(a);i&&await this._startUpdating({feature:i})}else f.push(se._configureSketchViewModel(this)),h?(L(o)&&o.geometryToPlace&&(h.attributes=F(e.fullTemplate,o.attributeOverrides)),s.addGraphic(h),await this._startUpdating({feature:h})):await this._startCreating()}finally{g.remove()}const k=i(()=>{for(const t of e.pendingFeatures)s.removeGraphic(t),e.removePendingFeature(t)}),S=u(()=>c?.timeZone,e=>{this._formViewModel.timeZone=e,this.data.timeZone=e},p),T=i(()=>{L(o)&&l.cancelWorkflow({warnIfNoWorkflow:!1})});this._featureFormHandle&&f.push(this._featureFormHandle),this.addHandles(f,this._handleKeys.beforeCommit),this.addHandles(w,this._handleKeys.afterCommit),this.addHandles([i(()=>d.fileInfos.removeAll()),r(f),r(w),T,k,S],le)}async _waitForActiveToolCleared(){const e=this.data.viewModel.view;if(null==e?.activeTool)return;const t=new AbortController;this.addHandles(s(t),de),await m(()=>null==e?.activeTool,t.signal),t.abort()}};function he(e,t,a){let s=null;const o=()=>e.snappingOptions.featureSources,n=()=>(s=new P({layer:t}),o().add(s),s),d=()=>{null!=s&&(o().remove(s),s=l(s))};return r([u(()=>{const e=a.creationInfo?.layer,t=o().find(t=>t.layer===e);return{hasFeatureLayerSource:!!t,enabled:t?.enabled??!1}},({hasFeatureLayerSource:e,enabled:t})=>{if(!e)return d();s??=n(),s.enabled=t},f),i(d)])}function pe(e){const t=e.viewModel.view;if(!t)return[];const a=[];if("3d"===t.type){const r=new A({view:t});a.push(u(()=>e.selectedPendingFeature,(e,t)=>{r.remove(e),r.add(t)}),i(()=>r.destroy()))}const r=new A({view:t,highlightName:E});return a.push(u(()=>e.temporaryHighlightFeature,e=>{r.removeAll(),r.add(e)}),i(()=>r.destroy())),a}function me(e,t,a,i){const r=[];return t.forEach((t,s)=>{if(!t.error){const o=e[s],n=i.get(o)||[];o.attributes[a.objectIdField]=t.objectId,n.forEach(({form:e})=>r.push({feature:o,attachment:e}))}}),r}function fe(e){for(const t of e){const{sourceLayer:e}=t;e&&"globalIdField"in e&&null!=e.globalIdField&&(t.attributes[e.globalIdField]??=w())}}function we(e,t){const a=[];if(!t||0===t.size)return{addFeatures:e};for(const[i,r]of t)for(const{file:e}of r)a.push({feature:i,attachment:{globalId:w(),data:e}});return a.length?{addFeatures:e,addAttachments:a}:{addFeatures:e}}function ge(e,t){return e.map(e=>{const{addFeatures:a}=e;if(!a||0===a.length)return e;const i=[];for(const r of a){const e=t.get(r);if(e)for(const{file:t}of e)i.push({feature:r,attachment:{globalId:w(),data:t}})}return i.length?{...e,addAttachments:i}:e})}e([g()],ue.prototype,"allowSave",null),e([g()],ue.prototype,"createFeatureState",void 0),e([g()],ue.prototype,"data",void 0),e([g({constructOnly:!0})],ue.prototype,"isNested",void 0),e([g()],ue.prototype,"formViewModel",null),e([g()],ue.prototype,"hasInvalidFormTemplate",null),e([g()],ue.prototype,"hasPendingEdits",null),e([g()],ue.prototype,"hasPreviousStep",null),e([g()],ue.prototype,"_getDrawMeshHelpMessage",void 0),e([g()],ue.prototype,"helpMessage",null),e([g()],ue.prototype,"layer",null),e([g()],ue.prototype,"parent",null),e([g()],ue.prototype,"keyboardCancellationEnabled",null),e([g()],ue.prototype,"reliesOnOwnerAdminPrivileges",null),e([g()],ue.prototype,"saveActionLabel",null),e([g()],ue.prototype,"shouldShowAttachments",null),e([g()],ue.prototype,"shouldAllowAttachmentEditing",null),e([g()],ue.prototype,"sketchViewModel",null),e([g()],ue.prototype,"availableCreateTools",null),e([g()],ue.prototype,"_attachmentsActive",null),ue=se=e([y("esri.widgets.Editor.CreateFeaturesWorkflow")],ue);const ye=ue;export{ye as default};
2
+ import{__decorate as e}from"tslib";import t from"../../Graphic.js";import a from"../../core/Error.js";import{makeHandle as i,handlesGroup as r,abortHandle as s}from"../../core/handleUtils.js";import"../../core/has.js";import o from"../../core/Logger.js";import{removeMaybe as n,destroyMaybe as l}from"../../core/maybe.js";import{isPromiseLike as d,debounce as c}from"../../core/promiseUtils.js";import{watch as u,when as h,initial as p,whenOnce as m,syncAndInitial as f}from"../../core/reactiveUtils.js";import{generateBracedUUID as g}from"../../core/uuid.js";import{property as w,subclass as y}from"../../core/accessorSupport/decorators.js";import{isSharedTemplateOrMetadata as v,isSharedTemplate as _,getCreationAttributes as F,isStandardFeatureTemplate as b}from"../../editing/templateUtils.js";import{getFullTemplate as M}from"../../editing/sharedTemplates/templateLoader.js";import I from"../../layers/GraphicsLayer.js";import{isSceneLayer as V,isTable as k}from"../../layers/support/layerUtils.js";import{isNumber as S}from"../../support/guards.js";import{getDisplayedSymbol as T}from"../../symbols/support/symbolUtils.js";import{getDrawHelpMessage as C}from"../../views/draw/support/helpMessageUtils.js";import A from"../../views/draw/support/HighlightHelper.js";import P from"../../views/interactive/sketch/SketchOptions.js";import E from"../../views/interactive/snapping/FeatureSnappingLayerSource.js";import{temporaryHighlightName as H}from"../../views/support/HighlightDefaults.js";import U from"./CreateFeaturesWorkflowData.js";import{isModelUpload as L,handleModelUpload as j}from"./modelUploadUtils.js";import O from"./Workflow.js";import{createToolFromGeometryType as x,findEditorItemForLayer as D,getServiceEditsFromWorkflowData as z,getServiceInfoForLayer as R,orderEditsByRelationshipDependencies as W,getServiceLayersById as G,startCreatingNewFeature as N,findLayerInfo as K,updateGraphicSymbolWhenRequired as Z,isTerminalUpdateEventType as q,getVisualVariableAttributes as B,startUpdatingFeatureGeometry as J,createWorkflowSteps as Q,avoidFeatureTemplateSelectionWithOnlyOneItem as X,setUpSketchCreateWatchers as Y,setRelationshipFields as $,prepareAttachmentsForCreateFeaturesWorkflow as ee,showProgressCursor as te,setVisualVariablesAndElevationInfoForUpdate as ae,visualVariableInteractiveUpdate as ie}from"./workflowUtils.js";import re from"../FeatureForm/FeatureFormViewModel.js";import se from"../Sketch/SketchViewModel.js";var oe;const ne=Symbol(),le=Symbol(),de=Symbol(),ce=Symbol(),ue={point:["point"],multipoint:["multipoint"],polygon:["polygon","freehandPolygon","rectangle","circle"],polyline:["polyline","freehandPolyline"],mesh:[],multipatch:[]};let he=oe=class extends O{constructor(e){super(e),this.type="create-features",this.createFeatureState="create-new",this.data=void 0,this.isNested=!1,this._getDrawMeshHelpMessage=void 0,this._webStyleCache=new Map,this._featureFormHandle=null,this._visualVariableAttributes={rotation:null,size:null},this._formViewModel=new re,this._sketchLayer=null,this._sketchViewModel=null,this._attachmentFileInfos=new Map,this._isActive=!0}initialize(){this.isNested&&(this._isActive=!1),this._initializeSketchViewModel()}destroy(){this._sketchViewModel.destroy()}get allowSave(){return!this.updating}get curveResizeDisabled(){return this.data.curveResizeDisabled}get curveUpdatesDisabled(){return this.data.curveUpdatesDisabled}get formViewModel(){return this._formViewModel}get hasInvalidFormTemplate(){return!!this.data.editorItem?.hasInvalidFormTemplate}get hasPendingEdits(){if(this.pendingFeatures.some(e=>!!this.data.getEditsForPendingFeature(e)?.modified))return!0;const{creationInfo:e,upload:t}=this.data,{activeComponent:a,createGraphic:i}=this._sketchViewModel,r=i?.geometry?.type;return!("polyline"!==r&&"polygon"!==r&&"multipoint"!==r||"draw-2d"!==a?.type&&"draw-3d"!==a?.type)&&a.drawOperation.committedVertices.length>0||(!(!t||"pending"!==t.state&&"success"!==t.state)||!!e?.geometryToPlace)}get hasPreviousStep(){return this._stepIndex>0||"update-pending"===this.createFeatureState&&!!this.data.selectedPendingFeature&&!this.parent&&!L(this.data.creationInfo)}get helpMessage(){const{creationInfo:e,viewModel:t}=this.data;if("creating-features"!==this.stepId||!e)return;const{_sketchViewModel:a}=this,{drawTool:i,isUsingLegacyCreateTools:r}=a;if(!r)return i?.helpMessageKey??"noTool";const s=e.layer.geometryType,o=a.createGraphic;if("mesh"===s){this._getDrawMeshHelpMessage||import("../../views/draw/support/helpMessageUtils3d.js").then(e=>{this._getDrawMeshHelpMessage=e.getDrawMeshHelpMessage});const{view:e}=t;return"3d"===e?.type?this._getDrawMeshHelpMessage?.(o,e):void 0}const{activeCreateToolDrawMode:n,activeTool:l}=a;return C("rectangle"===l||"circle"===l?l:s,o?.geometry,n)}get layer(){return this.data.creationInfo?.layer}get numPendingFeatures(){return this.pendingFeatures.length}get numPendingFeaturesExcludingHidden(){return this.pendingFeatures.filter(e=>this.data.isDisplayable(e)).length}get parent(){return this.data.parent}get pendingFeatures(){return this.data.pendingFeatures}get keyboardCancellationEnabled(){return 0===this.numPendingFeatures}get reliesOnOwnerAdminPrivileges(){return this.data.editorItem?.capabilities.create.reliesOnOwnerAdminPrivileges??!1}get saveActionLabel(){return"create"}get shouldShowAttachments(){return(this.data.selectedPendingFeature&&this.data.editorItem?.capabilities.create.attachments.enabled)??!1}get shouldAllowAttachmentEditing(){return this.shouldShowAttachments}get sketchUpdateOptions(){const{editorItem:e}=this.data;return{enableScaling:!this.curveResizeDisabled,multipleSelectionEnabled:!1,reshapeOptions:{enableCreateCurveFromStraightEdge:!V(e?.layer)&&!!e?.capabilities.supportsTrueCurve}}}get sketchViewModel(){return this._sketchViewModel}get test(){}get availableCreateTools(){const e=this.data.creationInfo?.layer.geometryType,t=this.data.viewModel.view;if(!e)return[];if(this.data.creationInfo?.maxFeatures&&this.data.creationInfo.maxFeatures<=this.numPendingFeatures)return[];if(v(this.data.fullTemplate)){const{tool:t}=x(e,this.data.fullTemplate);return[t]}return"2d"!==t?.type&&"multipoint"===e?[]:[...ue[e]]}get _attachmentsActive(){const e=this.data.viewModel.attachmentsViewModel.mode,t=this.stepId;return this.shouldShowAttachments&&("add"===e||"edit"===e||"adding-attachment"===t||"editing-attachment"===t)}async enter(){this._isActive=!0,"awaiting-feature-creation-info"!==this.stepId&&await this._updatingHandles.addPromise(this._setUpCreatingFeaturesStep())}exit(){this._isActive=!1,this.removeHandles([de])}async updatePendingFeature(e){if(e!==this.data.selectedPendingFeature)return this._sketchViewModel.cancel(),this._startUpdating({feature:e})}async start(){return await super.start(),k(this.data.creationInfo?.layer)?null:{enter:async()=>{},exit:async()=>{},viewModel:this._sketchViewModel}}async save(){const{formViewModel:e}=this;if(e.pendingSubtypeChoice)return;e.submit(),this._stashValidationState();const t=this.data.selectedPendingFeature,a=this._hasValidationErrors(t)?t:this.data.pendingFeatures.find(e=>this._hasValidationErrors(e));return a?(await this._startUpdating({feature:a}),void e?.submit()):super.save()}back(e){return"update-pending"!==this.createFeatureState||!this.data.selectedPendingFeature||L(this.data.creationInfo)||this._attachmentsActive||this.parent?super.back(e):this._clearSelectedFeature()}previous(e){return"update-pending"!==this.createFeatureState||!this.data.selectedPendingFeature||L(this.data.creationInfo)||this._attachmentsActive?super.previous(e):this._clearSelectedFeature()}cancelFeature(e){this.data.isSharedTemplateWorkflow?o.getLogger(this).warn("Cannot cancel individual features created by shared templates."):(this.data.removePendingFeature(e),this.sketchViewModel.removeGraphic(e))}static create(e){const{addAttachmentsCallback:t,applyEdits:a,applyEditsFeatureService:i,isNested:r,creationInfo:s,parent:o,snappingManager:n,startAt:l,viewModel:d}=e,c=e.sketchOptions??new P,u=s?.layer,h=u?D(d.editorItems,u):void 0,p=new oe({data:new U({creationInfo:s,editorItem:h,parent:o,sketchOptions:c,snappingManager:n,viewModel:d}),isNested:r,onCommit:async e=>{const{creationInfo:r}=e;if(!r)return;p._sketchViewModel.cancel();const s=e.pendingFeatures.toArray(),{layer:o}=r,n=o.capabilities?.editing.supportsGlobalId&&"globalIdField"in o,l=p._attachmentFileInfos,{fullTemplate:c}=e,u=z(p.data),h=_(c)&&u;if(n){if(ge(s),h){let t=ye(u,l);const a=await(R(o,d.view)?.load());a&&(t=W({edits:t,serviceInfo:a,view:d.view,findOriginalFeature:t=>e.getEditsForPendingFeature(t)?.initialFeature??t})),await i(c.featureService,t,{globalIdUsed:!0,honorSequenceOfEdits:!0,gdbVersion:c.layer.gdbVersion??void 0})}else{const e=we(s,l);await a(o,e,{globalIdUsed:!0})}return}const m=h?await i(c.featureService,u,{gdbVersion:c.layer.gdbVersion??void 0}):[await a(o,{addFeatures:s})];m&&l.size>0&&await Promise.all(m.map(e=>{if(e?.addFeatureResults)return t(o,fe(s,e.addFeatureResults,o,l))}))}});return p._set("steps",this._createWorkflowSteps(p,l)),p}_fadeExistingFeatures(e){if("effect"in e){const t=e.effect;return e.effect="saturate(0.6) opacity(0.8)",i(()=>e.effect=t)}const t=e.opacity;return e.opacity=.7,i(()=>e.opacity=t)}async _initializeFullTemplateAndExecutorInfo(e){const{creationInfo:t}=e,{view:a}=e.viewModel;if(!t||!a)return null;const i=await M(a,t.template);if(e.fullTemplate=i,i&&_(i)){const{createTemplateExecutor:r}=await import("../../editing/sharedTemplates/executor/createTemplateExecutor.js"),s={completionResults:[],executor:await r(i),serviceLayersById:G(t.layer,a)};e.templateExecutorInfo=s}return i}async _startCreating(){this.removeHandles(le);const{data:e}=this;if(!e.creationInfo)return;const t=this.data.creationInfo?.maxFeatures;if(t&&this.numPendingFeatures>=t)return this.sketchViewModel.cancel(),void(this.numPendingFeatures&&await this._startUpdating({feature:this.pendingFeatures.at(-1)}));this.createFeatureState="create-new",await N(this._sketchViewModel,this._sketchLayer,e,this._webStyleCache)}async _clearSelectedFeature(){const e=this._formViewModel.pendingSubtypeChoice;e&&(e.resolve("undo"),await e.promise),this._stashValidationState(),this.sketchViewModel.cancel(),this.data.selectedPendingFeature=null,this._featureFormHandle=n(this._featureFormHandle),this._formViewModel.feature=null;const t=this.data.viewModel.attachmentsViewModel;"add"!==t.mode&&"edit"!==t.mode||await(this.data.viewModel.activeWorkflow?.previous())}_stashValidationState(){const e=this._formViewModel.feature,t=e&&this.data.getEditsForPendingFeature(e);t&&(t.submittable=this._formViewModel.submittable)}async _selectFeatureForUpdate({feature:e,initialFeature:t=e}){this._stashValidationState();const{data:a,pendingFeatures:i,_webStyleCache:s}=this;i.includes(e)||a.addPendingFeature(e,t),a.selectedPendingFeature=e;const{_formViewModel:o,_sketchViewModel:l}=this,{creationInfo:d,viewModel:c}=a,{attachmentsViewModel:h,layerInfos:p,view:m}=c;if(!m||!d)return;n(this._featureFormHandle);const f=e.sourceLayer,g=K(p,f),w=g?.formTemplate,y=m.spatialReference;o.set({editType:"INSERT",feature:e,formTemplate:w,spatialReference:y,map:m.map}),"add"!==h.mode&&"edit"!==h.mode||await(c.activeWorkflow?.previous()),h.graphic=e,h.fileInfos.removeAll(),h.mode="view";(this._attachmentFileInfos.get(e)||[]).forEach(({file:e,form:t})=>h.addFile(e,t)),await Z(e,s,"2d"===m.type?m.scale:null);const v=a.getEditsForPendingFeature(e);this._featureFormHandle=r([o.on("value-change",async({fieldName:t,value:a})=>{if(v?.updateAttributes(o.getValues()),S(a)){const e=this._visualVariableAttributes;e.size&&!e.size.isUpdatingInteractively&&t===e.size.field&&e.size.setInitialValue(a),e.rotation&&!e.rotation.isUpdatingInteractively&&t===e.rotation.field&&e.rotation.setInitialValue(a)}await Z(e,s,"2d"===m.type?m.scale:null)}),l.on(["update","undo","redo"],e=>{("undo"===e.type||"redo"===e.type||"update"===e.type&&null!=e.toolEventInfo&&q(e.toolEventInfo.type))&&o.notifyFeatureGeometryChanged()}),u(()=>o.feature?.sourceLayer,t=>e.sourceLayer=t),u(()=>[o.feature,o.submittable],()=>this._stashValidationState())]),this.createFeatureState="update-pending"}async _startUpdating({feature:e,initialFeature:t=e}){await this._selectFeatureForUpdate({feature:e,initialFeature:t});const{_sketchLayer:a,_sketchViewModel:i,data:r}=this,{creationInfo:s,viewModel:o}=r,{view:n}=o;if(!n||!s)return;const l=e.sourceLayer??s.layer;return k(l)?void 0:(this._visualVariableAttributes=B(e),J({graphic:e,sketchLayer:a,sketchViewModel:i,sourceLayer:l,updateOptions:this.sketchUpdateOptions,visualVariables:this._visualVariableAttributes,webStyleCache:this._webStyleCache}))}static _createWorkflowSteps(e,t="awaiting-feature-creation-info"){const{data:a}=e,i=Q(["awaiting-feature-creation-info","creating-features","adding-attachment","editing-attachment"],t,{"awaiting-feature-creation-info":()=>({id:"awaiting-feature-creation-info",async setUp(){const{creationInfo:t,viewModel:i}=a,{view:r}=i;r&&(L(t)?e.addHandles(await j({view:r,data:a,next:()=>e.next(),cancel:()=>i.cancelWorkflow({warnIfNoWorkflow:!1})}),this.id):(a.parent&&t&&e.addHandles(i.restrictFeatureTemplatesViewModelToLayer(t.layer),this.id),e.addHandles(i.featureTemplatesViewModel.on("select",({item:t})=>{t&&(a.creationInfo={...a.creationInfo,layer:t.layer,template:t.template},e.next())}),this.id)))},async tearDown(){e.removeHandles(this.id)}}),"creating-features":()=>({id:"creating-features",async setUp(){e._isActive&&await e._setUpCreatingFeaturesStep()},async tearDown(t){const{viewModel:i}=a;t.canceled&&(e.removeHandles([de,ne,le,ce]),i.attachmentsViewModel.fileInfos.removeAll(),e._attachmentFileInfos.clear())}}),"adding-attachment":()=>({id:"adding-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=a.viewModel,{graphic:i,fileInfos:r}=t;e._attachmentFileInfos.set(i,r.toArray()),t.mode="view"}}),"editing-attachment":()=>({id:"editing-attachment",parent:"creating-features",async setUp(){},async tearDown(){const{attachmentsViewModel:t}=a.viewModel,{graphic:i,fileInfos:r}=t;e._attachmentFileInfos.set(i,r.toArray()),t.mode="view"}})});return X(a,i)}static _configureSketchViewModel(e){const{data:t,_sketchLayer:a,_sketchViewModel:s,_webStyleCache:o}=e,{creationInfo:n,viewModel:l}=t,{view:d}=l,p=[];if(!d)return i();if("2d"===d.type){n&&p.push(e._fadeExistingFeatures(n.layer));const t=c((e,t)=>Promise.all(e.map(e=>Z(e,o,t))));p.push(u(()=>d.scale,e=>t(a.graphics,e)))}const m=F(t.fullTemplate,n?.attributeOverrides),f=u(()=>s.createGraphic,a=>{a&&!e.hasHandles(le)&&e._updatingHandles.consumePromise(Y({creationAttributes:m,data:t,sketchViewModel:s,view:d,webStyleCache:o}).then(t=>e.addHandles(t,le)))}),g=async t=>{if("cancel"!==t.state&&"complete"!==t.state||e.removeHandles(le),"cancel"===t.state&&null!==d.activeTool&&d.activeTool!==e.sketchViewModel.activeComponent&&(await e._waitForActiveToolCleared(),await e._startCreating()),"complete"===t.state&&t.graphic){const a=await e._processEdits(t.graphic,{scale:"2d"===d.type?d.scale:null,useSourceLayer:!0,webStyleCache:e._webStyleCache});a&&(await e._waitForActiveToolCleared(),await e._startUpdating({feature:a}))}},w=async i=>{const{attachmentsViewModel:r}=l,{_formViewModel:o}=e;if(i.graphics.length>1)return void await e._clearSelectedFeature();const c=i.graphics[0];if("complete"===i.state){const{submittable:t}=o;if(e.numPendingFeatures!==n?.maxFeatures&&t||o.submit(),await e._clearSelectedFeature(),"add"!==r.mode&&"edit"!==r.mode||await(l.activeWorkflow?.previous()),!i.aborted&&d.activeTool===e.sketchViewModel.activeComponent&&(await e.sketchViewModel.wait(),"ready"===e.sketchViewModel.state&&"mesh"!==e.data.creationInfo?.layer.geometryType))return e._startCreating()}else{if("start"===i.state)return c.sourceLayer??=t.creationInfo?.layer,await ae({graphic:c,sketchLayer:a,sketchViewModel:s,visualVariables:e._visualVariableAttributes,webStyleCache:e._webStyleCache,sourceLayer:c.sourceLayer}),e._selectFeatureForUpdate({feature:c});if("active"===i.state){await e.updatePendingFeature(c);const t=e._visualVariableAttributes;ie(d,c,i,t)&&await Z(c,e._webStyleCache,"2d"===d.type?d.scale:null);const a=c.attributes,{rotation:r,size:s}=t;if(null!=r){const{field:e}=r;o.setValue(e,a[e])}if(null!=s){const{field:e}=s;o.setValue(e,a[e])}}}},y=async a=>{if(a.graphics.forEach(e=>{t.removePendingFeature(e)}),!L(t.creationInfo))return e._startCreating()},v=async()=>{if(L(t.creationInfo))try{await e.data.viewModel.back()}catch{}return e._startCreating()};p.push(f,s.on("create",t=>e._updatingHandles.addPromise(g(t))),s.on("update",t=>e._updatingHandles.addPromise(w(t))),s.on("delete",t=>e._updatingHandles.addPromise(y(t))),h(()=>!e.numPendingFeatures,()=>e._updatingHandles.addPromise(v())),i(()=>{s.cancel()}),pe(s,a,t),...me(t));const _=r(p);return s.addHandles(_),_}_initializeSketchViewModel(){const{data:e}=this,{view:t}=e.viewModel,a=new I({elevationInfo:e.creationInfo?.layer.elevationInfo,internal:!0,listMode:"hide",title:"createFeaturesWorkflow-internal"}),r=new se({layer:a,creationMode:"single",sketchOptions:e.sketchOptions,snappingManager:e.snappingManager,useLegacyCreateTools:e.viewModel.useLegacyCreateTools,updateOnGraphicClick:!1,defaultUpdateOptions:this.sketchUpdateOptions,view:t});this._sketchLayer=a,this._sketchViewModel=r,t?.map.add(a),this.addHandles([i(()=>{t?.destroyed||t?.map.remove(a),a.destroy()}),u(()=>this.numPendingFeatures>0,e=>this._sketchViewModel.updateOnGraphicClick=e,p)])}_hasValidationErrors(e){return!!e&&(!this.data.isSubmittable(e)||!!this._formViewModel.validateContingencyConstraints(e.attributes,{includeIncompleteViolations:!0})?.length)}async _processEdits(e,t){const{data:a,_formViewModel:i,_sketchLayer:r}=this,{layerInfos:s,view:o}=a.viewModel;i.editType="INSERT",i.map=o?.map,i.spatialReference=o?.spatialReference;const{templateExecutorInfo:n}=a;if(!n){const t=e.clone();return t.geometry=null,await this._addAndInitializeEdits(e,t),e}r.remove(e);const{executor:l}=n,c=l(e.geometry,"completion"),u=d(c)?await c:c;n.completionResults.push(u),$(u.relationships),i.editType="INSERT",i.map=o?.map,i.spatialReference=o?.spatialReference,u.primary&&a.creationInfo?.attributeOverrides&&(u.primary.graphic.attributes={...u.primary.graphic.attributes,...a.creationInfo.attributeOverrides});for(const d of u.edits){let e=null;if(d.addFeatures)for(const a of d.addFeatures){const i=a.clone();i.geometry=null,null!=a.geometry&&(a.symbol=await T(a,t),r.add(a)),a.sourceLayer!==e?.layer&&(e=K(s,a.sourceLayer));const o=!!u.associationGraphics?.has(a);await this._addAndInitializeEdits(a,i,e,o)}}i.feature=null,await m(()=>!i.updating);return u.edits.reduce((e,t)=>e+(t.addFeatures?.length??0),0)>1?null:u.primary?.graphic}async _addAndInitializeEdits(e,t,a,i=!1){const{data:r,_formViewModel:s}=this,{layerInfos:o}=r.viewModel,n=r.addPendingFeature(e,t,{isAssociation:i});a??=K(o,e.sourceLayer),s.feature=e,s.formTemplate=a?.formTemplate,await m(()=>!s.updating),n.updateAttributes(s.getValues()),n.submittable=s.submittable}async _setUpCreatingFeaturesStep(){if(this.hasHandles(de))return;const{data:e,sketchViewModel:s}=this,{creationInfo:o,viewModel:l}=e,{attachmentsViewModel:d,view:c}=l;if(!c||!o?.layer)throw new a("missing-parameters","CreateFeaturesWorkflow requires a view and creationInfo.");const{initialFeature:h,layer:m}=o,f=[],g=[];this._featureFormHandle=n(this._featureFormHandle),this._visualVariableAttributes={rotation:null,size:null},e.editorItem=D(l.editorItems,o.layer),o.template&&(null==e.fullTemplate&&await this._initializeFullTemplateAndExecutorInfo(e),g.push(i(()=>{e.templateExecutorInfo&&(e.templateExecutorInfo.completionResults=[])}))),s.allowDeleteKey=!e.isSharedTemplateWorkflow,ee(d),f.push(u(()=>d.mode,e=>{switch(e){case"add":this.go("adding-attachment");break;case"edit":this.go("editing-attachment")}}));const w=te(c);f.push(w);const y=k(o.layer),{template:_}=o,M=!_||b(_)||v(_)&&"feature"===_.type,I=y&&M;try{if(I){const a=h??new t({attributes:F(e.fullTemplate,o.attributeOverrides),sourceLayer:m}),i=await this._processEdits(a);i&&await this._startUpdating({feature:i})}else f.push(oe._configureSketchViewModel(this)),h?(L(o)&&o.geometryToPlace&&(h.attributes=F(e.fullTemplate,o.attributeOverrides)),s.addGraphic(h),await this._startUpdating({feature:h})):await this._startCreating()}finally{w.remove()}const V=i(()=>{for(const t of e.pendingFeatures)s.removeGraphic(t),e.removePendingFeature(t)}),S=u(()=>c?.timeZone,e=>{this._formViewModel.timeZone=e,this.data.timeZone=e},p),T=i(()=>{L(o)&&l.cancelWorkflow({warnIfNoWorkflow:!1})});this._featureFormHandle&&f.push(this._featureFormHandle),this.addHandles(f,this._handleKeys.beforeCommit),this.addHandles(g,this._handleKeys.afterCommit),this.addHandles([i(()=>d.fileInfos.removeAll()),r(f),r(g),T,V,S],de)}async _waitForActiveToolCleared(){const e=this.data.viewModel.view;if(null==e?.activeTool)return;const t=new AbortController;this.addHandles(s(t),ce),await m(()=>null==e?.activeTool,t.signal),t.abort()}};function pe(e,t,a){let s=null;const o=()=>e.snappingOptions.featureSources,n=()=>(s=new E({layer:t}),o().add(s),s),d=()=>{null!=s&&(o().remove(s),s=l(s))};return r([u(()=>{const e=a.creationInfo?.layer,t=o().find(t=>t.layer===e);return{hasFeatureLayerSource:!!t,enabled:t?.enabled??!1}},({hasFeatureLayerSource:e,enabled:t})=>{if(!e)return d();s??=n(),s.enabled=t},f),i(d)])}function me(e){const t=e.viewModel.view;if(!t)return[];const a=[];if("3d"===t.type){const r=new A({view:t});a.push(u(()=>e.selectedPendingFeature,(e,t)=>{r.remove(e),r.add(t)}),i(()=>r.destroy()))}const r=new A({view:t,highlightName:H});return a.push(u(()=>e.temporaryHighlightFeature,e=>{r.removeAll(),r.add(e)}),i(()=>r.destroy())),a}function fe(e,t,a,i){const r=[];return t.forEach((t,s)=>{if(!t.error){const o=e[s],n=i.get(o)||[];o.attributes[a.objectIdField]=t.objectId,n.forEach(({form:e})=>r.push({feature:o,attachment:e}))}}),r}function ge(e){for(const t of e){const{sourceLayer:e}=t;e&&"globalIdField"in e&&null!=e.globalIdField&&(t.attributes[e.globalIdField]??=g())}}function we(e,t){const a=[];if(!t||0===t.size)return{addFeatures:e};for(const[i,r]of t)for(const{file:e}of r)a.push({feature:i,attachment:{globalId:g(),data:e}});return a.length?{addFeatures:e,addAttachments:a}:{addFeatures:e}}function ye(e,t){return e.map(e=>{const{addFeatures:a}=e;if(!a||0===a.length)return e;const i=[];for(const r of a){const e=t.get(r);if(e)for(const{file:t}of e)i.push({feature:r,attachment:{globalId:g(),data:t}})}return i.length?{...e,addAttachments:i}:e})}e([w()],he.prototype,"allowSave",null),e([w()],he.prototype,"createFeatureState",void 0),e([w()],he.prototype,"curveResizeDisabled",null),e([w()],he.prototype,"curveUpdatesDisabled",null),e([w()],he.prototype,"data",void 0),e([w({constructOnly:!0})],he.prototype,"isNested",void 0),e([w()],he.prototype,"formViewModel",null),e([w()],he.prototype,"hasInvalidFormTemplate",null),e([w()],he.prototype,"hasPendingEdits",null),e([w()],he.prototype,"hasPreviousStep",null),e([w()],he.prototype,"_getDrawMeshHelpMessage",void 0),e([w()],he.prototype,"helpMessage",null),e([w()],he.prototype,"layer",null),e([w()],he.prototype,"parent",null),e([w()],he.prototype,"keyboardCancellationEnabled",null),e([w()],he.prototype,"reliesOnOwnerAdminPrivileges",null),e([w()],he.prototype,"saveActionLabel",null),e([w()],he.prototype,"shouldShowAttachments",null),e([w()],he.prototype,"shouldAllowAttachmentEditing",null),e([w()],he.prototype,"sketchUpdateOptions",null),e([w()],he.prototype,"sketchViewModel",null),e([w()],he.prototype,"availableCreateTools",null),e([w()],he.prototype,"_attachmentsActive",null),he=oe=e([y("esri.widgets.Editor.CreateFeaturesWorkflow")],he);const ve=he;export{ve as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import i from"../../core/Collection.js";import o from"../../core/Logger.js";import r from"../../core/ReactiveMap.js";import{property as s,subclass as n}from"../../core/accessorSupport/decorators.js";import{isSharedTemplateOrMetadata as l}from"../../editing/templateUtils.js";import a from"./Edits.js";const p=()=>o.getLogger("esri.widgets.Editor.CreateFeaturesWorkflowData");let d=class extends t{constructor(e){super(e),this.creationInfo=null,this.editorItem=null,this.fullTemplate=null,this.parent=null,this.temporaryHighlightFeature=null,this.sketchOptions=null,this.snappingManager=null,this.templateExecutorInfo=null,this.viewModel=null,this.upload=null,this._pendingEdits=new r}get isSharedTemplateWorkflow(){return!!this.fullTemplate&&l(this.fullTemplate)}get pendingFeatures(){return new i([...this._pendingEdits.keys()])}set selectedPendingFeature(e){this._set("selectedPendingFeature",e),this.temporaryHighlightFeature=null}set timeZone(e){this._set("timeZone",e),this._pendingEdits.forEach(t=>{t.timeZone=e})}isSubmittable(e){const t=this._pendingEdits.get(e);return!!t?.submittable||!!t?.isAssociation}isDisplayable(e){return!this._pendingEdits.get(e)?.isAssociation}addPendingFeature(e,t=e,i={isAssociation:!1}){this.temporaryHighlightFeature=null;const{_pendingEdits:o}=this;if(o.has(e))return o.get(e);e.sourceLayer||p().warn("source-layer-not-set","A feature added to `pendingFeatures` did not have `sourceLayer` set. This may cause problems throughout `CreateFeaturesWorkflow`.");const r=new a({feature:e,isAssociation:i.isAssociation});return r.trackChanges(t),o.set(e,r),r}getEditsForPendingFeature(e){return this._pendingEdits.get(e)}removePendingFeature(e){this.temporaryHighlightFeature=null;const{_pendingEdits:t}=this,i=t.get(e);i&&(i.destroy(),t.delete(e)),this.selectedPendingFeature===e&&(this.selectedPendingFeature=null)}getFeatureTitle(e){return this._pendingEdits.get(e)?.displayTitle}};e([s()],d.prototype,"creationInfo",void 0),e([s()],d.prototype,"editorItem",void 0),e([s()],d.prototype,"fullTemplate",void 0),e([s()],d.prototype,"isSharedTemplateWorkflow",null),e([s()],d.prototype,"parent",void 0),e([s()],d.prototype,"pendingFeatures",null),e([s()],d.prototype,"selectedPendingFeature",null),e([s()],d.prototype,"temporaryHighlightFeature",void 0),e([s({constructOnly:!0})],d.prototype,"sketchOptions",void 0),e([s()],d.prototype,"snappingManager",void 0),e([s()],d.prototype,"templateExecutorInfo",void 0),e([s()],d.prototype,"viewModel",void 0),e([s()],d.prototype,"upload",void 0),e([s()],d.prototype,"timeZone",null),d=e([n("esri.widgets.Editor.CreateFeaturesWorkflowData")],d);const u=d;export{u as default};
2
+ import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import r from"../../core/Collection.js";import i from"../../core/Logger.js";import s from"../../core/ReactiveMap.js";import{property as o,subclass as n}from"../../core/accessorSupport/decorators.js";import{isSharedTemplateOrMetadata as l}from"../../editing/templateUtils.js";import{hasCircularArc as a,isCurvedGeometry as p}from"../../geometry/support/curves/curveUtils.js";import u from"./Edits.js";const d=()=>i.getLogger("esri.widgets.Editor.CreateFeaturesWorkflowData");let g=class extends t{constructor(e){super(e),this.creationInfo=null,this.editorItem=null,this.fullTemplate=null,this.parent=null,this.temporaryHighlightFeature=null,this.sketchOptions=null,this.snappingManager=null,this.templateExecutorInfo=null,this.viewModel=null,this.upload=null,this._pendingEdits=new s}get curveResizeDisabled(){return this.hasCurves&&a(this.selectedPendingFeature?.geometry)&&!this.editorItem?.supportedCurveTypes.includes("elliptic-arc")}get curveUpdatesDisabled(){return this.hasCurves&&!1===this.editorItem?.capabilities.supportsTrueCurveUpdate}get hasCurves(){const e=this.selectedPendingFeature;return!(!e?.geometry||!p(e.geometry))}get isSharedTemplateWorkflow(){return!!this.fullTemplate&&l(this.fullTemplate)}get pendingFeatures(){return new r([...this._pendingEdits.keys()])}set selectedPendingFeature(e){this._set("selectedPendingFeature",e),this.temporaryHighlightFeature=null}set timeZone(e){this._set("timeZone",e),this._pendingEdits.forEach(t=>{t.timeZone=e})}isSubmittable(e){const t=this._pendingEdits.get(e);return!!t?.submittable||!!t?.isAssociation}isDisplayable(e){return!this._pendingEdits.get(e)?.isAssociation}addPendingFeature(e,t=e,r={isAssociation:!1}){this.temporaryHighlightFeature=null;const{_pendingEdits:i}=this;if(i.has(e))return i.get(e);e.sourceLayer||d().warn("source-layer-not-set","A feature added to `pendingFeatures` did not have `sourceLayer` set. This may cause problems throughout `CreateFeaturesWorkflow`.");const s=new u({feature:e,isAssociation:r.isAssociation});return s.trackChanges(t),i.set(e,s),s}getEditsForPendingFeature(e){return this._pendingEdits.get(e)}removePendingFeature(e){this.temporaryHighlightFeature=null;const{_pendingEdits:t}=this,r=t.get(e);r&&(r.destroy(),t.delete(e)),this.selectedPendingFeature===e&&(this.selectedPendingFeature=null)}getFeatureTitle(e){return this._pendingEdits.get(e)?.displayTitle}};e([o()],g.prototype,"creationInfo",void 0),e([o()],g.prototype,"curveResizeDisabled",null),e([o()],g.prototype,"curveUpdatesDisabled",null),e([o()],g.prototype,"editorItem",void 0),e([o()],g.prototype,"fullTemplate",void 0),e([o()],g.prototype,"hasCurves",null),e([o()],g.prototype,"isSharedTemplateWorkflow",null),e([o()],g.prototype,"parent",void 0),e([o()],g.prototype,"pendingFeatures",null),e([o()],g.prototype,"selectedPendingFeature",null),e([o()],g.prototype,"temporaryHighlightFeature",void 0),e([o({constructOnly:!0})],g.prototype,"sketchOptions",void 0),e([o()],g.prototype,"snappingManager",void 0),e([o()],g.prototype,"templateExecutorInfo",void 0),e([o()],g.prototype,"viewModel",void 0),e([o()],g.prototype,"upload",void 0),e([o()],g.prototype,"timeZone",null),g=e([n("esri.widgets.Editor.CreateFeaturesWorkflowData")],g);const h=g;export{h as default};
@@ -2,6 +2,7 @@ import type Graphic from "../../Graphic.js";
2
2
  import type Collection from "../../core/Collection.js";
3
3
  import type SharedTemplateMetadata from "../../editing/sharedTemplates/SharedTemplateMetadata.js";
4
4
  import type FeatureTemplate from "../../layers/support/FeatureTemplate.js";
5
+ import type SelectionManager from "../../views/SelectionManager.js";
5
6
  import type SketchLabelOptions from "../../views/interactive/sketch/SketchLabelOptions.js";
6
7
  import type SketchTooltipOptions from "../../views/interactive/sketch/SketchTooltipOptions.js";
7
8
  import type SketchValueOptions from "../../views/interactive/sketch/SketchValueOptions.js";
@@ -24,7 +25,7 @@ import type { SnappingOptionsProperties } from "../../views/interactive/snapping
24
25
  import type { SketchTooltipOptionsProperties } from "../../views/interactive/sketch/SketchTooltipOptions.js";
25
26
  import type { SketchValueOptionsProperties } from "../../views/interactive/sketch/SketchValueOptions.js";
26
27
 
27
- export interface EditorViewModelProperties extends Partial<Pick<EditorViewModel, "layerInfos" | "syncViewSelection" | "view">> {
28
+ export interface EditorViewModelProperties extends Partial<Pick<EditorViewModel, "layerInfos" | "selectionManager" | "syncViewSelection" | "view">> {
28
29
  /** The [AttachmentsViewModel][AttachmentsViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Attachments/AttachmentsViewModel/) for supporting the editor widget. Attachment editing is enabled by default if the layer has support for it. */
29
30
  attachmentsViewModel?: AttachmentsViewModelProperties;
30
31
  /**
@@ -258,6 +259,14 @@ export default class EditorViewModel extends EventedAccessor {
258
259
  * });
259
260
  */
260
261
  accessor layerInfos: LayerInfo[] | null | undefined;
262
+ /**
263
+ * Use this property to supply a custom selection manager that overrides the default selection manager. This property is ignored if [syncViewSelection](#syncViewSelection) is `true`.
264
+ * This is useful when applications want to share selection sets between components, without relying on the view's selection manager.
265
+ *
266
+ * @since 5.0
267
+ * @beta
268
+ */
269
+ accessor selectionManager: SelectionManager | null | undefined;
261
270
  /**
262
271
  * The [SketchViewModel][SketchViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/)
263
272
  * for supporting the editor widget.
@@ -291,12 +300,14 @@ export default class EditorViewModel extends EventedAccessor {
291
300
  /** Indicates if there is at least one edit request being processed. */
292
301
  get syncing(): boolean;
293
302
  /**
294
- * Controls whether the Editor should sync with the view's selection manager.
295
- * This does not include selection sources, which must be configured independently.
296
- * This property takes precedence over the 'selectionManager' property.
303
+ * Indicates whether the Editor should sync with the view's [selection manager](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/).
304
+ * Enabling this does not automatically inherit the [selection sources](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/#sources) from the [SelectionManager](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/), (e.g. which layers or graphics collections the view listens to for selections). If you need specific selection sources, configure them separately via [SelectionManager.sources](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/#sources).
305
+ *
306
+ * Setting this property takes precedence over the [selectionManager](#selectionManager) property.
297
307
  *
298
308
  * @default false
299
309
  * @since 5.0
310
+ * @beta
300
311
  */
301
312
  accessor syncViewSelection: boolean;
302
313
  /**