@arcgis/core 5.2.0-next.7 → 5.2.0-next.9

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 (489) hide show
  1. package/applications/SceneViewer/layerUtils.d.ts +9 -1
  2. package/applications/SceneViewer/layerUtils.js +1 -1
  3. package/arcgisGlobal.d.ts +4 -0
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/07cc5743cb6a9fd68adb.js +1 -0
  6. package/assets/esri/core/workers/chunks/0cbd7f5fe24271942abd.js +1 -0
  7. package/assets/esri/core/workers/chunks/0ecc1bc1686844cdd60e.js +1 -0
  8. package/assets/esri/core/workers/chunks/0f75c19d8e296a32e329.js +1 -0
  9. package/assets/esri/core/workers/chunks/174cc2e69e5b5a13d880.js +1 -0
  10. package/assets/esri/core/workers/chunks/18f980465db5a86153d1.js +1 -0
  11. package/assets/esri/core/workers/chunks/1996f0a930abdd97b855.js +1 -0
  12. package/assets/esri/core/workers/chunks/1c8436b27a3d3cde5cfc.js +1 -0
  13. package/assets/esri/core/workers/chunks/1cb1f125dccbf8c8cac9.js +1 -0
  14. package/assets/esri/core/workers/chunks/1dd06335bb2d35c66339.js +1 -0
  15. package/assets/esri/core/workers/chunks/1f289aa69dd6b6be534a.js +1 -0
  16. package/assets/esri/core/workers/chunks/2185e8a52c5e29d46680.js +1 -0
  17. package/assets/esri/core/workers/chunks/{da29cf0e64065631a470.js → 24810c36ae09bb4e83dc.js} +1 -1
  18. package/assets/esri/core/workers/chunks/26583db2af1a1cc456e5.js +1 -0
  19. package/assets/esri/core/workers/chunks/274b82cb183ddd0042f3.js +1 -0
  20. package/assets/esri/core/workers/chunks/27c6def22c2b0791ce9e.js +1 -0
  21. package/assets/esri/core/workers/chunks/2d2895f1fdf44d212a4d.js +1 -0
  22. package/assets/esri/core/workers/chunks/2dbc2fd0f2dde505c465.js +1 -0
  23. package/assets/esri/core/workers/chunks/2dbcdfdf000226bfe746.js +1 -0
  24. package/assets/esri/core/workers/chunks/2e6382d50bf012064eae.js +1 -0
  25. package/assets/esri/core/workers/chunks/30f1909c5ef1835b8507.js +1 -0
  26. package/assets/esri/core/workers/chunks/31918a0d9886dedf385f.js +1 -0
  27. package/assets/esri/core/workers/chunks/{1c029b03ed836f393a50.js → 3248001d9dfb9153699e.js} +1 -1
  28. package/assets/esri/core/workers/chunks/3297658ccd8d4b9ce733.js +1 -0
  29. package/assets/esri/core/workers/chunks/{716a4d7e8b908b81870b.js → 32f26757e36704923286.js} +1 -1
  30. package/assets/esri/core/workers/chunks/3529afab0c2444275d91.js +1 -0
  31. package/assets/esri/core/workers/chunks/36dac6ab51d9dbdd091d.js +1 -0
  32. package/assets/esri/core/workers/chunks/390fda094fa8695d98cf.js +1 -0
  33. package/assets/esri/core/workers/chunks/39596715e84d0da2f803.js +30 -0
  34. package/assets/esri/core/workers/chunks/398eb3100a282e4736bb.js +1 -0
  35. package/assets/esri/core/workers/chunks/3b3f91a61e3f29af1fb2.js +1 -0
  36. package/assets/esri/core/workers/chunks/{f815106d439ff1f76e51.js → 3b837b512999e6ab24bc.js} +1 -1
  37. package/assets/esri/core/workers/chunks/3d20c86f1fe877bf884b.js +1 -0
  38. package/assets/esri/core/workers/chunks/3dc5fbecc427df1fd827.js +1 -0
  39. package/assets/esri/core/workers/chunks/3e65b4b18760bde8ceee.js +1 -0
  40. package/assets/esri/core/workers/chunks/3ff7aa216cd794d951e8.js +1 -0
  41. package/assets/esri/core/workers/chunks/{8e1865392681d390ab2e.js → 401ee7fa500adad77db1.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{60915a3708a34da1977e.js → 426156137f279d979ddd.js} +1 -1
  43. package/assets/esri/core/workers/chunks/434c1dd3f48e6f0802fc.js +1 -0
  44. package/assets/esri/core/workers/chunks/4517630bf869205bab87.js +1 -0
  45. package/assets/esri/core/workers/chunks/48f1c3a7c9f16d6896f6.js +1 -0
  46. package/assets/esri/core/workers/chunks/{cfd28eba44cf5a296c6d.js → 49308bdc36373555f1af.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{09d0e430c66788a2626f.js → 4a20f7a0700fd14a129f.js} +1 -1
  48. package/assets/esri/core/workers/chunks/5075e85e1eafd431a8c0.js +1 -0
  49. package/assets/esri/core/workers/chunks/5121768c70f1e03b685c.js +1 -0
  50. package/assets/esri/core/workers/chunks/5201105ca11a2d450460.js +1 -0
  51. package/assets/esri/core/workers/chunks/528ed0bd8dc149ead023.js +1 -0
  52. package/assets/esri/core/workers/chunks/52f354bf80ee5ab0379a.js +1 -0
  53. package/assets/esri/core/workers/chunks/538537f9bc866d9caa75.js +1 -0
  54. package/assets/esri/core/workers/chunks/58a7cdebc3d182c15ec6.js +1 -0
  55. package/assets/esri/core/workers/chunks/58ac245ff7fb57c1004f.js +1 -0
  56. package/assets/esri/core/workers/chunks/58acc18b92533166135d.js +1 -0
  57. package/assets/esri/core/workers/chunks/597aa39cdb5366ef9a74.js +1 -0
  58. package/assets/esri/core/workers/chunks/5bfae465872760e7af6d.js +1 -0
  59. package/assets/esri/core/workers/chunks/5cb274e5759f7ca0d4ed.js +1 -0
  60. package/assets/esri/core/workers/chunks/5d3ddbf94539cb4f493e.js +1 -0
  61. package/assets/esri/core/workers/chunks/{542f5469f7b42026b24f.js → 5d62d1920e3e35fc0192.js} +1 -1
  62. package/assets/esri/core/workers/chunks/5dd441db1e74dc9b56e9.js +1 -0
  63. package/assets/esri/core/workers/chunks/630ad47857de3cf726d1.js +1 -0
  64. package/assets/esri/core/workers/chunks/64114a7d2da162987958.js +1 -0
  65. package/assets/esri/core/workers/chunks/6821462e5c1e9c76010a.js +1 -0
  66. package/assets/esri/core/workers/chunks/684d3cb4fb233180b2d0.js +1 -0
  67. package/assets/esri/core/workers/chunks/686c51fd2144e132783e.js +1 -0
  68. package/assets/esri/core/workers/chunks/68f9b2da1fd08785320f.js +2 -0
  69. package/assets/esri/core/workers/chunks/69e98de578f467a35054.js +1 -0
  70. package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +1 -0
  71. package/assets/esri/core/workers/chunks/6aabde21b0b376d95888.js +1 -0
  72. package/assets/esri/core/workers/chunks/6d616b66fb32904b55a1.js +1 -0
  73. package/assets/esri/core/workers/chunks/{bcb021a167580bb1619f.js → 6ef3b8d67b498d655a99.js} +1 -1
  74. package/assets/esri/core/workers/chunks/6f125b4ed06c0022dee6.js +1 -0
  75. package/assets/esri/core/workers/chunks/6f4825c3ef1fe202ab82.js +1 -0
  76. package/assets/esri/core/workers/chunks/6f5d61f734ec40dafabb.js +1 -0
  77. package/assets/esri/core/workers/chunks/{fce7995c26953bfd8d3d.js → 70229007d594536ba6a3.js} +1 -1
  78. package/assets/esri/core/workers/chunks/71e55381fdff3fc2542e.js +1 -0
  79. package/assets/esri/core/workers/chunks/{90953a827bc89d0e6bd5.js → 72cfb186e50537bcdd19.js} +1 -1
  80. package/assets/esri/core/workers/chunks/72d67cc3a382e83bf1a2.js +1 -0
  81. package/assets/esri/core/workers/chunks/7748743d4be047094d67.js +1 -0
  82. package/assets/esri/core/workers/chunks/78c53aeb0a408ab3c80c.js +1 -0
  83. package/assets/esri/core/workers/chunks/7b5c1030a7cf0f382cc4.js +1 -0
  84. package/assets/esri/core/workers/chunks/7cee81c5aa1e6b7d2452.js +1 -0
  85. package/assets/esri/core/workers/chunks/7e89cb9ff615742e0894.js +1 -0
  86. package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +1 -0
  87. package/assets/esri/core/workers/chunks/{62dfbdc847be4800e833.js → 8103d06f760a2c79773d.js} +10 -14
  88. package/assets/esri/core/workers/chunks/{8477b5fdd99c6ac5c27b.js → 851705cf276eae8d4d37.js} +1 -1
  89. package/assets/esri/core/workers/chunks/89e09276086745aa21fa.js +1 -0
  90. package/assets/esri/core/workers/chunks/{4894997bfa438f66da36.js → 8a8c5e5ce457ca004687.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{b79428c5093614174e76.js → 8b0a01ebc86ab226f01f.js} +1 -1
  92. package/assets/esri/core/workers/chunks/{452c01cecbbd1e370098.js → 8f93e6fc11a158d4f1ee.js} +1 -1
  93. package/assets/esri/core/workers/chunks/93bd56396b8cd020f965.js +1 -0
  94. package/assets/esri/core/workers/chunks/{359d3acb3953e64e5a78.js → 93ceb74ac88ef460fe5f.js} +1 -1
  95. package/assets/esri/core/workers/chunks/957f7b8de4aecb6f644e.js +1 -0
  96. package/assets/esri/core/workers/chunks/{875cce0be4f6c89f80f3.js → 9629601de5e44ffe90ea.js} +2 -2
  97. package/assets/esri/core/workers/chunks/976ab2be6c244768c08a.js +1 -0
  98. package/assets/esri/core/workers/chunks/{e785f76c1a75cb1d1e1f.js → 99101789035f1787c630.js} +1 -1
  99. package/assets/esri/core/workers/chunks/99e5296192ab98fd0d99.js +1 -0
  100. package/assets/esri/core/workers/chunks/9d5f7573bfe3b051daf1.js +1 -0
  101. package/assets/esri/core/workers/chunks/a0c00c6fe60db49b3ab9.js +1 -0
  102. package/assets/esri/core/workers/chunks/a2247f4c3116efb16c4f.js +1 -0
  103. package/assets/esri/core/workers/chunks/a4245bd4e67a428fd835.js +1 -0
  104. package/assets/esri/core/workers/chunks/a442534ac0956a68b769.js +1 -0
  105. package/assets/esri/core/workers/chunks/a4e9a17dacbb52444d75.js +1 -0
  106. package/assets/esri/core/workers/chunks/{8bdca6f06c8b5fedd917.js → a5abba59e738c3240c22.js} +1 -1
  107. package/assets/esri/core/workers/chunks/a9fc53ae040320e49834.js +1 -0
  108. package/assets/esri/core/workers/chunks/aa118c1bcd922b8ac328.js +1 -0
  109. package/assets/esri/core/workers/chunks/aae0049c2c3e15a813e8.js +1 -0
  110. package/assets/esri/core/workers/chunks/ac33b10fe65f9e9e824f.js +1 -0
  111. package/assets/esri/core/workers/chunks/adc32f6b45ea3026fc34.js +1 -0
  112. package/assets/esri/core/workers/chunks/af31e62499d45bdab3c3.js +1 -0
  113. package/assets/esri/core/workers/chunks/b22a1c98271c2e4d8808.js +1 -0
  114. package/assets/esri/core/workers/chunks/{9f4681713f03365a2a53.js → b666027b9022fa346a79.js} +1 -1
  115. package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +1 -0
  116. package/assets/esri/core/workers/chunks/{0f3654c8157ec8f22869.js → b895674c0550826ecb28.js} +3 -3
  117. package/assets/esri/core/workers/chunks/c0cbc50e5afd68bd485c.js +1 -0
  118. package/assets/esri/core/workers/chunks/c2a65de34f6a6c89c652.js +1 -0
  119. package/assets/esri/core/workers/chunks/c357c0a08b99c1e7f290.js +1 -0
  120. package/assets/esri/core/workers/chunks/{4a23b27bfbcfa08fd9a7.js → c3cf9e6e91f71c9cc5f3.js} +1 -1
  121. package/assets/esri/core/workers/chunks/c3ff2ff0a86a9143d7a5.js +1 -0
  122. package/assets/esri/core/workers/chunks/{e545df5ea7c0ced92cee.js → c424a66f1546275e2bcb.js} +1 -1
  123. package/assets/esri/core/workers/chunks/c60b4f2dd5fccdf362a7.js +1 -0
  124. package/assets/esri/core/workers/chunks/c6d0b4875b6b8d6bc25a.js +1 -0
  125. package/assets/esri/core/workers/chunks/c80fc1b3048e8d58a1f8.js +1 -0
  126. package/assets/esri/core/workers/chunks/c911f0b5bdd43b66b731.js +1 -0
  127. package/assets/esri/core/workers/chunks/c9a4601073e1a3eee9d0.js +1 -0
  128. package/assets/esri/core/workers/chunks/ccffaba50674adba7a0f.js +1 -0
  129. package/assets/esri/core/workers/chunks/{24646a1176ce34039155.js → cdf6ad970dc1893dac58.js} +1 -1
  130. package/assets/esri/core/workers/chunks/d13e003c9293cb7e2852.js +1 -0
  131. package/assets/esri/core/workers/chunks/d24e027bb8b2c09f25c8.js +1 -0
  132. package/assets/esri/core/workers/chunks/d2df8c328054dc6cb7b7.js +1 -0
  133. package/assets/esri/core/workers/chunks/d5c35a75fd4c41def420.js +1 -0
  134. package/assets/esri/core/workers/chunks/{5e3e0d7b85dfd52d1c7d.js → d78b7cac322755e87eb8.js} +1 -1
  135. package/assets/esri/core/workers/chunks/d7be278aed1fb37ad5ec.js +1 -0
  136. package/assets/esri/core/workers/chunks/d9695794cfaa014a55b1.js +1 -0
  137. package/assets/esri/core/workers/chunks/da1e8b338ab9fe9e0a8e.js +1 -0
  138. package/assets/esri/core/workers/chunks/dd920a6f6422fa213eba.js +1 -0
  139. package/assets/esri/core/workers/chunks/e1bf87077541da6853c6.js +1 -0
  140. package/assets/esri/core/workers/chunks/e279bcbe4f10e87bde6c.js +1 -0
  141. package/assets/esri/core/workers/chunks/e4406baf206b9e4c7e4f.js +1 -0
  142. package/assets/esri/core/workers/chunks/e499252cb52f7aed49a0.js +1 -0
  143. package/assets/esri/core/workers/chunks/{e178cd0e9178d6716410.js → e5837e5ac6ef761f26a2.js} +1 -1
  144. package/assets/esri/core/workers/chunks/e6a7272b59a4c2e34dca.js +1 -0
  145. package/assets/esri/core/workers/chunks/e912b515704e20313e53.js +1 -0
  146. package/assets/esri/core/workers/chunks/eac683a37339aa558455.js +1 -0
  147. package/assets/esri/core/workers/chunks/ec1841e6e498d54012eb.js +1 -0
  148. package/assets/esri/core/workers/chunks/ed3d16a5b4084ef61f8a.js +1 -0
  149. package/assets/esri/core/workers/chunks/ee07f54bc77fe9f8575a.js +1 -0
  150. package/assets/esri/core/workers/chunks/{e094364e54981c91e1b4.js → eeea5710275c967e8d51.js} +1 -1
  151. package/assets/esri/core/workers/chunks/ef46ef4f0ee9f2aeaa4a.js +1 -0
  152. package/assets/esri/core/workers/chunks/efb4aa5886730ea377bd.js +1 -0
  153. package/assets/esri/core/workers/chunks/{485d20152495c27b8074.js → f2a268c69f2a5566381b.js} +1 -1
  154. package/assets/esri/core/workers/chunks/f590db684d88e72bd79b.js +1 -0
  155. package/assets/esri/core/workers/chunks/f69df22a5c64389ebe28.js +1 -0
  156. package/assets/esri/core/workers/chunks/{f60292d97bcdbf19165b.js → f6d047358d14328f3622.js} +1 -1
  157. package/assets/esri/core/workers/chunks/f7fca88d120d45bb782a.js +1 -0
  158. package/assets/esri/core/workers/chunks/f819854098d63fe4ccdb.js +1 -0
  159. package/assets/esri/core/workers/chunks/f8f3579d0c1b65762902.js +1 -0
  160. package/assets/esri/core/workers/chunks/f98118127469449ca145.js +1 -0
  161. package/assets/esri/core/workers/chunks/f9ed05d4ad1f44d033bb.js +1 -0
  162. package/assets/esri/core/workers/chunks/fb6605be0c5e36785543.js +1 -0
  163. package/assets/esri/core/workers/chunks/fbe7dae0b4bf2d172487.js +1 -0
  164. package/assets/esri/core/workers/chunks/fc4d9be62cf5e9758842.js +1 -0
  165. package/assets/esri/core/workers/chunks/fd70a25ffdf2cc6c5be2.js +1 -0
  166. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  167. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  168. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  169. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  170. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +38 -8
  171. package/assets/esri/themes/dark/main.css +1 -1
  172. package/assets/esri/themes/light/main.css +1 -1
  173. package/assets/esri/themes/light/view.css +1 -1
  174. package/chunks/GaussianSplatComposition.glsl.js +1 -1
  175. package/chunks/GlobalIllumination.glsl.js +1 -1
  176. package/chunks/GlowComposition.glsl.js +2 -2
  177. package/chunks/OITBlend.glsl.js +3 -3
  178. package/chunks/OITBlendEmission.glsl.js +2 -2
  179. package/chunks/OITDimOpaque.glsl.js +2 -2
  180. package/chunks/SlicePlaneMaterial.glsl.js +4 -4
  181. package/chunks/bundle2.js +1 -1
  182. package/chunks/lyr3DMain.js +1 -1
  183. package/chunks/lyr3DWorker.js +1 -1
  184. package/chunks/vxlLayer.js +1 -1
  185. package/config.js +1 -1
  186. package/core/has.js +1 -1
  187. package/core/screenUtils.js +1 -1
  188. package/core/sql.d.ts +1 -1
  189. package/geometry/Extent.d.ts +0 -13
  190. package/geometry/Geometry.d.ts +10 -8
  191. package/geometry/Multipoint.d.ts +9 -0
  192. package/geometry/Multipoint.js +1 -1
  193. package/geometry/Point.d.ts +15 -71
  194. package/geometry/Polygon.js +1 -1
  195. package/geometry/support/geometryUtils.js +1 -1
  196. package/graphic/AnnotationGraphicOrigin.d.ts +34 -0
  197. package/graphic/AnnotationGraphicOrigin.js +2 -0
  198. package/graphic/DimensionFeatureGraphicOrigin.d.ts +34 -0
  199. package/graphic/DimensionFeatureGraphicOrigin.js +2 -0
  200. package/identity/IdentityManagerBase.js +1 -1
  201. package/interfaces.d.ts +11 -0
  202. package/kernel.js +1 -1
  203. package/layers/AnnotationLayer.d.ts +263 -32
  204. package/layers/AnnotationLayer.js +1 -1
  205. package/layers/DimensionFeatureLayer.d.ts +263 -32
  206. package/layers/DimensionFeatureLayer.js +1 -1
  207. package/layers/FeatureLayer.d.ts +1 -1
  208. package/layers/GeoJSONLayer.d.ts +7 -7
  209. package/layers/ParquetLayer.d.ts +22 -2
  210. package/layers/SceneLayer.d.ts +4 -2
  211. package/layers/VideoLayer.d.ts +7 -1
  212. package/layers/VideoLayer.js +1 -1
  213. package/layers/catalog/CatalogFootprintLayer.d.ts +40 -10
  214. package/layers/graphics/sources/parquet/FileProvider.js +1 -1
  215. package/layers/graphics/sources/parquet/ParquetFileInfo.js +2 -0
  216. package/layers/graphics/sources/parquet/ParquetFileStatistics.js +2 -0
  217. package/layers/graphics/sources/parquet/PortalParquetFileProvider.js +1 -1
  218. package/layers/graphics/sources/parquet/PortalParquetLayerFileProvider.js +1 -1
  219. package/layers/graphics/sources/parquet/UrlsFileProvider.js +1 -1
  220. package/layers/graphics/sources/parquet/createFileProvider.js +1 -1
  221. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  222. package/layers/mixins/FeatureLayerBase.d.ts +40 -16
  223. package/layers/mixins/TemporalLayer.d.ts +4 -2
  224. package/layers/support/AnnotationSublayer.d.ts +44 -0
  225. package/layers/support/AnnotationSublayer.js +2 -0
  226. package/layers/support/GeometryEncodingLocation.d.ts +1 -1
  227. package/layers/support/GeometryEncodingWkb.d.ts +3 -2
  228. package/layers/support/ParquetFilesData.d.ts +13 -3
  229. package/layers/support/ParquetPortalItemData.d.ts +12 -1
  230. package/layers/support/arcgisLayers.js +1 -1
  231. package/layers/support/commonProperties.js +1 -1
  232. package/layers/support/featureLayerUtils.js +1 -1
  233. package/layers/support/layerUtils.js +1 -1
  234. package/layers/support/parquetUtils.js +1 -1
  235. package/layers/support/tiles3DUtils.js +1 -1
  236. package/layers/support/timeSeriesUtils.js +1 -1
  237. package/layers/video/types.d.ts +61 -1
  238. package/libs/parquet/parquet.js +1 -1
  239. package/package.json +1 -1
  240. package/request/types.d.ts +18 -20
  241. package/rest/support/Query.d.ts +1 -0
  242. package/support/revision.js +1 -1
  243. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  244. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  245. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  246. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  247. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  248. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  249. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  250. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  251. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  252. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  253. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  254. package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
  255. package/views/2d/layers/GraphicsLayerView2D.js +1 -1
  256. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  257. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  258. package/views/2d/layers/KMLLayerView2D.js +1 -1
  259. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  260. package/views/2d/layers/MediaLayerView2D.js +1 -1
  261. package/views/2d/layers/RouteLayerView2D.js +1 -1
  262. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  263. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  264. package/views/2d/layers/features/sources/strategies/ParquetSnapshotLoadStrategy.js +1 -1
  265. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  266. package/views/2d/layers/graphics/GraphicStore.js +1 -1
  267. package/views/2d/support/hitTestUtils.js +1 -1
  268. package/views/3d/analysis/LineOfSight/LineOfSightAggregateManipulatedObject3D.js +2 -0
  269. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringUtils.js +1 -1
  270. package/views/3d/analysis/LineOfSight/LineOfSightConfiguration.js +1 -1
  271. package/views/3d/analysis/LineOfSight/LineOfSightManipulators.js +1 -1
  272. package/views/3d/analysis/LineOfSight/LineOfSightObserverPlugin.js +1 -1
  273. package/views/3d/analysis/LineOfSight/LineOfSightPlacementLeafPlugin.js +2 -0
  274. package/views/3d/analysis/LineOfSight/LineOfSightPlacementTool.js +1 -1
  275. package/views/3d/analysis/LineOfSight/LineOfSightReshapeTool3D.js +2 -0
  276. package/views/3d/analysis/LineOfSight/LineOfSightRootPlugin.js +1 -1
  277. package/views/3d/analysis/LineOfSight/LineOfSightTargetPlugin.js +1 -1
  278. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  279. package/views/3d/analysis/LineOfSight/LineOfSightTool2.js +1 -1
  280. package/views/3d/analysis/Viewshed/ViewshedSnappingController.js +1 -1
  281. package/views/3d/analysis/Viewshed/ViewshedSubTool.js +1 -1
  282. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  283. package/views/3d/interactive/editingTools/reshape/ReshapeTool3D.js +1 -1
  284. package/views/3d/interactive/editingTools/reshape/isSupportedObject.js +1 -1
  285. package/views/3d/interactive/editingTools/reshape/reshapeTooltipUtils3D.js +1 -1
  286. package/views/3d/interactive/editingTools/visualElementUtils.js +1 -1
  287. package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
  288. package/views/3d/layers/FlowSubView3D.js +1 -1
  289. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  290. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  291. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  292. package/views/3d/terrain/OverlayManager.js +1 -1
  293. package/views/3d/terrain/TerrainRenderer.js +1 -1
  294. package/views/3d/webgl/RenderNode.d.ts +25 -4
  295. package/views/3d/webgl-engine/collections/Component/ComponentObject.js +1 -1
  296. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  297. package/views/3d/webgl-engine/collections/Component/RenderSubmitSystem.js +1 -1
  298. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  299. package/views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js +1 -1
  300. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  301. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  302. package/views/3d/webgl-engine/effects/emissive/emissions.js +1 -1
  303. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  304. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  305. package/views/3d/webgl-engine/effects/transparency/OITBlendTechniqueConfiguration.js +1 -1
  306. package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
  307. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  308. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  309. package/views/3d/webgl-engine/lib/RendererBase.js +1 -1
  310. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  311. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  312. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  313. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +2 -2
  314. package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
  315. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +6 -10
  316. package/views/draw/plugins/PolygonPlugin.js +1 -1
  317. package/views/interactive/interactiveToolUtils.js +1 -1
  318. package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
  319. package/views/interactive/snapping/LineSnapper.js +1 -1
  320. package/views/interactive/snapping/ParallelLineSnapper.js +1 -1
  321. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  322. package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
  323. package/views/interactive/snapping/SnappingAlgorithm.js +1 -1
  324. package/views/interactive/snapping/SnappingManager.js +1 -1
  325. package/views/interactive/snapping/snappingUtils.js +1 -1
  326. package/views/layers/FeatureLikeLayerView.d.ts +25 -1
  327. package/views/layers/FeatureLikeLayerView.js +1 -1
  328. package/views/types.d.ts +4 -4
  329. package/views/webgl/RenderingContext.js +1 -1
  330. package/views/webgl/renderState.js +1 -1
  331. package/webdoc/support/webdocSaveUtils.js +1 -1
  332. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +10 -2
  333. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  334. package/widgets/BatchAttributeForm/ReactiveContingentValuesManager.js +1 -1
  335. package/widgets/BatchAttributeForm/attachmentUtils.d.ts +14 -0
  336. package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
  337. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  338. package/widgets/BatchAttributeForm/css.js +1 -1
  339. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +8 -6
  340. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  341. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  342. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
  343. package/widgets/BatchAttributeForm/inputs/support/attachmentValidationCriteriaState.d.ts +5 -0
  344. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  345. package/widgets/BatchAttributeForm/inputs/types.d.ts +8 -1
  346. package/widgets/BatchAttributeForm/interfaceUtils.js +1 -1
  347. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  348. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  349. package/widgets/BatchAttributeForm.d.ts +9 -1
  350. package/widgets/BatchAttributeForm.js +1 -1
  351. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  352. package/widgets/FeatureTable/Grid/Column.js +1 -1
  353. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  354. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  355. package/widgets/FeatureTable/Grid/GroupColumn.js +1 -1
  356. package/widgets/FeatureTable.js +1 -1
  357. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  358. package/widgets/Print/PrintViewModel.js +1 -1
  359. package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +7 -1
  360. package/widgets/VideoPlayer/VideoPlayerViewModel.js +1 -1
  361. package/widgets/support/ContingentValuesManager.js +1 -1
  362. package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +0 -1
  363. package/assets/esri/core/workers/chunks/03354ad3d74d858173b4.js +0 -1
  364. package/assets/esri/core/workers/chunks/09a4139fc6d069ab6928.js +0 -1
  365. package/assets/esri/core/workers/chunks/0a510acf50915e00c62b.js +0 -1
  366. package/assets/esri/core/workers/chunks/0a780a883abfcdf0b900.js +0 -1
  367. package/assets/esri/core/workers/chunks/0fbf9bf52ecb4cd8293b.js +0 -1
  368. package/assets/esri/core/workers/chunks/119d352dd586f2bb61ec.js +0 -1
  369. package/assets/esri/core/workers/chunks/130784a27661de6b52a5.js +0 -1
  370. package/assets/esri/core/workers/chunks/145364aa20b4435294c2.js +0 -1
  371. package/assets/esri/core/workers/chunks/1595dc499a06b23b6a96.js +0 -1
  372. package/assets/esri/core/workers/chunks/16713986893adfbc9331.js +0 -1
  373. package/assets/esri/core/workers/chunks/179c9fe4ac83b42e5976.js +0 -1
  374. package/assets/esri/core/workers/chunks/19dcae83be0fc0aced02.js +0 -1
  375. package/assets/esri/core/workers/chunks/1c64e10f966e26af6fed.js +0 -1
  376. package/assets/esri/core/workers/chunks/1eabe746481e0b228498.js +0 -1
  377. package/assets/esri/core/workers/chunks/201007cf1a91e2b126fc.js +0 -1
  378. package/assets/esri/core/workers/chunks/20d0adc678f11981059c.js +0 -1
  379. package/assets/esri/core/workers/chunks/227eff8aa4a6f5f03bc2.js +0 -1
  380. package/assets/esri/core/workers/chunks/233ff588798c8a5eedf4.js +0 -1
  381. package/assets/esri/core/workers/chunks/238478cfe493fd4a6100.js +0 -1
  382. package/assets/esri/core/workers/chunks/24647e7424798dccdaf5.js +0 -1
  383. package/assets/esri/core/workers/chunks/249616ea2d90d40a8299.js +0 -1
  384. package/assets/esri/core/workers/chunks/24d9e4f1c7b8ff0d2cce.js +0 -1
  385. package/assets/esri/core/workers/chunks/2b36a54927f5a7281da3.js +0 -1
  386. package/assets/esri/core/workers/chunks/2bcd4d395bfe6a19ccc8.js +0 -1
  387. package/assets/esri/core/workers/chunks/2c8584ec1c3c9fd5aba2.js +0 -1
  388. package/assets/esri/core/workers/chunks/2d374cc8c54a722a7afe.js +0 -1
  389. package/assets/esri/core/workers/chunks/2e11b4e9d66474a60064.js +0 -1
  390. package/assets/esri/core/workers/chunks/2fa080539d039c92ce08.js +0 -1
  391. package/assets/esri/core/workers/chunks/3109b05fe4fc40d4f25b.js +0 -1
  392. package/assets/esri/core/workers/chunks/31442f25d550ead58fc4.js +0 -1
  393. package/assets/esri/core/workers/chunks/32323b0e0fcecd8f640e.js +0 -1
  394. package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +0 -1
  395. package/assets/esri/core/workers/chunks/33e0130e6a40fc768978.js +0 -1
  396. package/assets/esri/core/workers/chunks/343ba5ea459e96ba79c6.js +0 -1
  397. package/assets/esri/core/workers/chunks/388e71e8f2ec41bfa5a9.js +0 -1
  398. package/assets/esri/core/workers/chunks/3a5c1c501808352857bd.js +0 -1
  399. package/assets/esri/core/workers/chunks/3aacaa1be5efeac23a37.js +0 -1
  400. package/assets/esri/core/workers/chunks/3b765a8cac9e92f644f2.js +0 -1
  401. package/assets/esri/core/workers/chunks/3bf6d55511cd7722eb93.js +0 -1
  402. package/assets/esri/core/workers/chunks/3e012cd3ca4451f89f59.js +0 -1
  403. package/assets/esri/core/workers/chunks/3fbb6ff940156a981983.js +0 -1
  404. package/assets/esri/core/workers/chunks/40910c69307e2d2d3f28.js +0 -1
  405. package/assets/esri/core/workers/chunks/40c4e14e7bb505ef10a3.js +0 -1
  406. package/assets/esri/core/workers/chunks/4104fa1ede36bcee9be5.js +0 -1
  407. package/assets/esri/core/workers/chunks/423a9882abd4a6dadf86.js +0 -1
  408. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +0 -1
  409. package/assets/esri/core/workers/chunks/45323491f9005629c602.js +0 -1
  410. package/assets/esri/core/workers/chunks/46d0a25d33b5b328cfce.js +0 -1
  411. package/assets/esri/core/workers/chunks/47dd2bfecc5c4b5f10f0.js +0 -1
  412. package/assets/esri/core/workers/chunks/4845df00f6ebcce6ea3e.js +0 -1
  413. package/assets/esri/core/workers/chunks/48fcc10768d93e95a04e.js +0 -1
  414. package/assets/esri/core/workers/chunks/4a9dd9f8aa98882218f3.js +0 -1
  415. package/assets/esri/core/workers/chunks/4bfffdfbe6d467f143a4.js +0 -1
  416. package/assets/esri/core/workers/chunks/518046d2b95a7590a092.js +0 -1
  417. package/assets/esri/core/workers/chunks/54dad475dc806a38c287.js +0 -1
  418. package/assets/esri/core/workers/chunks/552945a73a95cd2a9f54.js +0 -1
  419. package/assets/esri/core/workers/chunks/5553279998ae07b60f5f.js +0 -1
  420. package/assets/esri/core/workers/chunks/58155f24f8ed6aca7a21.js +0 -1
  421. package/assets/esri/core/workers/chunks/5838f46d341d2fde42ee.js +0 -1
  422. package/assets/esri/core/workers/chunks/592a599f514de373dead.js +0 -1
  423. package/assets/esri/core/workers/chunks/5aba23584e0b230c75f5.js +0 -1
  424. package/assets/esri/core/workers/chunks/5f9bacee6fbf9ac1bca0.js +0 -1
  425. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +0 -1
  426. package/assets/esri/core/workers/chunks/624b1bb269744142b835.js +0 -1
  427. package/assets/esri/core/workers/chunks/62fc3c367f736c73b0d7.js +0 -1
  428. package/assets/esri/core/workers/chunks/643c33a98f2d30a92001.js +0 -1
  429. package/assets/esri/core/workers/chunks/64daa2a714e59d22bbd4.js +0 -1
  430. package/assets/esri/core/workers/chunks/65621650a53f69f7b05a.js +0 -1
  431. package/assets/esri/core/workers/chunks/6a5356ebed70e0f8f979.js +0 -1
  432. package/assets/esri/core/workers/chunks/6c9933f948efd7923aa1.js +0 -1
  433. package/assets/esri/core/workers/chunks/6cab67fc7044ee9b863b.js +0 -1
  434. package/assets/esri/core/workers/chunks/7014e73dfd3c8baa704c.js +0 -1
  435. package/assets/esri/core/workers/chunks/75839240022b280929f7.js +0 -1
  436. package/assets/esri/core/workers/chunks/76589434d573111a8fb4.js +0 -1
  437. package/assets/esri/core/workers/chunks/767ea5b455b3823afd09.js +0 -1
  438. package/assets/esri/core/workers/chunks/77859a61d059738d057f.js +0 -1
  439. package/assets/esri/core/workers/chunks/78aa5bc6af2758da20d0.js +0 -1
  440. package/assets/esri/core/workers/chunks/7b564226def99fcf79d8.js +0 -1
  441. package/assets/esri/core/workers/chunks/7bbffe07e62897928773.js +0 -1
  442. package/assets/esri/core/workers/chunks/7cadfd7444a2a05cf2fb.js +0 -1
  443. package/assets/esri/core/workers/chunks/7df94cb985db41815fad.js +0 -2
  444. package/assets/esri/core/workers/chunks/823789261ca3338f0fa8.js +0 -1
  445. package/assets/esri/core/workers/chunks/8419934bec7723b0feef.js +0 -1
  446. package/assets/esri/core/workers/chunks/84b0b6e099d949e0fea5.js +0 -1
  447. package/assets/esri/core/workers/chunks/9133c1b7cc1c9da27deb.js +0 -1
  448. package/assets/esri/core/workers/chunks/92ab5886aa2d8b9b179f.js +0 -1
  449. package/assets/esri/core/workers/chunks/9a6e62ef984e9c5babc4.js +0 -1
  450. package/assets/esri/core/workers/chunks/9b676606bf839b7aa433.js +0 -1
  451. package/assets/esri/core/workers/chunks/9d27cc631bab8aa7479e.js +0 -1
  452. package/assets/esri/core/workers/chunks/9dcfaca1f4fa8c8026ac.js +0 -1
  453. package/assets/esri/core/workers/chunks/9f23a61c60949459c14f.js +0 -30
  454. package/assets/esri/core/workers/chunks/a03c4c0bf138734a002e.js +0 -1
  455. package/assets/esri/core/workers/chunks/a0fa60a24e58f7a47e41.js +0 -1
  456. package/assets/esri/core/workers/chunks/a261f4c22224511fdfff.js +0 -1
  457. package/assets/esri/core/workers/chunks/a2ac139d0975085279a6.js +0 -1
  458. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +0 -1
  459. package/assets/esri/core/workers/chunks/ab94c9f62462d7a98f6a.js +0 -1
  460. package/assets/esri/core/workers/chunks/abdb05754c50776c3edd.js +0 -1
  461. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +0 -1
  462. package/assets/esri/core/workers/chunks/b0ac4b0b7aec70cfe6eb.js +0 -1
  463. package/assets/esri/core/workers/chunks/b23009d9f8eb7c20ce45.js +0 -1
  464. package/assets/esri/core/workers/chunks/bfbd1ca28ed2f263e58f.js +0 -1
  465. package/assets/esri/core/workers/chunks/c1b6de0d728d25d7905a.js +0 -1
  466. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +0 -1
  467. package/assets/esri/core/workers/chunks/ca6907e14b1dde4d5c07.js +0 -1
  468. package/assets/esri/core/workers/chunks/cbbd94c53e75efc99876.js +0 -1
  469. package/assets/esri/core/workers/chunks/ce0e627a5e1cb78adce8.js +0 -1
  470. package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +0 -1
  471. package/assets/esri/core/workers/chunks/d21480b078ec9680d4c4.js +0 -1
  472. package/assets/esri/core/workers/chunks/d81291dac1932350eccd.js +0 -1
  473. package/assets/esri/core/workers/chunks/da3c54e27a808f4fcc18.js +0 -1
  474. package/assets/esri/core/workers/chunks/dc6d50e1097a920ff820.js +0 -1
  475. package/assets/esri/core/workers/chunks/dd58286dde3b20356f84.js +0 -1
  476. package/assets/esri/core/workers/chunks/dfeddb7b17fa9eaae64c.js +0 -1
  477. package/assets/esri/core/workers/chunks/e4e0c5a45cf32973d5d5.js +0 -1
  478. package/assets/esri/core/workers/chunks/e638391801ad83fe4a68.js +0 -1
  479. package/assets/esri/core/workers/chunks/e755477dc78e9d6038d4.js +0 -1
  480. package/assets/esri/core/workers/chunks/e7712467db46e1385cf4.js +0 -1
  481. package/assets/esri/core/workers/chunks/ed2cb60e4f17f46fb78d.js +0 -1
  482. package/assets/esri/core/workers/chunks/edb55329305becdb204f.js +0 -1
  483. package/assets/esri/core/workers/chunks/f02fe24177e56a7e42b2.js +0 -1
  484. package/assets/esri/core/workers/chunks/f1fb2f12371f4c562079.js +0 -1
  485. package/assets/esri/core/workers/chunks/f3dfe1bd1146a6927407.js +0 -1
  486. package/assets/esri/core/workers/chunks/ff48334528d2554db4fe.js +0 -1
  487. package/views/3d/analysis/LineOfSight/LineOfSightAuthoringStore.js +0 -2
  488. /package/assets/esri/core/workers/chunks/{7df94cb985db41815fad.js.LICENSE.txt → 68f9b2da1fd08785320f.js.LICENSE.txt} +0 -0
  489. /package/assets/esri/core/workers/chunks/{875cce0be4f6c89f80f3.js.LICENSE.txt → 9629601de5e44ffe90ea.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import"../../core/has.js";import t from"../../core/Logger.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{watch as s,syncAndInitial as l,on as n,whenOnce as a}from"../../core/reactiveUtils.js";import{sqlOr as o,sqlIn as u,sqlAnd as d}from"../../core/sql.js";import{property as p,subclass as f}from"../../core/accessorSupport/decorators.js";import{getPopupProvider as h}from"../../graphic/getPopupProvider.js";import{getFeatureIdInfoFieldNames as y}from"../../layers/graphics/data/FeatureIdInfo.js";import{systemIsSpatialFieldName as m}from"../../layers/knowledgeGraph/constants.js";import{getEffectiveDisplayFilter as c}from"../../layers/support/displayFilterUtils.js";import F from"../../layers/support/FeatureEffect.js";import g from"../../layers/support/FeatureFilter.js";import{getSignedInUser as I,layerRequiresGeometryZM as b}from"../../layers/support/featureLayerUtils.js";import{fetchFeaturePopupFeatures as v,loadFeaturePopupArcadeModules as w}from"../../layers/support/featurePopupQueryUtils.js";import{fixFields as x,unpackFieldNames as E,collectLabelingFields as R,collectElevationFields as q,collectFilterFields as _,collectFeatureReductionFields as j,collectOrderByInfos as O,collectFields as C,collectTrackInfoFields as k,collectDisplayFilterFields as U,collectField as P,featureHasFields as T}from"../../layers/support/fieldUtils.js";import{getFloorFilterClause as L}from"../../layers/support/floorFilterUtils.js";import{collectRelativeTimeFields as Z}from"../../layers/support/relativeTimeQueryUtils.js";import{getUtilityNetworkFields as M}from"../../networks/support/networkFieldUtils.js";import S from"../../rest/support/Query.js";import{createFeatureIdInfo as D}from"../2d/layers/features/layerAdapters/featureServiceUtils.js";import N from"./LayerView.js";import{getFetchPopupTemplate as Q,getRequiredFields as H}from"./support/popupUtils.js";import{WhereClauseVisitor as B}from"./support/WhereClauseVisitor.js";let G=class extends N{constructor(){super(...arguments),this._updatingRequiredPromise=null,this._defaultReturnZ=!1,this.hasZ=!1,this.hasM=!1,this.filter=null,this.layer=null,this.requiresCurrentUser=!1,this.requiredFields=[],this.view=null}initialize(){this.addHandles([s(()=>{const e=this.layer,t=this.view;return[e&&"elevationInfo"in e?e.elevationInfo?.featureExpressionInfo:null,e&&"displayField"in e?e.displayField:null,e&&"timeInfo"in e&&e.timeInfo,e&&"renderer"in e&&e.renderer,e&&"returnZ"in e&&e.returnZ,e&&"returnM"in e&&e.returnM,e&&"capabilities"in e&&e.capabilities,e&&"labelingInfo"in e&&e.labelingInfo,e&&"floorInfo"in e&&e.floorInfo,t?.requiredFieldsOptions?.featureTitleFields&&e&&"featureTitleFields"in e&&e.featureTitleFields,t?.requiredFieldsOptions?.utilityNetworkFields&&M(t,e),e&&"displayFilterInfo"in e&&e.displayFilterInfo,this.displayFilterEnabled,this.filter,this.featureEffect,this.timeExtent,"knowledge-graph-sublayer"===e?.type&&"link-chart"===e.parentCompositeLayer?.type&&e.parentCompositeLayer.linkChart?.linkChartProperties.nonspatialDataDisplay?.mode]},()=>this._handleChange(),l),n(()=>this.view?.floors,"change",()=>this._handleChange()),n(()=>(this.layer&&"displayFilterInfo"in this.layer?this.layer.displayFilterInfo:null)?.filters,"change",()=>this._handleChange()),n(()=>this.layer&&"sublayers"in this.layer?this.layer.sublayers:null,"change",()=>this._handleChange())])}get availableFields(){if(!this.layer)return[];const{layer:e,layer:{fieldsIndex:t},requiredFields:i}=this;return"outFields"in e&&e.outFields?x(t,[...E(t,e.outFields),...i]):x(t,i)}get displayFilterEnabled(){return(this.view?.displayFilterEnabled??!0)&&(!("displayFilterEnabled"in this.layer)||(this.layer?.displayFilterEnabled??!0))}get effectiveDisplayFilter(){const e=this.layer;return"displayFilterInfo"in e&&this.displayFilterEnabled&&e.displayFilterInfo?c(e.displayFilterInfo,this.view):null}get effectiveDisplayFilterClause(){const e=this.effectiveDisplayFilter?.where??null;return e&&this.hasHighlight?o(e,u(this.layer.objectIdField,this.highlightIds)):e}get featureEffect(){return this.layer&&"featureEffect"in this.layer?this.layer.featureEffect:null}set featureEffect(e){this._override("featureEffect",e)}get highlightOptions(){}set highlightOptions(e){}get maximumNumberOfFeatures(){return 0}set maximumNumberOfFeatures(e){t.getLogger(this).error("#maximumNumberOfFeatures=","Setting maximum number of features is not supported")}get maximumNumberOfFeaturesExceeded(){return!1}get signedInUser(){return this.layer?.url?I(this.layer.url):Promise.resolve(null)}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference},t=null!=this.filter?this.filter.createQuery(e):new S(e);return"floorInfo"in this.layer&&this.layer.floorInfo&&(t.where=d(t.where,L(this))),this.displayFilterEnabled&&(t.where=d(t.where,this.effectiveDisplayFilter?.where)),null!=this.timeExtent&&(t.timeExtent=null!=t.timeExtent?t.timeExtent.intersection(this.timeExtent):this.timeExtent.clone()),t}createAggregateQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference};return new S(e)}async patchFeaturesForPopup(e,t){const r=[],s=new Set,l=new Map;for(const a of e){const e=i(l,a.origin,()=>{const e=h(a.origin);return Q(e,{...t,checkPopupEnabled:!0})});e&&(r.push(a),s.add(e))}if(0===r.length||0===s.size)return[];const n=await this._createPopupQuery(s,t);return await v(this.layer,r,n,{hasRequiredFields:(e,t)=>this._popupFeatureHasRequiredFields(e,t),...t})}_handleChange(){const e=Promise.all([a(()=>!("reloading"in this.layer&&this.layer.reloading)),this._updateRequiredFields(),this._updateClientWhereClauseRequirements(),this._updateHasZM()]).then(()=>{});return this._updatingRequiredPromise=e,e.then(()=>{this._updatingRequiredPromise===e&&(this._updatingRequiredPromise=null)}),e}async _updateClientWhereClauseRequirements(){if(!this.layer||!this.view)return;const{layer:e}=this,i=new B(e.fieldsIndex);if(i.visitFilter(this.filter),"featureReduction"in e&&i.visitFeatureReduction(e.featureReduction),"labelingInfo"in e&&i.visitLabelingInfo(e.labelsVisible,e.labelingInfo),"trackInfo"in e&&i.visitTrackInfo(e.trackInfo),"2d"===this.view.type&&(i.visitFilter(this.featureEffect?.filter),"featureReduction"in e&&i.visitFeatureReduction(e.featureReduction),"displayFilterInfo"in e&&i.visitDisplayFilter(this.displayFilterEnabled,e.displayFilterInfo)),"subtype-group"===e.type)for(const t of e.sublayers)i.visitLabelingInfo(t.labelsVisible,t.labelingInfo);"definitionExpression"in e&&"capabilities"in e&&e.capabilities?.query.relativeTimeBinWindow&&i.visitRelativeTimeQuery(e.definitionExpression);try{const e=await i.finish();this._set("requiresCurrentUser",e.requiresCurrentUser)}catch(r){t.getLogger(this).error(r)}}async _updateRequiredFields(){if(!this.layer||!this.view)return;const e="3d"===this.view.type,{layer:i,layer:{fieldsIndex:r}}=this,s="renderer"in i&&i.renderer,l="orderBy"in i&&i.orderBy,n="featureReduction"in i?i.featureReduction:null,a=new Set,o=[s?s.collectRequiredFields(a,r):null,R(a,i),e&&"elevationInfo"in i?q(a,i):null,null!=this.filter?_(a,i,this.filter):null,e||null==this.featureEffect?null:_(a,i,this.featureEffect.filter),!e&&n?j(a,i,n):null,!e&&l?O(a,i,l):null,"definitionExpression"in i&&"capabilities"in i&&i.capabilities?.query.relativeTimeBinWindow?Z(a,i.fieldsIndex,i.definitionExpression):null];if("timeInfo"in i&&i.timeInfo&&this.timeExtent&&C(a,i.fieldsIndex,[i.timeInfo.startField,i.timeInfo.endField]),"timeInfo"in i&&i.timeInfo&&"trackInfo"in i&&i.trackInfo){const{trackInfo:e}=i;C(a,i.fieldsIndex,[i.timeInfo.trackIdField]),"feature"!==i.type&&"startTimeField"!==e.timeField||C(a,i.fieldsIndex,[i.timeInfo.startField]),"endTimeField"===e.timeField&&C(a,i.fieldsIndex,[i.timeInfo.endField]),await k(a,i)}if("floorInfo"in i&&i.floorInfo&&C(a,i.fieldsIndex,[i.floorInfo.floorField]),"featureTitleFields"in i&&this.view?.requiredFieldsOptions?.featureTitleFields&&i.featureTitleFields&&C(a,i.fieldsIndex,i.featureTitleFields),"feature"===i.type&&i.globalIdField&&this.view?.requiredFieldsOptions?.globalIdField&&C(a,i.fieldsIndex,[i.globalIdField]),"feature"!==i.type&&"subtype-group"!==i.type||!this.view?.requiredFieldsOptions?.utilityNetworkFields||C(a,i.fieldsIndex,M(this.view,i)),this.displayFilterEnabled&&"displayFilterInfo"in i&&o.push(U(a,i,i.displayFilterInfo)),"feature"===i.type&&e&&null!=i.infoFor3D&&(null==i.globalIdField&&t.getLogger(this).error("globalIdField missing on 3DObjectFeatureLayer"),C(a,i.fieldsIndex,[i.globalIdField])),"subtype-group"===i.type){P(a,r,i.subtypeField);const e=i.sublayers.map(e=>Promise.all([e.renderer?.collectRequiredFields(a,r),R(a,e)]));o.push(Promise.all(e))}if("catalog-footprint"===i.type&&i.parent){const e=i.parent;C(a,r,[e.itemNameField,e.itemSourceField,e.itemTypeField,e.maxScaleField,e.minScaleField])}"knowledge-graph-sublayer"===i.type&&"link-chart"===i.parentCompositeLayer?.type&&P(a,r,m);const u=await Promise.allSettled(o);if(e)P(a,r,i.objectIdField);else for(const t of y(D(i)))P(a,r,t);e&&"displayField"in i&&i.displayField&&P(a,r,i.displayField);for(const p of u)"rejected"===p.status&&t.getLogger(this).error(p.reason);const d=Array.from(a).sort();this._set("requiredFields",d)}async _updateHasZM(){const{layer:e}=this;if(!e||!this.view)return;let t=!1,i=!1;if("capabilities"in e&&e.capabilities){const{data:r}=e.capabilities;t=r.supportsZ,i=r.supportsM}this._set("hasZ",t),this._set("hasM",i);const{returnZ:r,returnM:s}=await b(e);t&&=r??this._defaultReturnZ,i&&=s??!1,this.hasZ!==t&&this._set("hasZ",t),this.hasM!==i&&this._set("hasM",i)}_popupFeatureHasRequiredFields(e,t){return T(e,t)}async _createPopupQuery(e,t){const i=this.layer.createQuery(),s=new Set;let l="point"===this.layer.geometryType;for(const n of e){if(!l){const e=await w(n);r(t),l=(e&&e.arcadeUtils.hasGeometryOperations(n))??!1}const e=await H(this.layer,n);r(t);for(const t of e)s.add(t)}return i.where="1=1",i.returnGeometry=l,i.returnZ=l,i.returnM=l,i.outFields=Array.from(s),i.outSpatialReference=this.view.spatialReference,"floorInfo"in this.layer&&this.layer.floorInfo&&(i.where=d(i.where,L(this))),i}canResume(){return!!super.canResume()&&(null==this.timeExtent||!this.timeExtent.isEmpty)}getTest(){}get test(){}};e([p()],G.prototype,"_updatingRequiredPromise",void 0),e([p()],G.prototype,"_defaultReturnZ",void 0),e([p({readOnly:!0})],G.prototype,"availableFields",null),e([p({readOnly:!0})],G.prototype,"hasZ",void 0),e([p({readOnly:!0})],G.prototype,"hasM",void 0),e([p({readOnly:!0})],G.prototype,"displayFilterEnabled",null),e([p({readOnly:!0})],G.prototype,"effectiveDisplayFilter",null),e([p({readOnly:!0})],G.prototype,"effectiveDisplayFilterClause",null),e([p({type:F})],G.prototype,"featureEffect",null),e([p({type:g})],G.prototype,"filter",void 0),e([p()],G.prototype,"layer",void 0),e([p({type:Number})],G.prototype,"maximumNumberOfFeatures",null),e([p({readOnly:!0,type:Boolean})],G.prototype,"maximumNumberOfFeaturesExceeded",null),e([p()],G.prototype,"requiresCurrentUser",void 0),e([p({readOnly:!0})],G.prototype,"requiredFields",void 0),e([p({readOnly:!0})],G.prototype,"signedInUser",null),e([p()],G.prototype,"view",void 0),G=e([f("esri.views.layers.FeatureLikeLayerView")],G);const V=G;export{V as default};
2
+ import{__decorate as e}from"tslib";import"../../core/has.js";import t from"../../core/Logger.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{throwIfAborted as r}from"../../core/promiseUtils.js";import{watch as s,syncAndInitial as l,on as n,whenOnce as a}from"../../core/reactiveUtils.js";import{sqlOr as o,sqlIn as u,sqlAnd as d}from"../../core/sql.js";import{property as p,subclass as f}from"../../core/accessorSupport/decorators.js";import{getPopupProvider as h}from"../../graphic/getPopupProvider.js";import{getFeatureIdInfoFieldNames as y}from"../../layers/graphics/data/FeatureIdInfo.js";import{systemIsSpatialFieldName as m}from"../../layers/knowledgeGraph/constants.js";import{getEffectiveDisplayFilter as c}from"../../layers/support/displayFilterUtils.js";import F from"../../layers/support/FeatureEffect.js";import g from"../../layers/support/FeatureFilter.js";import{getSignedInUser as I,layerRequiresGeometryZM as b}from"../../layers/support/featureLayerUtils.js";import{fetchFeaturePopupFeatures as v,loadFeaturePopupArcadeModules as w}from"../../layers/support/featurePopupQueryUtils.js";import{fixFields as x,unpackFieldNames as E,collectLabelingFields as R,collectElevationFields as q,collectFilterFields as _,collectFeatureReductionFields as j,collectOrderByInfos as O,collectFields as C,collectTrackInfoFields as k,collectDisplayFilterFields as Z,collectField as M,featureHasFields as U}from"../../layers/support/fieldUtils.js";import{getFloorFilterClause as P}from"../../layers/support/floorFilterUtils.js";import{collectRelativeTimeFields as T}from"../../layers/support/relativeTimeQueryUtils.js";import{getUtilityNetworkFields as L}from"../../networks/support/networkFieldUtils.js";import S from"../../rest/support/Query.js";import{createFeatureIdInfo as D}from"../2d/layers/features/layerAdapters/featureServiceUtils.js";import N from"./LayerView.js";import{getFetchPopupTemplate as Q,getRequiredFields as H}from"./support/popupUtils.js";import{WhereClauseVisitor as B}from"./support/WhereClauseVisitor.js";let G=class extends N{constructor(){super(...arguments),this._updatingRequiredPromise=null,this._defaultReturnZ=!1,this.hasZ=!1,this.hasM=!1,this.filter=null,this.layer=null,this.requiresCurrentUser=!1,this.requiredFields=[],this.view=null}initialize(){this.addHandles([s(()=>{const e=this.layer,t=this.view;return[e&&"elevationInfo"in e?e.elevationInfo?.featureExpressionInfo:null,e&&"displayField"in e?e.displayField:null,e&&"timeInfo"in e&&e.timeInfo,e&&"renderer"in e&&e.renderer,e&&"returnZ"in e&&e.returnZ,e&&"returnM"in e&&e.returnM,e&&"capabilities"in e&&e.capabilities,e&&"labelingInfo"in e&&e.labelingInfo,e&&"floorInfo"in e&&e.floorInfo,t?.requiredFieldsOptions?.featureTitleFields&&e&&"featureTitleFields"in e&&e.featureTitleFields,t?.requiredFieldsOptions?.utilityNetworkFields&&L(t,e),e&&"displayFilterInfo"in e&&e.displayFilterInfo,this.displayFilterEnabled,this.filter,this.featureEffect,this.timeExtent,"knowledge-graph-sublayer"===e?.type&&"link-chart"===e.parentCompositeLayer?.type&&e.parentCompositeLayer.linkChart?.linkChartProperties.nonspatialDataDisplay?.mode]},()=>this._handleChange(),l),n(()=>this.view?.floors,"change",()=>this._handleChange()),n(()=>(this.layer&&"displayFilterInfo"in this.layer?this.layer.displayFilterInfo:null)?.filters,"change",()=>this._handleChange()),n(()=>this.layer&&"sublayers"in this.layer?this.layer.sublayers:null,"change",()=>this._handleChange())])}get availableFields(){if(!this.layer)return[];const{layer:e,layer:{fieldsIndex:t},requiredFields:i}=this;return"outFields"in e&&e.outFields?x(t,[...E(t,e.outFields),...i]):x(t,i)}get displayFilterEnabled(){return(this.view?.displayFilterEnabled??!0)&&(!("displayFilterEnabled"in this.layer)||(this.layer?.displayFilterEnabled??!0))}get effectiveDisplayFilter(){const e=this.layer;return"displayFilterInfo"in e&&this.displayFilterEnabled&&e.displayFilterInfo?c(e.displayFilterInfo,this.view):null}get effectiveDisplayFilterClause(){const e=this.effectiveDisplayFilter?.where??null;return e&&this.hasHighlight?o(e,u(this.layer.objectIdField,this.highlightIds)):e}get featureEffect(){return this.layer&&"featureEffect"in this.layer?this.layer.featureEffect:null}set featureEffect(e){this._override("featureEffect",e)}get highlightOptions(){}set highlightOptions(e){}get maximumNumberOfFeatures(){return 0}set maximumNumberOfFeatures(e){t.getLogger(this).error("#maximumNumberOfFeatures=","Setting maximum number of features is not supported")}get maximumNumberOfFeaturesExceeded(){return!1}get signedInUser(){return this.layer?.url?I(this.layer.url):Promise.resolve(null)}createQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference},t=null!=this.filter?this.filter.createQuery(e):new S(e);if("floorInfo"in this.layer&&this.layer.floorInfo&&(t.where=d(t.where,P(this))),this.displayFilterEnabled&&(t.where=d(t.where,this.effectiveDisplayFilter?.where)),null!=this.timeExtent&&(t.timeExtent=null!=t.timeExtent?t.timeExtent.intersection(this.timeExtent):this.timeExtent.clone()),"capabilities"in this.layer){const e=this.layer.capabilities?.data;"returnZ"in this.layer&&e?.supportsZ&&null!=this.layer.returnZ&&(t.returnZ=this.layer.returnZ),"returnM"in this.layer&&e?.supportsM&&null!=this.layer.returnM&&(t.returnM=this.layer.returnM)}return t}createAggregateQuery(){const e={outFields:["*"],returnGeometry:!0,outSpatialReference:this.view.spatialReference};return new S(e)}async patchFeaturesForPopup(e,t){const r=[],s=new Set,l=new Map;for(const a of e){const e=i(l,a.origin,()=>{const e=h(a.origin);return Q(e,{...t,checkPopupEnabled:!0})});e&&(r.push(a),s.add(e))}if(0===r.length||0===s.size)return[];const n=await this._createPopupQuery(s,t);return await v(this.layer,r,n,{hasRequiredFields:(e,t)=>this._popupFeatureHasRequiredFields(e,t),...t})}_handleChange(){const e=Promise.all([a(()=>!("reloading"in this.layer&&this.layer.reloading)),this._updateRequiredFields(),this._updateClientWhereClauseRequirements(),this._updateHasZM()]).then(()=>{});return this._updatingRequiredPromise=e,e.then(()=>{this._updatingRequiredPromise===e&&(this._updatingRequiredPromise=null)}),e}async _updateClientWhereClauseRequirements(){if(!this.layer||!this.view)return;const{layer:e}=this,i=new B(e.fieldsIndex);if(i.visitFilter(this.filter),"featureReduction"in e&&i.visitFeatureReduction(e.featureReduction),"labelingInfo"in e&&i.visitLabelingInfo(e.labelsVisible,e.labelingInfo),"trackInfo"in e&&i.visitTrackInfo(e.trackInfo),"2d"===this.view.type&&(i.visitFilter(this.featureEffect?.filter),"featureReduction"in e&&i.visitFeatureReduction(e.featureReduction),"displayFilterInfo"in e&&i.visitDisplayFilter(this.displayFilterEnabled,e.displayFilterInfo)),"subtype-group"===e.type)for(const t of e.sublayers)i.visitLabelingInfo(t.labelsVisible,t.labelingInfo);"definitionExpression"in e&&"capabilities"in e&&e.capabilities?.query.relativeTimeBinWindow&&i.visitRelativeTimeQuery(e.definitionExpression);try{const e=await i.finish();this._set("requiresCurrentUser",e.requiresCurrentUser)}catch(r){t.getLogger(this).error(r)}}async _updateRequiredFields(){if(!this.layer||!this.view)return;const e="3d"===this.view.type,{layer:i,layer:{fieldsIndex:r}}=this,s="renderer"in i&&i.renderer,l="orderBy"in i&&i.orderBy,n="featureReduction"in i?i.featureReduction:null,a=new Set,o=[s?s.collectRequiredFields(a,r):null,R(a,i),e&&"elevationInfo"in i?q(a,i):null,null!=this.filter?_(a,i,this.filter):null,e||null==this.featureEffect?null:_(a,i,this.featureEffect.filter),!e&&n?j(a,i,n):null,!e&&l?O(a,i,l):null,"definitionExpression"in i&&"capabilities"in i&&i.capabilities?.query.relativeTimeBinWindow?T(a,i.fieldsIndex,i.definitionExpression):null];if("timeInfo"in i&&i.timeInfo&&this.timeExtent&&C(a,i.fieldsIndex,[i.timeInfo.startField,i.timeInfo.endField]),"timeInfo"in i&&i.timeInfo&&"trackInfo"in i&&i.trackInfo){const{trackInfo:e}=i;C(a,i.fieldsIndex,[i.timeInfo.trackIdField]),"feature"!==i.type&&"startTimeField"!==e.timeField||C(a,i.fieldsIndex,[i.timeInfo.startField]),"endTimeField"===e.timeField&&C(a,i.fieldsIndex,[i.timeInfo.endField]),await k(a,i)}if("floorInfo"in i&&i.floorInfo&&C(a,i.fieldsIndex,[i.floorInfo.floorField]),"featureTitleFields"in i&&this.view?.requiredFieldsOptions?.featureTitleFields&&i.featureTitleFields&&C(a,i.fieldsIndex,i.featureTitleFields),"feature"===i.type&&i.globalIdField&&this.view?.requiredFieldsOptions?.globalIdField&&C(a,i.fieldsIndex,[i.globalIdField]),"feature"!==i.type&&"subtype-group"!==i.type||!this.view?.requiredFieldsOptions?.utilityNetworkFields||C(a,i.fieldsIndex,L(this.view,i)),this.displayFilterEnabled&&"displayFilterInfo"in i&&o.push(Z(a,i,i.displayFilterInfo)),"feature"===i.type&&e&&null!=i.infoFor3D&&(null==i.globalIdField&&t.getLogger(this).error("globalIdField missing on 3DObjectFeatureLayer"),C(a,i.fieldsIndex,[i.globalIdField])),"subtype-group"===i.type){M(a,r,i.subtypeField);const e=i.sublayers.map(e=>Promise.all([e.renderer?.collectRequiredFields(a,r),R(a,e)]));o.push(Promise.all(e))}if("annotation"===i.type&&M(a,r,i.subtypeField),"catalog-footprint"===i.type&&i.parent){const e=i.parent;C(a,r,[e.itemNameField,e.itemSourceField,e.itemTypeField,e.maxScaleField,e.minScaleField])}"knowledge-graph-sublayer"===i.type&&"link-chart"===i.parentCompositeLayer?.type&&M(a,r,m);const u=await Promise.allSettled(o);if(e)M(a,r,i.objectIdField);else for(const t of y(D(i)))M(a,r,t);e&&"displayField"in i&&i.displayField&&M(a,r,i.displayField);for(const p of u)"rejected"===p.status&&t.getLogger(this).error(p.reason);const d=Array.from(a).sort();this._set("requiredFields",d)}async _updateHasZM(){const{layer:e}=this;if(!e||!this.view)return;let t=!1,i=!1;if("capabilities"in e&&e.capabilities){const{data:r}=e.capabilities;t=r.supportsZ,i=r.supportsM}this._set("hasZ",t),this._set("hasM",i);const{returnZ:r,returnM:s}=await b(e);t&&=r??this._defaultReturnZ,i&&=s??!1,this.hasZ!==t&&this._set("hasZ",t),this.hasM!==i&&this._set("hasM",i)}_popupFeatureHasRequiredFields(e,t){return U(e,t)}async _createPopupQuery(e,t){const i=this.layer.createQuery(),s=new Set;let l="point"===this.layer.geometryType;for(const n of e){if(!l){const e=await w(n);r(t),l=(e&&e.arcadeUtils.hasGeometryOperations(n))??!1}const e=await H(this.layer,n);r(t);for(const t of e)s.add(t)}return i.where="1=1",i.returnGeometry=l,i.returnZ=l,i.returnM=l,i.outFields=Array.from(s),i.outSpatialReference=this.view.spatialReference,"floorInfo"in this.layer&&this.layer.floorInfo&&(i.where=d(i.where,P(this))),i}canResume(){return!!super.canResume()&&(null==this.timeExtent||!this.timeExtent.isEmpty)}getTest(){}get test(){}};e([p()],G.prototype,"_updatingRequiredPromise",void 0),e([p()],G.prototype,"_defaultReturnZ",void 0),e([p({readOnly:!0})],G.prototype,"availableFields",null),e([p({readOnly:!0})],G.prototype,"hasZ",void 0),e([p({readOnly:!0})],G.prototype,"hasM",void 0),e([p({readOnly:!0})],G.prototype,"displayFilterEnabled",null),e([p({readOnly:!0})],G.prototype,"effectiveDisplayFilter",null),e([p({readOnly:!0})],G.prototype,"effectiveDisplayFilterClause",null),e([p({type:F})],G.prototype,"featureEffect",null),e([p({type:g})],G.prototype,"filter",void 0),e([p()],G.prototype,"layer",void 0),e([p({type:Number})],G.prototype,"maximumNumberOfFeatures",null),e([p({readOnly:!0,type:Boolean})],G.prototype,"maximumNumberOfFeaturesExceeded",null),e([p()],G.prototype,"requiresCurrentUser",void 0),e([p({readOnly:!0})],G.prototype,"requiredFields",void 0),e([p({readOnly:!0})],G.prototype,"signedInUser",null),e([p()],G.prototype,"view",void 0),G=e([f("esri.views.layers.FeatureLikeLayerView")],G);const V=G;export{V as default};
package/views/types.d.ts CHANGED
@@ -23,7 +23,7 @@ import type BuildingSublayer from "../layers/buildingSublayers/BuildingSublayer.
23
23
  import type SubtypeSublayer from "../layers/support/SubtypeSublayer.js";
24
24
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
25
25
  import type { AbortOptions } from "../core/promiseUtils.js";
26
- import type { ScreenPoint, ScreenRect } from "../core/types.js";
26
+ import type { ScreenPoint } from "../core/types.js";
27
27
  import type { GeometryUnion } from "../geometry/types.js";
28
28
  import type { MediaElement } from "../layers/media/types.js";
29
29
  import type { NetworkFeature } from "../rest/support/types.js";
@@ -436,7 +436,7 @@ export interface RouteHit {
436
436
  *
437
437
  * @since 5.0
438
438
  */
439
- mapPoint: Point;
439
+ mapPoint?: Point | null;
440
440
  /**
441
441
  * The route hit test will contain all intersecting network elements which, includes one of the following: DirectionLine, DirectionPoint, PointBarrier, PolylineBarrier, PolygonBarrier, Stop, or RouteInfo.
442
442
  *
@@ -486,7 +486,7 @@ export interface RasterHit {
486
486
  *
487
487
  * @since 5.1
488
488
  */
489
- mapPoint?: Point | null;
489
+ mapPoint: Point;
490
490
  /**
491
491
  * The pixel values at the hit location.
492
492
  *
@@ -518,7 +518,7 @@ export interface ViewHitTestResult {
518
518
  *
519
519
  * @since 5.0
520
520
  */
521
- screenPoint: ScreenPoint | ScreenRect;
521
+ screenPoint?: ScreenPoint | null;
522
522
  /**
523
523
  * An array of result objects returned from the [MapView.hitTest()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#hitTest).
524
524
  * Results are returned when the location of the input screen coordinates intersects a [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/),
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/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,webglValidateShadersEnabled as l}from"./checkWebGLError.js";import{ContextState as h}from"./ContextState.js";import{baseTextureUnit as f,DrawBufferBack as o,DrawBufferNone as u,ResourceType as c,ColorAttachment0 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 S=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{ref:e,readMask:s,stencilFront:i,stencilBack:a}=t;i.compare===a.compare?this.setStencilFunction(i.compare,e,s):(this.setStencilFunctionSeparate(1028,i.compare,e,s),this.setStencilFunctionSeparate(1029,a.compare,e,s)),i.fail===a.fail&&i.zFail===a.zFail&&i.zPass===a.zPass?this.setStencilOp(i.fail,i.zFail,i.zPass):(this.setStencilOpSeparate(1028,i.fail,i.zFail,i.zPass),this.setStencilOpSeparate(1029,a.fail,a.zFail,a.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)}}),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.textureUnitSamplerMap.length=0,this._state=null,this._capabilities=null,this._stateTracker=null;const t=a()&&this.instanceCounter.resourceInformation;t&&console.log(t)}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){const e=t[s];this._state.textureUnitMap[e]=null,this._state.textureUnitSamplerMap[e]=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){1032===this._state.stencilFunction.face&&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(f+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]))return i;if(t.length>this.parameters.maxDrawBuffers)return x().error(`Setting more active draw buffers (${t.length}) than GL.MAX_DRAW_BUFFERS allows ( ${this.parameters.maxDrawBuffers}).`),i;if(s){if(t.length>1)return x().error(`The default framebuffer can only have 1 active draw buffer but was requested with ${t.length}.`),i;if(t[0]!==o&&t[0]!==u)return x().error(`The default framebuffer can only use the constants GL.BACK or GL.NONE as draw buffers but got ${t[0]}`),i}else if(t.includes(o))return x().error("A framebuffer object can only use the constants GL.COLOR_ATTACHMENTx or GL.NONE as draw buffers."),i;return this.gl.drawBuffers(t),r(this.gl),s?this._state.drawBuffers.defaultFramebuffer=t:this._state.drawBuffers.fbos.set(e,t),i}clear(t,e=255){t&&(16384&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){this.gl.clearBufferfv(s,t,e,i)}clearBufferInteger(t,e,s=6144,i){this.gl.clearBufferiv(s,t,e,i)}clearBufferUnsignedInteger(t,e,s=6144,i){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}`:"";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,i=null){(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 a=this._state.textureUnitMap[e],r=this._state.textureUnitSamplerMap[e],{gl:n}=this;return null==t?.glName?(null!=a&&(this.setActiveTexture(e,s),n.bindTexture(a.descriptor.target,null)),this._state.textureUnitMap[e]=null,null!=r&&(this._state.textureUnitSamplerMap[e]=null,n.bindSampler(e,null)),a):(r!==i&&(n.bindSampler(e,i?.glName??null),this._state.textureUnitSamplerMap[e]=i),s||a!==t?(this.setActiveTexture(e,s),n.bindTexture(t.descriptor.target,t.glName),t.applyChanges(),this._state.textureUnitMap[e]=t,a):(t.isDirty&&(this.setActiveTexture(e,s),t.applyChanges()),a))}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){const s=E(t);if(e||this._state.readFramebuffer!==t||this._state.drawFramebuffer!==t){if(null==t)return this.gl.bindFramebuffer(36160,null),this._state.readFramebuffer=this._state.drawFramebuffer=null,void this.setDrawBuffers(s);t.initializeAndBind(36160),this._state.readFramebuffer=t,this._state.drawFramebuffer=t,this.setDrawBuffers(s)}else this.setDrawBuffers(s)}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._state.drawFramebuffer=t??null,this.setDrawBuffers(E(t))))}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 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=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")}get boundFramebuffer(){return this._state.drawFramebuffer}temporaryBindFramebuffer(t,e,s=!1){const i=this.boundFramebuffer,a={...this._state.viewport};try{this.bindFramebuffer(t,s),t&&this.setViewport(0,0,t.width,t.height),e()}finally{this.bindFramebuffer(i,s),t&&this.setViewport(a.x,a.y,a.width,a.height)}}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.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(d)),t.bindFramebuffer(36009,this._state.drawFramebuffer?.glName??null),null===this._state.drawFramebuffer){const e=this._state.drawBuffers.defaultFramebuffer;t.drawBuffers(e??[o])}else{const e=this._state.drawBuffers.fbos.get(this._state.drawFramebuffer);t.drawBuffers(e??[d])}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(f+s),t.bindTexture(3553,null),t.bindTexture(34067,null),t.bindTexture(32879,null),t.bindTexture(35866,null),t.bindSampler(s,null);const e=this._state.textureUnitMap[s];null!=e&&t.bindTexture(e.descriptor.target,e.glName);const i=this._state.textureUnitSamplerMap[s];null!=i&&t.bindSampler(s,i?.glName)}t.activeTexture(f+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 _.POINTS:return 2*e;case _.TRIANGLES:return e/3;case _.TRIANGLE_STRIP:case _.TRIANGLE_FAN:return e-2;default:return 0}}function E(t){return t?t.colorAttachments.length>0?t.colorAttachments:[u]:[o]}export{S as RenderingContext,E as getFramebufferDrawBuffers};
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{baseTextureUnit as f,DrawBufferBack as o,DrawBufferNone as u,ResourceType as c,ColorAttachment0 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{ref:e,readMask:s,stencilFront:i,stencilBack:a}=t;i.compare===a.compare?this.setStencilFunction(i.compare,e,s):(this.setStencilFunctionSeparate(1028,i.compare,e,s),this.setStencilFunctionSeparate(1029,a.compare,e,s)),i.fail===a.fail&&i.zFail===a.zFail&&i.zPass===a.zPass?this.setStencilOp(i.fail,i.zFail,i.zPass):(this.setStencilOpSeparate(1028,i.fail,i.zFail,i.zPass),this.setStencilOpSeparate(1029,a.fail,a.zFail,a.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)}}),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.textureUnitSamplerMap.length=0,this._state=null,this._capabilities=null,this._stateTracker=null;const t=a()&&this.instanceCounter.resourceInformation;t&&console.log(t)}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){const e=t[s];this._state.textureUnitMap[e]=null,this._state.textureUnitSamplerMap[e]=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){1032===this._state.stencilFunction.face&&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(f+t),this._state.activeTexture=t),s}setDrawBuffers(t){const e=this.drawBuffers;if(e.length===t.length&&e.every((e,s)=>e===t[s]))return e;if(t.length>this.parameters.maxDrawBuffers)return x().error(`Setting more active draw buffers (${t.length}) than GL.MAX_DRAW_BUFFERS allows ( ${this.parameters.maxDrawBuffers}).`),e;const s=this._state.drawFramebuffer,i=null===s;if(i){if(t.length>1)return x().error(`The default framebuffer can only have 1 active draw buffer but was requested with ${t.length}.`),e;if(t[0]!==o&&t[0]!==u)return x().error(`The default framebuffer can only use the constants GL.BACK or GL.NONE as draw buffers but got ${t[0]}`),e}else if(t.includes(o))return x().error("A framebuffer object can only use the constants GL.COLOR_ATTACHMENTx or GL.NONE as draw buffers."),e;return this.gl.drawBuffers(t),r(this.gl),i?this._state.drawBuffers.defaultFramebuffer=t:this._state.drawBuffers.fbos.set(s,t),e}get drawBuffers(){const t=this._state.drawFramebuffer;return null===t?this._state.drawBuffers.defaultFramebuffer:this._state.drawBuffers.fbos.get(t)??[]}clear(t,e=255){t&&(16384&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){this.gl.clearBufferfv(s,t,e,i)}clearBufferInteger(t,e,s=6144,i){this.gl.clearBufferiv(s,t,e,i)}clearBufferUnsignedInteger(t,e,s=6144,i){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}`:"";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,i=null){(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 a=this._state.textureUnitMap[e],r=this._state.textureUnitSamplerMap[e],{gl:n}=this;return null==t?.glName?(null!=a&&(this.setActiveTexture(e,s),n.bindTexture(a.descriptor.target,null)),this._state.textureUnitMap[e]=null,null!=r&&(this._state.textureUnitSamplerMap[e]=null,n.bindSampler(e,null)),a):(r!==i&&(n.bindSampler(e,i?.glName??null),this._state.textureUnitSamplerMap[e]=i),s||a!==t?(this.setActiveTexture(e,s),n.bindTexture(t.descriptor.target,t.glName),t.applyChanges(),this._state.textureUnitMap[e]=t,a):(t.isDirty&&(this.setActiveTexture(e,s),t.applyChanges()),a))}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){const s=E(t);if(e||this._state.readFramebuffer!==t||this._state.drawFramebuffer!==t){if(null==t)return this.gl.bindFramebuffer(36160,null),this._state.readFramebuffer=this._state.drawFramebuffer=null,void this.setDrawBuffers(s);t.initializeAndBind(36160),this._state.readFramebuffer=t,this._state.drawFramebuffer=t,this.setDrawBuffers(s)}else this.setDrawBuffers(s)}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._state.drawFramebuffer=t??null,this.setDrawBuffers(E(t))))}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=S(this.gl,t,e,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=S(this.gl,t,e,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=S(this.gl,t,e,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=S(this.gl,t,e,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=S(this.gl,t,e,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=S(this.gl,t,e,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=S(this.gl,t,e,this._state.copyWriteBuffer);break;case 35982:this._state.transformFeedbackBuffer=S(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=S(this.gl,null,t,this._state.vertexBuffer);break;case 34963:this._state.indexBuffer=S(this.gl,null,t,this._state.indexBuffer);break;case 35345:this._state.uniformBuffer=S(this.gl,null,t,this._state.uniformBuffer);break;case 35051:this._state.pixelPackBuffer=S(this.gl,null,t,this._state.pixelPackBuffer);break;case 35052:this._state.pixelUnpackBuffer=S(this.gl,null,t,this._state.pixelUnpackBuffer);break;case 36662:this._state.copyReadBuffer=S(this.gl,null,t,this._state.copyReadBuffer);break;case 36663:this._state.copyWriteBuffer=S(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")}get boundFramebuffer(){return this._state.drawFramebuffer}temporaryBindFramebuffer(t,e,s=!1){const i=this.boundFramebuffer,a={...this._state.viewport};try{this.bindFramebuffer(t,s),t&&this.setViewport(0,0,t.width,t.height),e()}finally{this.bindFramebuffer(i,s),t&&this.setViewport(a.x,a.y,a.width,a.height)}}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.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(d)),t.bindFramebuffer(36009,this._state.drawFramebuffer?.glName??null),null===this._state.drawFramebuffer){const e=this._state.drawBuffers.defaultFramebuffer;t.drawBuffers(e??[o])}else{const e=this._state.drawBuffers.fbos.get(this._state.drawFramebuffer);t.drawBuffers(e??[d])}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(f+s),t.bindTexture(3553,null),t.bindTexture(34067,null),t.bindTexture(32879,null),t.bindTexture(35866,null),t.bindSampler(s,null);const e=this._state.textureUnitMap[s];null!=e&&t.bindTexture(e.descriptor.target,e.glName);const i=this._state.textureUnitSamplerMap[s];null!=i&&t.bindSampler(s,i?.glName)}t.activeTexture(f+this._state.activeTexture);const e=this._state.viewport;t.viewport(e.x,e.y,e.width,e.height),this.resetInfo()}};function S(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 _.POINTS:return 2*e;case _.TRIANGLES:return e/3;case _.TRIANGLE_STRIP:case _.TRIANGLE_FAN:return e-2;default:return 0}}function E(t){return t?t.colorAttachments.length>0?t.colorAttachments:[u]:[o]}export{w as RenderingContext,E as getFramebufferDrawBuffers};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{clone as t}from"../../core/lang.js";function e(t,e,i=32774,n=[0,0,0,0]){return{srcRgb:t,srcAlpha:t,dstRgb:e,dstAlpha:e,opRgb:i,opAlpha:i,color:{r:n[0],g:n[1],b:n[2],a:n[3]}}}function i(t,e,i,n,s=32774,l=32774,r=[0,0,0,0]){return{srcRgb:t,srcAlpha:e,dstRgb:i,dstAlpha:n,opRgb:s,opAlpha:l,color:{r:r[0],g:r[1],b:r[2],a:r[3]}}}const n=e(0,771),s=e(1,0),l=e(1,1),r=e(1,771),a=i(770,1,771,771),h=i(0,0,768,1),o={face:1029,mode:2305},c={face:1028,mode:2305},_=t=>2===t?o:1===t?c:null;function d(t,e,i){return{ref:t,readMask:e,stencilFront:i,stencilBack:i}}function p(t,e,i,n){return{ref:t,readMask:e,stencilFront:i,stencilBack:n}}const u={zNear:0,zFar:1},g={r:!0,g:!0,b:!0,a:!0};function f(t){return B.intern(t)}function v(t){return w.intern(t)}function I(t){return D.intern(t)}function W(t){return A.intern(t)}function S(t){return z.intern(t)}function b(t){return j.intern(t)}function T(t){return N.intern(t)}function y(t){return q.intern(t)}function O(t){return G.intern(t)}class k{constructor(t,e){this._makeKey=t,this._makeRef=e,this._interns=new Map}intern(t){if(!t)return null;const e=this._makeKey(t),i=this._interns;return i.has(e)||i.set(e,this._makeRef(t)),i.get(e)??null}}function m(t){return"["+t.join(",")+"]"}const B=new k(R,t=>({__tag:"Blending",...t}));function R(t){return t?m([t.srcRgb,t.srcAlpha,t.dstRgb,t.dstAlpha,t.opRgb,t.opAlpha,t.color.r,t.color.g,t.color.b,t.color.a]):null}const w=new k(C,t=>({__tag:"Culling",...t}));function C(t){return t?m([t.face,t.mode]):null}const D=new k(F,t=>({__tag:"PolygonOffset",...t}));function F(t){return t?m([t.factor,t.units]):null}const A=new k(P,t=>({__tag:"DepthTest",...t}));function P(t){return t?m([t.func]):null}const z=new k(M,t=>({__tag:"StencilTest",...t}));function M(t){return t?m([t.ref,t.readMask,t.stencilFront.compare,t.stencilFront.fail,t.stencilFront.zFail,t.stencilFront.zPass,t.stencilBack.compare,t.stencilBack.fail,t.stencilBack.zFail,t.stencilBack.zPass]):null}const j=new k(K,t=>({__tag:"DepthWrite",...t}));function K(t){return t?m([t.zNear,t.zFar]):null}const N=new k(x,t=>({__tag:"ColorWrite",...t}));function x(t){return t?m([t.r,t.g,t.b,t.a]):null}const q=new k(E,t=>({__tag:"StencilWrite",...t}));function E(t){return t?m([t.mask]):null}const G=new k(H,t=>({blending:f(t.blending),culling:v(t.culling),polygonOffset:I(t.polygonOffset),depthTest:W(t.depthTest),stencilTest:S(t.stencilTest),depthWrite:b(t.depthWrite),colorWrite:T(t.colorWrite),stencilWrite:y(t.stencilWrite)}));function H(t){return t?m([R(t.blending),C(t.culling),F(t.polygonOffset),P(t.depthTest),M(t.stencilTest),K(t.depthWrite),x(t.colorWrite),E(t.stencilWrite)]):null}class J{constructor(t){this._pipelineInvalid=!0,this._blendingInvalid=!0,this._cullingInvalid=!0,this._polygonOffsetInvalid=!0,this._depthTestInvalid=!0,this._stencilTestInvalid=!0,this._depthWriteInvalid=!0,this._colorWriteInvalid=!0,this._stencilWriteInvalid=!0,this._stateSetters=t}setPipeline(t){(this._pipelineInvalid||t!==this._pipeline)&&(this._setBlending(t.blending),this._setCulling(t.culling),this._setPolygonOffset(t.polygonOffset),this._setDepthTest(t.depthTest),this._setStencilTest(t.stencilTest),this._setDepthWrite(t.depthWrite),this._setColorWrite(t.colorWrite),this._setStencilWrite(t.stencilWrite),this._pipeline=t),this._pipelineInvalid=!1}getPipelineState(){return t(this._pipeline)}invalidateBlending(){this._blendingInvalid=!0,this._pipelineInvalid=!0}invalidateCulling(){this._cullingInvalid=!0,this._pipelineInvalid=!0}invalidatePolygonOffset(){this._polygonOffsetInvalid=!0,this._pipelineInvalid=!0}invalidateDepthTest(){this._depthTestInvalid=!0,this._pipelineInvalid=!0}invalidateStencilTest(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDepthWrite(){this._depthWriteInvalid=!0,this._pipelineInvalid=!0}invalidateColorWrite(){this._colorWriteInvalid=!0,this._pipelineInvalid=!0}invalidateStencilWrite(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}_setBlending(t){this._blending=this._setSubState(t,this._blending,this._blendingInvalid,this._stateSetters.setBlending),this._blendingInvalid=!1}_setCulling(t){this._culling=this._setSubState(t,this._culling,this._cullingInvalid,this._stateSetters.setCulling),this._cullingInvalid=!1}_setPolygonOffset(t){this._polygonOffset=this._setSubState(t,this._polygonOffset,this._polygonOffsetInvalid,this._stateSetters.setPolygonOffset),this._polygonOffsetInvalid=!1}_setDepthTest(t){this._depthTest=this._setSubState(t,this._depthTest,this._depthTestInvalid,this._stateSetters.setDepthTest),this._depthTestInvalid=!1}_setStencilTest(t){this._stencilTest=this._setSubState(t,this._stencilTest,this._stencilTestInvalid,this._stateSetters.setStencilTest),this._stencilTestInvalid=!1}_setDepthWrite(t){this._depthWrite=this._setSubState(t,this._depthWrite,this._depthWriteInvalid,this._stateSetters.setDepthWrite),this._depthWriteInvalid=!1}_setColorWrite(t){this._colorWrite=this._setSubState(t,this._colorWrite,this._colorWriteInvalid,this._stateSetters.setColorWrite),this._colorWriteInvalid=!1}_setStencilWrite(t){this._stencilWrite=this._setSubState(t,this._stencilWrite,this._stencilWriteInvalid,this._stateSetters.setStencilWrite),this._stencilTestInvalid=!1}_setSubState(t,e,i,n){return(i||t!==e)&&(n(t),this._pipelineInvalid=!0),t}}export{J as StateTracker,l as add,o as backFaceCullingParams,s as copySource,_ as cullingParams,g as defaultColorWrite,u as defaultDepthWrite,n as destinationTimesOneMinusSourceAlpha,c as frontFaceCullingParams,f as makeBlending,T as makeColorWrite,v as makeCulling,W as makeDepthTest,b as makeDepthWrite,O as makePipelineState,I as makePolygonOffset,S as makeStencilTest,y as makeStencilWrite,h as modulateDestination,r as premultipliedAlpha,i as separateBlendingParams,p as separateStencilTestParams,e as simpleBlendingParams,d as simpleStencilTestParams,a as unpremultipliedAlphaToPremultipliedAlpha};
2
+ import{clone as t}from"../../core/lang.js";function e(t,e,i=32774,n=[0,0,0,0]){return{srcRgb:t,srcAlpha:t,dstRgb:e,dstAlpha:e,opRgb:i,opAlpha:i,color:{r:n[0],g:n[1],b:n[2],a:n[3]}}}function i(t,e,i,n,s=32774,l=32774,r=[0,0,0,0]){return{srcRgb:t,srcAlpha:e,dstRgb:i,dstAlpha:n,opRgb:s,opAlpha:l,color:{r:r[0],g:r[1],b:r[2],a:r[3]}}}const n=e(0,771),s=e(1,0),l=e(1,1),r=e(1,771),a=i(770,1,771,771),h=i(0,0,768,0),o={face:1029,mode:2305},c={face:1028,mode:2305},_=t=>2===t?o:1===t?c:null;function d(t,e,i){return{ref:t,readMask:e,stencilFront:i,stencilBack:i}}function p(t,e,i,n){return{ref:t,readMask:e,stencilFront:i,stencilBack:n}}const u={zNear:0,zFar:1},g={r:!0,g:!0,b:!0,a:!0};function f(t){return B.intern(t)}function v(t){return w.intern(t)}function I(t){return D.intern(t)}function W(t){return A.intern(t)}function S(t){return z.intern(t)}function b(t){return j.intern(t)}function T(t){return N.intern(t)}function y(t){return q.intern(t)}function O(t){return G.intern(t)}class k{constructor(t,e){this._makeKey=t,this._makeRef=e,this._interns=new Map}intern(t){if(!t)return null;const e=this._makeKey(t),i=this._interns;return i.has(e)||i.set(e,this._makeRef(t)),i.get(e)??null}}function m(t){return"["+t.join(",")+"]"}const B=new k(R,t=>({__tag:"Blending",...t}));function R(t){return t?m([t.srcRgb,t.srcAlpha,t.dstRgb,t.dstAlpha,t.opRgb,t.opAlpha,t.color.r,t.color.g,t.color.b,t.color.a]):null}const w=new k(C,t=>({__tag:"Culling",...t}));function C(t){return t?m([t.face,t.mode]):null}const D=new k(F,t=>({__tag:"PolygonOffset",...t}));function F(t){return t?m([t.factor,t.units]):null}const A=new k(P,t=>({__tag:"DepthTest",...t}));function P(t){return t?m([t.func]):null}const z=new k(M,t=>({__tag:"StencilTest",...t}));function M(t){return t?m([t.ref,t.readMask,t.stencilFront.compare,t.stencilFront.fail,t.stencilFront.zFail,t.stencilFront.zPass,t.stencilBack.compare,t.stencilBack.fail,t.stencilBack.zFail,t.stencilBack.zPass]):null}const j=new k(K,t=>({__tag:"DepthWrite",...t}));function K(t){return t?m([t.zNear,t.zFar]):null}const N=new k(x,t=>({__tag:"ColorWrite",...t}));function x(t){return t?m([t.r,t.g,t.b,t.a]):null}const q=new k(E,t=>({__tag:"StencilWrite",...t}));function E(t){return t?m([t.mask]):null}const G=new k(H,t=>({blending:f(t.blending),culling:v(t.culling),polygonOffset:I(t.polygonOffset),depthTest:W(t.depthTest),stencilTest:S(t.stencilTest),depthWrite:b(t.depthWrite),colorWrite:T(t.colorWrite),stencilWrite:y(t.stencilWrite)}));function H(t){return t?m([R(t.blending),C(t.culling),F(t.polygonOffset),P(t.depthTest),M(t.stencilTest),K(t.depthWrite),x(t.colorWrite),E(t.stencilWrite)]):null}class J{constructor(t){this._pipelineInvalid=!0,this._blendingInvalid=!0,this._cullingInvalid=!0,this._polygonOffsetInvalid=!0,this._depthTestInvalid=!0,this._stencilTestInvalid=!0,this._depthWriteInvalid=!0,this._colorWriteInvalid=!0,this._stencilWriteInvalid=!0,this._stateSetters=t}setPipeline(t){(this._pipelineInvalid||t!==this._pipeline)&&(this._setBlending(t.blending),this._setCulling(t.culling),this._setPolygonOffset(t.polygonOffset),this._setDepthTest(t.depthTest),this._setStencilTest(t.stencilTest),this._setDepthWrite(t.depthWrite),this._setColorWrite(t.colorWrite),this._setStencilWrite(t.stencilWrite),this._pipeline=t),this._pipelineInvalid=!1}getPipelineState(){return t(this._pipeline)}invalidateBlending(){this._blendingInvalid=!0,this._pipelineInvalid=!0}invalidateCulling(){this._cullingInvalid=!0,this._pipelineInvalid=!0}invalidatePolygonOffset(){this._polygonOffsetInvalid=!0,this._pipelineInvalid=!0}invalidateDepthTest(){this._depthTestInvalid=!0,this._pipelineInvalid=!0}invalidateStencilTest(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}invalidateDepthWrite(){this._depthWriteInvalid=!0,this._pipelineInvalid=!0}invalidateColorWrite(){this._colorWriteInvalid=!0,this._pipelineInvalid=!0}invalidateStencilWrite(){this._stencilTestInvalid=!0,this._pipelineInvalid=!0}_setBlending(t){this._blending=this._setSubState(t,this._blending,this._blendingInvalid,this._stateSetters.setBlending),this._blendingInvalid=!1}_setCulling(t){this._culling=this._setSubState(t,this._culling,this._cullingInvalid,this._stateSetters.setCulling),this._cullingInvalid=!1}_setPolygonOffset(t){this._polygonOffset=this._setSubState(t,this._polygonOffset,this._polygonOffsetInvalid,this._stateSetters.setPolygonOffset),this._polygonOffsetInvalid=!1}_setDepthTest(t){this._depthTest=this._setSubState(t,this._depthTest,this._depthTestInvalid,this._stateSetters.setDepthTest),this._depthTestInvalid=!1}_setStencilTest(t){this._stencilTest=this._setSubState(t,this._stencilTest,this._stencilTestInvalid,this._stateSetters.setStencilTest),this._stencilTestInvalid=!1}_setDepthWrite(t){this._depthWrite=this._setSubState(t,this._depthWrite,this._depthWriteInvalid,this._stateSetters.setDepthWrite),this._depthWriteInvalid=!1}_setColorWrite(t){this._colorWrite=this._setSubState(t,this._colorWrite,this._colorWriteInvalid,this._stateSetters.setColorWrite),this._colorWriteInvalid=!1}_setStencilWrite(t){this._stencilWrite=this._setSubState(t,this._stencilWrite,this._stencilWriteInvalid,this._stateSetters.setStencilWrite),this._stencilTestInvalid=!1}_setSubState(t,e,i,n){return(i||t!==e)&&(n(t),this._pipelineInvalid=!0),t}}export{J as StateTracker,l as add,o as backFaceCullingParams,s as copySource,_ as cullingParams,g as defaultColorWrite,u as defaultDepthWrite,n as destinationTimesOneMinusSourceAlpha,c as frontFaceCullingParams,f as makeBlending,T as makeColorWrite,v as makeCulling,W as makeDepthTest,b as makeDepthWrite,O as makePipelineState,I as makePolygonOffset,S as makeStencilTest,y as makeStencilWrite,h as modulateDestination,r as premultipliedAlpha,i as separateBlendingParams,p as separateStencilTestParams,e as simpleBlendingParams,d as simpleStencilTestParams,a as unpremultipliedAlphaToPremultipliedAlpha};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import e from"../../core/Error.js";import{MultiOriginJSONSupport as t}from"../../core/MultiOriginJSONSupport.js";import{whenOnce as o}from"../../core/reactiveUtils.js";import{hasSameCanonicalPortal as r,urlToObject as a}from"../../core/urlUtils.js";import{updateOrigins as i}from"../../core/accessorSupport/originUtils.js";import n from"../../geometry/SpatialReference.js";import{webMercatorToGeographic as s}from"../../geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as l}from"../../layers/support/arcgisLayerUrl.js";import{isLayerWithFeatureLayerSource as p,isFeatureCollectionLayer as c}from"../../layers/support/layerUtils.js";import u from"../../portal/Portal.js";import m from"../../portal/PortalItem.js";import{createForItemWrite as f}from"../../portal/support/jsonContext.js";import{removeTypeKeyword as d,addTypeKeyword as y,typeKeyword as w,hasTypeKeyword as g,toggleTypeKeyword as h}from"../../portal/support/portalItemUtils.js";import{project as _}from"../../rest/geometryService/project.js";import j from"../../rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as b,isDeveloperBasemapLayer as v}from"../../support/basemapUtils.js";import{saveResources as R}from"./resourceUtils.js";import{beforeSave as S,evaluateWriteErrors as W,hasCharts as I}from"./saveUtils.js";const A=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map(e=>e.toLowerCase());async function P(e,t,r){r??={},U(e,t),await o(()=>!t.updatingFromView),await t.load(),await D(t),await S(t),await M(e,t);const a=t.portalItem,{json:i,jsonContext:n}=await O(t,a,e.origin);return W(n,{errorName:`${e.name}:save`},r),await k(t,a),await ge(e,t,a,i,n),await Promise.all([t.updateItemThumbnail(),R(t.resourceReferences,n)]),a}async function O(e,t,o){const r=f(t,o,!0),a=e.write({},r);return await Promise.all(r.resources.pendingOperations),{json:a,jsonContext:r}}async function T(e,t,r,a){a??={};const i=E(e,r);await o(()=>!t.updatingFromView),await t.load(),await D(t),await S(t),await M(e,t);const{json:n,jsonContext:s}=await O(t,i,e.origin);W(s,{errorName:`${e.name}:save`},a),await X(t,i);const l=t.getThumbnailState();return await he(e,t,i,n,s,a)&&(t.resourceReferences.portalItem=i),t.restoreThumbnailFromState(l),await Promise.all([t.updateItemThumbnail(),R(t.resourceReferences,s)]),i}function U(t,o){if(!o.portalItem)throw new e(`${t.name}:portal-item-not-set`,"Portal item to save to has not been set on the WebMap");C(t,o.portalItem)}function C(t,o){if(o.type!==t.itemType)throw new e(`${t.name}:portal-item-wrong-type`,`Portal item needs to have type "${t.itemType}"`)}async function M(t,o){if("linkchart"!==t.name&&!o.basemap?.baseLayers.length)throw new e(`${t.name}:save`,"Map does not have a valid basemap with a base layer.")}function E(e,t){let o=m.from(t);return o.id&&(o=o.clone(),o.id=null),o.type||(o.type=e.itemType),o.portal||(o.portal=u.getDefault()),C(e,o),o}function D(e){const t=[];return e.basemap&&t.push(e.basemap.load()),e.ground&&t.push(e.ground.load()),Promise.allSettled(t).then(()=>{})}async function k(e,t){t.extent=await ce(e.portalItem,e.initialViewProperties.viewpoint.targetGeometry),await Y(e,t)}const x=w.JSAPI,G="CollectorDisabled",L="Collector",N="Data Editing",V="OfflineDisabled",B="Offline",$="Workforce Project",F="Workforce Worker",H="Workforce Dispatcher",K="Offline Map Areas",J="FieldMapsDisabled",q=w.DEVELOPER_BASEMAP,z="UtilityNetwork",Q="IPS";async function X(e,t){d(t,G),d(t,J),d(t,w.METADATA),d(t,V),d(t,K),d(t,H),d(t,$),d(t,F),await k(e,t)}async function Y(e,t){y(t,x),await Z(e),re(e,t),ae(e,t),ie(e,t),ne(e,t),se(e,t),le(e,t),pe(e,t),t.typeKeywords&&(t.typeKeywords=t.typeKeywords.filter((e,t,o)=>o.indexOf(e)===t))}function Z(e){const t=ee(e).map(e=>e.load()).toArray();return Promise.allSettled(t).then(()=>{})}function ee(e){return e.allLayers.concat(e.allTables)}function te(e){return ee(e).some(e=>e.loaded&&p(e)&&e.capabilities.operations.supportsEditing&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some(e=>e.editingEnabled)))}function oe(e){return ee(e).filter(e=>"group"!==e.type).every(t=>t.loaded&&fe(e,t))}function re(e,t){g(t,G)||g(t,$)||g(t,F)||g(t,H)||!te(e)?d(t,L):y(t,L)}function ae(e,t){te(e)?y(t,N):d(t,N)}function ie(e,t){!g(t,V)&&oe(e)?y(t,B):d(t,B)}function ne(e,t){b(e.basemap)?y(t,q):d(t,q)}function se(e,t){e.utilityNetworks?.length?y(t,z):d(t,z)}function le(e,t){e.ipsInfo?y(t,Q):d(t,Q)}function pe(e,t){h(t,w.CHARTS,I(e))}async function ce(e,t){const o=t.clone().normalize();let r;if(o.length>1)for(const a of o)r?a.width>r.width&&(r=a):r=a;else r=o[0];return ue(e,r)}async function ue(e,t){const o=t.spatialReference;if(o.isWGS84)return t.clone();if(o.isWebMercator)return s(t);const{getGeometryServiceURL:r}=await import("../../portal/support/geometryServiceUtils.js"),a=await r(e),i=new j({geometries:[t],outSpatialReference:n.WGS84});return(await _(a,i))[0]}function me(e){return c(e)||"map-notes"===e.type||"route"===e.type}function fe(e,t){return p(t)&&t.capabilities.operations.supportsSync||me(t)&&!t.portalItem||de(t)&&!ye(t)&&t.spatialReference.equals(e.initialViewProperties.spatialReference)}function de(e){return"imagery-tile"===e.type?e.supportsExportMapTiles():("tile"===e.type||"vector-tile"===e.type)&&(e.capabilities.operations.supportsExportTiles||we(e)||v(e))}function ye(e){return"vector-tile"===e.type&&Object.keys(e.sourceNameToSource).length>1}function we(e){return"tile"===e.type&&(l(e.url)&&A.some(t=>e.url?.toLowerCase().includes("/"+t+"/")))}async function ge(e,t,o,r,a){await o.update({data:r}),be(e,t,o,r,a)}async function he(t,o,r,a,i,n){const s=o.portalItem,l={item:s,authenticated:!(!s?.id||!s.portal.user)},p=r.portal;await p.signIn();const{copyAllowed:c,itemReloaded:u}=await _e(l,p);if(l.authenticated||=u,!c)throw new e(`${t.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const m=await je(r,l,a,n);return o.portalItem=r,be(t,o,r,a,i),m}async function _e(e,t){const{item:o,authenticated:r}=e;return o?.id&&o.typeKeywords?.includes("useOnly")?o.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(r||await o.reload(),{copyAllowed:"admin"===o.itemControl||"update"===o.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async function je(e,t,o,a){const i=e.portal,{item:n}=t,{folder:s,copyAllResources:l}=a;let p=!1;if(l&&n?.id&&r(n.portal.url,i.url)&&parseInt(n.portal.currentVersion,10)>=2023){const{total:e}=await n.fetchResources();p=!!e}if(p){const t=await n.copy({copyResources:"all",folder:s});e.id=t.id,e.portal=t.portal;const r=e.toJSON();await e.load(),e.read(r),await e.update({data:o})}else await i.user.addItem({item:e,folder:s,data:o});return p}function be(e,o,r,n,s){t.prototype.read.call(o,{version:n.version,authoringApp:n.authoringApp,authoringAppVersion:n.authoringAppVersion},{origin:e.origin,ignoreDefaults:!0,url:r.itemUrl?a(r.itemUrl):void 0}),i(s),o.resourceInfo=n}export{O as createJSON,je as initializeNewItem,_e as isCopyAllowed,P as save,T as saveAs};
2
+ import e from"../../core/Error.js";import{MultiOriginJSONSupport as t}from"../../core/MultiOriginJSONSupport.js";import{whenOnce as o}from"../../core/reactiveUtils.js";import{hasSameCanonicalPortal as r,urlToObject as a}from"../../core/urlUtils.js";import{updateOrigins as i}from"../../core/accessorSupport/originUtils.js";import n from"../../geometry/SpatialReference.js";import{webMercatorToGeographic as s}from"../../geometry/support/webMercatorUtils.js";import{isServerOrServicesAGOLUrl as l}from"../../layers/support/arcgisLayerUrl.js";import{isLayerWithFeatureLayerSource as p,isFeatureCollectionLayer as c}from"../../layers/support/layerUtils.js";import u from"../../portal/Portal.js";import m from"../../portal/PortalItem.js";import{createForItemWrite as d}from"../../portal/support/jsonContext.js";import{removeTypeKeyword as f,addTypeKeyword as y,typeKeyword as w,hasTypeKeyword as g,toggleTypeKeyword as h}from"../../portal/support/portalItemUtils.js";import{project as _}from"../../rest/geometryService/project.js";import j from"../../rest/support/ProjectParameters.js";import{hasDeveloperBasemapLayer as b,isDeveloperBasemapLayer as v}from"../../support/basemapUtils.js";import{saveResources as R}from"./resourceUtils.js";import{beforeSave as S,evaluateWriteErrors as W,hasCharts as I}from"./saveUtils.js";const A=["NatGeo_World_Map","Ocean_Basemap","USA_Topo_Maps","World_Imagery","World_Street_Map","World_Terrain_Base","World_Topo_Map","World_Hillshade","Canvas/World_Light_Gray_Base","Canvas/World_Light_Gray_Reference","Canvas/World_Dark_Gray_Base","Canvas/World_Dark_Gray_Reference","Ocean/World_Ocean_Base","Ocean/World_Ocean_Reference","Reference/World_Boundaries_and_Places","Reference/World_Reference_Overlay","Reference/World_Transportation"].map(e=>e.toLowerCase());async function P(e,t,r){r??={},U(e,t),await o(()=>!t.updatingFromView),await t.load(),await D(t),await S(t),await M(e,t);const a=t.portalItem,{json:i,jsonContext:n}=await O(t,a,e.origin);return W(n,{errorName:`${e.name}:save`},r),await k(t,a),await ge(e,t,a,i,n),await Promise.all([t.updateItemThumbnail(),R(t.resourceReferences,n)]),a}async function O(e,t,o){const r=d(t,o,!0),a=e.write({},r);return await Promise.all(r.resources.pendingOperations),{json:a,jsonContext:r}}async function T(e,t,r,a){a??={};const i=E(e,r);await o(()=>!t.updatingFromView),await t.load(),await D(t),await S(t),await M(e,t);const{json:n,jsonContext:s}=await O(t,i,e.origin);W(s,{errorName:`${e.name}:save`},a),await X(t,i);const l=t.getThumbnailState();return await he(e,t,i,n,s,a)&&(t.resourceReferences.portalItem=i),t.restoreThumbnailFromState(l),await Promise.all([t.updateItemThumbnail(),R(t.resourceReferences,s)]),i}function U(t,o){if(!o.portalItem)throw new e(`${t.name}:portal-item-not-set`,"Portal item to save to has not been set on the WebMap");C(t,o.portalItem)}function C(t,o){if(o.type!==t.itemType)throw new e(`${t.name}:portal-item-wrong-type`,`Portal item needs to have type "${t.itemType}"`)}async function M(t,o){if("linkchart"!==t.name&&!o.basemap?.baseLayers.length)throw new e(`${t.name}:save`,"Map does not have a valid basemap with a base layer.")}function E(e,t){let o=m.from(t);return o.id&&(o=o.clone(),o.id=null),o.type||(o.type=e.itemType),o.portal||(o.portal=u.getDefault()),C(e,o),o}function D(e){const t=[];return e.basemap&&t.push(e.basemap.load()),e.ground&&t.push(e.ground.load()),Promise.allSettled(t).then(()=>{})}async function k(e,t){t.extent=await ce(e.portalItem,e.initialViewProperties.viewpoint.targetGeometry),await Y(e,t)}const x=w.JSAPI,G="CollectorDisabled",L="Collector",N="Data Editing",V="OfflineDisabled",B="Offline",$="Workforce Project",F="Workforce Worker",H="Workforce Dispatcher",K="Offline Map Areas",J="FieldMapsDisabled",q=w.DEVELOPER_BASEMAP,z="UtilityNetwork",Q="IPS";async function X(e,t){f(t,G),f(t,J),f(t,w.METADATA),f(t,V),f(t,K),f(t,H),f(t,$),f(t,F),await k(e,t)}async function Y(e,t){y(t,x),await Z(e),re(e,t),ae(e,t),ie(e,t),ne(e,t),se(e,t),le(e,t),pe(e,t),t.typeKeywords&&(t.typeKeywords=t.typeKeywords.filter((e,t,o)=>o.indexOf(e)===t))}function Z(e){const t=ee(e).map(e=>e.load()).toArray();return Promise.allSettled(t).then(()=>{})}function ee(e){return e.allLayers.concat(e.allTables)}function te(e){return ee(e).some(e=>e.loaded&&p(e)&&e.capabilities.operations.supportsEditing&&"editingEnabled"in e&&e.editingEnabled&&("subtype-group"!==e.type||e.sublayers.some(e=>e.editingEnabled)))}function oe(e){return ee(e).filter(e=>"group"!==e.type).every(t=>t.loaded&&de(e,t))}function re(e,t){g(t,G)||g(t,$)||g(t,F)||g(t,H)||!te(e)?f(t,L):y(t,L)}function ae(e,t){te(e)?y(t,N):f(t,N)}function ie(e,t){!g(t,V)&&oe(e)?y(t,B):f(t,B)}function ne(e,t){b(e.basemap)?y(t,q):f(t,q)}function se(e,t){e.utilityNetworks?.length?y(t,z):f(t,z)}function le(e,t){e.ipsInfo?y(t,Q):f(t,Q)}function pe(e,t){h(t,w.CHARTS,I(e))}async function ce(e,t){const o=t.clone().normalize();let r;if(o.length>1)for(const a of o)r?a.width>r.width&&(r=a):r=a;else r=o[0];return ue(e,r)}async function ue(e,t){const o=t.spatialReference;if(o.isWGS84)return t.clone();if(o.isWebMercator)return s(t);const{getGeometryServiceURL:r}=await import("../../portal/support/geometryServiceUtils.js"),a=await r(e),i=new j({geometries:[t],outSpatialReference:n.WGS84});return(await _(a,i))[0]}function me(e){return c(e)||"map-notes"===e.type||"route"===e.type}function de(e,t){return p(t)&&t.capabilities.operations.supportsSync||me(t)&&!t.portalItem||fe(t)&&!ye(t)&&t.spatialReference.equals(e.initialViewProperties.spatialReference)}function fe(e){return"imagery-tile"===e.type?e.supportsExportMapTiles():("tile"===e.type||"vector-tile"===e.type)&&(e.capabilities.operations.supportsExportTiles||we(e)||v(e))}function ye(e){return"vector-tile"===e.type&&Object.keys(e.sourceNameToSource).length>1}function we(e){return"tile"===e.type&&(l(e.url)&&A.some(t=>e.url?.toLowerCase().includes("/"+t+"/")))}async function ge(e,t,o,r,a){await o.update({data:r}),be(e,t,o,r,a)}async function he(t,o,r,a,i,n){const s=o.portalItem,l={item:s,authenticated:!(!s?.id||!s.portal.user)},p=r.portal;await p.signIn();const{copyAllowed:c,itemReloaded:u}=await _e(l,p);if(l.authenticated||=u,!c)throw new e(`${t.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const m=await je(r,l,a,n);return o.portalItem=r,be(t,o,r,a,i),m}async function _e(e,t){const{item:o,authenticated:r}=e;return o?.id&&o.typeKeywords?.includes("useOnly")?o.portal.portalHostname!==t.portalHostname?{copyAllowed:!1,itemReloaded:!1}:(r||await o.reload(),{copyAllowed:"admin"===o.itemControl||"update"===o.itemControl,itemReloaded:!0}):{copyAllowed:!0,itemReloaded:!1}}async function je(e,t,o,a){const i=e.portal,{item:n}=t,{folder:s,copyAllResources:l}=a;let p=!1;if(l&&n?.id&&r(n.portal.url,i.url)&&parseInt(n.portal.currentVersion,10)>=2023){const{total:e}=await n.fetchResources();p=!!e}if(p){const t=await n.copy({copyResources:"all",folder:s});e.id=t.id,e.portal=t.portal;const r=e.toJSON();await e.load(),e.read(r),await e.update({data:o})}else await i.user.addItem({item:e,folder:s,data:o});return p}function be(e,o,r,n,s){t.prototype.read.call(o,{version:n.version,authoringApp:n.authoringApp,authoringAppVersion:n.authoringAppVersion},{origin:e.origin,ignoreDefaults:!0,url:r.itemUrl?a(r.itemUrl):void 0}),i(s),o.resourceInfo=n}export{O as createJSON,je as initializeNewItem,_e as isCopyAllowed,P as save,T as saveAs};
@@ -14,7 +14,7 @@ import type { AssociationsLayerUnion, AttachmentsChangeEvent, AttributeFormSuppo
14
14
  import type { FormInput } from "./inputs/types.js";
15
15
  import type { EditType } from "../support/forms/types.js";
16
16
 
17
- export interface BatchAttributeFormViewModelProperties extends Partial<Pick<BatchAttributeFormViewModel, "activeFeatureIndex" | "disabled" | "editType" | "features" | "layerInfos" | "map" | "readOnly" | "selectedAttachment" | "selectedAttachmentAddElementId" | "selectedAttachmentListElementId" | "showingSelectedAttachmentReplacePage" | "submitHasBeenAttempted" | "timeZone" | "userHasChangedValues">> {}
17
+ export interface BatchAttributeFormViewModelProperties extends Partial<Pick<BatchAttributeFormViewModel, "activeFeatureIndex" | "attachmentsEnabled" | "disabled" | "editType" | "features" | "layerInfos" | "map" | "readOnly" | "selectedAttachment" | "selectedAttachmentAddElementId" | "selectedAttachmentListElementId" | "showingSelectedAttachmentReplacePage" | "submitHasBeenAttempted" | "timeZone" | "userHasChangedValues">> {}
18
18
 
19
19
  export interface BatchAttributeFormViewModelEvents {
20
20
  /**
@@ -95,6 +95,14 @@ export default class BatchAttributeFormViewModel extends EventedAccessor {
95
95
  * To change which form is active, see [activeFeatureIndex](https://developers.arcgis.com/javascript/latest/references/core/widgets/BatchAttributeForm/BatchAttributeFormViewModel/#activeFeatureIndex).
96
96
  */
97
97
  get activeForm(): BatchFormInputs;
98
+ /**
99
+ * Indicates whether attachment elements should be rendered in the form. Changing this value will cause the form to regenerate
100
+ * and discard any pending edits.
101
+ *
102
+ * @default false
103
+ * @internal
104
+ */
105
+ accessor attachmentsEnabled: boolean;
98
106
  /**
99
107
  * Indicates whether the form is currently evaluating [Arcade expressions](https://developers.arcgis.com/javascript/latest/arcade/). It returns `true` when the form is evaluating expressions or when it is waiting for a response from the server.
100
108
  *
@@ -413,7 +421,7 @@ export default class BatchAttributeFormViewModel extends EventedAccessor {
413
421
  * @param file - File contents for the replacement attachment.
414
422
  * @internal
415
423
  */
416
- stageReplaceAttachment(elementId: string, attachmentGlobalId: string, file: Blob | File): Promise<void>;
424
+ stageReplaceAttachment(elementId: string, attachmentGlobalId: string, file: Blob | File): Promise<boolean>;
417
425
  /**
418
426
  * This method triggers the `"submit"` event, and causes [submitHasBeenAttempted](https://developers.arcgis.com/javascript/latest/references/core/widgets/BatchAttributeForm/BatchAttributeFormViewModel/#submitHasBeenAttempted) to become `true`. It does _not_ do anything to persist the updated values. It is up to the client to verify if these values are appropriate. For example, calling [FeatureLayer.applyEdits()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#applyEdits) method to update the features' attributes.
419
427
  *
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{pushIfSome as t}from"../../core/arrayUtils.js";import{createTask as s}from"../../core/asyncUtils.js";import a from"../../core/Collection.js";import i from"../../core/Error.js";import{EventedAccessor as n}from"../../core/Evented.js";import r from"../../core/Logger.js";import{getOrCreateMapValue as o}from"../../core/MapUtils.js";import{destroyMaybe as l,abortMaybe as h}from"../../core/maybe.js";import{throwIfAborted as c,isAbortError as u}from"../../core/promiseUtils.js";import p from"../../core/ReactiveMap.js";import{on as m,sync as d,watch as g,syncAndInitial as f,initial as v,whenOnce as A}from"../../core/reactiveUtils.js";import{property as y,subclass as _}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as F}from"../../core/support/UpdatingHandles.js";import I from"../../geometry/SpatialReference.js";import{getGraphicLayer as w}from"../../graphic/graphicOriginUtils.js";import{system as x}from"../../time/constants.js";import{getAttachmentKey as E}from"./attachmentUtils.js";import{createReactiveGraphic as C,isAttributeFormSupportedLayerWithAttachments as M,layerSupportsQueryAttachments as V,queryAttachmentsForElements as b}from"./batchAttributeFormUtils.js";import{ReactiveContingentValuesManager as k}from"./ReactiveContingentValuesManager.js";import{ArcadeExecutorProvider as R}from"./expressions/ArcadeExecutorProvider.js";import{ExpressionsManager as L}from"./expressions/ExpressionsManager.js";import{ExpressionsModel as S}from"./expressions/ExpressionsModel.js";import T from"./inputs/BatchFormInputs.js";import{createBatchFormInputsFromBatchFormTemplate as H}from"./inputs/support/createBatchFormInputs.js";import{isGroupInput as P,isFieldInput as j,applyFieldValueChanges as N}from"./inputs/support/inputUtils.js";import G from"./templates/BatchFormTemplate.js";import{createBatchFormTemplate as B}from"./templates/support/createBatchFormTemplate.js";import{isExcludedFromSharedForm as O,isGroupElementTemplate as U}from"./templates/support/templateUtils.js";import{ContingentValuesManager as D}from"../support/ContingentValuesManager.js";import{isEmptyValue as W}from"../support/forms/formUtils.js";function Z(e,t){return e?.find(e=>e.layer===t)}let $=class extends n{constructor(e){super(e),this._attachmentCache=new p,this.activeFeatureIndex=-1,this.callbacks=null,this.disabled=!1,this.editType="NA",this.features=new a,this._hasAsyncArcadeExpressions=!1,this.maximumFeatureCount=2e3,this.maximumFeatureCountWithComplexForms=50,this.map=null,this.pageStack=[],this.readOnly=!1,this.spatialReference=null,this.submitHasBeenAttempted=!1,this.timeZone=null,this.userHasChangedValues=!1,this.layerInfos=null,this._arcadeExecutorProvider=new R,this._activeAssociationsInput=null,this._activeRelationshipInput=null,this._ownContingentValuesManager=null,this._activeFormInputsByElementId=new Map,this._emptyForm=new T({inputs:[]}),this._emptyFormTemplate=new G({elements:[]}),this._featureFormMap=new Map,this._prepareTask=null,this._reactiveGraphicLookup=new p,this._updatingHandles=new F,this._submitTask=null,this._layerTemplateMap=new p,this._workingFeatures=new a,this._expressionsManager=new L({arcadeContext:{editType:"NA",spatialReference:null,map:null,timeZone:x}}),this._getFieldValueOptionsForFeature=e=>this._reactiveContingentValuesManager.getAndWatchFieldValueOptions(e),this.sharedForm=this._emptyForm,this.sharedFormTemplate=this._emptyFormTemplate}initialize(){this.contingentValuesManager||(this.contingentValuesManager=this._ownContingentValuesManager=new D),this.addHandles([m(()=>this.features,"after-changes",()=>{this.goHome(),this.notifyChange("layers"),this._prepare()},d),g(()=>[this.features,this.map,this.timeZone,this.editType],()=>this._prepare(),d),g(()=>this.activeForm,()=>{this.goHome(),this._activeFormInputsByElementId.clear(),this._syncAttachments()},d),g(()=>this.activeFeature,()=>{this.goHome()},d),g(()=>this.page,e=>{const t=[...this.pageStack];if(t.includes(e))for(;t.length&&t.at(-1)!==e;)t.pop();else t.push(e);this.pageStack=t},f),g(()=>this.contingentValuesManager,e=>{l(this._reactiveContingentValuesManager),this._reactiveContingentValuesManager=new k({manager:e})},v)]),this._prepare()}destroy(){this._prepareTask=h(this._prepareTask),this._workingFeatures.destroyAll(),l(this._expressionsManager),l(this._reactiveContingentValuesManager),this._updatingHandles.destroy(),this._reactiveGraphicLookup=new p,this._emptyForm.destroy(),this._emptyFormTemplate.destroy(),this._ownContingentValuesManager=l(this._ownContingentValuesManager)}get activeFeature(){const e=this.activeFeatureIndex;return e<0?null:this.features.at(e)}get activeForm(){if("batch"===this.mode)return this.sharedForm;const e=this._workingFeatures.at(this.activeFeatureIndex);if(!e)return this._emptyForm;const t=this._featureFormMap.get(e);if(t)return t;const s=this._makeBatchFormInputsForFeature(e);return s!==this._emptyForm&&this._featureFormMap.set(e,s),s}get activeLayer(){const{activeFeature:e}=this;if(!e)return null;return w(e)??null}get activeAssociationsInput(){return this._activeAssociationsInput}get activeRelationshipInput(){return this._activeRelationshipInput}get calculating(){return this._expressionsManager.calculating}get expressionsManager(){return this._expressionsManager}get expressionEvaluationFailed(){return this._expressionsManager.expressionEvaluationFailed}get hasNonActiveInvalidFeatures(){if("batch"===this.mode)return!1;const{activeFeature:e}=this;return this.invalidFeatures.some(t=>t!==e)}get hasAsyncArcadeExpressions(){return this._hasAsyncArcadeExpressions}get hasTooManyFeatures(){return this._workingFeatures.length>this.maximumFeatureCount}get hasTooManyComplexFeatures(){return this._workingFeatures.length>this.maximumFeatureCountWithComplexForms&&this.hasAsyncArcadeExpressions}get invalidFeatures(){return this.sharedForm.invalidFeatures}get hasVisibleInputs(){return this.visibleInputs.length>0}get hasLayersWithContingentValues(){const e=this.contingentValuesManager;for(const t of this.layers)if(e.getFieldsWithContingentValues(t).size>0)return!0;return!1}get visibleInputs(){return this.activeForm.inputs.filter(e=>e.visible)}get noVisibleElementsReason(){if(this.hasVisibleInputs)return null;if(0===this.activeForm.inputs.length)return"noElements";const e=new Set;for(const t of this.activeForm.inputs)switch(t.visibilityCode){case"hidden:not-in-all-layers":case"hidden:no-domain-in-common":e.add("noElementsInCommon");break;case"hidden:field-definition":case"hidden:group-visibility-expression:all-features":case"hidden:visibility-expression:all-features":e.add("allElementsHidden");break;case"hidden:group-visibility-expression:some-features":case"hidden:visibility-expression:some-features":return"elementsHiddenInSome"}return e.has("allElementsHidden")?"allElementsHidden":"noElementsInCommon"}get page(){if(this.showingSelectedAttachmentReplacePage&&this.selectedAttachmentDetails)return"replacing-attachment";if(this.selectedAttachmentDetails)return"viewing-attachment-details";if(this.selectedAttachmentAddInput)return"adding-attachments";if(this.selectedAttachmentListInput)return"viewing-attachments";if(this.activeAssociationsInput?.associatedLayer)return"viewing-associated-features";if(this.activeAssociationsInput)return"viewing-associated-layers";if(this.activeRelationshipInput){const e=this.activeRelationshipInput;return e.allCategories?.length&&!e.activeCategory?"viewing-related-categories":"viewing-related-records"}return"default"}get status(){const e=this._prepareTask;return null==e?"not-loaded":e.finished?null!=e.error?"failed":"loaded":"loading"}get submittable(){return this.valid,!0}get updating(){return this._updatingHandles.updating||this.calculating||this._hasPendingAttachmentHydration}get valid(){return this.sharedForm.valid&&Array.from(this._featureFormMap.values()).every(e=>e.valid)}get layers(){const e=new Set;return this.features.forEach(t=>{const s=w(t);s&&e.add(s)}),Array.from(e)}get mode(){return this.activeFeatureIndex>-1?"single":"batch"}submit(){if(this.submitHasBeenAttempted=!0,!this._hasPendingAttachmentHydration)return this._emitSubmit(),Promise.resolve();if(this._submitTask)return this._submitTask.promise;const e=s(async()=>{await Promise.all(this._allAttachmentInputs.map(e=>e.waitForPendingAttachmentUpdateData())),this._emitSubmit()});return this._submitTask=e,e.promise.finally(()=>{this._submitTask===e&&(this._submitTask=null)}),e.promise}get selectedAttachment(){return this._get("selectedAttachment")??null}set selectedAttachment(e){this.showingSelectedAttachmentReplacePage=!1,this._set("selectedAttachment",e),null!=e&&(this.selectedAttachmentAddElementId=null)}get selectedAttachmentAddElementId(){return this._get("selectedAttachmentAddElementId")??null}set selectedAttachmentAddElementId(e){this.showingSelectedAttachmentReplacePage=!1,this._set("selectedAttachmentAddElementId",e),null!=e&&(this.selectedAttachment=null,this.selectedAttachmentListElementId=null)}get selectedAttachmentListElementId(){return this._get("selectedAttachmentListElementId")??null}set selectedAttachmentListElementId(e){this._set("selectedAttachmentListElementId",e),null!=e&&(this.selectedAttachment=null,this.selectedAttachmentAddElementId=null)}get selectedAttachmentListInput(){const e=this.selectedAttachmentListElementId,t=this.activeForm;return e&&t&&t.allAttachmentElementInputs.find(t=>t.template.elementId===e)||null}get showingSelectedAttachmentReplacePage(){return this._get("showingSelectedAttachmentReplacePage")??!1}set showingSelectedAttachmentReplacePage(e){this._set("showingSelectedAttachmentReplacePage",e&&null!=this.selectedAttachmentDetails)}get selectedAttachmentAddInput(){const e=this.selectedAttachmentAddElementId,t=this.activeForm;return e&&t&&t.allAttachmentElementInputs.find(t=>t.template.elementId===e)||null}get selectedAttachmentDetails(){const e=this.selectedAttachment,t=this.activeForm;if(!e||!t)return null;const s=t.allAttachmentElementInputs.find(t=>t.template.elementId===e.elementId);if(!s)return null;const a=s.attachments.findIndex(t=>E(t)===e.attachmentKey);if(-1===a)return null;return{attachment:s.attachments[a],input:s}}get _allAttachmentInputs(){const e=[...this.sharedForm.allAttachmentElementInputs];for(const t of this._featureFormMap.values())e.push(...t.allAttachmentElementInputs);return e}get _hasPendingAttachmentHydration(){return this._allAttachmentInputs.some(e=>e.hasPendingAttachmentUpdateData)}findFieldInput(e){if(null==e)return;const t=this._activeFormInputsByElementId;if(t.has(e))return t.get(e);const s=this.activeForm.allFieldInputs.find(t=>t.template.elementId===e);return void 0!==s?(t.set(e,s),s):void 0}getFirstVisibleInvalidFieldInput(){if(this.hasVisibleInputs&&!this.activeForm.valid)for(const e of this.visibleInputs){if(P(e)){const t=e.inputs.find(e=>j(e)&&!e.valid);if(t)return{input:t,groupInput:e}}if(j(e)&&!e.valid)return{input:e}}}getFieldInputValue(e){return this.findFieldInput(e)?.value}getValues(e){const t=this._reactiveGraphicLookup.get(e);if(!t)throw new i("feature-not-found","The given feature is not present in the BatchAttributeForm");return{...t.attributes}}async goBack(){switch(this.page){case"replacing-attachment":return void this.setShowingSelectedAttachmentReplacePage(!1);case"viewing-attachment-details":return void this.setSelectedAttachment(null);case"adding-attachments":return void this.setSelectedAttachmentAddElementId(null);case"viewing-attachments":return void this.setSelectedAttachmentListElementId(null);case"viewing-associated-features":return void this.setActiveAssociationsLayer(null);case"viewing-associated-layers":return void this.setActiveAssociationsInput(null);case"viewing-related-records":return void this.clearActiveRelationshipCategoryOrInput();case"viewing-related-categories":return void this.setActiveRelationshipInput(null);default:return}}async goHome(){this.setShowingSelectedAttachmentReplacePage(!1),this.setSelectedAttachment(null),this.setSelectedAttachmentAddElementId(null),this.setSelectedAttachmentListElementId(null),this.setActiveAssociationsLayer(null),this.setActiveAssociationsInput(null),this.setActiveRelationshipInput(null)}notifyGeometriesChanged(e){const t=[];for(const s of e){const e=this._reactiveGraphicLookup.get(s);e&&(t.push(e),e.geometry=s.geometry)}this._expressionsManager.runGeometryDependentExpressions(t)}async setFieldInputValue(e,t){await this._setFieldValueFromContext(e.features,t,{fieldName:e.fieldName,expressionsManager:e.expressionsManager,fieldInput:e})}async setFieldInputValuePerFeature(e,t){await this._setFieldValuePerFeatureFromContext(t,{fieldName:e.fieldName,expressionsManager:e.expressionsManager,fieldInput:e})}async setValueForFieldName(e,t,s,a){const i=null==a?this._workingFeatures:this._getReactiveGraphics(a);await this._setFieldValueFromContext(i,t,{fieldName:e,expressionsManager:this._expressionsManager,fieldInput:this.findFieldInput(s)??void 0})}async setValuePerFeatureForFieldName(e,t,s){await this._setFieldValuePerFeatureFromContext(this._getReactiveGraphicValueMap(t),{fieldName:e,expressionsManager:this._expressionsManager,fieldInput:this.findFieldInput(s)??void 0})}_getReactiveGraphics(e){const t=[];for(const s of e){const e=this._reactiveGraphicLookup.get(s);e&&t.push(e)}return t}_getReactiveGraphicValueMap(e){const t=new Map;for(const[s,a]of e){const e=this._reactiveGraphicLookup.get(s);e&&t.set(e,a)}return t}async _setFieldValueFromContext(e,t,s){const a=await this._mutateFieldValues(s,e,()=>t);this._emitLegacyValueChangeEvent(e,s.fieldName,t),this._emitValuesChangeEvent(s.fieldName,Q(a,s.fieldName,t))}async _setFieldValuePerFeatureFromContext(e,t){const s=await this._mutateFieldValues(t,e.keys(),t=>e.get(t));if(this._emitValuesChangeEvent(t.fieldName,X(s,t.fieldName,e)),1===e.size){const{value:s}=e.values().next();this._emitLegacyValueChangeEvent(e.keys(),t.fieldName,s)}}async setValue(e,t){const s=this.findFieldInput(e);if(null==s)throw new i("no-FieldInput-found",`Cannot set the value of FieldInput with ID: ${e} because none was found in the active form`);await this.setFieldInputValue(s,t)}async stageAddAttachments(e,t){if(0===t.length)return[];const s=this._findAttachmentInput(e);if(!s)return[];const a=await s.stageAddAttachments(t,this._expressionsManager.arcadeContext);return 0===a.length||(this.userHasChangedValues=!0,this._emitAttachmentsChange(s)),a}stageDeleteAttachment(e,t){const s=this._findAttachmentInput(e);if(!s)return;const a=this._findAttachment(s,t);a&&(s.stageDeleteAttachment(a),this.userHasChangedValues=!0,this._emitAttachmentsChange(s))}async stageRenameAttachment(e,t,s){const a=this._findAttachmentInput(e);if(!a)return;const i=this._findAttachment(a,t);i&&0!==s.trim().length&&(a.stageRenameAttachment(i,s.trim()),this.userHasChangedValues=!0,await a.ensureStagedUpdateData(i),this._emitAttachmentsChange(a))}async stageReplaceAttachment(e,t,s){const a=this._findAttachmentInput(e);if(!a)return;const i=this._findAttachment(a,t);if(!i)return;await a.stageReplaceAttachment(i,s,this._expressionsManager.arcadeContext)&&(this.userHasChangedValues=!0,this._emitAttachmentsChange(a))}clearAttachmentChanges(e){const t=this._findAttachmentInput(e);t&&(t.clearAttachmentChanges(),this._emitAttachmentsChange(t))}setActiveAssociationsInput(e){this._activeAssociationsInput=e}setActiveAssociationsLayer(e){this._activeAssociationsInput?.setAssociatedLayer(e)}setActiveRelationshipInput(e){e?(this._activeRelationshipInput=e,this._activeRelationshipInput?.setShowAllEnabled(!0)):(this._activeRelationshipInput?.setShowAllEnabled(!1),this._activeRelationshipInput?.setActiveCategory(null),this._activeRelationshipInput=null)}setActiveRelationshipCategory(e,t){t.setActiveCategory(e),this.setActiveRelationshipInput(t)}clearActiveRelationshipCategoryOrInput(){const e=this.activeRelationshipInput;e&&(e.allCategories?.length?e.setActiveCategory(null):this.setActiveRelationshipInput(null))}setActiveAssociationType(e){this._activeAssociationsInput?.setActiveAssociationType(e)}resetAttachmentChanges(e,t){const s=this._findAttachmentInput(e);if(!s)return;const a=this._findAttachment(s,t);a&&(s.discardStagedEdits(a),this._emitAttachmentsChange(s))}setSelectedAttachment(e){this.selectedAttachment=e??null}setShowingSelectedAttachmentReplacePage(e){this.showingSelectedAttachmentReplacePage=e}setSelectedAttachmentAddElementId(e){this.selectedAttachmentAddElementId=e??null}setSelectedAttachmentListElementId(e){this.selectedAttachmentListElementId=e??null}userChangesHaveMadeFeatureInvalid(e){return!!this._reactiveGraphicLookup.get(e)?.userChangesHaveMadeInvalid}validate(){return!1}_makeBatchFormInputsForFeature(e){const t=this._layerTemplateMap.get(e.layer);return t?H(t,{allFeatures:new a([e]),expressionsManager:this._expressionsManager,getFieldValueOptionsForFeature:this._getFieldValueOptionsForFeature,map:this.map}):this._emptyForm}_makeSubmitResults(){const e=new Map;for(const[s,a]of this._reactiveGraphicLookup){const i=[],n=[],r=this._featureFormMap.get(a)?.allAttachmentElementInputs??[];for(const e of r)t(i,e.toSubmitEdits()),e.valid||n.push(e.template.elementId);e.set(s,{feature:s,values:{...a.attributes},invalidFields:[],attachmentEdits:i,invalidAttachmentElementIds:n})}for(const t of this.sharedForm.allFieldInputs)for(const s of t.invalidFeatures)e.get(s)?.invalidFields.push(t.fieldName);return Array.from(e.values())}_emitSubmit(){this.emit("submit",{name:"submit",results:this._makeSubmitResults(),valid:this.valid})}_findAttachmentInput(e){const t=this.activeForm.allAttachmentElementInputs.find(t=>t.template.elementId===e);return t||r.getLogger(this).error(`Attachment input not found for elementId '${e}'`),t}_findAttachment(e,t){const s=e.findAttachment(t);return s||r.getLogger(this).error(`Attachment '${t}' not found for attachment element '${e.template.elementId}'`),s}_makeAttachmentEdits(e){const s=[];for(const a of e.allAttachmentElementInputs)t(s,a.toSubmitEdits());return s}_emitAttachmentsChange(e){const t=e.single.feature;if(!t)return;const s=this._featureFormMap.get(t);this.emit("attachments-change",{name:"attachments-change",feature:t.source,attachmentEdits:this._makeAttachmentEdits(s??this.activeForm),valid:this.valid})}_emitLegacyValueChangeEvent(e,t,s){this.emit("value-change",{name:"value-change",features:Array.from(e,e=>e.source),fieldName:t,value:s})}_emitValuesChangeEvent(e,t){this.emit("values-change",{name:"values-change",fieldName:e,data:t})}async _trackValidityChange(e,t){await A(()=>!1===this.calculating);const s=new Map(t.map(e=>[e.source,e]));for(const a of this.invalidFeatures)if(!e.has(a)){const e=s.get(a);e&&(e.userChangesHaveMadeInvalid=!0)}}async _mutateFieldValues(e,t,s){const a=new Set(this.invalidFeatures),{expressionsManager:i,fieldInput:n,fieldName:r}=e;n&&(n.userHasChangedValue=!0);const o=await N(r,i,t,s);return o.length>0&&(this.userHasChangedValues=!0),await this._trackValidityChange(a,o),o}_prepare(){this._hasAsyncArcadeExpressions=!1,this._prepareTask=h(this._prepareTask),this._updateWorkingFeatures(),l(this._expressionsManager),this.userHasChangedValues=!1,this._expressionsManager=new L({arcadeContext:{editType:this.editType,spatialReference:this.spatialReference??I.WebMercator,map:this.map,timeZone:this.timeZone||"system"}});const{layers:e}=this;if(0===e.length)return;const t=s(async t=>{try{c(t),this.contingentValuesManager.layers.addMany(e);const s=new Map;await Promise.all(e.map(e=>e.load()));for(const i of e){const e=Z(this.layerInfos,i),a=await B(i,{arcadeExecutorProvider:this._arcadeExecutorProvider,formTimeZone:this.timeZone},e?.formTemplate);c(t),this._layerTemplateMap.set(i,a);const n=a.getExpressionExecutorsForLayer(i);if(this._expressionsManager.layerExpressionsModelMap.set(i,new S({preserveFieldValuesWhenHidden:a.preserveFieldValuesWhenHidden,executorMap:n})),!this._hasAsyncArcadeExpressions)for(const t of n.keys()){const e=n.get(t);if(this._hasAsyncArcadeExpressions=!0===(e.editableExpression?.isAsync||e.requiredExpression?.isAsync||e.valueExpression?.isAsync||e.visibilityExpression?.isAsync),this._hasAsyncArcadeExpressions)break}for(const t of a.elements){if(O(t))continue;const e=t.clone();U(e)&&(e.elements=e.elements.filter(e=>!O(e)));const{elementId:a}=e;s.has(a)?s.get(a).foldIn(e):s.set(a,e)}}if(this.hasTooManyComplexFeatures)throw new i("too-many-features-with-complex-forms","There are too many features to load into the form with the configured complexity");if(this.hasTooManyFeatures)throw new i("too-many-features","There are too many features to load into the form.");const a=new G({elements:Array.from(s.values())});this.sharedFormTemplate=a,this.sharedForm=H(a,{allFeatures:this._workingFeatures,expressionsManager:this._expressionsManager,getFieldValueOptionsForFeature:this._getFieldValueOptionsForFeature,map:this.map}),await this._expressionsManager.runAllExpressions(this._workingFeatures.toArray()),await A(()=>!this.contingentValuesManager.updating)}catch(s){throw u(s)||r.getLogger(this).error("Failed preparing form",s),s}});this._updatingHandles.consumePromise(t.promise),this._prepareTask=t}_updateWorkingFeatures(){this._workingFeatures.destroyAll();for(const t of this._featureFormMap.values())t.destroy();this._featureFormMap.clear(),this._attachmentCache.clear();const{features:e}=this;if(this._reactiveGraphicLookup=new p,0!==e.length){this._workingFeatures.addMany(e.map(C));for(const e of this._workingFeatures)this._reactiveGraphicLookup.set(e.source,e)}}async _syncAttachments(){const{activeFeature:e,activeLayer:t,activeForm:s}=this;if(!(e&&s&&M(t)&&V(t)))return;const a=e.getObjectId();if(null==a)return;const i=this._attachmentCache.get(t),n=s.allAttachmentElementInputs;if(!n.length)return;let r;if(i){const e=i.get(a);e&&(r=e)}if(!r){r=await b(t,a,n);o(this._attachmentCache,t,()=>new p).set(a,r)}for(const o of n)o.applyFetchedAttachments(J(o,r))}};e([y()],$.prototype,"_attachmentCache",void 0),e([y({readOnly:!0})],$.prototype,"activeFeature",null),e([y()],$.prototype,"activeFeatureIndex",void 0),e([y({readOnly:!0})],$.prototype,"activeForm",null),e([y({readOnly:!0})],$.prototype,"activeLayer",null),e([y()],$.prototype,"activeAssociationsInput",null),e([y()],$.prototype,"activeRelationshipInput",null),e([y()],$.prototype,"callbacks",void 0),e([y()],$.prototype,"disabled",void 0),e([y()],$.prototype,"calculating",null),e([y()],$.prototype,"contingentValuesManager",void 0),e([y()],$.prototype,"editType",void 0),e([y()],$.prototype,"features",void 0),e([y()],$.prototype,"expressionEvaluationFailed",null),e([y()],$.prototype,"hasNonActiveInvalidFeatures",null),e([y()],$.prototype,"hasAsyncArcadeExpressions",null),e([y()],$.prototype,"_hasAsyncArcadeExpressions",void 0),e([y()],$.prototype,"invalidFeatures",null),e([y()],$.prototype,"hasVisibleInputs",null),e([y()],$.prototype,"hasLayersWithContingentValues",null),e([y()],$.prototype,"maximumFeatureCount",void 0),e([y()],$.prototype,"maximumFeatureCountWithComplexForms",void 0),e([y()],$.prototype,"visibleInputs",null),e([y()],$.prototype,"map",void 0),e([y()],$.prototype,"noVisibleElementsReason",null),e([y()],$.prototype,"page",null),e([y()],$.prototype,"pageStack",void 0),e([y()],$.prototype,"readOnly",void 0),e([y()],$.prototype,"spatialReference",void 0),e([y()],$.prototype,"submitHasBeenAttempted",void 0),e([y()],$.prototype,"timeZone",void 0),e([y()],$.prototype,"updating",null),e([y()],$.prototype,"valid",null),e([y()],$.prototype,"layers",null),e([y()],$.prototype,"mode",null),e([y()],$.prototype,"sharedForm",void 0),e([y()],$.prototype,"sharedFormTemplate",void 0),e([y()],$.prototype,"selectedAttachment",null),e([y()],$.prototype,"selectedAttachmentAddElementId",null),e([y()],$.prototype,"selectedAttachmentListElementId",null),e([y()],$.prototype,"selectedAttachmentListInput",null),e([y()],$.prototype,"showingSelectedAttachmentReplacePage",null),e([y()],$.prototype,"selectedAttachmentAddInput",null),e([y()],$.prototype,"selectedAttachmentDetails",null),e([y()],$.prototype,"userHasChangedValues",void 0),e([y()],$.prototype,"layerInfos",void 0),e([y()],$.prototype,"_arcadeExecutorProvider",void 0),e([y()],$.prototype,"_activeAssociationsInput",void 0),e([y()],$.prototype,"_activeRelationshipInput",void 0),e([y()],$.prototype,"_prepareTask",void 0),e([y()],$.prototype,"_reactiveGraphicLookup",void 0),e([y()],$.prototype,"_allAttachmentInputs",null),e([y()],$.prototype,"_hasPendingAttachmentHydration",null),e([y()],$.prototype,"_layerTemplateMap",void 0),e([y()],$.prototype,"_workingFeatures",void 0),e([y()],$.prototype,"_expressionsManager",void 0),$=e([_("esri.widgets.BatchAttributeForm.BatchAttributeFormViewModel")],$);const z=$;function K(e){return null!=e&&e.trim().length>0}function q(e,t){const s=e.keywords;return K(s)&&s.toLowerCase()===t}function J(e,t){const s="attachment"===e.input?.type?e.input.attachmentAssociationType:"exact",a=e.attachmentKeyword;if("any"===s)return t;if("exactOrNone"===s){if(W(a))return t.filter(e=>!K(e.keywords));const e=a.toLowerCase();return t.filter(t=>!K(t.keywords)||q(t,e))}if(W(a))return t;const i=a.toLowerCase();return t.filter(e=>q(e,i))}function Q(e,t,s){return e.map(e=>({feature:e.source,changes:[{fieldName:t,value:s}]}))}function X(e,t,s){return e.map(e=>({feature:e.source,changes:[{fieldName:t,value:s.get(e)}]}))}export{z as default};
2
+ import{__decorate as e}from"tslib";import{pushIfSome as t}from"../../core/arrayUtils.js";import{createTask as s}from"../../core/asyncUtils.js";import a from"../../core/Collection.js";import i from"../../core/Error.js";import{EventedAccessor as n}from"../../core/Evented.js";import r from"../../core/Logger.js";import{getOrCreateMapValue as o}from"../../core/MapUtils.js";import{destroyMaybe as l,abortMaybe as h}from"../../core/maybe.js";import{throwIfAborted as c,isAbortError as u}from"../../core/promiseUtils.js";import p from"../../core/ReactiveMap.js";import{on as m,sync as d,watch as g,syncAndInitial as f,initial as v,whenOnce as A}from"../../core/reactiveUtils.js";import{property as y,subclass as _}from"../../core/accessorSupport/decorators.js";import{UpdatingHandles as F}from"../../core/support/UpdatingHandles.js";import I from"../../geometry/SpatialReference.js";import{getGraphicLayer as w}from"../../graphic/graphicOriginUtils.js";import{system as E}from"../../time/constants.js";import{getAttachmentKey as x}from"./attachmentUtils.js";import{createReactiveGraphic as C,isAttributeFormSupportedLayerWithAttachments as M,layerSupportsQueryAttachments as V,queryAttachmentsForElements as b}from"./batchAttributeFormUtils.js";import{ReactiveContingentValuesManager as k}from"./ReactiveContingentValuesManager.js";import{ArcadeExecutorProvider as R}from"./expressions/ArcadeExecutorProvider.js";import{ExpressionsManager as S}from"./expressions/ExpressionsManager.js";import{ExpressionsModel as L}from"./expressions/ExpressionsModel.js";import T from"./inputs/BatchFormInputs.js";import{createBatchFormInputsFromBatchFormTemplate as H}from"./inputs/support/createBatchFormInputs.js";import{isGroupInput as P,isFieldInput as j,applyFieldValueChanges as N}from"./inputs/support/inputUtils.js";import B from"./templates/BatchFormTemplate.js";import{createBatchFormTemplate as G}from"./templates/support/createBatchFormTemplate.js";import{isExcludedFromSharedForm as O,isGroupElementTemplate as U}from"./templates/support/templateUtils.js";import{ContingentValuesManager as D}from"../support/ContingentValuesManager.js";import{isEmptyValue as W}from"../support/forms/formUtils.js";function Z(e,t){return e?.find(e=>e.layer===t)}let $=class extends n{constructor(e){super(e),this._attachmentCache=new p,this.activeFeatureIndex=-1,this.attachmentsEnabled=!1,this.callbacks=null,this.disabled=!1,this.editType="NA",this.features=new a,this._hasAsyncArcadeExpressions=!1,this.highlightHelper=null,this.maximumFeatureCount=2e3,this.maximumFeatureCountWithComplexForms=50,this.map=null,this.pageStack=[],this.readOnly=!1,this.spatialReference=null,this.submitHasBeenAttempted=!1,this.timeZone=null,this.userHasChangedValues=!1,this.layerInfos=null,this._arcadeExecutorProvider=new R,this._activeAssociationsInput=null,this._activeRelationshipInput=null,this._ownContingentValuesManager=null,this._activeFormInputsByElementId=new Map,this._emptyForm=new T({inputs:[]}),this._emptyFormTemplate=new B({elements:[]}),this._featureFormMap=new Map,this._prepareTask=null,this._reactiveGraphicLookup=new p,this._updatingHandles=new F,this._submitTask=null,this._layerTemplateMap=new p,this._workingFeatures=new a,this._expressionsManager=new S({arcadeContext:{editType:"NA",spatialReference:null,map:null,timeZone:E}}),this._getExternalErrorForFeature=(e,t)=>this._reactiveContingentValuesManager.getViolationTypeForField(e,t),this._getFieldValueOptionsForFeature=e=>this._reactiveContingentValuesManager.getAndWatchFieldValueOptions(e),this.sharedForm=this._emptyForm,this.sharedFormTemplate=this._emptyFormTemplate}initialize(){this.contingentValuesManager||(this.contingentValuesManager=this._ownContingentValuesManager=new D),this.addHandles([m(()=>this.features,"after-changes",()=>{this.goHome(),this.notifyChange("layers"),this._prepare()},d),g(()=>[this.attachmentsEnabled,this.features,this.map,this.timeZone,this.editType],()=>this._prepare(),d),g(()=>this.activeForm,()=>{this.goHome(),this._activeFormInputsByElementId.clear(),this._syncAttachments()},d),g(()=>this.activeFeature,()=>{this.goHome()},d),g(()=>this.page,e=>{const t=[...this.pageStack];if(t.includes(e))for(;t.length&&t.at(-1)!==e;)t.pop();else t.push(e);this.pageStack=t},f),g(()=>this.contingentValuesManager,e=>{l(this._reactiveContingentValuesManager),this._reactiveContingentValuesManager=new k({manager:e})},v)]),this._prepare()}destroy(){this._prepareTask=h(this._prepareTask),this._workingFeatures.destroyAll(),l(this._expressionsManager),l(this._reactiveContingentValuesManager),this._updatingHandles.destroy(),this._reactiveGraphicLookup=new p,this._emptyForm.destroy(),this._emptyFormTemplate.destroy(),this._ownContingentValuesManager=l(this._ownContingentValuesManager),this.highlightHelper?.removeAll()}get activeFeature(){const e=this.activeFeatureIndex;return e<0?null:this.features.at(e)}get activeForm(){if("batch"===this.mode)return this.sharedForm;const e=this._workingFeatures.at(this.activeFeatureIndex);if(!e)return this._emptyForm;const t=this._featureFormMap.get(e);if(t)return t;const s=this._makeBatchFormInputsForFeature(e);return s!==this._emptyForm&&this._featureFormMap.set(e,s),s}get activeLayer(){const{activeFeature:e}=this;if(!e)return null;return w(e)??null}get activeAssociationsInput(){return this._activeAssociationsInput}get activeRelationshipInput(){return this._activeRelationshipInput}get calculating(){return this._expressionsManager.calculating}get expressionsManager(){return this._expressionsManager}get expressionEvaluationFailed(){return this._expressionsManager.expressionEvaluationFailed}get hasNonActiveInvalidFeatures(){if("batch"===this.mode)return!1;const{activeFeature:e}=this;return this.invalidFeatures.some(t=>t!==e)}get hasAsyncArcadeExpressions(){return this._hasAsyncArcadeExpressions}get hasTooManyFeatures(){return this._workingFeatures.length>this.maximumFeatureCount}get hasTooManyComplexFeatures(){return this._workingFeatures.length>this.maximumFeatureCountWithComplexForms&&this.hasAsyncArcadeExpressions}get invalidFeatures(){return this.sharedForm.invalidFeatures}get hasVisibleInputs(){return this.visibleInputs.length>0}get hasLayersWithContingentValues(){const e=this.contingentValuesManager;for(const t of this.layers)if(e.getFieldsWithContingentValues(t).size>0)return!0;return!1}get visibleInputs(){return this.activeForm.inputs.filter(e=>e.visible)}get noVisibleElementsReason(){if(this.hasVisibleInputs)return null;if(0===this.activeForm.inputs.length)return"noElements";const e=new Set;for(const t of this.activeForm.inputs)switch(t.visibilityCode){case"hidden:not-in-all-layers":case"hidden:no-domain-in-common":e.add("noElementsInCommon");break;case"hidden:field-definition":case"hidden:group-visibility-expression:all-features":case"hidden:visibility-expression:all-features":e.add("allElementsHidden");break;case"hidden:group-visibility-expression:some-features":case"hidden:visibility-expression:some-features":return"elementsHiddenInSome"}return e.has("allElementsHidden")?"allElementsHidden":"noElementsInCommon"}get page(){return this.showingSelectedAttachmentReplacePage&&this.selectedAttachmentDetails?"replacing-attachment":this.selectedAttachmentDetails?"viewing-attachment-details":this.selectedAttachmentAddInput?"adding-attachments":this.selectedAttachmentListInput?"viewing-attachments":this.activeAssociationsInput?.associatedLayer?"viewing-associated-features":this.activeAssociationsInput?"viewing-associated-layers":this.activeRelationshipInput?.showAllRelatedRecords?"viewing-related-records":this.activeRelationshipInput?.showAllCategories?"viewing-related-categories":"default"}get status(){const e=this._prepareTask;return null==e?"not-loaded":e.finished?null!=e.error?"failed":"loaded":"loading"}get submittable(){return this.valid,!0}get updating(){return this._updatingHandles.updating||this.calculating||this._hasPendingAttachmentHydration}get valid(){return this.sharedForm.valid&&Array.from(this._featureFormMap.values()).every(e=>e.valid)}get layers(){const e=new Set;return this.features.forEach(t=>{const s=w(t);s&&e.add(s)}),Array.from(e)}get mode(){return this.activeFeatureIndex>-1?"single":"batch"}submit(){if(this.submitHasBeenAttempted=!0,this._validateContingentValues(this._workingFeatures),!this._hasPendingAttachmentHydration)return this._emitSubmit(),Promise.resolve();if(this._submitTask)return this._submitTask.promise;const e=s(async()=>{await Promise.all(this._allAttachmentInputs.map(e=>e.waitForPendingAttachmentUpdateData())),this._emitSubmit()});return this._submitTask=e,e.promise.finally(()=>{this._submitTask===e&&(this._submitTask=null)}),e.promise}get selectedAttachment(){return this._get("selectedAttachment")??null}set selectedAttachment(e){this.showingSelectedAttachmentReplacePage=!1,this._set("selectedAttachment",e),null!=e&&(this.selectedAttachmentAddElementId=null)}get selectedAttachmentAddElementId(){return this._get("selectedAttachmentAddElementId")??null}set selectedAttachmentAddElementId(e){this.showingSelectedAttachmentReplacePage=!1,this._set("selectedAttachmentAddElementId",e),null!=e&&(this.selectedAttachment=null,this.selectedAttachmentListElementId=null)}get selectedAttachmentListElementId(){return this._get("selectedAttachmentListElementId")??null}set selectedAttachmentListElementId(e){this._set("selectedAttachmentListElementId",e),null!=e&&(this.selectedAttachment=null,this.selectedAttachmentAddElementId=null)}get selectedAttachmentListInput(){const e=this.selectedAttachmentListElementId,t=this.activeForm;return e&&t&&t.allAttachmentElementInputs.find(t=>t.template.elementId===e)||null}get showingSelectedAttachmentReplacePage(){return this._get("showingSelectedAttachmentReplacePage")??!1}set showingSelectedAttachmentReplacePage(e){this._set("showingSelectedAttachmentReplacePage",e&&null!=this.selectedAttachmentDetails)}get selectedAttachmentAddInput(){const e=this.selectedAttachmentAddElementId,t=this.activeForm;return e&&t&&t.allAttachmentElementInputs.find(t=>t.template.elementId===e)||null}get selectedAttachmentDetails(){const e=this.selectedAttachment,t=this.activeForm;if(!e||!t)return null;const s=t.allAttachmentElementInputs.find(t=>t.template.elementId===e.elementId);if(!s)return null;const a=s.attachments.findIndex(t=>x(t)===e.attachmentKey);if(-1===a)return null;return{attachment:s.attachments[a],input:s}}get _allAttachmentInputs(){const e=[...this.sharedForm.allAttachmentElementInputs];for(const t of this._featureFormMap.values())e.push(...t.allAttachmentElementInputs);return e}get _hasPendingAttachmentHydration(){return this._allAttachmentInputs.some(e=>e.hasPendingAttachmentUpdateData)}findFieldInput(e){if(null==e)return;const t=this._activeFormInputsByElementId;if(t.has(e))return t.get(e);const s=this.activeForm.allFieldInputs.find(t=>t.template.elementId===e);return void 0!==s?(t.set(e,s),s):void 0}getFirstVisibleInvalidFieldInput(){if(this.hasVisibleInputs&&!this.activeForm.valid)for(const e of this.visibleInputs){if(P(e)){const t=e.inputs.find(e=>j(e)&&!e.valid);if(t)return{input:t,groupInput:e}}if(j(e)&&!e.valid)return{input:e}}}getFieldInputValue(e){return this.findFieldInput(e)?.value}getValues(e){const t=this._reactiveGraphicLookup.get(e);if(!t)throw new i("feature-not-found","The given feature is not present in the BatchAttributeForm");return{...t.attributes}}async goBack(){switch(this.page){case"replacing-attachment":return void this.setShowingSelectedAttachmentReplacePage(!1);case"viewing-attachment-details":return void this.setSelectedAttachment(null);case"adding-attachments":return void this.setSelectedAttachmentAddElementId(null);case"viewing-attachments":return void this.setSelectedAttachmentListElementId(null);case"viewing-associated-features":return void this.setActiveAssociationsLayer(null);case"viewing-associated-layers":return void this.setActiveAssociationsInput(null);case"viewing-related-categories":case"viewing-related-records":return void this.clearActiveRelationshipCategoryOrInput();default:return}}async goHome(){this.setShowingSelectedAttachmentReplacePage(!1),this.setSelectedAttachment(null),this.setSelectedAttachmentAddElementId(null),this.setSelectedAttachmentListElementId(null),this.setActiveAssociationsLayer(null),this.setActiveAssociationsInput(null),this.clearAllRelationshipSettings()}notifyGeometriesChanged(e){const t=[];for(const s of e){const e=this._reactiveGraphicLookup.get(s);e&&(t.push(e),e.geometry=s.geometry)}this._expressionsManager.runGeometryDependentExpressions(t)}async setFieldInputValue(e,t){await this._setFieldValueFromContext(e.features,t,{fieldName:e.fieldName,expressionsManager:e.expressionsManager,fieldInput:e})}async setFieldInputValuePerFeature(e,t){await this._setFieldValuePerFeatureFromContext(t,{fieldName:e.fieldName,expressionsManager:e.expressionsManager,fieldInput:e})}async setValueForFieldName(e,t,s,a){const i=null==a?this._workingFeatures:this._getReactiveGraphics(a);await this._setFieldValueFromContext(i,t,{fieldName:e,expressionsManager:this._expressionsManager,fieldInput:this.findFieldInput(s)??void 0})}async setValuePerFeatureForFieldName(e,t,s){await this._setFieldValuePerFeatureFromContext(this._getReactiveGraphicValueMap(t),{fieldName:e,expressionsManager:this._expressionsManager,fieldInput:this.findFieldInput(s)??void 0})}_getReactiveGraphics(e){const t=[];for(const s of e){const e=this._reactiveGraphicLookup.get(s);e&&t.push(e)}return t}_getReactiveGraphicValueMap(e){const t=new Map;for(const[s,a]of e){const e=this._reactiveGraphicLookup.get(s);e&&t.set(e,a)}return t}async _setFieldValueFromContext(e,t,s){const a=await this._mutateFieldValues(s,e,()=>t);this._emitLegacyValueChangeEvent(e,s.fieldName,t),this._emitValuesChangeEvent(s.fieldName,Q(a,s.fieldName,t))}async _setFieldValuePerFeatureFromContext(e,t){const s=await this._mutateFieldValues(t,e.keys(),t=>e.get(t));if(this._emitValuesChangeEvent(t.fieldName,X(s,t.fieldName,e)),1===e.size){const{value:s}=e.values().next();this._emitLegacyValueChangeEvent(e.keys(),t.fieldName,s)}}async setValue(e,t){const s=this.findFieldInput(e);if(null==s)throw new i("no-FieldInput-found",`Cannot set the value of FieldInput with ID: ${e} because none was found in the active form`);await this.setFieldInputValue(s,t)}async stageAddAttachments(e,t){if(0===t.length)return[];const s=this._findAttachmentInput(e);if(!s)return[];const a=await s.stageAddAttachments(t,this._expressionsManager.arcadeContext);return 0===a.length||(this.userHasChangedValues=!0,this._emitAttachmentsChange(s)),a}stageDeleteAttachment(e,t){const s=this._findAttachmentInput(e);if(!s)return;const a=this._findAttachment(s,t);a&&(s.stageDeleteAttachment(a),this.userHasChangedValues=!0,this._emitAttachmentsChange(s))}async stageRenameAttachment(e,t,s){const a=this._findAttachmentInput(e);if(!a)return;const i=this._findAttachment(a,t);i&&0!==s.trim().length&&(a.stageRenameAttachment(i,s.trim()),this.userHasChangedValues=!0,await a.ensureStagedUpdateData(i),this._emitAttachmentsChange(a))}async stageReplaceAttachment(e,t,s){const a=this._findAttachmentInput(e);if(!a)return!1;const i=this._findAttachment(a,t);if(!i)return!1;return!!await a.stageReplaceAttachment(i,s,this._expressionsManager.arcadeContext)&&(this.userHasChangedValues=!0,this._emitAttachmentsChange(a),!0)}clearAttachmentChanges(e){const t=this._findAttachmentInput(e);t&&(t.clearAttachmentChanges(),this._emitAttachmentsChange(t))}setActiveAssociationsInput(e){this._activeAssociationsInput=e}setActiveAssociationsLayer(e){this._activeAssociationsInput?.setAssociatedLayer(e)}setActiveAssociationType(e){this._activeAssociationsInput?.setActiveAssociationType(e)}setActiveRelationshipInput(e){e||this._activeRelationshipInput?.setActiveCategory(null),this._activeRelationshipInput=e}setActiveRelationshipCategory(e,t){t.setActiveCategory(e),this.setActiveRelationshipInput(t)}clearAllRelationshipSettings(){const e=this.activeRelationshipInput;e&&(e.setActiveCategory(null),e.setShowAllCategories(!1),e.setShowAllRelatedRecords(!1),this._activeRelationshipInput=null)}clearActiveRelationshipCategoryOrInput(){const e=this.activeRelationshipInput;e&&(e.showAllRelatedRecords?e.showAllCategories?e.setActiveCategory(null):this.setActiveRelationshipInput(null):e.showAllCategories&&(e.setShowAllCategories(!1),this.setActiveRelationshipInput(null)))}resetAttachmentChanges(e,t){const s=this._findAttachmentInput(e);if(!s)return;const a=this._findAttachment(s,t);a&&(s.discardStagedEdits(a),this._emitAttachmentsChange(s))}setSelectedAttachment(e){this.selectedAttachment=e??null}setShowingSelectedAttachmentReplacePage(e){this.showingSelectedAttachmentReplacePage=e}setSelectedAttachmentAddElementId(e){this.selectedAttachmentAddElementId=e??null}setSelectedAttachmentListElementId(e){this.selectedAttachmentListElementId=e??null}userChangesHaveMadeFeatureInvalid(e){return!!this._reactiveGraphicLookup.get(e)?.userChangesHaveMadeInvalid}validate(){return!1}_makeBatchFormInputsForFeature(e){const t=this._layerTemplateMap.get(e.layer);return t?H(t,{allFeatures:new a([e]),expressionsManager:this._expressionsManager,getExternalErrorForFeature:this._getExternalErrorForFeature,getFieldValueOptionsForFeature:this._getFieldValueOptionsForFeature,map:this.map}):this._emptyForm}_makeSubmitResults(){const e=new Map;for(const[s,a]of this._reactiveGraphicLookup){const i=[],n=[],r=this._featureFormMap.get(a)?.allAttachmentElementInputs??[];for(const e of r)t(i,e.toSubmitEdits()),e.valid||n.push(e.template.elementId);e.set(s,{feature:s,values:{...a.attributes},invalidFields:[],attachmentEdits:i,invalidAttachmentElementIds:n})}for(const t of this.sharedForm.allFieldInputs)for(const s of t.invalidFeatures)e.get(s)?.invalidFields.push(t.fieldName);return Array.from(e.values())}_emitSubmit(){this.emit("submit",{name:"submit",results:this._makeSubmitResults(),valid:this.valid})}_findAttachmentInput(e){const t=this.activeForm.allAttachmentElementInputs.find(t=>t.template.elementId===e);return t||r.getLogger(this).error(`Attachment input not found for elementId '${e}'`),t}_findAttachment(e,t){const s=e.findAttachment(t);return s||r.getLogger(this).error(`Attachment '${t}' not found for attachment element '${e.template.elementId}'`),s}_makeAttachmentEdits(e){const s=[];for(const a of e.allAttachmentElementInputs)t(s,a.toSubmitEdits());return s}_emitAttachmentsChange(e){const t=e.single.feature;if(!t)return;const s=this._featureFormMap.get(t);this.emit("attachments-change",{name:"attachments-change",feature:t.source,attachmentEdits:this._makeAttachmentEdits(s??this.activeForm),valid:this.valid})}_emitLegacyValueChangeEvent(e,t,s){this.emit("value-change",{name:"value-change",features:Array.from(e,e=>e.source),fieldName:t,value:s})}_emitValuesChangeEvent(e,t){this.emit("values-change",{name:"values-change",fieldName:e,data:t})}_validateContingentValues(e,t=!1){if(t&&!this.submitHasBeenAttempted)for(const s of e)this._reactiveContingentValuesManager.validateContingenciesForNonNullFields(s);else for(const s of e)this._reactiveContingentValuesManager.validateContingencyConstraints(s,{includeIncompleteViolations:!0})}async _trackValidityChange(e,t){await A(()=>!1===this.calculating);const s=new Map(t.map(e=>[e.source,e]));for(const a of this.invalidFeatures)if(!e.has(a)){const e=s.get(a);e&&(e.userChangesHaveMadeInvalid=!0)}}async _mutateFieldValues(e,t,s){const a=new Set(this.invalidFeatures),{expressionsManager:i,fieldInput:n,fieldName:r}=e;n&&(n.userHasChangedValue=!0);const o=await N(r,i,t,s);return o.length>0&&(this.userHasChangedValues=!0),"single"!==this.mode&&1!==this.features.length||this._validateContingentValues([o[0]],!0),await this._trackValidityChange(a,o),o}_prepare(){this._hasAsyncArcadeExpressions=!1,this._prepareTask=h(this._prepareTask),this._updateWorkingFeatures(),l(this._expressionsManager),this.userHasChangedValues=!1,this._expressionsManager=new S({arcadeContext:{editType:this.editType,spatialReference:this.spatialReference??I.WebMercator,map:this.map,timeZone:this.timeZone||"system"}});const{attachmentsEnabled:e,layers:t}=this;if(0===t.length)return;const a=s(async s=>{try{c(s),this.contingentValuesManager.layers.addMany(t);const a=new Map;await Promise.all(t.map(e=>e.load()));for(const i of t){const t=Z(this.layerInfos,i),n=await G(i,{arcadeExecutorProvider:this._arcadeExecutorProvider,formTimeZone:this.timeZone,attachmentsEnabled:e},t?.formTemplate);c(s),this._layerTemplateMap.set(i,n);const r=n.getExpressionExecutorsForLayer(i);if(this._expressionsManager.layerExpressionsModelMap.set(i,new L({preserveFieldValuesWhenHidden:n.preserveFieldValuesWhenHidden,executorMap:r})),!this._hasAsyncArcadeExpressions)for(const e of r.keys()){const t=r.get(e);if(this._hasAsyncArcadeExpressions=!0===(t.editableExpression?.isAsync||t.requiredExpression?.isAsync||t.valueExpression?.isAsync||t.visibilityExpression?.isAsync),this._hasAsyncArcadeExpressions)break}for(const e of n.elements){if(O(e))continue;const t=e.clone();U(t)&&(t.elements=t.elements.filter(e=>!O(e)));const{elementId:s}=t;a.has(s)?a.get(s).foldIn(t):a.set(s,t)}}if(this.hasTooManyComplexFeatures)throw new i("too-many-features-with-complex-forms","There are too many features to load into the form with the configured complexity");if(this.hasTooManyFeatures)throw new i("too-many-features","There are too many features to load into the form.");const n=new B({elements:Array.from(a.values())});this.sharedFormTemplate=n,this.sharedForm=H(n,{allFeatures:this._workingFeatures,expressionsManager:this._expressionsManager,getExternalErrorForFeature:this._getExternalErrorForFeature,getFieldValueOptionsForFeature:this._getFieldValueOptionsForFeature,map:this.map}),await this._expressionsManager.runAllExpressions(this._workingFeatures.toArray()),await A(()=>!this.contingentValuesManager.updating)}catch(a){throw u(a)||r.getLogger(this).error("Failed preparing form",a),a}});this._updatingHandles.consumePromise(a.promise),this._prepareTask=a}_updateWorkingFeatures(){this._workingFeatures.destroyAll(),this._reactiveContingentValuesManager.reset();for(const t of this._featureFormMap.values())t.destroy();this._featureFormMap.clear(),this._attachmentCache.clear();const{features:e}=this;if(this._reactiveGraphicLookup=new p,0!==e.length){this._workingFeatures.addMany(e.map(C));for(const e of this._workingFeatures)this._reactiveGraphicLookup.set(e.source,e)}}async _syncAttachments(){const{activeFeature:e,activeLayer:t,activeForm:s}=this;if(!(e&&s&&M(t)&&V(t)))return;const a=e.getObjectId();if(null==a)return;const i=this._attachmentCache.get(t),n=s.allAttachmentElementInputs;if(!n.length)return;let r;if(i){const e=i.get(a);e&&(r=e)}if(!r){r=await b(t,a,n);o(this._attachmentCache,t,()=>new p).set(a,r)}for(const o of n)o.applyFetchedAttachments(J(o,r))}};e([y()],$.prototype,"_attachmentCache",void 0),e([y({readOnly:!0})],$.prototype,"activeFeature",null),e([y()],$.prototype,"activeFeatureIndex",void 0),e([y({readOnly:!0})],$.prototype,"activeForm",null),e([y({readOnly:!0})],$.prototype,"activeLayer",null),e([y()],$.prototype,"activeAssociationsInput",null),e([y()],$.prototype,"activeRelationshipInput",null),e([y()],$.prototype,"attachmentsEnabled",void 0),e([y()],$.prototype,"callbacks",void 0),e([y()],$.prototype,"disabled",void 0),e([y()],$.prototype,"calculating",null),e([y()],$.prototype,"contingentValuesManager",void 0),e([y()],$.prototype,"editType",void 0),e([y()],$.prototype,"features",void 0),e([y()],$.prototype,"expressionEvaluationFailed",null),e([y()],$.prototype,"hasNonActiveInvalidFeatures",null),e([y()],$.prototype,"hasAsyncArcadeExpressions",null),e([y()],$.prototype,"_hasAsyncArcadeExpressions",void 0),e([y()],$.prototype,"invalidFeatures",null),e([y()],$.prototype,"hasVisibleInputs",null),e([y()],$.prototype,"hasLayersWithContingentValues",null),e([y()],$.prototype,"highlightHelper",void 0),e([y()],$.prototype,"maximumFeatureCount",void 0),e([y()],$.prototype,"maximumFeatureCountWithComplexForms",void 0),e([y()],$.prototype,"visibleInputs",null),e([y()],$.prototype,"map",void 0),e([y()],$.prototype,"noVisibleElementsReason",null),e([y()],$.prototype,"page",null),e([y()],$.prototype,"pageStack",void 0),e([y()],$.prototype,"readOnly",void 0),e([y()],$.prototype,"spatialReference",void 0),e([y()],$.prototype,"submitHasBeenAttempted",void 0),e([y()],$.prototype,"timeZone",void 0),e([y()],$.prototype,"updating",null),e([y()],$.prototype,"valid",null),e([y()],$.prototype,"layers",null),e([y()],$.prototype,"mode",null),e([y()],$.prototype,"sharedForm",void 0),e([y()],$.prototype,"sharedFormTemplate",void 0),e([y()],$.prototype,"selectedAttachment",null),e([y()],$.prototype,"selectedAttachmentAddElementId",null),e([y()],$.prototype,"selectedAttachmentListElementId",null),e([y()],$.prototype,"selectedAttachmentListInput",null),e([y()],$.prototype,"showingSelectedAttachmentReplacePage",null),e([y()],$.prototype,"selectedAttachmentAddInput",null),e([y()],$.prototype,"selectedAttachmentDetails",null),e([y()],$.prototype,"userHasChangedValues",void 0),e([y()],$.prototype,"layerInfos",void 0),e([y()],$.prototype,"_arcadeExecutorProvider",void 0),e([y()],$.prototype,"_activeAssociationsInput",void 0),e([y()],$.prototype,"_activeRelationshipInput",void 0),e([y()],$.prototype,"_prepareTask",void 0),e([y()],$.prototype,"_reactiveGraphicLookup",void 0),e([y()],$.prototype,"_allAttachmentInputs",null),e([y()],$.prototype,"_hasPendingAttachmentHydration",null),e([y()],$.prototype,"_layerTemplateMap",void 0),e([y()],$.prototype,"_workingFeatures",void 0),e([y()],$.prototype,"_expressionsManager",void 0),$=e([_("esri.widgets.BatchAttributeForm.BatchAttributeFormViewModel")],$);const z=$;function K(e){return null!=e&&e.trim().length>0}function q(e,t){const s=e.keywords;return K(s)&&s.toLowerCase()===t}function J(e,t){const s="attachment"===e.input?.type?e.input.attachmentAssociationType:"exact",a=e.attachmentKeyword;if("any"===s)return t;if("exactOrNone"===s){if(W(a))return t.filter(e=>!K(e.keywords));const e=a.toLowerCase();return t.filter(t=>!K(t.keywords)||q(t,e))}if(W(a))return t;const i=a.toLowerCase();return t.filter(e=>q(e,i))}function Q(e,t,s){return e.map(e=>({feature:e.source,changes:[{fieldName:t,value:s}]}))}function X(e,t,s){return e.map(e=>({feature:e.source,changes:[{fieldName:t,value:s.get(e)}]}))}export{z as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import{watch as r,sync as s}from"../../core/reactiveUtils.js";import{generateUID as o}from"../../core/uid.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import{isLayerWithContingentValues as n}from"../support/ContingentValuesManager.js";let c=class extends t{constructor(e){super(e),this._uid=`${o()}`}getAndWatchFieldValueOptions(e){const{feature:t,...o}=e,a=this.manager.getFieldValueOptions({...o,feature:t.plainGraphic}),{layer:i,fieldName:c}=e,d=this._makeHandleId(c);if(t.hasHandles(d)||!n(i))return a;const u=this.manager.getRelatedFields(i,c);if(0===u.size)return a;const l=r(()=>p(t,u),()=>this.manager.resetOptionsForField(i,t.plainGraphic,c),s);return this.addHandles(l),t.addHandles(l,d),a}_makeHandleId(e){return`${this._uid}-${e}`}};function p(e,t){const r=[];for(const s of t)r.push(e.getAttribute(s));return r}e([a()],c.prototype,"manager",void 0),c=e([i("esri.widgets.BatchAttributeForm.ReactiveContingentValuesManager")],c);export{c as ReactiveContingentValuesManager};
2
+ import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import{watch as r,sync as n}from"../../core/reactiveUtils.js";import{generateUID as i}from"../../core/uid.js";import{property as a}from"../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../core/accessorSupport/decorators/subclass.js";import{isLayerWithContingentValues as s}from"../support/ContingentValuesManager.js";let l=class extends t{constructor(e){super(e),this._uid=`${i()}`}getAndWatchFieldValueOptions(e){const{feature:t,...i}=e,a=this.manager.getFieldValueOptions({...i,feature:t.plainGraphic}),{layer:o,fieldName:l}=e,u=this._makeHandleId(l);if(t.hasHandles(u)||!s(o))return a;const d=this.manager.getRelatedFields(o,l);if(0===d.size)return a;const p=r(()=>c(t,d),()=>this.manager.resetOptionsForField(o,t.plainGraphic,l),n);return this.addHandles(p),t.addHandles(p,u),a}getViolationTypeForField(e,t){const r=e.layer;if(!s(r))return null;const n=this.manager.getViolationForField(r,e.plainGraphic,t);if(!n)return null;switch(n.type){case"warning":return"contingent-values-validation-error::contingency-violation-warning";case"error":return"contingent-values-validation-error::contingency-violation-error";default:return null}}reset(){this.manager.resetOptions(),this.manager.resetViolations()}validateContingencyConstraints(e,t){const{layer:r}=e;return s(r)?this.manager.validateContingencyConstraints(r,e.plainGraphic,t):[]}validateContingenciesForNonNullFields(e){const{layer:t}=e;s(t)&&this.manager.validateContingenciesForNonNullFields(t,e.plainGraphic)}_makeHandleId(e){return`${this._uid}-${e}`}};function c(e,t){const r=[];for(const n of t)r.push(e.getAttribute(n));return r}e([a()],l.prototype,"manager",void 0),l=e([o("esri.widgets.BatchAttributeForm.ReactiveContingentValuesManager")],l);export{l as ReactiveContingentValuesManager};
@@ -0,0 +1,14 @@
1
+ import type { NestableAttachmentInputUnion } from "../../form/elements/inputs/attachments/types.js";
2
+
3
+ /**
4
+ * @param file - The Blob or File whose duration should be read.
5
+ * @param mediaType - The media element type to create.
6
+ * @internal
7
+ */
8
+ export function getMediaDurationInSeconds(file: Blob | File, mediaType: "audio" | "video"): Promise<number | null>;
9
+
10
+ /**
11
+ * @param inputType - The attachment input type to categorize.
12
+ * @internal
13
+ */
14
+ export function getAttachmentCategoryForInputType(inputType: NestableAttachmentInputUnion["type"]): "audio" | "document" | "image" | "video";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{isBlobProtocol as t}from"../../core/urlUtils.js";import{isString as n}from"../../support/guards.js";import{isSupportedImage as r}from"../Attachments/support/attachmentUtils.js";function o(t){return String(t.globalId||t.id||t.name)}function e(r,o,e){const{size:u,url:i}=r;if(!n(i)||!i.length)return null;if(t(i))return i;const s=[];return o&&null!=e&&s.push(`w=${e}`),null==u||Number.isNaN(u)||s.push(`s=${u}`),s.length?`${i}${i.includes("?")?"&":"?"}${s.join("&")}`:i}function u(t){return r(t.contentType)}function i(t,n){const{capture:r,recordAudio:o,takePhoto:e,takeVideo:u}=t;return"image"===n?e||r:"video"===n?u||r:"audio"===n&&o||r}export{o as getAttachmentKey,e as getAttachmentUrl,i as getCaptureButtonLabel,u as isImageAttachment};
2
+ import{isBlobProtocol as t}from"../../core/urlUtils.js";import{isString as e}from"../../support/guards.js";import{isSupportedImage as n}from"../Attachments/support/attachmentUtils.js";function r(t){return String(t.globalId||t.id||t.name)}function o(n,r,o){const{size:u,url:a}=n;if(!e(a)||!a.length)return null;if(t(a))return a;const i=[];return r&&null!=o&&i.push(`w=${o}`),null==u||Number.isNaN(u)||i.push(`s=${u}`),i.length?`${a}${a.includes("?")?"&":"?"}${i.join("&")}`:a}function u(t){return n(t.contentType)}function a(t,e){const{capture:n,recordAudio:r,takePhoto:o,takeVideo:u}=t;return"image"===e?o||n:"video"===e?u||n:"audio"===e&&r||n}async function i(t,e){const n=document.createElement(e),r=URL.createObjectURL(t);return await new Promise(t=>{const e=()=>{n.onloadedmetadata=null,n.onerror=null,n.removeAttribute("src"),n.load(),URL.revokeObjectURL(r)};n.preload="metadata",n.onloadedmetadata=()=>{const r=Number.isFinite(n.duration)?n.duration:null;e(),t(r)},n.onerror=()=>{e(),t(null)},n.src=r})}function c(t){switch(t){case"audio":return"audio";case"document":default:return"document";case"image":case"signature":return"image";case"video":return"video"}}const s={getAttachmentCategoryForInputType:c,getMediaDurationInSeconds:i};export{s as attachmentValidationUtils,c as getAttachmentCategoryForInputType,r as getAttachmentKey,o as getAttachmentUrl,a as getCaptureButtonLabel,i as getMediaDurationInSeconds,u as isImageAttachment};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{substitute as e}from"../../intl.js";import t from"../../rest/support/AttachmentQuery.js";import{ReactiveGraphic as i}from"./ReactiveGraphic.js";import{isMultipleChoiceFieldInput as n}from"./inputs/support/inputUtils.js";import{getIntlOptionsForField as r}from"../support/dateUtils.js";import{isEmptyValue as o,getRangeErrorMessage as a,shouldUseScientificNotation as s,scientificNumberFormatOptions as l,numberFormatOptions as u}from"../support/forms/formUtils.js";const c=(e,t)=>null!=e&&e.input?.type===t;function d(e){return new i({source:e})}function p(t,i,o,c){const{dataType:d,minLength:p}=t,f=o?.validationErrors;if(!f||!i)return null;if("batch-attribute-form-validation::features-have-different-errors"===i)return f.invalidBatchFormType;if("input-validation-error::cannot-be-empty"===i)return f.cannotBeNull;if("domain-validation-error::value-out-of-range"===i||"numeric-range-validation-error::out-of-range"===i){const{field:i,range:n}=t,o={type:"date",intlOptions:{timeZone:"date"===i.type&&c?c:void 0,...r(i)}},p=a(n,f);return e(p,n,{format:{max:"date"===d?o:null!=n.max&&s(n.max)?l:u,min:"date"===d?o:null!=n.min&&s(n.min)?l:u}})}return"domain-validation-error::invalid-coded-value"===i?f.invalidCodedValue:"type-validation-error::invalid-type"===i?f.invalidType:"length-validation-error::too-short"===i?e(f.tooShort,{min:p}):"multiple-choice-validation-error::too-few-selected-choices"===i&&n(t)?e(f.tooFewSelectedChoices,{min:t.input.minimumChoices}):"multiple-choice-validation-error::too-many-selected-choices"===i&&n(t)?e(f.tooManySelectedChoices,{max:t.input.maximumChoices}):null}function f(e,t,i){const n=i?.validationErrors;if(!n)return null;let r=null;for(const o of e.invalidHiddenInputs)switch(o.effectiveVisibilityCode){case"hidden:visibility-expression:all-features":case"hidden:group-visibility-expression:all-features":case"hidden:field-definition":return"single"===t?n.nonVisibleError_changeValues:n.nonVisibleError_checkIndividualFeatures;case"hidden:no-domain-in-common":case"hidden:visibility-expression:some-features":case"hidden:group-visibility-expression:some-features":case"hidden:not-in-all-layers":r=n.nonVisibleError_checkIndividualFeatures;break;case"visible":continue;default:o.effectiveVisibilityCode}return r}function m(e){return null!=e&&"object"==typeof e&&"type"in e&&("feature"===e.type||"geojson"===e.type||"knowledge-graph-sublayer"===e.type||"oriented-imagery"===e.type||"scene"===e.type||"subtype-sublayer"===e.type)}function y(e){return!!m(e)||!!(null!=e&&"object"==typeof e&&"type"in e&&e.type&&"id"in e&&e.id&&"fields"in e&&e.fields&&"fieldsIndex"in e&&e.fieldsIndex&&"objectIdField"in e&&e.objectIdField&&"capabilities"in e&&"getField"in e&&e.getField)}function h(e){return y(e)&&"queryAttachments"in e}function v(e){return null!=e&&"object"==typeof e&&"type"in e&&("feature"===e.type||"subtype-sublayer"===e.type)}function b(e){if(!h(e))return!1;const t=e?.effectiveCapabilities??e?.capabilities;return!(!t?.data?.supportsAttachment||!t.operations.supportsQueryAttachments)}async function g(e,i,n){const r=new Set;let a=!1;for(const t of n){if("attachment"===t.input?.type&&("any"===t.input.attachmentAssociationType||"exactOrNone"===t.input.attachmentAssociationType)){a=!0;break}if(o(t.attachmentKeyword)){a=!0;break}r.add(t.attachmentKeyword)}const s=r.size&&!a?Array.from(r):void 0,l=new t({objectIds:[i],where:"1=1",returnMetadata:!0,keywords:s});e.capabilities?.query?.supportsCacheHint&&(l.cacheHint=!0);return(await e.queryAttachments(l))[i]??[]}function w(e,t,i,n){const r=e.get(t)?.get(i)??[];if(!n?.length)return r;const o=new Set(n.map(e=>e.toLowerCase()));return r.filter(e=>o.has(e.keywords.toLowerCase()))}export{d as createReactiveGraphic,w as getAttachmentsForKeywords,f as getHiddenFieldsValidationErrorMessage,p as getVisibleFieldInputValidationErrorMessage,v as isAssociationsLayerUnion,y as isAttributeFormSupportedLayer,m as isAttributeFormSupportedLayerUnion,h as isAttributeFormSupportedLayerWithAttachments,c as isElementTemplateWithInputType,b as layerSupportsQueryAttachments,g as queryAttachmentsForElements};
2
+ import{substitute as e}from"../../intl.js";import t from"../../rest/support/AttachmentQuery.js";import{ReactiveGraphic as i}from"./ReactiveGraphic.js";import{isMultipleChoiceFieldInput as n}from"./inputs/support/inputUtils.js";import{getIntlOptionsForField as o}from"../support/dateUtils.js";import{isEmptyValue as r,getRangeErrorMessage as a,shouldUseScientificNotation as s,scientificNumberFormatOptions as l,numberFormatOptions as c}from"../support/forms/formUtils.js";const u=(e,t)=>null!=e&&e.input?.type===t;function d(e){return new i({source:e})}function p(t,i,r,u){const{dataType:d,minLength:p}=t,f=r?.validationErrors;if(!f||!i)return null;if("batch-attribute-form-validation::features-have-different-errors"===i)return f.invalidBatchFormType;if("input-validation-error::cannot-be-empty"===i)return f.cannotBeNull;if("domain-validation-error::value-out-of-range"===i||"numeric-range-validation-error::out-of-range"===i){const{field:i,range:n}=t,r={type:"date",intlOptions:{timeZone:"date"===i.type&&u?u:void 0,...o(i)}},p=a(n,f);return e(p,n,{format:{max:"date"===d?r:null!=n.max&&s(n.max)?l:c,min:"date"===d?r:null!=n.min&&s(n.min)?l:c}})}return"domain-validation-error::invalid-coded-value"===i?f.invalidCodedValue:"type-validation-error::invalid-type"===i?f.invalidType:"length-validation-error::too-short"===i?e(f.tooShort,{min:p}):"multiple-choice-validation-error::too-few-selected-choices"===i&&n(t)?e(f.tooFewSelectedChoices,{min:t.input.minimumChoices}):"multiple-choice-validation-error::too-many-selected-choices"===i&&n(t)?e(f.tooManySelectedChoices,{max:t.input.maximumChoices}):"length-validation-error::too-long"===i?null:"contingent-values-validation-error::contingency-violation-warning"===i||"contingent-values-validation-error::contingency-violation-error"===i?f.valuesIncompatible:null}function f(e,t,i){const n=i?.validationErrors;if(!n)return null;let o=null;for(const r of e.invalidHiddenInputs)switch(r.effectiveVisibilityCode){case"hidden:visibility-expression:all-features":case"hidden:group-visibility-expression:all-features":case"hidden:field-definition":return"single"===t?n.nonVisibleError_changeValues:n.nonVisibleError_checkIndividualFeatures;case"hidden:no-domain-in-common":case"hidden:visibility-expression:some-features":case"hidden:group-visibility-expression:some-features":case"hidden:not-in-all-layers":o=n.nonVisibleError_checkIndividualFeatures;break;case"visible":continue;default:r.effectiveVisibilityCode}return o}function m(e){return null!=e&&"object"==typeof e&&"type"in e&&("feature"===e.type||"geojson"===e.type||"knowledge-graph-sublayer"===e.type||"oriented-imagery"===e.type||"scene"===e.type||"subtype-sublayer"===e.type)}function y(e){return!!m(e)||!!(null!=e&&"object"==typeof e&&"type"in e&&e.type&&"id"in e&&e.id&&"fields"in e&&e.fields&&"fieldsIndex"in e&&e.fieldsIndex&&"objectIdField"in e&&e.objectIdField&&"capabilities"in e&&"getField"in e&&e.getField)}function h(e){return y(e)&&"queryAttachments"in e}function v(e){return null!=e&&"object"==typeof e&&"type"in e&&("feature"===e.type||"subtype-sublayer"===e.type)}function b(e){if(!h(e))return!1;const t=e?.effectiveCapabilities??e?.capabilities;return!(!t?.data?.supportsAttachment||!t.operations.supportsQueryAttachments)}async function g(e,i,n){const o=new Set;let a=!1;for(const t of n){if("attachment"===t.input?.type&&("any"===t.input.attachmentAssociationType||"exactOrNone"===t.input.attachmentAssociationType)){a=!0;break}if(r(t.attachmentKeyword)){a=!0;break}o.add(t.attachmentKeyword)}const s=o.size&&!a?Array.from(o):void 0,l=new t({objectIds:[i],where:"1=1",returnMetadata:!0,keywords:s});e.capabilities?.query?.supportsCacheHint&&(l.cacheHint=!0);return(await e.queryAttachments(l))[i]??[]}function w(e,t,i,n){const o=e.get(t)?.get(i)??[];if(!n?.length)return o;const r=new Set(n.map(e=>e.toLowerCase()));return o.filter(e=>r.has(e.keywords.toLowerCase()))}export{d as createReactiveGraphic,w as getAttachmentsForKeywords,f as getHiddenFieldsValidationErrorMessage,p as getVisibleFieldInputValidationErrorMessage,v as isAssociationsLayerUnion,y as isAttributeFormSupportedLayer,m as isAttributeFormSupportedLayerUnion,h as isAttributeFormSupportedLayerWithAttachments,u as isElementTemplateWithInputType,b as layerSupportsQueryAttachments,g as queryAttachmentsForElements};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- const t="esri-batch-attribute-form",e=`${t}__group`,a=`${t}__input`,n=`${t}__attachment-element`,i=`${t}__relationship-element-input`,l=`${t}__multiple-choice-input`,m={base:t,form:`${t}__form`,formHeader:`${t}__form-header`,noticeError:`${t}__notice-error`,label:`${t}__label`,labelTextContent:`${t}__label-text-content`,fieldInput:`${a}`,inputRadio:`${a}--radio`,placeholderRadio:`${a}--radio-placeholder`,inputRadioGroup:`${a}--radio-group`,inputRadioLabel:`${a}--radio-label`,inputDisabled:`${a}--disabled`,inputSwitch:`${a}--switch`,dateInputContainer:`${`${t}__date`}-input-container`,textElementInput:`${t}__text-element-input`,attachmentElementInput:`${n}-input`,attachmentElementLabel:`${n}-label`,attachmentElementList:`${n}-list`,attachmentElementListItem:`${n}-list-item`,attachmentElementListItemStart:`${n}-list-item-start`,attachmentElementListItemStagedIndicator:`${n}-list-item-staged-indicator`,attachmentElementListItemThumb:`${n}-list-item-thumb`,attachmentElementListItemIcon:`${n}-list-item-icon`,attachmentElementEmptyState:`${n}-empty-state`,attachmentElementAddActions:`${n}-add-actions`,attachmentElementEmptyAction:`${n}-empty-action`,attachmentElementAllPanel:`${n}-all-panel`,attachmentElementAddPanel:`${n}-add-panel`,attachmentElementFileInput:`${n}-file-input`,attachmentElementAddDropzone:`${n}-add-dropzone`,attachmentElementAddDropzoneIcon:`${n}-add-dropzone-icon`,attachmentElementAddDropzoneHeading:`${n}-add-dropzone-heading`,attachmentElementAddDropzoneDetail:`${n}-add-dropzone-detail`,attachmentElementCaptureNotice:`${n}-capture-notice`,attachmentElementDetail:`${n}-detail`,attachmentElementDetailPreview:`${n}-detail-preview`,attachmentElementDetailPreviewImage:`${n}-detail-preview-image`,attachmentElementDetailPreviewIcon:`${n}-detail-preview-icon`,attachmentElementDetailActions:`${n}-detail-actions`,attachmentElementDetailMetadata:`${n}-detail-metadata`,attachmentElementDetailMetadataGroup:`${n}-detail-metadata-group`,attachmentElementDetailFileNameRow:`${n}-detail-file-name-row`,attachmentElementDetailFileNameInput:`${n}-detail-file-name-input`,attachmentElementDetailMetadataLabel:`${n}-detail-metadata-label`,attachmentElementDetailMetadataValue:`${n}-detail-metadata-value`,relationshipElementInput:`${i}`,relationshipElementInputShowingAll:`${i}_showing-all`,relatedRecordsHeader:`${i}_header`,relatedRecordsDescription:`${i}_description`,relatedRecordsList:`${i}_list`,relatedRecordsListObserver:`${i}_list-observer`,relatedRecordsAddButton:`${i}_add-button`,utilityNetworkAssociationsElementInput:`${t}__utility-network-associations-element-input`,centeredButton:`${t}__centered-button`,description:`${t}__description-text`,block:`${t}__block`,group:e,groupSequential:`${e}--sequential`,individualElement:`${e}__individual-element`,multipleChoiceInput:`${l}`,multipleChoiceSelectAll:`${l}__select-all`,multipleChoiceOtherChoice:`${l}__other-choice`,multipleChoiceOtherChoiceWithSelectAll:`${l}__other-choice--with-select-all`};export{m as css};
2
+ const t="esri-batch-attribute-form",e=`${t}__group`,a=`${t}__input`,n=`${t}__attachment-element`,i=`${t}__relationship-element-input`,l=`${t}__multiple-choice-input`,m={base:t,form:`${t}__form`,formHeader:`${t}__form-header`,noticeError:`${t}__notice-error`,label:`${t}__label`,labelTextContent:`${t}__label-text-content`,fieldInput:`${a}`,inputRadio:`${a}--radio`,placeholderRadio:`${a}--radio-placeholder`,inputRadioGroup:`${a}--radio-group`,inputRadioLabel:`${a}--radio-label`,inputDisabled:`${a}--disabled`,inputSwitch:`${a}--switch`,dateInputContainer:`${`${t}__date`}-input-container`,textElementInput:`${t}__text-element-input`,attachmentElementInput:`${n}-input`,attachmentElementLabel:`${n}-label`,attachmentElementList:`${n}-list`,attachmentElementListItem:`${n}-list-item`,attachmentElementListItemStart:`${n}-list-item-start`,attachmentElementListItemStagedIndicator:`${n}-list-item-staged-indicator`,attachmentElementListItemThumb:`${n}-list-item-thumb`,attachmentElementListItemIcon:`${n}-list-item-icon`,attachmentElementEmptyState:`${n}-empty-state`,attachmentElementAddActions:`${n}-add-actions`,attachmentElementEmptyAction:`${n}-empty-action`,attachmentElementEmptyActionHint:`${n}-empty-action-hint`,attachmentElementEmptyActionHintValue:`${n}-empty-action-hint-value`,attachmentElementAllPanel:`${n}-all-panel`,attachmentElementAddPanel:`${n}-add-panel`,attachmentElementFileInput:`${n}-file-input`,attachmentElementAddDropzone:`${n}-add-dropzone`,attachmentElementAddDropzoneIcon:`${n}-add-dropzone-icon`,attachmentElementAddDropzoneHeading:`${n}-add-dropzone-heading`,attachmentElementAddDropzoneDetail:`${n}-add-dropzone-detail`,attachmentElementCaptureNotice:`${n}-capture-notice`,attachmentElementValidationCriteria:`${n}-validation-criteria`,attachmentElementDetail:`${n}-detail`,attachmentElementDetailPreview:`${n}-detail-preview`,attachmentElementDetailPreviewImage:`${n}-detail-preview-image`,attachmentElementDetailPreviewIcon:`${n}-detail-preview-icon`,attachmentElementDetailActions:`${n}-detail-actions`,attachmentElementDetailMetadata:`${n}-detail-metadata`,attachmentElementDetailMetadataGroup:`${n}-detail-metadata-group`,attachmentElementDetailFileNameRow:`${n}-detail-file-name-row`,attachmentElementDetailFileNameInput:`${n}-detail-file-name-input`,attachmentElementDetailMetadataLabel:`${n}-detail-metadata-label`,attachmentElementDetailMetadataValue:`${n}-detail-metadata-value`,relationshipElementInput:`${i}`,relationshipElementInputShowingAll:`${i}_showing-all`,relatedRecordsHeader:`${i}_header`,relatedRecordsDescription:`${i}_description`,relatedRecordsList:`${i}_list`,relatedRecordsListObserver:`${i}_list-observer`,relatedRecordsAddButton:`${i}_add-button`,utilityNetworkAssociationsElementInput:`${t}__utility-network-associations-element-input`,centeredButton:`${t}__centered-button`,description:`${t}__description-text`,block:`${t}__block`,group:e,groupSequential:`${e}--sequential`,individualElement:`${e}__individual-element`,multipleChoiceInput:`${l}`,multipleChoiceSelectAll:`${l}__select-all`,multipleChoiceOtherChoice:`${l}__other-choice`,multipleChoiceOtherChoiceWithSelectAll:`${l}__other-choice--with-select-all`};export{m as css};