@arcgis/core 5.1.0-next.120 → 5.1.0-next.122

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 (617) hide show
  1. package/WebLinkChart.d.ts +1 -1
  2. package/WebMap.d.ts +2 -2
  3. package/WebScene.d.ts +3 -3
  4. package/arcade.d.ts +9 -9
  5. package/arcgisGlobal.d.ts +8 -0
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/04895de94657e7f3d7e1.js +1 -0
  8. package/assets/esri/core/workers/chunks/{d1ac98f48bb6d43d97c8.js → 06858a0e1033e4a95337.js} +2 -2
  9. package/assets/esri/core/workers/chunks/{d35c475f004367e333eb.js → 06df187a116709f69952.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{829a0583b8a228c65379.js → 0b169bb1969f86232a1a.js} +1 -1
  11. package/assets/esri/core/workers/chunks/0ecc1bc1686844cdd60e.js +1 -0
  12. package/assets/esri/core/workers/chunks/0f75c19d8e296a32e329.js +1 -0
  13. package/assets/esri/core/workers/chunks/174cc2e69e5b5a13d880.js +1 -0
  14. package/assets/esri/core/workers/chunks/{163ce1be8bfe20e77f97.js → 184d896fe66340129acd.js} +1 -1
  15. package/assets/esri/core/workers/chunks/18f980465db5a86153d1.js +1 -0
  16. package/assets/esri/core/workers/chunks/1996f0a930abdd97b855.js +1 -0
  17. package/assets/esri/core/workers/chunks/19dcae83be0fc0aced02.js +1 -0
  18. package/assets/esri/core/workers/chunks/1c8436b27a3d3cde5cfc.js +1 -0
  19. package/assets/esri/core/workers/chunks/1cb1f125dccbf8c8cac9.js +1 -0
  20. package/assets/esri/core/workers/chunks/1d7e1bbd321d6f99776c.js +1 -0
  21. package/assets/esri/core/workers/chunks/1f289aa69dd6b6be534a.js +1 -0
  22. package/assets/esri/core/workers/chunks/{da29cf0e64065631a470.js → 24810c36ae09bb4e83dc.js} +1 -1
  23. package/assets/esri/core/workers/chunks/274b82cb183ddd0042f3.js +1 -0
  24. package/assets/esri/core/workers/chunks/{7ed5b669010db58845f8.js → 294f2803aac000c99693.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{093f27e4e4781870b431.js → 297ae764445e6f73a5ea.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{be0eab592db0e651b023.js → 2b814bb51704a5b4fdc2.js} +6 -6
  27. package/assets/esri/core/workers/chunks/2d2895f1fdf44d212a4d.js +1 -0
  28. package/assets/esri/core/workers/chunks/2dbc2fd0f2dde505c465.js +1 -0
  29. package/assets/esri/core/workers/chunks/2dbcdfdf000226bfe746.js +1 -0
  30. package/assets/esri/core/workers/chunks/2e6382d50bf012064eae.js +1 -0
  31. package/assets/esri/core/workers/chunks/30f1909c5ef1835b8507.js +1 -0
  32. package/assets/esri/core/workers/chunks/313773bd9c82d1858929.js +1 -0
  33. package/assets/esri/core/workers/chunks/3172d7fc23787a287191.js +1 -0
  34. package/assets/esri/core/workers/chunks/{1c029b03ed836f393a50.js → 3248001d9dfb9153699e.js} +1 -1
  35. package/assets/esri/core/workers/chunks/3297658ccd8d4b9ce733.js +1 -0
  36. package/assets/esri/core/workers/chunks/{716a4d7e8b908b81870b.js → 32f26757e36704923286.js} +1 -1
  37. package/assets/esri/core/workers/chunks/3529afab0c2444275d91.js +1 -0
  38. package/assets/esri/core/workers/chunks/36dac6ab51d9dbdd091d.js +1 -0
  39. package/assets/esri/core/workers/chunks/{a2159df718a7f2f59271.js → 38a2f34661563c7c29c1.js} +1 -1
  40. package/assets/esri/core/workers/chunks/390fda094fa8695d98cf.js +1 -0
  41. package/assets/esri/core/workers/chunks/39596715e84d0da2f803.js +30 -0
  42. package/assets/esri/core/workers/chunks/{6af77529c977d034d287.js → 3b15933f65f59625a650.js} +1 -1
  43. package/assets/esri/core/workers/chunks/3b3f91a61e3f29af1fb2.js +1 -0
  44. package/assets/esri/core/workers/chunks/{f815106d439ff1f76e51.js → 3b837b512999e6ab24bc.js} +1 -1
  45. package/assets/esri/core/workers/chunks/3d20c86f1fe877bf884b.js +1 -0
  46. package/assets/esri/core/workers/chunks/3e65b4b18760bde8ceee.js +1 -0
  47. package/assets/esri/core/workers/chunks/3ff7aa216cd794d951e8.js +1 -0
  48. package/assets/esri/core/workers/chunks/{8e1865392681d390ab2e.js → 401ee7fa500adad77db1.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{60915a3708a34da1977e.js → 426156137f279d979ddd.js} +1 -1
  50. package/assets/esri/core/workers/chunks/4517630bf869205bab87.js +1 -0
  51. package/assets/esri/core/workers/chunks/{16b90d8f628a412ba4ba.js → 4894997bfa438f66da36.js} +1 -1
  52. package/assets/esri/core/workers/chunks/48f1c3a7c9f16d6896f6.js +1 -0
  53. package/assets/esri/core/workers/chunks/4e293c4006bdc7cc4c08.js +1 -0
  54. package/assets/esri/core/workers/chunks/{e246c3663f2645248f17.js → 4efbe879d06013168f54.js} +28 -30
  55. package/assets/esri/core/workers/chunks/5121768c70f1e03b685c.js +1 -0
  56. package/assets/esri/core/workers/chunks/52f354bf80ee5ab0379a.js +1 -0
  57. package/assets/esri/core/workers/chunks/538537f9bc866d9caa75.js +1 -0
  58. package/assets/esri/core/workers/chunks/53d165b4f30fd64e5d8a.js +1 -0
  59. package/assets/esri/core/workers/chunks/58a7cdebc3d182c15ec6.js +1 -0
  60. package/assets/esri/core/workers/chunks/597aa39cdb5366ef9a74.js +1 -0
  61. package/assets/esri/core/workers/chunks/5bfae465872760e7af6d.js +1 -0
  62. package/assets/esri/core/workers/chunks/{cda99b543a0e1979346c.js → 5cb1b950249d651f3837.js} +1 -1
  63. package/assets/esri/core/workers/chunks/5cb274e5759f7ca0d4ed.js +1 -0
  64. package/assets/esri/core/workers/chunks/5d3ddbf94539cb4f493e.js +1 -0
  65. package/assets/esri/core/workers/chunks/5dd441db1e74dc9b56e9.js +1 -0
  66. package/assets/esri/core/workers/chunks/64114a7d2da162987958.js +1 -0
  67. package/assets/esri/core/workers/chunks/661f7e3f88727dc4801c.js +1 -0
  68. package/assets/esri/core/workers/chunks/6821462e5c1e9c76010a.js +1 -0
  69. package/assets/esri/core/workers/chunks/684d3cb4fb233180b2d0.js +1 -0
  70. package/assets/esri/core/workers/chunks/686c51fd2144e132783e.js +1 -0
  71. package/assets/esri/core/workers/chunks/{49f6c9e9980b8c624fd7.js → 688fe64be39e9ac35ffd.js} +1 -1
  72. package/assets/esri/core/workers/chunks/69e98de578f467a35054.js +1 -0
  73. package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +1 -0
  74. package/assets/esri/core/workers/chunks/6aabde21b0b376d95888.js +1 -0
  75. package/assets/esri/core/workers/chunks/6d616b66fb32904b55a1.js +1 -0
  76. package/assets/esri/core/workers/chunks/{bcb021a167580bb1619f.js → 6ef3b8d67b498d655a99.js} +1 -1
  77. package/assets/esri/core/workers/chunks/6f125b4ed06c0022dee6.js +1 -0
  78. package/assets/esri/core/workers/chunks/6f4825c3ef1fe202ab82.js +1 -0
  79. package/assets/esri/core/workers/chunks/6f5d61f734ec40dafabb.js +1 -0
  80. package/assets/esri/core/workers/chunks/72d67cc3a382e83bf1a2.js +1 -0
  81. package/assets/esri/core/workers/chunks/77a4f6f224d7ca4b69f4.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/{c83fea0d0ebd0d8e43fd.js → 7cb1afb32ec043e23ec2.js} +1 -1
  85. package/assets/esri/core/workers/chunks/7cee81c5aa1e6b7d2452.js +1 -0
  86. package/assets/esri/core/workers/chunks/7e89cb9ff615742e0894.js +1 -0
  87. package/assets/esri/core/workers/chunks/{8c5a41ae68775bac3446.js → 7f5ecb67fa459f92d067.js} +1 -1
  88. package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +1 -0
  89. package/assets/esri/core/workers/chunks/{8477b5fdd99c6ac5c27b.js → 851705cf276eae8d4d37.js} +1 -1
  90. package/assets/esri/core/workers/chunks/{1f55d60d3adc31283296.js → 8b0a01ebc86ab226f01f.js} +1 -1
  91. package/assets/esri/core/workers/chunks/{452c01cecbbd1e370098.js → 8f93e6fc11a158d4f1ee.js} +1 -1
  92. package/assets/esri/core/workers/chunks/93bd56396b8cd020f965.js +1 -0
  93. package/assets/esri/core/workers/chunks/{359d3acb3953e64e5a78.js → 93ceb74ac88ef460fe5f.js} +1 -1
  94. package/assets/esri/core/workers/chunks/{4e676e888a935c507d90.js → 93d4bda22bde33fafa57.js} +1 -1
  95. package/assets/esri/core/workers/chunks/957f7b8de4aecb6f644e.js +1 -0
  96. package/assets/esri/core/workers/chunks/96e46424c3fb1dd9ce3b.js +1 -0
  97. package/assets/esri/core/workers/chunks/976ab2be6c244768c08a.js +1 -0
  98. package/assets/esri/core/workers/chunks/985fceacd6ec137bd490.js +1 -0
  99. package/assets/esri/core/workers/chunks/{e785f76c1a75cb1d1e1f.js → 99101789035f1787c630.js} +1 -1
  100. package/assets/esri/core/workers/chunks/99e5296192ab98fd0d99.js +1 -0
  101. package/assets/esri/core/workers/chunks/9c251f762df7a430cc0c.js +1 -0
  102. package/assets/esri/core/workers/chunks/9d5f7573bfe3b051daf1.js +1 -0
  103. package/assets/esri/core/workers/chunks/a043e8c49ac8e4d1d0a6.js +1 -0
  104. package/assets/esri/core/workers/chunks/a0c00c6fe60db49b3ab9.js +1 -0
  105. package/assets/esri/core/workers/chunks/a2247f4c3116efb16c4f.js +1 -0
  106. package/assets/esri/core/workers/chunks/a4245bd4e67a428fd835.js +1 -0
  107. package/assets/esri/core/workers/chunks/a442534ac0956a68b769.js +1 -0
  108. package/assets/esri/core/workers/chunks/a4e9a17dacbb52444d75.js +1 -0
  109. package/assets/esri/core/workers/chunks/{8bdca6f06c8b5fedd917.js → a5abba59e738c3240c22.js} +1 -1
  110. package/assets/esri/core/workers/chunks/a8ec5b85c2fa6fb4f391.js +1 -0
  111. package/assets/esri/core/workers/chunks/aa118c1bcd922b8ac328.js +1 -0
  112. package/assets/esri/core/workers/chunks/aae0049c2c3e15a813e8.js +1 -0
  113. package/assets/esri/core/workers/chunks/ab62724b80b3c478a597.js +1 -0
  114. package/assets/esri/core/workers/chunks/ac33b10fe65f9e9e824f.js +1 -0
  115. package/assets/esri/core/workers/chunks/adc32f6b45ea3026fc34.js +1 -0
  116. package/assets/esri/core/workers/chunks/aef0ac417b282a90d214.js +640 -0
  117. package/assets/esri/core/workers/chunks/{7601278ebced0c0c31cf.js → af75e91b88e747aa76ac.js} +1 -1
  118. package/assets/esri/core/workers/chunks/b22a1c98271c2e4d8808.js +1 -0
  119. package/assets/esri/core/workers/chunks/b44cf254585210578eab.js +1 -0
  120. package/assets/esri/core/workers/chunks/{2bcd4d395bfe6a19ccc8.js → b606af35a4fb893b762c.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{9f4681713f03365a2a53.js → b666027b9022fa346a79.js} +1 -1
  122. package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +1 -0
  123. package/assets/esri/core/workers/chunks/b9bdb1f05e904c3655e4.js +1 -0
  124. package/assets/esri/core/workers/chunks/bb867fec068e26bb0c8e.js +1 -0
  125. package/assets/esri/core/workers/chunks/c2a65de34f6a6c89c652.js +1 -0
  126. package/assets/esri/core/workers/chunks/c357c0a08b99c1e7f290.js +1 -0
  127. package/assets/esri/core/workers/chunks/{4a23b27bfbcfa08fd9a7.js → c3cf9e6e91f71c9cc5f3.js} +1 -1
  128. package/assets/esri/core/workers/chunks/c3ff2ff0a86a9143d7a5.js +1 -0
  129. package/assets/esri/core/workers/chunks/c4fc85281ca83af7abaf.js +1 -0
  130. package/assets/esri/core/workers/chunks/c60b4f2dd5fccdf362a7.js +1 -0
  131. package/assets/esri/core/workers/chunks/c6d0b4875b6b8d6bc25a.js +1 -0
  132. package/assets/esri/core/workers/chunks/c80fc1b3048e8d58a1f8.js +1 -0
  133. package/assets/esri/core/workers/chunks/c911f0b5bdd43b66b731.js +1 -0
  134. package/assets/esri/core/workers/chunks/c983e5ce0ff952b65d7f.js +1 -0
  135. package/assets/esri/core/workers/chunks/c9a4601073e1a3eee9d0.js +1 -0
  136. package/assets/esri/core/workers/chunks/ccffaba50674adba7a0f.js +1 -0
  137. package/assets/esri/core/workers/chunks/{24646a1176ce34039155.js → cdf6ad970dc1893dac58.js} +1 -1
  138. package/assets/esri/core/workers/chunks/{fbb23db01f3cf629d32e.js → d05088622cf232fe5dc3.js} +1 -1
  139. package/assets/esri/core/workers/chunks/d13e003c9293cb7e2852.js +1 -0
  140. package/assets/esri/core/workers/chunks/d24e027bb8b2c09f25c8.js +1 -0
  141. package/assets/esri/core/workers/chunks/d2df8c328054dc6cb7b7.js +1 -0
  142. package/assets/esri/core/workers/chunks/d52864823067e57a719a.js +1 -0
  143. package/assets/esri/core/workers/chunks/d5c35a75fd4c41def420.js +1 -0
  144. package/assets/esri/core/workers/chunks/d7be278aed1fb37ad5ec.js +1 -0
  145. package/assets/esri/core/workers/chunks/d9d0a07245ee5117d2a0.js +1 -0
  146. package/assets/esri/core/workers/chunks/da1e8b338ab9fe9e0a8e.js +1 -0
  147. package/assets/esri/core/workers/chunks/dd920a6f6422fa213eba.js +1 -0
  148. package/assets/esri/core/workers/chunks/e1505ec80b068011bdc5.js +1 -0
  149. package/assets/esri/core/workers/chunks/e16b7ff4bf24fb99f7ea.js +1 -0
  150. package/assets/esri/core/workers/chunks/e1bf87077541da6853c6.js +1 -0
  151. package/assets/esri/core/workers/chunks/e279bcbe4f10e87bde6c.js +1 -0
  152. package/assets/esri/core/workers/chunks/e33d2ede6c9f1527d51b.js +1 -0
  153. package/assets/esri/core/workers/chunks/e4406baf206b9e4c7e4f.js +1 -0
  154. package/assets/esri/core/workers/chunks/e499252cb52f7aed49a0.js +1 -0
  155. package/assets/esri/core/workers/chunks/{e178cd0e9178d6716410.js → e5837e5ac6ef761f26a2.js} +1 -1
  156. package/assets/esri/core/workers/chunks/{50dc9893e13396f5e35d.js → e69d03917e28c8213b27.js} +2 -2
  157. package/assets/esri/core/workers/chunks/e6a7272b59a4c2e34dca.js +1 -0
  158. package/assets/esri/core/workers/chunks/e912b515704e20313e53.js +1 -0
  159. package/assets/esri/core/workers/chunks/eabeaab5c4810f999a4d.js +1 -0
  160. package/assets/esri/core/workers/chunks/ec1841e6e498d54012eb.js +1 -0
  161. package/assets/esri/core/workers/chunks/ec723f8777b935c5e81a.js +1 -0
  162. package/assets/esri/core/workers/chunks/ed3d16a5b4084ef61f8a.js +1 -0
  163. package/assets/esri/core/workers/chunks/ef46ef4f0ee9f2aeaa4a.js +1 -0
  164. package/assets/esri/core/workers/chunks/efb4aa5886730ea377bd.js +1 -0
  165. package/assets/esri/core/workers/chunks/f2a268c69f2a5566381b.js +1 -0
  166. package/assets/esri/core/workers/chunks/f590db684d88e72bd79b.js +1 -0
  167. package/assets/esri/core/workers/chunks/{fea74a2bbb67d381e837.js → f622ae3887c85535e8ab.js} +1 -1
  168. package/assets/esri/core/workers/chunks/f69df22a5c64389ebe28.js +1 -0
  169. package/assets/esri/core/workers/chunks/{f60292d97bcdbf19165b.js → f6d047358d14328f3622.js} +1 -1
  170. package/assets/esri/core/workers/chunks/f7fca88d120d45bb782a.js +1 -0
  171. package/assets/esri/core/workers/chunks/f819854098d63fe4ccdb.js +1 -0
  172. package/assets/esri/core/workers/chunks/f8f3579d0c1b65762902.js +1 -0
  173. package/assets/esri/core/workers/chunks/f98118127469449ca145.js +1 -0
  174. package/assets/esri/core/workers/chunks/{5abe34bb0110694f7b42.js → faad127dc07e54e7f6d1.js} +1 -1
  175. package/assets/esri/core/workers/chunks/fb6605be0c5e36785543.js +1 -0
  176. package/assets/esri/core/workers/chunks/fbe7dae0b4bf2d172487.js +1 -0
  177. package/assets/esri/core/workers/chunks/fd70a25ffdf2cc6c5be2.js +1 -0
  178. package/assets/esri/core/workers/chunks/{319ff04282dc8ae38b56.js → fde12f5b7989c0fac67b.js} +2 -2
  179. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  180. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  181. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  182. package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
  183. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +38 -8
  184. package/assets/esri/themes/base/widgets/_DatePicker.scss +1 -1
  185. package/assets/esri/themes/dark/main.css +1 -1
  186. package/assets/esri/themes/light/main.css +1 -1
  187. package/assets/esri/themes/light/view.css +1 -1
  188. package/chunks/GlowComposition.glsl.js +2 -2
  189. package/chunks/RealisticTree.glsl.js +17 -15
  190. package/chunks/bundle2.js +1 -1
  191. package/chunks/lyr3DMain.js +1 -1
  192. package/chunks/lyr3DWorker.js +1 -1
  193. package/chunks/vxlLayer.js +1 -1
  194. package/config.d.ts +2 -2
  195. package/config.js +1 -1
  196. package/core/Collection.d.ts +25 -25
  197. package/core/Error.d.ts +1 -1
  198. package/core/JSONSupport.d.ts +1 -1
  199. package/core/has.js +1 -1
  200. package/core/promiseUtils.d.ts +3 -3
  201. package/core/reactiveUtils.d.ts +4 -4
  202. package/core/sql/WhereClause.d.ts +1 -1
  203. package/core/sql.d.ts +1 -1
  204. package/core/timeUtils.d.ts +1 -1
  205. package/core/workers/Connection.d.ts +9 -9
  206. package/core/workers.d.ts +1 -1
  207. package/editing/types.d.ts +3 -3
  208. package/geometry/Extent.d.ts +0 -13
  209. package/geometry/Geometry.d.ts +10 -8
  210. package/geometry/Mesh.d.ts +9 -2
  211. package/geometry/Mesh.js +1 -1
  212. package/geometry/Point.d.ts +15 -71
  213. package/geometry/support/MeshMaterial.d.ts +5 -5
  214. package/geometry/support/MeshTexture.d.ts +19 -19
  215. package/geometry/support/jsonUtils.d.ts +1 -1
  216. package/geometry/support/meshUtils.d.ts +130 -2
  217. package/geometry/support/meshUtils.js +1 -1
  218. package/graphic/AnnotationGraphicOrigin.d.ts +34 -0
  219. package/graphic/AnnotationGraphicOrigin.js +2 -0
  220. package/graphic/DimensionFeatureGraphicOrigin.d.ts +34 -0
  221. package/graphic/DimensionFeatureGraphicOrigin.js +2 -0
  222. package/identity/Credential.d.ts +1 -1
  223. package/identity/IdentityManager.d.ts +1 -1
  224. package/identity/IdentityManagerBase.js +1 -1
  225. package/identity/OAuthInfo.d.ts +1 -1
  226. package/identity/ServerInfo.d.ts +2 -2
  227. package/interfaces.d.ts +23 -0
  228. package/intl/number.d.ts +3 -3
  229. package/intl/substitute.d.ts +2 -2
  230. package/intl.d.ts +28 -28
  231. package/kernel.js +1 -1
  232. package/layers/AnnotationLayer.d.ts +263 -32
  233. package/layers/AnnotationLayer.js +1 -1
  234. package/layers/BaseDynamicLayer.d.ts +5 -5
  235. package/layers/BaseTileLayer.d.ts +4 -4
  236. package/layers/BuildingSceneLayer.d.ts +1 -1
  237. package/layers/CSVLayer.d.ts +1 -1
  238. package/layers/DimensionFeatureLayer.d.ts +263 -32
  239. package/layers/DimensionFeatureLayer.js +1 -1
  240. package/layers/FeatureLayer.d.ts +8 -7
  241. package/layers/FeatureLayer.js +1 -1
  242. package/layers/GeoJSONLayer.d.ts +8 -8
  243. package/layers/MapImageLayer.d.ts +5 -5
  244. package/layers/MediaLayer.d.ts +2 -2
  245. package/layers/OrientedImageryLayer.d.ts +1 -1
  246. package/layers/ParquetLayer.d.ts +22 -2
  247. package/layers/SceneLayer.d.ts +5 -3
  248. package/layers/SceneLayer.js +1 -1
  249. package/layers/StreamLayer.d.ts +1 -1
  250. package/layers/SubtypeGroupLayer.d.ts +1 -1
  251. package/layers/TileLayer.d.ts +2 -2
  252. package/layers/VideoLayer.d.ts +8 -2
  253. package/layers/VideoLayer.js +1 -1
  254. package/layers/VoxelLayer.d.ts +4 -4
  255. package/layers/WCSLayer.d.ts +2 -2
  256. package/layers/WebTileLayer.d.ts +1 -1
  257. package/layers/catalog/CatalogFootprintLayer.d.ts +40 -10
  258. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  259. package/layers/graphics/sources/parquet/FileProvider.js +1 -1
  260. package/layers/graphics/sources/parquet/ParquetFileInfo.js +2 -0
  261. package/layers/graphics/sources/parquet/ParquetFileStatistics.js +2 -0
  262. package/layers/graphics/sources/parquet/PortalParquetFileProvider.js +1 -1
  263. package/layers/graphics/sources/parquet/PortalParquetLayerFileProvider.js +1 -1
  264. package/layers/graphics/sources/parquet/UrlsFileProvider.js +1 -1
  265. package/layers/graphics/sources/parquet/createFileProvider.js +1 -1
  266. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  267. package/layers/mixins/BlendLayer.d.ts +1 -1
  268. package/layers/mixins/DataSeriesLayer.d.ts +161 -0
  269. package/layers/mixins/DataSeriesLayer.js +2 -0
  270. package/layers/mixins/FeatureLayerBase.d.ts +43 -19
  271. package/layers/mixins/TemporalLayer.d.ts +4 -2
  272. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  273. package/layers/support/AnnotationSublayer.d.ts +44 -0
  274. package/layers/support/AnnotationSublayer.js +2 -0
  275. package/layers/support/DateTimeFieldFormat.d.ts +10 -10
  276. package/layers/support/FeatureEffect.d.ts +22 -22
  277. package/layers/support/Field.d.ts +2 -2
  278. package/layers/support/GeometryEncodingLocation.d.ts +1 -1
  279. package/layers/support/GeometryEncodingWkb.d.ts +3 -2
  280. package/layers/support/ImageElement.d.ts +1 -1
  281. package/layers/support/NumberFieldFormat.d.ts +5 -5
  282. package/layers/support/ParquetFilesData.d.ts +13 -3
  283. package/layers/support/ParquetPortalItemData.d.ts +12 -1
  284. package/layers/support/StreamConnection.d.ts +1 -1
  285. package/layers/support/Sublayer.d.ts +2 -2
  286. package/layers/support/TimeSeriesFieldTimeMapping.d.ts +30 -0
  287. package/layers/support/TimeSeriesFieldTimeMapping.js +2 -0
  288. package/layers/support/TimeSeriesInfo.d.ts +149 -0
  289. package/layers/support/TimeSeriesInfo.js +2 -0
  290. package/layers/support/VideoElement.d.ts +1 -1
  291. package/layers/support/commonProperties.js +1 -1
  292. package/layers/support/dataSeriesUtils.d.ts +18 -0
  293. package/layers/support/dataSeriesUtils.js +2 -0
  294. package/layers/support/featureLayerUtils.js +1 -1
  295. package/layers/support/kmlUtils.js +1 -1
  296. package/layers/support/layerUtils.js +1 -1
  297. package/layers/support/parquetUtils.js +1 -1
  298. package/layers/support/tiles3DUtils.js +1 -1
  299. package/layers/support/timeSeriesUtils.d.ts +27 -0
  300. package/layers/support/timeSeriesUtils.js +2 -0
  301. package/layers/types.d.ts +1 -1
  302. package/layers/video/types.d.ts +61 -1
  303. package/libs/parquet/parquet.js +1 -1
  304. package/linkChart/ChronologicalLayoutSettings.d.ts +1 -1
  305. package/networks/CircuitManager.d.ts +1 -1
  306. package/networks/Network.d.ts +1 -1
  307. package/networks/UnitIdentifierManager.d.ts +1 -1
  308. package/networks/support/NamedTraceConfiguration.d.ts +1 -1
  309. package/networks/support/TraceConfiguration.d.ts +2 -2
  310. package/networks/support/UNTraceConfiguration.d.ts +3 -3
  311. package/networks/support/jsonTypes.d.ts +7 -1
  312. package/networks/support/utils.js +1 -1
  313. package/package.json +2 -2
  314. package/popup/content/CustomContent.d.ts +1 -1
  315. package/portal/Portal.d.ts +2 -2
  316. package/portal/jsonTypes.d.ts +2 -2
  317. package/renderers/support/AuthoringInfo.d.ts +14 -1
  318. package/renderers/support/AuthoringInfo.js +1 -1
  319. package/renderers/support/AuthoringInfoVisualVariable.d.ts +14 -1
  320. package/renderers/support/AuthoringInfoVisualVariable.js +1 -1
  321. package/renderers/support/jsonUtils.d.ts +1 -1
  322. package/renderers/support/utils.d.ts +1 -1
  323. package/renderers/visualVariables/RotationVariable.d.ts +16 -1
  324. package/renderers/visualVariables/RotationVariable.js +1 -1
  325. package/request/types.d.ts +41 -43
  326. package/rest/geometryService.d.ts +1 -1
  327. package/rest/knowledgeGraph/GraphApplyEdits.d.ts +1 -1
  328. package/rest/knowledgeGraph/GraphQueryStreamingResult.d.ts +2 -2
  329. package/rest/knowledgeGraphService.d.ts +13 -13
  330. package/rest/layerSources/DynamicDataLayer.d.ts +1 -1
  331. package/rest/print.d.ts +1 -1
  332. package/rest/support/ClosestFacilityParameters.d.ts +6 -6
  333. package/rest/support/LastMileDeliveryParameters.d.ts +4 -4
  334. package/rest/support/LocationToAddressParameters.d.ts +1 -1
  335. package/rest/support/PrintTemplate.d.ts +5 -5
  336. package/rest/support/Query.d.ts +2 -2
  337. package/rest/support/RouteParameters.d.ts +5 -5
  338. package/rest/support/ServiceAreaParameters.d.ts +6 -6
  339. package/rest/support/meshFeatureSet.js +1 -1
  340. package/smartMapping/renderers/color.d.ts +40 -0
  341. package/smartMapping/renderers/color.js +1 -1
  342. package/smartMapping/renderers/opacity.d.ts +8 -0
  343. package/smartMapping/renderers/opacity.js +1 -1
  344. package/smartMapping/renderers/size.d.ts +38 -0
  345. package/smartMapping/renderers/size.js +1 -1
  346. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  347. package/smartMapping/renderers/support/timeSeriesUtils.js +2 -0
  348. package/smartMapping/renderers/type.d.ts +20 -1
  349. package/smartMapping/renderers/type.js +1 -1
  350. package/smartMapping/renderers/univariateColorSize.d.ts +19 -0
  351. package/smartMapping/renderers/univariateColorSize.js +1 -1
  352. package/support/revision.js +1 -1
  353. package/support/tests/setupServiceMocksMesh.js +1 -1
  354. package/support/timeUtils.d.ts +3 -3
  355. package/symbols/Font.d.ts +7 -7
  356. package/symbols/WebStyleSymbol.d.ts +11 -11
  357. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  358. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  359. package/symbols/support/Symbol3DEmissive.d.ts +8 -2
  360. package/symbols/support/jsonUtils.d.ts +1 -1
  361. package/time/TimeExtent.d.ts +2 -2
  362. package/versionManagement/VersionManagementService.d.ts +8 -8
  363. package/versionManagement/VersionManager.d.ts +13 -3
  364. package/versionManagement/VersioningState.d.ts +4 -4
  365. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
  366. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
  367. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  368. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ComplexOutlineFillShader.js +1 -1
  369. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/HeatmapAccumulateShader.js +1 -1
  370. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
  371. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
  372. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  373. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  374. package/views/2d/layers/BaseLayerView2D.d.ts +1 -1
  375. package/views/2d/layers/BaseLayerViewGL2D.d.ts +3 -3
  376. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  377. package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
  378. package/views/2d/layers/GraphicsLayerView2D.js +1 -1
  379. package/views/2d/layers/ImageryLayerView2D.js +1 -1
  380. package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
  381. package/views/2d/layers/KMLLayerView2D.js +1 -1
  382. package/views/2d/layers/MapNotesLayerView2D.js +1 -1
  383. package/views/2d/layers/MediaLayerView2D.js +1 -1
  384. package/views/2d/layers/RouteLayerView2D.js +1 -1
  385. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +1 -1
  386. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  387. package/views/2d/layers/features/sources/strategies/ParquetSnapshotLoadStrategy.js +1 -1
  388. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  389. package/views/2d/layers/graphics/GraphicStore.js +1 -1
  390. package/views/2d/support/hitTestUtils.js +1 -1
  391. package/views/3d/glTF/internal/resourceUtils.js +1 -1
  392. package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
  393. package/views/3d/layers/FlowSubView3D.js +1 -1
  394. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  395. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  396. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  397. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  398. package/views/3d/terrain/OverlayManager.js +1 -1
  399. package/views/3d/webgl/RenderNode.d.ts +32 -11
  400. package/views/3d/webgl-engine/effects/glow/Glow.js +1 -1
  401. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  402. package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
  403. package/views/3d/webgl-engine/shaders/ToneMapping.glsl.js +6 -10
  404. package/views/BreakpointsOwner.d.ts +1 -1
  405. package/views/DOMContainer.d.ts +6 -6
  406. package/views/Magnifier.d.ts +1 -1
  407. package/views/MapView.d.ts +1 -1
  408. package/views/SceneView.d.ts +2 -2
  409. package/views/Viewport2DMixin.d.ts +1 -1
  410. package/views/input/gamepad/GamepadInputDevice.d.ts +1 -1
  411. package/views/input/types.d.ts +15 -15
  412. package/views/layers/FeatureLikeLayerView.d.ts +25 -1
  413. package/views/layers/FeatureLikeLayerView.js +1 -1
  414. package/views/navigation/Navigation.d.ts +1 -1
  415. package/views/support/WebAssemblyRequirements.js +1 -1
  416. package/views/types.d.ts +5 -5
  417. package/webdoc/support/webdocSaveUtils.js +1 -1
  418. package/webscene/Glow.d.ts +0 -4
  419. package/widgets/BasemapGallery.d.ts +1 -1
  420. package/widgets/BasemapLayerList.d.ts +1 -1
  421. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +10 -2
  422. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  423. package/widgets/BatchAttributeForm/ReactiveContingentValuesManager.js +1 -1
  424. package/widgets/BatchAttributeForm/attachmentUtils.d.ts +14 -0
  425. package/widgets/BatchAttributeForm/attachmentUtils.js +1 -1
  426. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  427. package/widgets/BatchAttributeForm/css.js +1 -1
  428. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +8 -6
  429. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  430. package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
  431. package/widgets/BatchAttributeForm/inputs/RelationshipElementInput.js +1 -1
  432. package/widgets/BatchAttributeForm/inputs/support/attachmentValidationCriteriaState.d.ts +5 -0
  433. package/widgets/BatchAttributeForm/inputs/support/createBatchFormInputs.js +1 -1
  434. package/widgets/BatchAttributeForm/inputs/types.d.ts +8 -1
  435. package/widgets/BatchAttributeForm/interfaceUtils.js +1 -1
  436. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +1 -1
  437. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  438. package/widgets/BatchAttributeForm.d.ts +10 -2
  439. package/widgets/BatchAttributeForm.js +1 -1
  440. package/widgets/Bookmarks.d.ts +1 -1
  441. package/widgets/BuildingExplorer.d.ts +1 -1
  442. package/widgets/CoordinateConversion/CoordinateConversionViewModel.d.ts +2 -2
  443. package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
  444. package/widgets/CoordinateConversion.d.ts +2 -2
  445. package/widgets/Daylight.d.ts +1 -1
  446. package/widgets/Directions.d.ts +1 -1
  447. package/widgets/Editor.d.ts +1 -1
  448. package/widgets/Feature.d.ts +1 -1
  449. package/widgets/FeatureForm.d.ts +1 -1
  450. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  451. package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
  452. package/widgets/FeatureTable/Grid/Column.js +1 -1
  453. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  454. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  455. package/widgets/FeatureTable/Grid/GroupColumn.js +1 -1
  456. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
  457. package/widgets/FeatureTable.js +1 -1
  458. package/widgets/FeatureTemplates.d.ts +1 -1
  459. package/widgets/FloorFilter.d.ts +1 -1
  460. package/widgets/Fullscreen/FullscreenViewModel.d.ts +3 -3
  461. package/widgets/Fullscreen/FullscreenViewModel.js +1 -1
  462. package/widgets/Fullscreen.d.ts +3 -3
  463. package/widgets/LayerList/ListItemPanel.d.ts +5 -5
  464. package/widgets/Legend.d.ts +1 -1
  465. package/widgets/Locate/LocateViewModel.d.ts +2 -2
  466. package/widgets/Locate.d.ts +1 -1
  467. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  468. package/widgets/PanoramicViewer/utils.js +1 -1
  469. package/widgets/Popup.d.ts +1 -1
  470. package/widgets/Print/PrintViewModel.d.ts +2 -2
  471. package/widgets/Print/PrintViewModel.js +1 -1
  472. package/widgets/Print/TemplateOptions.d.ts +4 -4
  473. package/widgets/Print.d.ts +6 -6
  474. package/widgets/Search/SearchViewModel.d.ts +5 -5
  475. package/widgets/Search.d.ts +4 -4
  476. package/widgets/ShadowCast.d.ts +1 -1
  477. package/widgets/Sketch/SketchViewModel.d.ts +1 -1
  478. package/widgets/Slice.d.ts +1 -1
  479. package/widgets/TableList/ListItemPanel.d.ts +5 -5
  480. package/widgets/Track/TrackViewModel.d.ts +3 -3
  481. package/widgets/Track.d.ts +3 -3
  482. package/widgets/UtilityNetworkTrace.d.ts +1 -1
  483. package/widgets/VersionManagement/VersionManagementViewModel.d.ts +2 -2
  484. package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +7 -1
  485. package/widgets/VideoPlayer/VideoPlayerViewModel.js +1 -1
  486. package/widgets/Weather.d.ts +1 -1
  487. package/widgets/Widget.d.ts +1 -1
  488. package/widgets/support/ContingentValuesManager.js +1 -1
  489. package/widgets/support/forms/formUtils.js +1 -1
  490. package/widgets/support/types.d.ts +1 -1
  491. package/widgets/support/widget.d.ts +6 -6
  492. package/assets/esri/core/workers/chunks/02aaeaa988e9e7d65a7f.js +0 -1
  493. package/assets/esri/core/workers/chunks/08feff1d2f67cbfdc707.js +0 -1
  494. package/assets/esri/core/workers/chunks/0a780a883abfcdf0b900.js +0 -1
  495. package/assets/esri/core/workers/chunks/0fbf9bf52ecb4cd8293b.js +0 -1
  496. package/assets/esri/core/workers/chunks/106fc271e0b9300ef97c.js +0 -1
  497. package/assets/esri/core/workers/chunks/119d352dd586f2bb61ec.js +0 -1
  498. package/assets/esri/core/workers/chunks/130784a27661de6b52a5.js +0 -1
  499. package/assets/esri/core/workers/chunks/145364aa20b4435294c2.js +0 -1
  500. package/assets/esri/core/workers/chunks/14c6419568d8a7a15cd6.js +0 -1
  501. package/assets/esri/core/workers/chunks/153dc2a0b08a0e44a881.js +0 -1
  502. package/assets/esri/core/workers/chunks/1595dc499a06b23b6a96.js +0 -1
  503. package/assets/esri/core/workers/chunks/16713986893adfbc9331.js +0 -1
  504. package/assets/esri/core/workers/chunks/1765042635084f75d2b3.js +0 -1
  505. package/assets/esri/core/workers/chunks/179c9fe4ac83b42e5976.js +0 -1
  506. package/assets/esri/core/workers/chunks/1c1515e020e32e177b54.js +0 -1
  507. package/assets/esri/core/workers/chunks/1c64e10f966e26af6fed.js +0 -1
  508. package/assets/esri/core/workers/chunks/201007cf1a91e2b126fc.js +0 -1
  509. package/assets/esri/core/workers/chunks/20d0adc678f11981059c.js +0 -1
  510. package/assets/esri/core/workers/chunks/227eff8aa4a6f5f03bc2.js +0 -1
  511. package/assets/esri/core/workers/chunks/233ff588798c8a5eedf4.js +0 -1
  512. package/assets/esri/core/workers/chunks/24647e7424798dccdaf5.js +0 -1
  513. package/assets/esri/core/workers/chunks/249616ea2d90d40a8299.js +0 -1
  514. package/assets/esri/core/workers/chunks/24d9e4f1c7b8ff0d2cce.js +0 -1
  515. package/assets/esri/core/workers/chunks/24eaf1349ffe10e616e6.js +0 -1
  516. package/assets/esri/core/workers/chunks/2bd334f9ab89334df713.js +0 -1
  517. package/assets/esri/core/workers/chunks/2c8584ec1c3c9fd5aba2.js +0 -1
  518. package/assets/esri/core/workers/chunks/2d374cc8c54a722a7afe.js +0 -1
  519. package/assets/esri/core/workers/chunks/2e11b4e9d66474a60064.js +0 -1
  520. package/assets/esri/core/workers/chunks/2fa080539d039c92ce08.js +0 -1
  521. package/assets/esri/core/workers/chunks/3109b05fe4fc40d4f25b.js +0 -1
  522. package/assets/esri/core/workers/chunks/31442f25d550ead58fc4.js +0 -1
  523. package/assets/esri/core/workers/chunks/32323b0e0fcecd8f640e.js +0 -1
  524. package/assets/esri/core/workers/chunks/330da3828eefd8d72d3f.js +0 -1
  525. package/assets/esri/core/workers/chunks/388e71e8f2ec41bfa5a9.js +0 -1
  526. package/assets/esri/core/workers/chunks/3a6678ee9990d7e83e15.js +0 -1
  527. package/assets/esri/core/workers/chunks/3aacaa1be5efeac23a37.js +0 -1
  528. package/assets/esri/core/workers/chunks/3b3986276e70297d573b.js +0 -1
  529. package/assets/esri/core/workers/chunks/3b765a8cac9e92f644f2.js +0 -1
  530. package/assets/esri/core/workers/chunks/3bf6d55511cd7722eb93.js +0 -1
  531. package/assets/esri/core/workers/chunks/3e012cd3ca4451f89f59.js +0 -1
  532. package/assets/esri/core/workers/chunks/40910c69307e2d2d3f28.js +0 -1
  533. package/assets/esri/core/workers/chunks/423a9882abd4a6dadf86.js +0 -1
  534. package/assets/esri/core/workers/chunks/428561df7ba6f02e2d80.js +0 -1
  535. package/assets/esri/core/workers/chunks/45323491f9005629c602.js +0 -1
  536. package/assets/esri/core/workers/chunks/45a8d80f1328b0b4b055.js +0 -1
  537. package/assets/esri/core/workers/chunks/46d0a25d33b5b328cfce.js +0 -1
  538. package/assets/esri/core/workers/chunks/46fbd519cc1a37923bfc.js +0 -1
  539. package/assets/esri/core/workers/chunks/47dd2bfecc5c4b5f10f0.js +0 -1
  540. package/assets/esri/core/workers/chunks/4845df00f6ebcce6ea3e.js +0 -1
  541. package/assets/esri/core/workers/chunks/4a9dd9f8aa98882218f3.js +0 -1
  542. package/assets/esri/core/workers/chunks/4bfffdfbe6d467f143a4.js +0 -1
  543. package/assets/esri/core/workers/chunks/4ef53455c8bc6efee80e.js +0 -1
  544. package/assets/esri/core/workers/chunks/518046d2b95a7590a092.js +0 -1
  545. package/assets/esri/core/workers/chunks/51ee6102f5f4840a5b47.js +0 -1
  546. package/assets/esri/core/workers/chunks/54dad475dc806a38c287.js +0 -1
  547. package/assets/esri/core/workers/chunks/552945a73a95cd2a9f54.js +0 -1
  548. package/assets/esri/core/workers/chunks/58155f24f8ed6aca7a21.js +0 -1
  549. package/assets/esri/core/workers/chunks/5838f46d341d2fde42ee.js +0 -1
  550. package/assets/esri/core/workers/chunks/58994b6bfcda5f2ada80.js +0 -1
  551. package/assets/esri/core/workers/chunks/592a599f514de373dead.js +0 -1
  552. package/assets/esri/core/workers/chunks/5aba23584e0b230c75f5.js +0 -1
  553. package/assets/esri/core/workers/chunks/5f9bacee6fbf9ac1bca0.js +0 -1
  554. package/assets/esri/core/workers/chunks/62206d5d497b95fc4caf.js +0 -1
  555. package/assets/esri/core/workers/chunks/624b1bb269744142b835.js +0 -1
  556. package/assets/esri/core/workers/chunks/64daa2a714e59d22bbd4.js +0 -1
  557. package/assets/esri/core/workers/chunks/6637f19b82555738a1d5.js +0 -1
  558. package/assets/esri/core/workers/chunks/6c9933f948efd7923aa1.js +0 -1
  559. package/assets/esri/core/workers/chunks/6db274f6767102a39021.js +0 -1
  560. package/assets/esri/core/workers/chunks/7014e73dfd3c8baa704c.js +0 -1
  561. package/assets/esri/core/workers/chunks/76589434d573111a8fb4.js +0 -1
  562. package/assets/esri/core/workers/chunks/767ea5b455b3823afd09.js +0 -1
  563. package/assets/esri/core/workers/chunks/77769663cd712822d33e.js +0 -1
  564. package/assets/esri/core/workers/chunks/77859a61d059738d057f.js +0 -1
  565. package/assets/esri/core/workers/chunks/7b564226def99fcf79d8.js +0 -1
  566. package/assets/esri/core/workers/chunks/7bbffe07e62897928773.js +0 -1
  567. package/assets/esri/core/workers/chunks/7cadfd7444a2a05cf2fb.js +0 -1
  568. package/assets/esri/core/workers/chunks/823789261ca3338f0fa8.js +0 -1
  569. package/assets/esri/core/workers/chunks/84b0b6e099d949e0fea5.js +0 -1
  570. package/assets/esri/core/workers/chunks/8f94c90fdb0333da2d0f.js +0 -1
  571. package/assets/esri/core/workers/chunks/9a6e62ef984e9c5babc4.js +0 -1
  572. package/assets/esri/core/workers/chunks/9dcfaca1f4fa8c8026ac.js +0 -1
  573. package/assets/esri/core/workers/chunks/9f23a61c60949459c14f.js +0 -30
  574. package/assets/esri/core/workers/chunks/a03c4c0bf138734a002e.js +0 -1
  575. package/assets/esri/core/workers/chunks/a0fa60a24e58f7a47e41.js +0 -1
  576. package/assets/esri/core/workers/chunks/a806ac351ef5da04c250.js +0 -1
  577. package/assets/esri/core/workers/chunks/ab94c9f62462d7a98f6a.js +0 -1
  578. package/assets/esri/core/workers/chunks/abdb05754c50776c3edd.js +0 -1
  579. package/assets/esri/core/workers/chunks/ad488985824fbb830ed6.js +0 -1
  580. package/assets/esri/core/workers/chunks/b08a1255dacf6cfcf139.js +0 -640
  581. package/assets/esri/core/workers/chunks/b098469e0010a6b44df9.js +0 -1
  582. package/assets/esri/core/workers/chunks/b0ac4b0b7aec70cfe6eb.js +0 -1
  583. package/assets/esri/core/workers/chunks/b1f1271434af302938e8.js +0 -1
  584. package/assets/esri/core/workers/chunks/bfbd1ca28ed2f263e58f.js +0 -1
  585. package/assets/esri/core/workers/chunks/c1b6de0d728d25d7905a.js +0 -1
  586. package/assets/esri/core/workers/chunks/c27cb2a83a1d2e004501.js +0 -1
  587. package/assets/esri/core/workers/chunks/c44be4aaba829e6d149d.js +0 -1
  588. package/assets/esri/core/workers/chunks/ca1b0cb14ea9ae1bf2a3.js +0 -1
  589. package/assets/esri/core/workers/chunks/ca4245414d8ecd217f9d.js +0 -1
  590. package/assets/esri/core/workers/chunks/cc479daacd2cf715baa8.js +0 -1
  591. package/assets/esri/core/workers/chunks/ce0e627a5e1cb78adce8.js +0 -1
  592. package/assets/esri/core/workers/chunks/cf7acf5acb6d322fd996.js +0 -1
  593. package/assets/esri/core/workers/chunks/d3af51a6d9014ff46170.js +0 -1
  594. package/assets/esri/core/workers/chunks/d561dc933d8fe1672d85.js +0 -1
  595. package/assets/esri/core/workers/chunks/d81291dac1932350eccd.js +0 -1
  596. package/assets/esri/core/workers/chunks/da3c54e27a808f4fcc18.js +0 -1
  597. package/assets/esri/core/workers/chunks/dc6d50e1097a920ff820.js +0 -1
  598. package/assets/esri/core/workers/chunks/dd58286dde3b20356f84.js +0 -1
  599. package/assets/esri/core/workers/chunks/dfeddb7b17fa9eaae64c.js +0 -1
  600. package/assets/esri/core/workers/chunks/e38836bfcc7a15a2fd1f.js +0 -1
  601. package/assets/esri/core/workers/chunks/e4e0c5a45cf32973d5d5.js +0 -1
  602. package/assets/esri/core/workers/chunks/e638391801ad83fe4a68.js +0 -1
  603. package/assets/esri/core/workers/chunks/e755477dc78e9d6038d4.js +0 -1
  604. package/assets/esri/core/workers/chunks/e7712467db46e1385cf4.js +0 -1
  605. package/assets/esri/core/workers/chunks/e9dcc3e9dbafe9bbed84.js +0 -1
  606. package/assets/esri/core/workers/chunks/ea8f642b1db933d2c26f.js +0 -1
  607. package/assets/esri/core/workers/chunks/eabd4a78221b7e733793.js +0 -1
  608. package/assets/esri/core/workers/chunks/ed2cb60e4f17f46fb78d.js +0 -1
  609. package/assets/esri/core/workers/chunks/edb55329305becdb204f.js +0 -1
  610. package/assets/esri/core/workers/chunks/eedee0af459e6b8a6116.js +0 -1
  611. package/assets/esri/core/workers/chunks/f05932aea4eb267cba4d.js +0 -1
  612. package/assets/esri/core/workers/chunks/f1fb2f12371f4c562079.js +0 -1
  613. package/assets/esri/core/workers/chunks/f3dfe1bd1146a6927407.js +0 -1
  614. package/assets/esri/core/workers/chunks/f79bd469b25099a31274.js +0 -1
  615. package/assets/esri/core/workers/chunks/ff48334528d2554db4fe.js +0 -1
  616. /package/assets/esri/core/workers/chunks/{50dc9893e13396f5e35d.js.LICENSE.txt → e69d03917e28c8213b27.js.LICENSE.txt} +0 -0
  617. /package/assets/esri/core/workers/chunks/{319ff04282dc8ae38b56.js.LICENSE.txt → fde12f5b7989c0fac67b.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../config.js";import r from"../../../request.js";import{isSome as s,remove as a}from"../../../core/arrayUtils.js";import i from"../../../core/Error.js";import has from"../../../core/has.js";import{JSONMap as n}from"../../../core/jsonMap.js";import{Loadable as o}from"../../../core/Loadable.js";import u from"../../../core/Logger.js";import{setDeepValue as l}from"../../../core/object.js";import{debounce as c,after as d,throwIfAbortError as p}from"../../../core/promiseUtils.js";import{watch as y}from"../../../core/reactiveUtils.js";import{join as h}from"../../../core/urlUtils.js";import{generateBracedUUID as m}from"../../../core/uuid.js";import{property as f,subclass as g}from"../../../core/accessorSupport/decorators.js";import q from"../../../geometry/Extent.js";import w from"../../../geometry/SpatialReference.js";import S from"../../../geometry/support/MeshGeoreferencedVertexSpace.js";import{isRelativeVertexSpace as E}from"../../../geometry/support/meshVertexSpaceUtils.js";import{isOriginalExternal as O}from"../../../geometry/support/meshUtils/External.js";import{createFeatureEditResult as b,getFeatureJSON as _,getFeatureIds as R,getAttachmentEditsJSON as A,isProtectedOrPrivateVersionError as F,unpackEditResultData as I,createEditedFeatures as v}from"../applyEditsUtils.js";import{createDrawingInfo as x}from"./support/clientSideDefaults.js";import j from"./support/QueryTask.js";import{isHostedAgolService as T}from"../../support/arcgisLayerUrl.js";import{ensureLayerCredential as M}from"../../support/featureLayerUtils.js";import{getAssetMapTable as N}from"../../support/infoFor3D.js";import{executeQueryJSON as U}from"../../../rest/query/executeQueryJSON.js";import{unapplyEditsZUnitScaling as C}from"../../../rest/query/operations/editsZScale.js";import D from"../../../rest/support/Query.js";import L from"../../../time/TimeExtent.js";import{isSafeToEditVersion as J,isVersionInEditSession as k,isHistoricVersion as Q,currentSessionId as P}from"../../../versionManagement/support/versionManagementUtils.js";const V=new n({originalAndCurrentFeatures:"original-and-current-features",none:"none"}),$=new n({Started:"published",Publishing:"publishing",Stopped:"unavailable"});let B=class extends o{constructor(e){super(e),this.type="feature-layer",this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer","Annotation Layer","Dimension Layer","Annotation SubLayer","Dimension SubLayer"]),this.refresh=c(async()=>{await this.load();const e=this.sourceJSON.editingInfo?.lastEditDate;if(null==e)return{dataChanged:!0,updates:{}};try{await this._fetchService(null)}catch{return{dataChanged:!0,updates:{}}}const t=e!==this.sourceJSON.editingInfo?.lastEditDate;return{dataChanged:t,updates:t?{editingInfo:this.sourceJSON.editingInfo,extent:this.sourceJSON.extent}:null}}),this._ongoingAssetUploads=new Map}load(e){const t=this.layer.sourceJSON,r=this._fetchService(t,{...e}).then(()=>this.layer.setUserPrivileges(this.sourceJSON.serviceItemId,e)).then(()=>this._ensureLatestMetadata(e));return this.addResolvingPromise(r),Promise.resolve(this)}initialize(){this.addHandles([y(()=>{const e=this.layer;return e&&"lastEditsEventDate"in e?e.lastEditsEventDate:null},e=>this._handleLastEditsEventChange(e))])}destroy(){this._removeEditInterceptor()}get queryTask(){const{capabilities:e,parsedUrl:t,gdbVersion:r,spatialReference:s,fieldsIndex:a,uniqueIdFields:i}=this.layer,n="infoFor3D"in this.layer?this.layer.infoFor3D:null,o="dynamicDataSource"in this.layer?this.layer.dynamicDataSource:null,u=has("featurelayer-pbf")&&e?.query.supportsFormatPBF&&null==n,l=u&&e?.query.supportsFormatPBFWithCurves,c=e?.operations?.supportsQueryAttachments??!1,d=e?.query?.relativeTimeBinWindow??0,p=t.path;return new j({dynamicDataSource:o,fieldsIndex:a,gdbVersion:r,infoFor3D:n,pbfSupported:u,pbfSupportedWithCurves:l,queryAttachmentsSupported:c,relativeTimeBinWindow:d,sourceSpatialReference:s,uniqueIdFields:i,url:p})}async addAttachment(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/addAttachment",n=this._getLayerRequestOptions(),o=this._getFormDataForAttachment(t,n.query);try{const e=await r(i,{body:o});return b(e.data.addAttachmentResult)}catch(u){throw this._createAttachmentErrorResult(a,u)}}async updateAttachment(e,t,s){await this.load();const{layer:a}=this;await M(a,"editing");const i=e.attributes[a.objectIdField],n=a.parsedUrl.path+"/"+i+"/updateAttachment",o=this._getLayerRequestOptions({query:{attachmentId:t}}),u=this._getFormDataForAttachment(s,o.query);try{const e=await r(n,{body:u});return b(e.data.updateAttachmentResult)}catch(l){throw this._createAttachmentErrorResult(i,l)}}async applyEdits(e,t){await this.load();const{layer:a}=this;await M(a,"editing");const n="infoFor3D"in a?a.infoFor3D:null,o=null!=n,u=o||(t?.globalIdUsed??!1),l=o?await this._uploadMeshesAndGetAssetMapEditsJSON(e):null,c=e.addFeatures?.map(e=>_(this.layer,e,n))??[],d=(await Promise.all(c)).filter(s),p=e.updateFeatures?.map(e=>_(this.layer,e,n))??[],y=(await Promise.all(p)).filter(s),h=R(this.layer,e.deleteFeatures,u);C(d,y,a.spatialReference);const m=await A(this.layer,e),f=a.capabilities.editing.supportsAsyncApplyEdits&&o,g=t?.gdbVersion||a.gdbVersion,q={gdbVersion:g,rollbackOnFailure:t?.rollbackOnFailureEnabled,useGlobalIds:u,returnEditMoment:t?.returnEditMoment,trueCurveClient:t?.editsRespectTrueCurves,usePreviousEditMoment:t?.usePreviousEditMoment,async:f};await J(this.layer.url,g,!0);const w=k(this.layer.url,g||null);if(await Q(a.url,g,a.historicMoment))throw new i("feature-layer-source:historic-version","Editing a historic version is not allowed");t?.returnServiceEditsOption?(q.edits=JSON.stringify([{id:a.layerId,adds:d.length?d:null,updates:y.length?y:null,deletes:h.length?h:null,attachments:m,assetMaps:l}]),q.returnServiceEditsOption=V.toJSON(t?.returnServiceEditsOption),q.returnServiceEditsInSourceSR=t?.returnServiceEditsInSourceSR):(q.adds=d.length?JSON.stringify(d):null,q.updates=y.length?JSON.stringify(y):null,q.deletes=h.length?u?JSON.stringify(h):h.join(","):null,q.attachments=m&&JSON.stringify(m),q.assetMaps=null!=l?JSON.stringify(l):void 0);const S=this._getLayerRequestOptions({method:"post",query:q});w&&(S.authMode="immediate",S.query.returnEditMoment=!0,S.query.sessionId=P);const E=t?.returnServiceEditsOption?a.url:a.parsedUrl.path;let O;try{O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}catch(b){if(!F(b))throw b;S.authMode="immediate",O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}return this._createEditsResult(O)}async deleteAttachments(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/deleteAttachments";try{return(await r(i,this._getLayerRequestOptions({query:{attachmentIds:t.join(",")},method:"post"}))).data.deleteAttachmentResults.map(b)}catch(n){throw this._createAttachmentErrorResult(a,n)}}fetchRecomputedExtents(e={}){const t=e.signal;return this.load({signal:t}).then(async()=>{const t=this._getLayerRequestOptions({...e,query:{returnUpdates:!0}}),{layerId:s,url:a}=this.layer,{data:i}=await r(`${a}/${s}`,t),{id:n,extent:o,fullExtent:u,timeExtent:l}=i,c=o||u;return{id:n,fullExtent:c&&q.fromJSON(c),timeExtent:l&&L.fromJSON({start:l[0],end:l[1]})}})}async queryAttachments(e,t={}){await this.load();const r=this._getLayerRequestOptions(t);return this.queryTask.executeAttachmentQuery(e,r)}async queryFeatures(e,t){await this.load();const r=await this.queryTask.execute(e,{...t,query:this._createRequestQueryOptions(t)});if(e.outStatistics?.length&&r.features.length){const t=new Map;if(r.features.forEach(r=>{const s=r.attributes;e.outStatistics?.forEach(({outStatisticFieldName:e})=>{if(e){const r=e.toLowerCase();r&&r in s&&e!==r&&(s[e]=s[r],delete s[r],t.set(r,e))}})}),null!=r.fields)for(const e of r.fields){const r=t.get(e.name.toLowerCase());null!=r&&(e.name=r)}}return r}async queryFeaturesJSON(e,t){return await this.load(),this.queryTask.executeJSON(e,{...t,query:this._createRequestQueryOptions(t)})}async queryObjectIds(e,t){return await this.load(),this.queryTask.executeForIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeatureCount(e,t){return await this.load(),this.queryTask.executeForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryExtent(e,t){return await this.load(),this.queryTask.executeForExtent(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeatures(e,t){return await this.load(),this.queryTask.executeRelationshipQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeaturesCount(e,t){return await this.load(),this.queryTask.executeRelationshipQueryForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryPivot(e,t){return await this.load(),this.queryTask.executePivotQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopFeatures(e,t){return await this.load(),this.queryTask.executeTopFeaturesQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryAttributeBins(e,t){return await this.load(),this.queryTask.executeAttributeBinsQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopObjectIds(e,t){return await this.load(),this.queryTask.executeForTopIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopExtents(e,t){return await this.load(),this.queryTask.executeForTopExtents(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopCount(e,t){return await this.load(),this.queryTask.executeForTopCount(e,{...t,query:this._createRequestQueryOptions(t)})}async fetchPublishingStatus(){if(!T(this.layer.url))return"unavailable";const e=h(this.layer.url,"status"),t=await r(e,{query:{f:"json"}});return $.fromJSON(t.data.status)}async uploadAssets(e,t){const{uploadAssets:r}=await import("./support/uploadAssets.js");return r(e,{layer:this.layer,ongoingUploads:this._ongoingAssetUploads},t)}_handleLastEditsEventChange(e){const t=this.layer;if(null==e||!("capabilities"in t)||!("effectiveCapabilities"in t))return;if(!(!t.capabilities?.operations?.supportsEditing&&t.effectiveCapabilities?.operations?.supportsEditing))return;const r=t.url;if(null==r)return;"layerId"in t&&h(r,t.layerId.toString());this._getOrCreateEditInterceptor(r).before=t=>{const r=t.requestOptions.method??"auto";if("auto"===r||"head"===r){const r=t.requestOptions.query??{};r._ts=e.getTime(),t.requestOptions.query=r}}}_getOrCreateEditInterceptor(e){return null==this._editInterceptor&&(this._editInterceptor={urls:e},t.request.internalInterceptors.push(this._editInterceptor)),this._editInterceptor}_removeEditInterceptor(){null!=this._editInterceptor&&(a(t.request.internalInterceptors,this._editInterceptor),this._editInterceptor=null)}async _asyncApplyEdits(e,t){const s=(await r(e,t)).data.statusUrl;for(;;){const e=(await r(s,{query:{f:"json"},responseType:"json"})).data;switch(e.status){case"Completed":return r(e.resultUrl,{query:{f:"json"},responseType:"json"});case"CompletedWithErrors":throw new i("async-applyEdits-failed","asynchronous applyEdits call failed.");case"Failed ImportChanges":case"InProgress":case"Pending":case"ExportAttachments":case"ExportChanges":case"ExportingData":case"ExportingSnapshot":case"ImportAttachments":case"ProvisioningReplica":case"UnRegisteringReplica":break;default:throw new i("async-applyEdits-failed","asynchronous applyEdits call failed (undefined response status)")}await d(G)}}_createRequestQueryOptions(e){const t={...this.layer.customParameters,token:this.layer.apiKey,...e?.query};return this.layer.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t}async _fetchService(e,t){if(!e){const s={};has("featurelayer-advanced-symbols")&&(s.returnAdvancedSymbols=!0),t?.cacheBust&&(s._ts=Date.now());const{data:a}=await r(this.layer.parsedUrl.path,this._getLayerRequestOptions({query:s,signal:t?.signal}));e=a}this.layer.applyPreferredHost(e),this.sourceJSON=await this._patchServiceJSON(e,t?.signal);const s=e.type;if(!this.supportedSourceTypes.has(s))throw new i("feature-layer-source:unsupported-type",`Source type "${s}" is not supported`)}async _patchServiceJSON(e,t){if("Table"!==e.type&&e.geometryType&&!e?.drawingInfo?.renderer&&!e.defaultSymbol){const t=x(e.geometryType).renderer;l("drawingInfo.renderer",t,e)}if("esriGeometryMultiPatch"===e.geometryType&&e.infoFor3D&&(e.geometryType="mesh"),null==e.extent)try{const{data:s}=await r(this.layer.url,this._getLayerRequestOptions({signal:t}));s.spatialReference&&(e.extent={xmin:0,ymin:0,xmax:0,ymax:0,spatialReference:s.spatialReference})}catch(s){p(s)}return e}async _ensureLatestMetadata(e){if(this.layer.userHasUpdateItemPrivileges&&this.sourceJSON.cacheMaxAge>0)return this._fetchService(null,{...e,cacheBust:!0})}async _uploadMeshesAndGetAssetMapEditsJSON(e){const{addAssetFeatures:t}=e;if(!t?.length)return null;if(await this._areAllAssetsAlreadyMapped(t))return null;const r=e.addFeatures.filter(e=>e.geometry);if(t.length!==r.length+e.updateFeatures.length)throw new i("feature-layer-source:unsupported-mesh-edits","Mixing attribute only edits with mesh geometry edits is not currently supported");const s=new Array,a=new Map;for(const i of t){const{geometry:e}=i,{vertexSpace:t}=e;if(E(t))s.push(e);else{const t=e.origin,{convertMeshVertexSpace:r}=await import("../../../geometry/support/meshUtils/convertMeshVertexSpace.js"),n=await r(e,new S({origin:[t.x,t.y,t.z??0]}));a.set(n,e),i.geometry=n,s.push(n)}}await this.uploadAssets(s);for(const[i,n]of a)n.addExternalSources(i.metadata.externalSources.items);return{adds:this._getAssetMapEditsJSON(t),updates:[],deletes:[]}}_getAssetMapEditsJSON(e){const t=new Array,r=this.layer.globalIdField,s=this.layer.parsedUrl;for(const a of e){const e=a.geometry,{metadata:i}=e,n=i.getExternalSourcesOnService(s),o=a.getAttribute(r);if(0===n.length){u.getLogger(this).error(`Skipping feature ${o}. The mesh it is associated with has not been uploaded to the service and cannot be mapped to it.`);continue}const{source:l}=n.find(O)??n[0];for(const r of l.assets)1===r.parts.length?t.push({globalId:m(),parentGlobalId:o,assetName:r.assetName,assetHash:r.parts[0].partHash,flags:[]}):u.getLogger(this).error(`Skipping asset ${r.assetName}. It does not have exactly one part, so we cannot map it to a feature.`)}return t}_createEditsResult(e){const t=e.data,{layerId:r}=this.layer,s=[];let a=null;if(Array.isArray(t))for(const n of t)s.push({id:n.id,editedFeatures:n.editedFeatures}),n.id===r&&(a={addResults:n.addResults??[],updateResults:n.updateResults??[],deleteResults:n.deleteResults??[],attachments:n.attachments,editMoment:n.editMoment});else a=t;const i=I(a);if(s.length>0){i.editedFeatureResults=[];for(const e of s){const{editedFeatures:t}=e,r=t?.spatialReference?new w(t.spatialReference):null;i.editedFeatureResults.push({layerId:e.id,editedFeatures:v(t,r)})}}return i}_createAttachmentErrorResult(e,t){const r=t.details.messages?.[0]||t.message,s=t.details.httpStatus||t.details.messageCode;return{objectId:e,globalId:null,error:new i("feature-layer-source:attachment-failure",r,{code:s})}}_getFormDataForAttachment(e,t){const r=e instanceof FormData?e:e&&e.elements?new FormData(e):null;if(r)for(const s in t){const e=t[s];null!=e&&(r.set?r.set(s,e):r.append(s,e))}return r}_getLayerRequestOptions(e={}){const{layer:t,layer:{parsedUrl:r,gdbVersion:s}}=this;return{...e,query:{gdbVersion:s,layer:"dynamicDataSource"in t&&t.dynamicDataSource?JSON.stringify({source:t.dynamicDataSource}):void 0,...r.query,f:"json",...this._createRequestQueryOptions(e)},responseType:"json"}}async _areAllAssetsAlreadyMapped(e){const{layer:t}=this,{globalIdField:r,parsedUrl:a}=t,i="infoFor3D"in t?t.infoFor3D:null;if(null==i||null==r)return!1;const n=N(i);if(null==n)return!1;const o=h(a.path,`../${n.id}`),u=new Array;for(const s of e){if(!(s.geometry.metadata.getExternalSourcesOnService(a).length>0))return!1;u.push(s)}const l=u.map(e=>e.getAttribute(r)).filter(s);if(0===l.length)return!1;const{assetMapFieldRoles:{parentGlobalId:c,assetHash:d}}=i,p=new D({where:`${c} IN (${l.map(e=>`'${e}'`)})`,outFields:[d,c],returnGeometry:!1}),y=await U(o,p),{features:m}=y;return 0!==m.length&&!u.some(e=>{const t=e.getAttribute(r);if(!t)return!0;const{metadata:s}=e.geometry,i=m.filter(e=>e.getAttribute(c)===t);if(0===i.length)return!0;const n=i.map(e=>e.getAttribute(d));return s.getExternalSourcesOnService(a).flatMap(({source:e})=>e.assets.flatMap(e=>e.parts.map(e=>e.partHash))).some(e=>n.every(t=>e!==t))})}};e([f()],B.prototype,"type",void 0),e([f({constructOnly:!0})],B.prototype,"layer",void 0),e([f({constructOnly:!0})],B.prototype,"supportedSourceTypes",void 0),e([f({readOnly:!0})],B.prototype,"queryTask",null),B=e([g("esri.layers.graphics.sources.FeatureLayerSource")],B);const G=1e3;export{B as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../config.js";import r from"../../../request.js";import{isSome as s,remove as a}from"../../../core/arrayUtils.js";import i from"../../../core/Error.js";import has from"../../../core/has.js";import{JSONMap as n}from"../../../core/jsonMap.js";import{Loadable as o}from"../../../core/Loadable.js";import u from"../../../core/Logger.js";import{setDeepValue as l}from"../../../core/object.js";import{debounce as c,after as d,throwIfAbortError as p}from"../../../core/promiseUtils.js";import{watch as y}from"../../../core/reactiveUtils.js";import{join as h}from"../../../core/urlUtils.js";import{generateBracedUUID as m}from"../../../core/uuid.js";import{property as f,subclass as g}from"../../../core/accessorSupport/decorators.js";import q from"../../../geometry/Extent.js";import w from"../../../geometry/SpatialReference.js";import S from"../../../geometry/support/MeshGeoreferencedVertexSpace.js";import{isRelativeVertexSpace as E}from"../../../geometry/support/meshVertexSpaceUtils.js";import{isOriginalExternal as O}from"../../../geometry/support/meshUtils/External.js";import{createFeatureEditResult as _,getFeatureJSON as b,getFeatureIds as R,getAttachmentEditsJSON as F,isProtectedOrPrivateVersionError as A,unpackEditResultData as I,createEditedFeatures as v}from"../applyEditsUtils.js";import{createDrawingInfo as x}from"./support/clientSideDefaults.js";import j from"./support/QueryTask.js";import{isHostedAgolService as T}from"../../support/arcgisLayerUrl.js";import{ensureLayerCredential as M}from"../../support/featureLayerUtils.js";import{getAssetMapTable as N}from"../../support/infoFor3D.js";import{executeQueryJSON as U}from"../../../rest/query/executeQueryJSON.js";import{unapplyEditsZUnitScaling as C}from"../../../rest/query/operations/editsZScale.js";import D from"../../../rest/support/Query.js";import J from"../../../time/TimeExtent.js";import{isSafeToEditVersion as L,isVersionInEditSession as k,isHistoricVersion as Q,currentSessionId as P}from"../../../versionManagement/support/versionManagementUtils.js";const V=new n({originalAndCurrentFeatures:"original-and-current-features",none:"none"}),$=new n({Started:"published",Publishing:"publishing",Stopped:"unavailable"});let B=class extends o{constructor(e){super(e),this.type="feature-layer",this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer","Annotation Layer","Dimension Layer"]),this.refresh=c(async()=>{await this.load();const e=this.sourceJSON.editingInfo?.lastEditDate;if(null==e)return{dataChanged:!0,updates:{}};try{await this._fetchService(null)}catch{return{dataChanged:!0,updates:{}}}const t=e!==this.sourceJSON.editingInfo?.lastEditDate;return{dataChanged:t,updates:t?{editingInfo:this.sourceJSON.editingInfo,extent:this.sourceJSON.extent}:null}}),this._ongoingAssetUploads=new Map}load(e){const t=this.layer.sourceJSON,r=this._fetchService(t,{...e}).then(()=>this.layer.setUserPrivileges(this.sourceJSON.serviceItemId,e)).then(()=>this._ensureLatestMetadata(e));return this.addResolvingPromise(r),Promise.resolve(this)}initialize(){this.addHandles([y(()=>{const e=this.layer;return e&&"lastEditsEventDate"in e?e.lastEditsEventDate:null},e=>this._handleLastEditsEventChange(e))])}destroy(){this._removeEditInterceptor()}get queryTask(){const{capabilities:e,parsedUrl:t,gdbVersion:r,spatialReference:s,fieldsIndex:a,uniqueIdFields:i}=this.layer,n="infoFor3D"in this.layer?this.layer.infoFor3D:null,o="dynamicDataSource"in this.layer?this.layer.dynamicDataSource:null,u=has("featurelayer-pbf")&&e?.query.supportsFormatPBF&&null==n,l=u&&e?.query.supportsFormatPBFWithCurves,c=e?.operations?.supportsQueryAttachments??!1,d=e?.query?.relativeTimeBinWindow??0,p=t.path;return new j({dynamicDataSource:o,fieldsIndex:a,gdbVersion:r,infoFor3D:n,pbfSupported:u,pbfSupportedWithCurves:l,queryAttachmentsSupported:c,relativeTimeBinWindow:d,sourceSpatialReference:s,uniqueIdFields:i,url:p})}async addAttachment(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/addAttachment",n=this._getLayerRequestOptions(),o=this._getFormDataForAttachment(t,n.query);try{const e=await r(i,{body:o});return _(e.data.addAttachmentResult)}catch(u){throw this._createAttachmentErrorResult(a,u)}}async updateAttachment(e,t,s){await this.load();const{layer:a}=this;await M(a,"editing");const i=e.attributes[a.objectIdField],n=a.parsedUrl.path+"/"+i+"/updateAttachment",o=this._getLayerRequestOptions({query:{attachmentId:t}}),u=this._getFormDataForAttachment(s,o.query);try{const e=await r(n,{body:u});return _(e.data.updateAttachmentResult)}catch(l){throw this._createAttachmentErrorResult(i,l)}}async applyEdits(e,t){await this.load();const{layer:a}=this;await M(a,"editing");const n="infoFor3D"in a?a.infoFor3D:null,o=null!=n,u=o||(t?.globalIdUsed??!1),l=o?await this._uploadMeshesAndGetAssetMapEditsJSON(e):null,c=e.addFeatures?.map(e=>b(this.layer,e,n))??[],d=(await Promise.all(c)).filter(s),p=e.updateFeatures?.map(e=>b(this.layer,e,n))??[],y=(await Promise.all(p)).filter(s),h=R(this.layer,e.deleteFeatures,u);C(d,y,a.spatialReference);const m=await F(this.layer,e),f=a.capabilities.editing.supportsAsyncApplyEdits&&o,g=t?.gdbVersion||a.gdbVersion,q={gdbVersion:g,rollbackOnFailure:t?.rollbackOnFailureEnabled,useGlobalIds:u,returnEditMoment:t?.returnEditMoment,trueCurveClient:t?.editsRespectTrueCurves,usePreviousEditMoment:t?.usePreviousEditMoment,async:f};await L(this.layer.url,g,!0);const w=k(this.layer.url,g||null);if(await Q(a.url,g,a.historicMoment))throw new i("feature-layer-source:historic-version","Editing a historic version is not allowed");t?.returnServiceEditsOption?(q.edits=JSON.stringify([{id:a.layerId,adds:d.length?d:null,updates:y.length?y:null,deletes:h.length?h:null,attachments:m,assetMaps:l}]),q.returnServiceEditsOption=V.toJSON(t?.returnServiceEditsOption),q.returnServiceEditsInSourceSR=t?.returnServiceEditsInSourceSR):(q.adds=d.length?JSON.stringify(d):null,q.updates=y.length?JSON.stringify(y):null,q.deletes=h.length?u?JSON.stringify(h):h.join(","):null,q.attachments=m&&JSON.stringify(m),q.assetMaps=null!=l?JSON.stringify(l):void 0);const S=this._getLayerRequestOptions({method:"post",query:q});w&&(S.authMode="immediate",S.query.returnEditMoment=!0,S.query.sessionId=P);const E=t?.returnServiceEditsOption?a.url:a.parsedUrl.path;let O;try{O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}catch(_){if(!A(_))throw _;S.authMode="immediate",O=f?await this._asyncApplyEdits(E+"/applyEdits",S):await r(E+"/applyEdits",S)}return this._createEditsResult(O)}async deleteAttachments(e,t){await this.load();const{layer:s}=this;await M(s,"editing");const a=e.attributes[s.objectIdField],i=s.parsedUrl.path+"/"+a+"/deleteAttachments";try{return(await r(i,this._getLayerRequestOptions({query:{attachmentIds:t.join(",")},method:"post"}))).data.deleteAttachmentResults.map(_)}catch(n){throw this._createAttachmentErrorResult(a,n)}}fetchRecomputedExtents(e={}){const t=e.signal;return this.load({signal:t}).then(async()=>{const t=this._getLayerRequestOptions({...e,query:{returnUpdates:!0}}),{layerId:s,url:a}=this.layer,{data:i}=await r(`${a}/${s}`,t),{id:n,extent:o,fullExtent:u,timeExtent:l}=i,c=o||u;return{id:n,fullExtent:c&&q.fromJSON(c),timeExtent:l&&J.fromJSON({start:l[0],end:l[1]})}})}async queryAttachments(e,t={}){await this.load();const r=this._getLayerRequestOptions(t);return this.queryTask.executeAttachmentQuery(e,r)}async queryFeatures(e,t){await this.load();const r=await this.queryTask.execute(e,{...t,query:this._createRequestQueryOptions(t)});if(e.outStatistics?.length&&r.features.length){const t=new Map;if(r.features.forEach(r=>{const s=r.attributes;e.outStatistics?.forEach(({outStatisticFieldName:e})=>{if(e){const r=e.toLowerCase();r&&r in s&&e!==r&&(s[e]=s[r],delete s[r],t.set(r,e))}})}),null!=r.fields)for(const e of r.fields){const r=t.get(e.name.toLowerCase());null!=r&&(e.name=r)}}return r}async queryFeaturesJSON(e,t){return await this.load(),this.queryTask.executeJSON(e,{...t,query:this._createRequestQueryOptions(t)})}async queryObjectIds(e,t){return await this.load(),this.queryTask.executeForIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryFeatureCount(e,t){return await this.load(),this.queryTask.executeForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryExtent(e,t){return await this.load(),this.queryTask.executeForExtent(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeatures(e,t){return await this.load(),this.queryTask.executeRelationshipQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryRelatedFeaturesCount(e,t){return await this.load(),this.queryTask.executeRelationshipQueryForCount(e,{...t,query:this._createRequestQueryOptions(t)})}async queryPivot(e,t){return await this.load(),this.queryTask.executePivotQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopFeatures(e,t){return await this.load(),this.queryTask.executeTopFeaturesQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryAttributeBins(e,t){return await this.load(),this.queryTask.executeAttributeBinsQuery(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopObjectIds(e,t){return await this.load(),this.queryTask.executeForTopIds(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopExtents(e,t){return await this.load(),this.queryTask.executeForTopExtents(e,{...t,query:this._createRequestQueryOptions(t)})}async queryTopCount(e,t){return await this.load(),this.queryTask.executeForTopCount(e,{...t,query:this._createRequestQueryOptions(t)})}async fetchPublishingStatus(){if(!T(this.layer.url))return"unavailable";const e=h(this.layer.url,"status"),t=await r(e,{query:{f:"json"}});return $.fromJSON(t.data.status)}async uploadAssets(e,t){const{uploadAssets:r}=await import("./support/uploadAssets.js");return r(e,{layer:this.layer,ongoingUploads:this._ongoingAssetUploads},t)}_handleLastEditsEventChange(e){const t=this.layer;if(null==e||!("capabilities"in t)||!("effectiveCapabilities"in t))return;if(!(!t.capabilities?.operations?.supportsEditing&&t.effectiveCapabilities?.operations?.supportsEditing))return;const r=t.url;if(null==r)return;"layerId"in t&&h(r,t.layerId.toString());this._getOrCreateEditInterceptor(r).before=t=>{const r=t.requestOptions.method??"auto";if("auto"===r||"head"===r){const r=t.requestOptions.query??{};r._ts=e.getTime(),t.requestOptions.query=r}}}_getOrCreateEditInterceptor(e){return null==this._editInterceptor&&(this._editInterceptor={urls:e},t.request.internalInterceptors.push(this._editInterceptor)),this._editInterceptor}_removeEditInterceptor(){null!=this._editInterceptor&&(a(t.request.internalInterceptors,this._editInterceptor),this._editInterceptor=null)}async _asyncApplyEdits(e,t){const s=(await r(e,t)).data.statusUrl;for(;;){const e=(await r(s,{query:{f:"json"},responseType:"json"})).data;switch(e.status){case"Completed":return r(e.resultUrl,{query:{f:"json"},responseType:"json"});case"CompletedWithErrors":throw new i("async-applyEdits-failed","asynchronous applyEdits call failed.");case"Failed ImportChanges":case"InProgress":case"Pending":case"ExportAttachments":case"ExportChanges":case"ExportingData":case"ExportingSnapshot":case"ImportAttachments":case"ProvisioningReplica":case"UnRegisteringReplica":break;default:throw new i("async-applyEdits-failed","asynchronous applyEdits call failed (undefined response status)")}await d(G)}}_createRequestQueryOptions(e){const t={...this.layer.customParameters,token:this.layer.apiKey,...e?.query};return this.layer.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t}async _fetchService(e,t){if(!e){const s={};has("featurelayer-advanced-symbols")&&(s.returnAdvancedSymbols=!0),t?.cacheBust&&(s._ts=Date.now());const{data:a}=await r(this.layer.parsedUrl.path,this._getLayerRequestOptions({query:s,signal:t?.signal}));e=a}this.layer.applyPreferredHost(e),this.sourceJSON=await this._patchServiceJSON(e,t?.signal);const s=e.type;if(!this.supportedSourceTypes.has(s))throw new i("feature-layer-source:unsupported-type",`Source type "${s}" is not supported`)}async _patchServiceJSON(e,t){if("Table"!==e.type&&e.geometryType&&!e?.drawingInfo?.renderer&&!e.defaultSymbol){const t=x(e.geometryType).renderer;l("drawingInfo.renderer",t,e)}if("esriGeometryMultiPatch"===e.geometryType&&e.infoFor3D&&(e.geometryType="mesh"),null==e.extent)try{const{data:s}=await r(this.layer.url,this._getLayerRequestOptions({signal:t}));s.spatialReference&&(e.extent={xmin:0,ymin:0,xmax:0,ymax:0,spatialReference:s.spatialReference})}catch(s){p(s)}return e}async _ensureLatestMetadata(e){if(this.layer.userHasUpdateItemPrivileges&&this.sourceJSON.cacheMaxAge>0)return this._fetchService(null,{...e,cacheBust:!0})}async _uploadMeshesAndGetAssetMapEditsJSON(e){const{addAssetFeatures:t}=e;if(!t?.length)return null;if(await this._areAllAssetsAlreadyMapped(t))return null;const r=e.addFeatures.filter(e=>e.geometry);if(t.length!==r.length+e.updateFeatures.length)throw new i("feature-layer-source:unsupported-mesh-edits","Mixing attribute only edits with mesh geometry edits is not currently supported");const s=new Array,a=new Map;for(const i of t){const{geometry:e}=i,{vertexSpace:t}=e;if(E(t))s.push(e);else{const t=e.origin,{convertMeshVertexSpace:r}=await import("../../../geometry/support/meshUtils/convertMeshVertexSpace.js"),n=await r(e,new S({origin:[t.x,t.y,t.z??0]}));a.set(n,e),i.geometry=n,s.push(n)}}await this.uploadAssets(s);for(const[i,n]of a)n.addExternalSources(i.metadata.externalSources.items);return{adds:this._getAssetMapEditsJSON(t),updates:[],deletes:[]}}_getAssetMapEditsJSON(e){const t=new Array,r=this.layer.globalIdField,s=this.layer.parsedUrl;for(const a of e){const e=a.geometry,{metadata:i}=e,n=i.getExternalSourcesOnService(s),o=a.getAttribute(r);if(0===n.length){u.getLogger(this).error(`Skipping feature ${o}. The mesh it is associated with has not been uploaded to the service and cannot be mapped to it.`);continue}const{source:l}=n.find(O)??n[0];for(const r of l.assets)1===r.parts.length?t.push({globalId:m(),parentGlobalId:o,assetName:r.assetName,assetHash:r.parts[0].partHash,flags:[]}):u.getLogger(this).error(`Skipping asset ${r.assetName}. It does not have exactly one part, so we cannot map it to a feature.`)}return t}_createEditsResult(e){const t=e.data,{layerId:r}=this.layer,s=[];let a=null;if(Array.isArray(t))for(const n of t)s.push({id:n.id,editedFeatures:n.editedFeatures}),n.id===r&&(a={addResults:n.addResults??[],updateResults:n.updateResults??[],deleteResults:n.deleteResults??[],attachments:n.attachments,editMoment:n.editMoment});else a=t;const i=I(a);if(s.length>0){i.editedFeatureResults=[];for(const e of s){const{editedFeatures:t}=e,r=t?.spatialReference?new w(t.spatialReference):null;i.editedFeatureResults.push({layerId:e.id,editedFeatures:v(t,r)})}}return i}_createAttachmentErrorResult(e,t){const r=t.details.messages?.[0]||t.message,s=t.details.httpStatus||t.details.messageCode;return{objectId:e,globalId:null,error:new i("feature-layer-source:attachment-failure",r,{code:s})}}_getFormDataForAttachment(e,t){const r=e instanceof FormData?e:e&&e.elements?new FormData(e):null;if(r)for(const s in t){const e=t[s];null!=e&&(r.set?r.set(s,e):r.append(s,e))}return r}_getLayerRequestOptions(e={}){const{layer:t,layer:{parsedUrl:r,gdbVersion:s}}=this;return{...e,query:{gdbVersion:s,layer:"dynamicDataSource"in t&&t.dynamicDataSource?JSON.stringify({source:t.dynamicDataSource}):void 0,...r.query,f:"json",...this._createRequestQueryOptions(e)},responseType:"json"}}async _areAllAssetsAlreadyMapped(e){const{layer:t}=this,{globalIdField:r,parsedUrl:a}=t,i="infoFor3D"in t?t.infoFor3D:null;if(null==i||null==r)return!1;const n=N(i);if(null==n)return!1;const o=h(a.path,`../${n.id}`),u=new Array;for(const s of e){if(!(s.geometry.metadata.getExternalSourcesOnService(a).length>0))return!1;u.push(s)}const l=u.map(e=>e.getAttribute(r)).filter(s);if(0===l.length)return!1;const{assetMapFieldRoles:{parentGlobalId:c,assetHash:d}}=i,p=new D({where:`${c} IN (${l.map(e=>`'${e}'`)})`,outFields:[d,c],returnGeometry:!1}),y=await U(o,p),{features:m}=y;return 0!==m.length&&!u.some(e=>{const t=e.getAttribute(r);if(!t)return!0;const{metadata:s}=e.geometry,i=m.filter(e=>e.getAttribute(c)===t);if(0===i.length)return!0;const n=i.map(e=>e.getAttribute(d));return s.getExternalSourcesOnService(a).flatMap(({source:e})=>e.assets.flatMap(e=>e.parts.map(e=>e.partHash))).some(e=>n.every(t=>e!==t))})}};e([f()],B.prototype,"type",void 0),e([f({constructOnly:!0})],B.prototype,"layer",void 0),e([f({constructOnly:!0})],B.prototype,"supportedSourceTypes",void 0),e([f({readOnly:!0})],B.prototype,"queryTask",null),B=e([g("esri.layers.graphics.sources.FeatureLayerSource")],B);const G=1e3;export{B as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../request.js";import has from"../../../../core/has.js";import{QueueProcessor as t}from"../../../../core/QueueProcessor.js";import{isBlobProtocol as a}from"../../../../core/urlUtils.js";const r="parquet.v1",s=new t({concurrency:12,process:async t=>{const{data:a}=await e(t.url,t.options);return a}});class n{constructor(e=()=>{}){this._getCustomParameters=e}async fetchRange(e,t,a,n){const o=await this._resolveFileUrl(e),c={url:o,options:{responseType:"array-buffer",query:this._getCustomParameters()??{},cacheMode:"no-store",useQueue:!0,headers:{range:`bytes=${t}-${a}`}}};if(!has("parquetlayer-cache-enabled"))return s.push(c);const i=new URL(o);i.searchParams.append("range",`${t}-${a}`);try{const e=await caches.open(`${r}:${o}`),t=await e.match(i);if(t)return await t.arrayBuffer();const a=await s.push(c);return await e.put(i,new Response(a,{headers:{"Content-Type":"application/octet-stream","Content-Length":a.byteLength.toString()}})),a}catch(h){return s.push(c)}}async fetchLength(t){const s=await this._resolveFileUrl(t);if(a(s)){const{data:t}=await e(s,{responseType:"blob"});return t.size}const{data:n}=await e(s,{responseType:"native",method:"head",query:this._getCustomParameters()}),o=n.headers.get("Content-Length");if(null==o)throw new Error("Unable to parse content length");const c=parseInt(o,10);if(!has("parquetlayer-cache-enabled"))return c;try{const e=`${r}:${s}`,t=new URL(s);t.searchParams.append("metadata","true");let a=await caches.open(e);const o=n.headers.get("etag")??n.headers.get("Last-Modified");if(null==o)return await caches.delete(e),c;const i=await a.match(t),h=await(i?.json());h?.tag!==o&&(await caches.delete(e),a=await caches.open(e));const p=JSON.stringify({tag:o});await a.put(t,new Response(p,{headers:{"Content-Type":"application/json","Content-Length":p.length.toString()}}))}catch(i){}return c}}export{n as FileProvider};
2
+ import{__addDisposableResource as t,__disposeResources as e}from"tslib";import a from"../../../../request.js";import has from"../../../../core/has.js";import{QueueProcessor as s}from"../../../../core/QueueProcessor.js";import{isBlobProtocol as r}from"../../../../core/urlUtils.js";import{ParquetFileInfo as n}from"./ParquetFileInfo.js";import{parseFileStatisticsMap as i}from"./ParquetFileStatistics.js";import{createParquetFile as o,readMetadata as c}from"../../../../libs/parquet/parquet.js";const h="parquet.v1",u="_spatial.json",f=new s({concurrency:12,process:async t=>{const{data:e}=await a(t.url,t.options);return e}});class l{constructor(t,e=()=>{}){this._geometryInfo=t,this._getCustomParameters=e}async destroy(){await this.clear()}async clear(){if(this._infos){const t=await this._infos;for(const e of t.values())e.destroy();t.clear(),this._infos=null}}async getMetadata(){const a={stack:[],error:void 0,hasError:!1};try{const e=(await this._getParquetFileNames()).at(0);if(!e)return null;const s=t(a,await o(e,{provider:this}),!1);return c(s)}catch(s){a.error=s,a.hasError=!0}finally{e(a)}}getGeometryInfo(){return this._geometryInfo}async getFiles(){const t=await this._getInfoMap();return Array.from(t.values())}async updateGeometryInfo(t){if(this._geometryInfo)throw new Error("GeometryInfo already set");await this.clear(),this._geometryInfo=t}async fetchLength(t){const{byteLength:e,cacheTag:a}=await this._fetchLengthAndTag(t);if(!has("parquetlayer-cache-enabled"))return e;try{await this._createOrResetCache(t,a)}catch(s){}return e}async fetchRange(t,e,a,s){if(!has("parquetlayer-cache-enabled"))return this._fetchRange(t,e,a,s);const r=new URL(this._getCacheFileName(t));r.searchParams.append("range",`${e}-${a}`);try{const n=await this._openCache(t),i=await n.match(r);if(i)return await i.arrayBuffer();const o=await this._fetchRange(t,e,a,s);return await n.put(r,new Response(o,{headers:{"Content-Type":"application/octet-stream","Content-Length":o.byteLength.toString()}})),o}catch(n){return this._fetchRange(t,e,a,s)}}_getCacheFileName(t){return t}async _requestStatistics(t){const{data:e}=await a(t,{responseType:"json",query:this._getCustomParameters()});return e}async _fetchRange(t,e,a,s){const r={url:t,options:{responseType:"array-buffer",query:this._getCustomParameters()??{},cacheMode:"no-store",useQueue:!0,headers:{range:`bytes=${e}-${a}`}}};return f.push(r)}async _fetchLengthAndTag(t){if(r(t)){const{data:e}=await a(t,{responseType:"blob"});return{byteLength:e.size,cacheTag:null}}const e=await this._requestHead(t),s=e.headers.get("Content-Length");if(null==s)throw new Error("Unable to parse content length");const n=e.headers.get("etag")??e.headers.get("Last-Modified");return{byteLength:parseInt(s,10),cacheTag:n}}async _getInfoMap(){return this._infos||(this._infos=this._fetchParquetFiles()),this._infos}async _updateParquetFileInfos(t){const e=await this._getInfoMap(),a=new Set(t);for(const s of a)if(!e.get(s)){const t=e.size,a=await n.create(this.getGeometryInfo(),this,s,t,null);e.set(s,a)}for(const s of e.keys())if(!a.has(s))throw new Error("Deletion not supported")}async _getFileStatistics(t){this._statistics||(this._statistics=this._fetchStatistics());const e=await this._statistics,a=p(t);return e.get(a)}async _fetchParquetFiles(){const t=(await this._getParquetFileNames()).map(async(t,e)=>{const a=e,s=await this._getFileStatistics(t);return n.create(this.getGeometryInfo(),this,t,a,s)}),e=await Promise.all(t),a=new Map;for(const s of e)a.set(s.url,s);return a}async _fetchStatistics(){const t=await this._getStatisticsFileName();if(null==t)return new Map;const e=await this._resolveFileUrl(t),a=await this._requestStatistics(e);return i(a)}async _requestHead(t){const{data:e}=await a(t,{responseType:"native",method:"head",query:this._getCustomParameters()});return e}async _openCache(t){return caches.open(this._getCacheName(t))}_getCacheName(t){return`${h}:${this._getCacheFileName(t)}`}async _createOrResetCache(t,e){const a=this._getCacheName(t),s=new URL(this._getCacheFileName(t));if(s.searchParams.append("metadata","true"),null==e)return void await caches.delete(a);let r=await caches.open(a);const n=await r.match(s),i=await(n?.json());i?.tag!==e&&(await caches.delete(a),r=await caches.open(a));const o=JSON.stringify({tag:e});await r.put(s,new Response(o,{headers:{"Content-Type":"application/json","Content-Length":o.length.toString()}}))}}function g(t){const e=t.split(/[?#]/)[0];return e===u||e.endsWith(u)}function p(t){return t.split(/[?#]/)[0].split("/").at(-1)??t}export{l as FileProvider,g as isStatisticsFileName,u as spatialFileName};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{FileStatistics as t}from"./ParquetFileStatistics.js";import{createParquetFile as e}from"../../../../libs/parquet/parquet.js";class i{static async create(r,s,o,l,f){if(!f){const f=await e(o,{geometryInfo:r,provider:s}),n=t.fromFile(f);return new i(r,s,o,l,n,Promise.resolve(f))}return new i(r,s,o,l,f,null)}constructor(t,e,i,r,s,o){this._geometryInfo=t,this._provider=e,this.url=i,this.id=r,this.statistics=s,this._file=o}destroy(){null!=this._file&&this._file.then(t=>t.free())}get file(){return null==this._file&&(this._file=e(this.url,{geometryInfo:this._geometryInfo,provider:this._provider})),this._file}}export{i as ParquetFileInfo};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ function n(n){const u=new Map;for(const o of n.files){const n=t(o);u.set(o.name,n)}return u}function t(n){const t=new Map;for(const u of n.statistics??[]){const n=u.column.at(-1);null!=n&&t.set(n,{minValue:u.minValue,maxValue:u.maxValue,nullCount:u.nullCount??0,distinctCount:u.distinctCount??null})}return new u(0,0,t)}class u{static fromFile(n){const t=n.numRows(),o=n.byteLength(),l=new Map;for(const u of n.getColumnDescriptors()){const n=u.minValue(),t=u.maxValue(),o=u.distinctCount(),s=u.nullCount();null!=n&&null!=t&&null!=o&&null!=s&&l.set(u.name(),{minValue:n,maxValue:t,distinctCount:o,nullCount:s}),u.free()}return new u(t,o,l)}constructor(n,t,u){this.rowCount=n,this.byteSize=t,this.statistics=u}}export{u as FileStatistics,t as parseFileStatistics,n as parseFileStatisticsMap};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../request.js";import{FileProvider as r}from"./FileProvider.js";import{parseKnownArcGISOnlineDomain as s}from"../../../../portal/support/urlUtils.js";class t extends r{constructor(e,r){super(r),this._schema=e,this._isAgol=!!s(this._schema.itemUrl)}async getFileList(){return[`${this._baseUrl}/data`]}async fetchLength(e){return this._schema.size}async fetchRange(e,r,s,t){try{return await super.fetchRange(e,r,s,t)}catch{this._resolvedUrl=null}return super.fetchRange(e,r,s,t)}async _resolveFileUrl(e){return this._resolvedUrl||(this._resolvedUrl=this._fetchResolvedUrl()),this._resolvedUrl}get _baseUrl(){return this._schema.itemCdnUrl??this._schema.itemUrl}async _fetchResolvedUrl(){if(!this._isAgol)return`${this._baseUrl}/data`;return(await e(`${this._baseUrl}/data`,{query:{signedurl:!0,expiration:9,f:"json"}})).data.signedUrl}}export{t as PortalParquetFileProvider};
2
+ import e from"../../../../request.js";import{FileProvider as t}from"./FileProvider.js";import{parseKnownArcGISOnlineDomain as r}from"../../../../portal/support/urlUtils.js";class s extends t{constructor(e,t,s){super(t,s),this._schema=e,this._isAgol=!!r(this._schema.itemUrl)}async update(e){throw new Error("Unsupported")}async _getParquetFileNames(){return[`${this._baseUrl}/data`]}async _getStatisticsFileName(){return null}_getCacheFileName(e){return`${this._baseUrl}/data`}async _resolveFileUrl(e){return this._resolvedUrl||(this._resolvedUrl=this._fetchResolvedUrl()),this._resolvedUrl}async _fetchLengthAndTag(e){const t=await super._fetchLengthAndTag(e);return t.cacheTag=this._schema.modified.getTime().toString(),t}async _fetchRange(e,t,r,s){try{const a=await this._resolveFileUrl(e);return await super._fetchRange(a,t,r,s)}catch{this._resolvedUrl=null}const a=await this._resolveFileUrl(e);return super._fetchRange(a,t,r,s)}get _baseUrl(){return this._schema.itemCdnUrl??this._schema.itemUrl}async _fetchResolvedUrl(){if(!this._isAgol)return`${this._baseUrl}/data`;return(await e(`${this._baseUrl}/data`,{query:{signedurl:!0,expiration:9,f:"json"}})).data.signedUrl}}export{s as PortalParquetFileProvider};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"../../../../request.js";import{FileProvider as t}from"./FileProvider.js";const r=100;class s extends t{constructor(e,t){super(t),this._schema=e}get _baseUrl(){return this._schema.itemCdnUrl??this._schema.itemUrl}async getFileList(){const e=await this._getResources();return Array.from(e.keys())}async getResource(e){const t=(await this._getResources()).get(e);if(!t)throw new Error(`Resource ${e} not found.`);return t}async fetchLength(e){return(await this.getResource(e)).size}async fetchRange(e,t,r,s){try{return await super.fetchRange(e,t,r,s)}catch{this._invalidate()}return super.fetchRange(e,t,r,s)}async _resolveFileUrl(e){return(await this.getResource(e)).signedUrl}_invalidate(){this._resources=null}async _getResources(){return this._resources||(this._resources=this._fetchResources()),await this._resources}async _fetchResources(){const t=new Map;let s=1;const n=o(this._schema.itemMetadata.url);for(;-1!==s;){const o=await e(`${this._baseUrl}/resources`,{query:{f:"json",start:s,num:r}});for(const e of o.data.resources)e.resource.startsWith(n)&&t.set(e.resource,e);s=o.data.nextStart}return t}}function o(e){const t=e.split("/").filter(Boolean),r=t.indexOf("resources");if(-1===r||r===t.length-1)throw new Error(`URL does not contain a resources directory name: ${e}`);return`${t.slice(r+1).map(e=>decodeURIComponent(e)).join("/")}/`}export{s as PortalParquetResourcesFileProvider};
2
+ import e from"../../../../request.js";import{FileProvider as t,isStatisticsFileName as s}from"./FileProvider.js";const r=100;class a extends t{constructor(e,t,s){super(t,s),this._schema=e}get _baseUrl(){return this._schema.itemCdnUrl??this._schema.itemUrl}async update(e){throw new Error("Unsupported")}async _getParquetFileNames(){const e=await this._getResources();return Array.from(e.keys()).filter(e=>e.endsWith(".parquet"))}async _getStatisticsFileName(){const e=await this._getResources();return Array.from(e.keys()).find(s)??null}_getCacheFileName(e){return`${this._baseUrl}/resources/${e}`}async _resolveFileUrl(e){const t=await this._getResource(e);return t.signedUrl?t.signedUrl:`${this._baseUrl}/resources/${e}`}async _fetchLengthAndTag(e){const t=await this._getResource(e),s=this._schema.itemMetadata.modified.getTime().toString();return{byteLength:t.size,cacheTag:s}}async _fetchRange(e,t,s,r){try{const a=await this._resolveFileUrl(e);return await super._fetchRange(a,t,s,r)}catch{this._invalidate()}const a=await this._resolveFileUrl(e);return super._fetchRange(a,t,s,r)}_invalidate(){this._resources=null}async _getResources(){return this._resources||(this._resources=this._fetchResources()),await this._resources}async _getResource(e){const t=(await this._getResources()).get(e);if(!t)throw new Error(`Resource ${e} not found.`);return t}async _fetchResources(){const t=new Map;let s=1;const a=n(this._schema.itemMetadata.url);for(;-1!==s;){const n=await e(`${this._baseUrl}/resources`,{query:{f:"json",start:s,num:r}});for(const e of n.data.resources)e.resource.startsWith(a)&&t.set(e.resource,e);s=n.data.nextStart}return t}}function n(e){const t=e.split("/").filter(Boolean),s=t.indexOf("resources");if(-1===s||s===t.length-1)throw new Error(`URL does not contain a resources directory name: ${e}`);return`${t.slice(s+1).map(e=>decodeURIComponent(e)).join("/")}/`}export{a as PortalParquetResourcesFileProvider};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{FileProvider as e}from"./FileProvider.js";class r extends e{constructor(e,r=()=>{}){super(r),this._schema=e}async getFileList(){return this._schema.urls}async _resolveFileUrl(e){return e}}export{r as UrlsFileProvider};
2
+ import{FileProvider as e,isStatisticsFileName as s}from"./FileProvider.js";class t extends e{constructor(e,s=null,t=()=>{}){super(s,t),this._schema=e}async update(e){await this._updateParquetFileInfos(await this._getParquetFileNames()),this._schema=e}async _resolveFileUrl(e){return e}async _getParquetFileNames(){return this._schema.urls.filter(e=>!e.endsWith(".json"))}async _getStatisticsFileName(){return this._schema.urls.find(s)??null}}export{t as UrlsFileProvider};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{PortalParquetFileProvider as r}from"./PortalParquetFileProvider.js";import{PortalParquetResourcesFileProvider as e}from"./PortalParquetLayerFileProvider.js";import{UrlsFileProvider as t}from"./UrlsFileProvider.js";function o(o,a){switch(o.type){case"urls":return new t(o,a);case"portal-parquet-file":return new r(o,a);case"portal-parquet-layer":return new e(o,a)}}export{o as createFileProvider};
2
+ import{PortalParquetFileProvider as r}from"./PortalParquetFileProvider.js";import{PortalParquetResourcesFileProvider as e}from"./PortalParquetLayerFileProvider.js";import{UrlsFileProvider as t}from"./UrlsFileProvider.js";function o(o,a,i){switch(o.type){case"urls":return new t(o,a,i);case"portal-parquet-file":return new r(o,a,i);case"portal-parquet-layer":return new e(o,a,i)}}export{o as createFileProvider};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as r}from"../../../../core/compilerUtils.js";import s from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{onAbortOrThrow as o,throwIfAborted as a}from"../../../../core/promiseUtils.js";import{QueueProcessor as n}from"../../../../core/QueueProcessor.js";import{parseWhereClause as u}from"../../../../core/sql.js";import p from"../../../../geometry/SpatialReference.js";import{set as l,create as c,expandWithRect as d,expandWithAABB as f,negativeInfinity as m,fromRect as y}from"../../../../geometry/support/aaBoundingBox.js";import{getQueryResultExtent as h,QueryEngine as g}from"../../data/QueryEngine.js";import{QueryEngineResult as w}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as _}from"../../data/queryUtils.js";import{createFileProvider as I}from"../parquet/createFileProvider.js";import{createDrawingInfo as F}from"./clientSideDefaults.js";import{getParquetFileId as x,getParquetRowId as R}from"./parquetIdUtils.js";import S from"../../../support/Field.js";import v from"../../../support/FieldsIndex.js";import{fromParquetGeometryEncodingJSON as q}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as C,fromParquetJSONGeometryType as E,toParquetJSONGeometryType as b}from"../../../support/parquetUtils.js";import{loadParquetModule as O}from"../../../../libs/parquet/loadParquetModule.js";import{createParquetFile as Q,readGeoMetadata as P}from"../../../../libs/parquet/parquet.js";import{FeatureStoreQueryAdapter as T}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as j}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as M}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as A}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as B}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const G=new T,D=4,z="__OBJECTID",W=new TextDecoder;class U{constructor(){this._fileInfos=new Map,this._queue=new n({concurrency:D,process:(e,t)=>this._executeQuery(e,t)}),this._indexMap={}}async load(r){const o=r.spatialReference?p.fromJSON(r.spatialReference):void 0;if(o&&!o.isWGS84&&!o.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=r.customParameters,this._provider=I(r.provider,()=>this._customParameters);const a=await C(this._provider,{fields:r.fields?.map(e=>S.fromJSON(e)),geometryEncoding:r.geometryEncoding?q(r.geometryEncoding):null,geometryType:r.geometryType?E(r.geometryType):null,displayOptimization:r.displayOptimization,spatialReference:o});if(!a.fields)throw new s("parquet:unsupported","Fields must be defined");let n;if(a.spatialReference&&a.geometryType){if(!a.spatialReference)throw new s("parquet:unsupported","SpatialReference must be defined");if(!a.spatialReference.isGeographic&&!a.spatialReference.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");a.spatialReference.isGeographic&&!a.spatialReference.isWGS84&&(i.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:a.spatialReference}),a.spatialReference=p.WGS84),n={geometry:a.geometryEncoding?{geometryType:b(a.geometryType),spatialReference:a.spatialReference.toJSON(),encoding:a.geometryEncoding.toJSON()}:null,displayOptimization:a.displayOptimization}}this.setCustomParameters(r.customParameters),this._geometryInfo=n;const u=await this._provider.getFileList();for(const e of u)this._addFile(e);this._capabilities=H(await this._getFileStatistics());const f=this._fileInfos.values().next().value;if(!f)return{layerDefinition:{},capabilities:H(null)};const y=await f,{fields:h}=a;if(null==h)throw new s("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",h);h.push(new S({name:z,type:"oid",alias:z}));for(const e of h){const t=y.file.columnForFieldName(e.name);null!=t&&(this._indexMap[e.name]=t)}const g=new v(h.map(e=>e.toJSON()));this._fieldsIndex=g;const w=b(a.geometryType??"point");if(this._metadata=A.createFeature({fieldsIndex:g.toJSON(),geometryType:w,hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:a.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:w,featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:a.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},a.spatialReference){const e=await this._getFileInfos();this._fullExtent=V(e,a.spatialReference.toJSON())}if(null==this._fullExtent&&"location"===a.geometryEncoding?.type){const{xField:r,yField:s}=a.geometryEncoding,i=l(c(),m);for(const o of await this._getFileInfos())for(const a of o.file.rowGroups()){const o={stack:[],error:void 0,hasError:!1};try{const t=e(o,a.columnDescriptorForAttribute(r),!1),n=e(o,a.columnDescriptorForAttribute(s),!1),u=[t.minValue(),n.minValue(),t.maxValue(),n.maxValue()];d(i,u),a.free()}catch(_){o.error=_,o.hasError=!0}finally{t(o)}}this._fullExtent={xmin:i[0],ymin:i[1],xmax:i[3],ymax:i[4],spatialReference:a.spatialReference?.toJSON()}}return{capabilities:this._capabilities,layerDefinition:{fields:a.fields?.map(e=>e.toJSON()),drawingInfo:F(w),extent:this._fullExtent??void 0,geometryType:w,geometryEncoding:a.geometryEncoding?.toJSON(),displayOptimization:a.displayOptimization}}}destroy(){for(const e of this._fileInfos.values())e.then(e=>e.file.free);this._fileInfos.clear(),this._queue.destroy()}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async getFilesIds(){const e=[];for await(const t of this._fileInfos.values())e.push(t.id);return e}async getFileId(e){const t=this._fileInfos.get(e);if(!t)throw new Error(`InternalError: File ${e} does not exist`);return(await t).id}async updateFileProvider(e){const t=I(e,()=>this._customParameters),r=await t.getFileList();this._provider=t,await this._updateFiles(new Set(r))}async queryFeatures(e,t){this._validateQuery(e),L(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&(e.returnGeometry=void 0);return(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){const r=await _(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!N(r))return this._getFeatureCount();r.outFields=void 0,r.returnGeometry=void 0;return(await this._enqueueQuery(r,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const r=await _(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!N(r))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,8e3):8e3,r.resultOffset=r.resultOffset??0,r.returnGeometry=void 0,r.outFields=void 0;return(await this._enqueueQuery(r,t)).items.map(e=>e.getObjectId())}async queryExtent(e,t){const s=await _(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),this._fullExtent&&!N(s))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=r(this._metadata.spatialReference);s.returnGeometry=!0,s.outFields=void 0;const o=l(c(),m),a=c(),n=await this._enqueueQuery(s,t);let u=0;for(const r of n.items)r.getBounds(a)&&(f(o,a),u+=1);return{count:u,extent:h(o,i,s.outSR?r(s.outSR):i,i,!1)}}async queryStream(e,t,r){if(!r.signal)throw new Error("InternalError: AbortSignal must be passed");const s=await this._getFileInfoById(e),i=(await O()).Query.new();"tile"===t.type&&(i.setExtent(t.extent),i.setQuantizationTransform(t.transform),i.setScale(t.scale)),i.setOutFields(t.outFields.filter(e=>null!=this._indexMap[e])),i.setOutSpatialReference(t.outSpatialReference.wkid),i.setReturnGeometry(!0),t.where&&await this._setWhereClause(i,s.file,t.where);const a=await s.file.executeQuery(i,r.signal),n=s.streamIdCounter++,u=o(r.signal,e=>{const t=s.streams.get(n);null!=t&&(t.handle.remove(),s.streams.delete(n))});return s.streams.set(n,{stream:a,handle:u}),n}async getStreamNext(e,t,r){if(!r.signal)throw new Error("InternalError: AbortSignal must be passed");const s=await this._getFileInfoById(e),i=s.streams.get(t);if(!i)return null;const o=await i.stream.next(r.signal);return null==o&&(i.handle.remove(),s.streams.delete(t)),o?.serialize().buffer}async createPatch(e,t,r,s,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const o=await this._getFileInfoById(e);return(await o.file.createChunkPatch(t,r,s,i.signal)).serialize().buffer}async _updateFiles(e){for(const[t,r]of this._fileInfos.entries())e.has(t)?e.delete(t):(r.then(e=>e.file.free()),this._fileInfos.delete(t));await Promise.all(Array.from(e.values(),e=>this._addFile(e)))}async _getFileInfos(){return Promise.all(Array.from(this._fileInfos.values()))}async _getFileInfoById(e){for await(const t of this._fileInfos.values())if(t.id===e)return t;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){if(!this._fileInfos.size)return null;const e=(await this._getFileInfos()).reduce((e,t)=>e+t.file.byteLength(),0);return{featureCount:await this._getFeatureCount(),byteLength:e}}async _getFile(e){for(const t of await this._getFileInfos())if(t.id===e)return t.file;throw new Error(`InternalError: File ${e} does not exist`)}_addFile(e){const t=this._fileInfos.size;this._fileInfos.set(e,this._createFileInfo(e,t))}async _createFileInfo(e,t){return{id:t,file:await Q(e,{geometryInfo:this._geometryInfo,provider:this._provider}),streamIdCounter:0,streams:new Map}}async _getFeatureCount(){return(await this._getFileInfos()).reduce((e,t)=>e+t.file.numRows(),0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new s("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new s("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new s("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,r){const i=this._indexMap,o=this._fieldsIndex,a={getAttribute(e,r){const s=t.readAttribute(e.rowGroup,e.row,i[r]);if(null==s)return null;const a=o.get(r);return"esriFieldTypeString"===a.type||"esriFieldTypeDateOnly"===a.type||"esriFieldTypeTimeOnly"===a.type||"esriFieldTypeTimestampOffset"===a.type?W.decode(s):s}},n=await u(r,this._fieldsIndex);if(!n.isStandardized)throw new s("sql-parse-error","expression is not standardized");const p=(e,t)=>n.testFeatureCompiled({rowGroup:e,row:t},a,null);e.setWhere(r),e.setWhereEvaluator(p),e.setWhereFields(n.fieldNames)}async*_fetchChunks(e,t){const r=await O();for(const s of await this._getFileInfos()){const i=r.Query.new();i.setOutFields(e.fields),i.setReturnGeometry(e.returnGeometry),e.where&&await this._setWhereClause(i,s.file,e.where);const o=await s.file.executeQuery(i),n=[],u=o.next(t);for(let e=0;e<D;e++)n.push(o.next(t));let p=await u;for(;null!=p;){a(t);const e=new B(this._metadata,this._indexMap,p,s.id),r=k([new j(e,null,0,!1)],this._queryEngineParams),i=n.shift();n.push(o.next(t)),yield r,p=await i}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const r=await this._getReadParams(e);if(e.where=void 0,e.objectIds?.length){const r=new Map;for(const t of e.objectIds){const e=x(t),s=R(t);let i=r.get(e);i||(i=[],r.set(e,i)),i.push(s)}const s=[];for(const[i,o]of r.entries()){const r=await this._executeFileIdQuery(e,i,o,t);for(const e of r)s.push(e)}return new w(s,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:G,featureIdInfo:this._queryEngineParams.featureIdInfo})}let s=e.resultRecordCount??await this._getFeatureCount(),i=e.resultOffset??0;e.resultRecordCount=void 0,e.resultOffset=void 0;const o=[];for await(const a of this._fetchChunks(r,t)){const r=await a.executeQueryForOpaqueFeatures(e,t);if(r.length>i){const t=r.slice(i,Math.min(i+s,r.length));for(const e of t)o.push(e);if(i=0,s-=t.length,0===s)return new w(o,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:G,featureIdInfo:this._queryEngineParams.featureIdInfo})}else i-=r.length}return new w(o,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:G,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,r,s){const i=await this._getReadParams(e),o=(await O()).Query.new();o.setOutFields(i.fields),o.setReturnGeometry(i.returnGeometry),o.setIds(new Uint32Array(r));const a=await this._getFile(t),n=await a.executeQuery(o,s);let u=await n.next(s),p=0;const l=[];for(;null!=u;){const e=new B(this._metadata,this._indexMap,u,t),r=new j(e,null,p++,!1);l.push(r),u=await n.next(s)}return k(l,this._queryEngineParams).executeQueryForOpaqueFeatures(e,s)}async _getReadParams(e){const t=new Set;if(e.outStatistics)for(const r of e.outStatistics)null!=r.onStatisticField&&t.add(r.onStatisticField);if(e.outFields)for(const r of e.outFields)t.add(r);return{fields:(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e]),returnGeometry:!!e.returnGeometry||!!e.geometry,where:e.where}}}function N(e){for(const t in e){const r=t;switch(r){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"objectIds":case"historicMoment":case"where":return null!=e[r]}}return!1}function k(e,t){const r=new M;for(const s of e)r.insert(s);return new g({...t,featureStore:r})}function J(e){switch(e.length){case 4:return y(c(),e);case 6:return e;default:throw new s("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{bbox:e})}}function V(e,t){const r=l(c(),m);for(const s of e){const e=P(s.file);if(!e)return null;const t=e.columns[e.primary_column];if(!t.bbox)return null;const i=J(t.bbox);f(r,i)}return{xmin:r[0],ymin:r[1],xmax:r[3],ymax:r[4],spatialReference:t}}function H(e){const t=e?.featureCount;let r=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(r=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:8e3,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,relativeTimeBinWindow:void 0,standardMaxRecordCount:void 0,standardMaxRecordCountNoGeometry:void 0,supportsStatisticsAggregatedIds:!1,supportsCacheHint:!1,supportsCentroid:!0,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsOutDistance:!1,supportsDistinct:r,supportsExtent:!1,supportsFormatPBF:!1,supportsFormatPBFWithCurves:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:r,supportsPagination:!0,supportsPaginationOnAggregatedQueries:!1,supportsPercentileStatistics:!1,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsReturnExceededLimitGeometries:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsStatistics:r,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,supportsSqlExpression:!1,supportsTrueCurve:!1,tileMaxRecordCount:void 0},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function L(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{U as default};
2
+ import{__addDisposableResource as e,__disposeResources as t}from"tslib";import{toConst as r}from"../../../../core/compilerUtils.js";import s from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{onAbortOrThrow as a,throwIfAborted as n}from"../../../../core/promiseUtils.js";import{QueueProcessor as o}from"../../../../core/QueueProcessor.js";import{parseWhereClause as u}from"../../../../core/sql.js";import l from"../../../../geometry/SpatialReference.js";import{set as p,create as c,expandWithAABB as d,expandWithRect as f,negativeInfinity as m}from"../../../../geometry/support/aaBoundingBox.js";import{getQueryResultExtent as h,QueryEngine as y}from"../../data/QueryEngine.js";import{queryBinsCapabilities as g,queryCapabilities as _}from"../../data/QueryEngineCapabilities.js";import{QueryEngineResult as w}from"../../data/QueryEngineResult.js";import{normalizeQueryLike as x}from"../../data/queryUtils.js";import{createFileProvider as I}from"../parquet/createFileProvider.js";import{createDrawingInfo as F}from"./clientSideDefaults.js";import{getParquetFileId as S,getParquetRowId as R}from"./parquetIdUtils.js";import q from"../../../support/Field.js";import v from"../../../support/FieldsIndex.js";import{fromParquetGeometryEncodingJSON as C}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as E,fromParquetJSONGeometryType as O,toParquetJSONGeometryType as b}from"../../../support/parquetUtils.js";import{loadParquetModule as P}from"../../../../libs/parquet/loadParquetModule.js";import{FeatureStoreQueryAdapter as Q}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as T}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as j}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as N}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as A}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const M=new Q,B=4,G="__OBJECTID",D=new TextDecoder,z=8e3,k=8,V=2,W=20;class U{constructor(e,t){this._files=e,this._createFileStream=t,this._fileIndex=0,this._streamIndex=0,this._streams=[],this._pending=new Set,this._resolvedCount=0}async next(e){for(await this._fill(e);this._pending.size>0;){n(e),await this._fill(e);const t=await J(this._pending);if(this._pending.delete(t.read),this._resolvedCount++,null!=t.chunk)return t.chunk}return null}async _fill(e){for(this._removeDone();this._pending.size<k;){const t=this._getOrCreateNextStream(e);if(null==t)return;this._pending.add(t.read(e))}}_getOrCreateNextStream(e){const t=this._resolvedCount>=k?k:V;if(this._fileIndex<this._files.length&&this._streams.length<t){const t=this._files[this._fileIndex++],r=new Z(t.id,this._createFileStream(t,e));return this._streams.push(r),r}return this._getNextStream()}_getNextStream(){const e=this._streams.length;for(let t=0;t<e;t++){const r=(this._streamIndex+t)%e,s=this._streams[r];if(s.canRead)return this._streamIndex=(r+1)%e,s}return null}_removeDone(){let e=this._streamIndex;for(let t=this._streams.length-1;t>=0;t--)this._streams[t].done&&(this._streams.splice(t,1),t<e&&e--);this._streamIndex=this._streams.length>0?e%this._streams.length:0}}function J(e){return Promise.race(Array.from(e,async e=>({read:e,chunk:await e})))}class Z{constructor(e,t){this._fileId=e,this._stream=t,this._readCount=0,this._reachedEnd=!1}get canRead(){return!this._reachedEnd}get done(){return this._reachedEnd&&0===this._readCount}async read(e){this._readCount++;try{const t=await this._stream,r=await t.next(e);return null==r?(this._reachedEnd=!0,null):{fileId:this._fileId,chunk:r}}finally{this._readCount--}}}class L{constructor(){this._queue=new o({concurrency:B,process:(e,t)=>this._executeQuery(e,t)}),this._streams=new Map,this._streamIdCounter=0,this._indexMap={}}async load(e){const t=e.spatialReference?l.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");this._customParameters=e.customParameters,this._provider=I(e.provider,null,()=>this._customParameters);const r=await this._provider.getMetadata(),a=await E(r,{fields:e.fields?.map(e=>q.fromJSON(e)),geometryEncoding:e.geometryEncoding?C(e.geometryEncoding):null,geometryType:e.geometryType?O(e.geometryType):null,displayOptimization:e.displayOptimization,spatialReference:t});if(!a.fields)throw new s("parquet:unsupported","Fields must be defined");let n;if(a.spatialReference&&a.geometryType){if(!a.spatialReference)throw new s("parquet:unsupported","SpatialReference must be defined");if(!a.spatialReference.isGeographic&&!a.spatialReference.isWebMercator)throw new s("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");a.spatialReference.isGeographic&&!a.spatialReference.isWGS84&&(i.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:a.spatialReference}),a.spatialReference=l.WGS84),n={geometry:a.geometryEncoding?{geometryType:b(a.geometryType),spatialReference:a.spatialReference.toJSON(),encoding:a.geometryEncoding.toJSON()}:null,displayOptimization:a.displayOptimization}}this.setCustomParameters(e.customParameters),this._displayOptimization=a.displayOptimization,await this._provider.updateGeometryInfo(n),this._capabilities=ie(await this._getFileStatistics());const o=await this._provider.getFiles();if(!o.length)return{layerDefinition:{},capabilities:ie(null)};const u=await o[0].file;a.file=u;const{fields:p}=a;if(null==p)throw new s("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",p);p.push(new q({name:G,type:"oid",alias:G}));for(const s of p){const e=u.getColumnId(s.name);null!=e&&(this._indexMap[s.name]=e)}const c=new v(p.map(e=>e.toJSON()));this._fieldsIndex=c;const d=b(a.geometryType??"point");return this._metadata=N.createFeature({fieldsIndex:c.toJSON(),geometryType:d,hasZ:!1,hasM:!1,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:a.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:d,featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:a.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},this._fullExtent=r?.extent?r.extent:await this._tryDeriveParquetFullExtent(a),{capabilities:this._capabilities,layerDefinition:{fields:a.fields?.map(e=>e.toJSON()),drawingInfo:F(d),extent:this._fullExtent??void 0,geometryType:d,geometryEncoding:a.geometryEncoding?.toJSON(),displayOptimization:a.displayOptimization}}}destroy(){this._provider.destroy(),this._queue.destroy();for(const{handle:e}of this._streams.values())e.remove();this._streams.clear()}setCustomParameters(e){this._customParameters=e}getIndexMap(){return this._indexMap}async updateFileProvider(e){this._provider=I(e,this._provider.getGeometryInfo(),()=>this._customParameters)}async queryFeatures(e,t){this._validateQuery(e),ae(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,z):z,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&(e.returnGeometry=void 0);return(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){const r=await x(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!H(r))return this._getFeatureCount();r.outFields=void 0,r.returnGeometry=void 0;return(await this._enqueueQuery(r,t)).createQueryResponseForCount()}async queryObjectIds(e,t){const r=await x(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(r),!H(r))return Array.from({length:await this._getFeatureCount()},(e,t)=>t);r.resultRecordCount=r.resultRecordCount?Math.min(r.resultRecordCount,8e3):8e3,r.resultOffset=r.resultOffset??0,r.returnGeometry=void 0,r.outFields=void 0;return(await this._enqueueQuery(r,t)).items.map(e=>e.getObjectId())}async queryExtent(e,t){const s=await x(e,null,this._queryEngineParams.spatialReference);if(this._validateQuery(s),this._fullExtent&&!H(s))return{count:await this._getFeatureCount(),extent:this._fullExtent};const i=r(this._metadata.spatialReference);s.returnGeometry=!0,s.outFields=void 0;const a=p(c(),m),n=c(),o=await this._enqueueQuery(s,t);let u=0;for(const r of o.items)r.getBounds(n)&&(d(a,n),u+=1);return{count:u,extent:h(a,i,s.outSR?r(s.outSR):i.toJSON(),i,!1)}}async queryStream(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=await this._getCandidateFiles(e),s=new U(r,async(t,r)=>{const s=await t.file,i=await this._createParquetQuery(s,e);return s.executeQuery(i,r)}),i=this._streamIdCounter++,n=a(t.signal,e=>{const t=this._streams.get(i);null!=t&&(t.handle.remove(),this._streams.delete(i))});return this._streams.set(i,{stream:s,handle:n}),i}async getStreamNext(e,t){if(!t.signal)throw new Error("InternalError: AbortSignal must be passed");const r=this._streams.get(e);if(!r)return{result:null};const s=await r.stream.next(t.signal);if(null==s)return r.handle.remove(),this._streams.delete(e),{result:null};const i=s.chunk.serialize().buffer,a={fileId:s.fileId,buffer:i};return i instanceof ArrayBuffer?{result:a,transferList:[i]}:{result:a}}async createPatch(e,t,r,s,i){if(!i.signal)throw new Error("InternalError: AbortSignal must be passed");const a=await this._getFileInfoById(e),n=await a.file;return(await n.createChunkPatch(t,r,s,i.signal)).serialize().buffer}async _getCandidateFiles(e){const t=await this._provider.getFiles(),r=await this._getSpatialFilePruning(e);if(null==r)return t;const s=t.filter(e=>this._mayIncludeFileForSpatialPruning(e,r));return"xz"===r.type?$(s,r):s}async _getSpatialFilePruning(e){if("tile"!==e.type)return null;const t=this._displayOptimization,r=t?.index;if(null==r)return null;const s=e.outSpatialReference.wkid;if(null==r.wkid||null==s)return null;const i=r.wkid,a=await P();switch(r.type){case"xz":return{type:"xz",fieldName:r.code,intersects:(t,n)=>a.queryIntersectsXZStatistics(r.fullExtent,e.extent,s,i,W,t,n)};case"z":return{type:"xy",xFieldName:r.xColumn,yFieldName:r.yColumn,intersects:(t,r,n,o)=>a.queryIntersectsXYStatistics(e.extent,s,i,t,r,n,o)}}}_mayIncludeFileForSpatialPruning(e,t){switch(t.type){case"xz":{const r=X(e,t);return null==r||te(r,t)}case"xy":{const{xStatistics:r,yStatistics:s}=ee(e,t);return null==r||null==s||re(r,s,t)}}}async _tryDeriveParquetFullExtent(r){if(!r.spatialReference)return null;if(null==this._fullExtent&&"location"===r.geometryEncoding?.type){const i=await this._provider.getFiles(),{xField:a,yField:n}=r.geometryEncoding,o=p(c(),m);for(const r of i){const i=await r.file;for(const r of i.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,r.columnDescriptorForAttribute(a),!1),s=e(i,r.columnDescriptorForAttribute(n),!1),u=[t.minValue(),s.minValue(),t.maxValue(),s.maxValue()];f(o,u),r.free()}catch(s){i.error=s,i.hasError=!0}finally{t(i)}}}return{xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:r.spatialReference?.toJSON()}}return null}async _getFileInfoById(e){const t=await this._provider.getFiles();for(const r of t)if(r.id===e)return r;throw new Error(`InternalError: File ${e} does not exist`)}async _getFileStatistics(){return{featureCount:await this._getFeatureCount(),byteLength:await this._getByteLength()}}async _getFile(e){return(await this._getFileInfoById(e)).file}async _createParquetQuery(e,t){const r=(await P()).Query.new();return"tile"===t.type&&(r.setExtent(t.extent),r.setQuantizationTransform(t.transform),r.setScale(t.scale)),r.setOutFields(t.outFields.filter(e=>null!=this._indexMap[e])),r.setOutSpatialReference(t.outSpatialReference.wkid),r.setReturnGeometry(t.returnGeometry),t.where&&await this._setWhereClause(r,e,t.where),r}async _getFeatureCount(){return(await this._provider.getFiles()).map(e=>e.statistics.rowCount).reduce((e,t)=>e+t,0)}async _getByteLength(){return(await this._provider.getFiles()).map(e=>e.statistics.byteSize).reduce((e,t)=>e+t,0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new s("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new s("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new s("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async _setWhereClause(e,t,r){const i=this._indexMap,a=this._fieldsIndex,n={getAttribute(e,r){const s=t.readAttribute(e.rowGroup,e.row,i[r]);if(null==s)return null;const n=a.get(r);return"esriFieldTypeString"===n.type||"esriFieldTypeDateOnly"===n.type||"esriFieldTypeTimeOnly"===n.type||"esriFieldTypeTimestampOffset"===n.type?D.decode(s):s}},o=await u(r,this._fieldsIndex);if(!o.isStandardized)throw new s("sql-parse-error","expression is not standardized");const l=(e,t)=>o.testFeatureCompiled({rowGroup:e,row:t},n,null);e.setWhere(r),e.setWhereEvaluator(l),e.setWhereFields(o.fieldNames)}async*_fetchChunks(e,t){const r=await P(),s=await this._provider.getFiles();for(const i of s){const s=await i.file,a=r.Query.new();a.setOutFields(e.fields),a.setReturnGeometry(e.returnGeometry),e.where&&await this._setWhereClause(a,s,e.where);const o=await s.executeQuery(a),u=[],l=o.next(t);for(let e=0;e<B;e++)u.push(o.next(t));let p=await l;for(;null!=p;){n(t);const e=new A(this._metadata,this._indexMap,p,i.id),r=Y([new T(e,null,0,!1)],this._queryEngineParams),s=u.shift();u.push(o.next(t)),yield r,p=await s}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const r=await this._getReadParams(e);if(e.where=void 0,e.objectIds?.length){const r=new Map;for(const t of e.objectIds){const e=S(t),s=R(t);let i=r.get(e);i||(i=[],r.set(e,i)),i.push(s)}const s=[];for(const[i,a]of r.entries()){const r=await this._executeFileIdQuery(e,i,a,t);for(const e of r)s.push(e)}return new w(s,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:M,featureIdInfo:this._queryEngineParams.featureIdInfo})}let s=e.resultRecordCount??await this._getFeatureCount(),i=e.resultOffset??0;e.resultRecordCount=void 0,e.resultOffset=void 0;const a=[];for await(const n of this._fetchChunks(r,t)){const r=await n.executeQueryForOpaqueFeatures(e,t);if(r.length>i){const t=r.slice(i,Math.min(i+s,r.length));for(const e of t)a.push(e);if(i=0,s-=t.length,0===s)return new w(a,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:M,featureIdInfo:this._queryEngineParams.featureIdInfo})}else i-=r.length}return new w(a,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,hasM:!1,hasZ:!1,featureAdapter:M,featureIdInfo:this._queryEngineParams.featureIdInfo})}async _executeFileIdQuery(e,t,r,s){const i=await this._getReadParams(e),a=(await P()).Query.new();a.setOutFields(i.fields),a.setReturnGeometry(i.returnGeometry),a.setIds(new Uint32Array(r));const n=await this._getFile(t),o=await n.executeQuery(a,s);let u=await o.next(s),l=0;const p=[];for(;null!=u;){const e=new A(this._metadata,this._indexMap,u,t),r=new T(e,null,l++,!1);p.push(r),u=await o.next(s)}return Y(p,this._queryEngineParams).executeQueryForOpaqueFeatures(e,s)}async _getReadParams(e){const t=new Set;if(e.outStatistics)for(const r of e.outStatistics)null!=r.onStatisticField&&t.add(r.onStatisticField);if(e.outFields)for(const r of e.outFields)t.add(r);return{fields:(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._indexMap[e]),returnGeometry:!!e.returnGeometry||!!e.geometry,where:e.where}}}function H(e){for(const t in e){const r=t;switch(r){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"objectIds":case"historicMoment":case"where":return null!=e[r]}}return!1}function Y(e,t){const r=new j;for(const s of e)r.insert(s);return new y({...t,featureStore:r})}function X(e,t){return e.statistics.statistics.get(t.fieldName)??null}function $(e,t){return e.slice().sort((e,r)=>{const s=K(e,t),i=K(r,t);return s===i?0:s<i?-1:1})}function K(e,t){const r=X(e,t);if(null==r)return Number.POSITIVE_INFINITY;const s=se(r.minValue),i=se(r.maxValue);return null==s||null==i||i<s?Number.POSITIVE_INFINITY:i-s}function ee(e,t){return{xStatistics:e.statistics.statistics.get(t.xFieldName)??null,yStatistics:e.statistics.statistics.get(t.yFieldName)??null}}function te(e,t){const r=se(e.minValue),s=se(e.maxValue);return null==r||null==s||t.intersects(r,s)}function re(e,t,r){const s=se(e.minValue),i=se(e.maxValue),a=se(t.minValue),n=se(t.maxValue);return null==s||null==i||null==a||null==n||r.intersects(s,i,a,n)}function se(e){return"number"==typeof e&&Number.isFinite(e)?e:null}function ie(e){const t=e?.featureCount;let r=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(r=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{..._,maxRecordCount:z,supportsDistinct:r,supportsOrderBy:r,supportsStatistics:r,supportsSpatialAggregationStatistics:r,supportedSpatialAggregationStatistics:{envelope:r,centroid:r,convexHull:r}},queryAttributeBins:r?g:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function ae(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{L as default};
@@ -194,7 +194,7 @@ export abstract class BlendLayer {
194
194
  accessor blendMode: BlendMode;
195
195
  /**
196
196
  * Effect provides various filter functions that can be performed on the layer to achieve different visual effects similar to
197
- * how image filters work. This powerful capability allows you to apply [css filter-like](https://developer.mozilla.org/en-US/docs/Web/CSS/filter)
197
+ * how image filters work. This powerful capability allows you to apply [css filter-like](https://developer.mozilla.org/docs/Web/CSS/Reference/Properties/filter)
198
198
  * functions to layers to create custom visual effects to enhance the cartographic quality of your maps. This is done by applying the desired
199
199
  * effect to the layer's `effect` property as a string or an array of objects to set scale dependent effects.
200
200
  *
@@ -0,0 +1,161 @@
1
+ import type TimeSeriesInfo from "../support/TimeSeriesInfo.js";
2
+ import type { TimeSeriesInfoProperties } from "../support/TimeSeriesInfo.js";
3
+
4
+ export interface DataSeriesLayerProperties {
5
+ /**
6
+ * An array of objects that define data series configurations for the layer. A data series
7
+ * describes a series of fields that represent a sequence of related data points over time or other dimensions.
8
+ * Client applications can use the information in a data series info to generate expressions for renderers,
9
+ * labels, popups, charts, or for other representations of the data to display in the web map. These may be
10
+ * defined and referenced by name in client applications for use in various contexts.
11
+ *
12
+ * @default null
13
+ * @example
14
+ * layer.dataSeriesInfos = [{
15
+ * type: "time-series-fields",
16
+ * name: "ts0",
17
+ * title: "U.S. National Park Annual Visitation Numbers (10 year increments, 1910-2020)",
18
+ * fieldTimeMappings: [
19
+ * {
20
+ * fieldName: "F1910",
21
+ * timeValue: "1910"
22
+ * },
23
+ * {
24
+ * fieldName: "F1920",
25
+ * timeValue: "1920"
26
+ * },
27
+ * {
28
+ * fieldName: "F1930",
29
+ * timeValue: "1930"
30
+ * },
31
+ * {
32
+ * fieldName: "F1940",
33
+ * timeValue: "1940"
34
+ * },
35
+ * {
36
+ * fieldName: "F1950",
37
+ * timeValue: "1950"
38
+ * },
39
+ * {
40
+ * fieldName: "F1960",
41
+ * timeValue: "1960"
42
+ * },
43
+ * {
44
+ * fieldName: "F1970",
45
+ * timeValue: "1970"
46
+ * },
47
+ * {
48
+ * fieldName: "F1980",
49
+ * timeValue: "1980"
50
+ * },
51
+ * {
52
+ * fieldName: "F1990",
53
+ * timeValue: "1990"
54
+ * },
55
+ * {
56
+ * fieldName: "F2000",
57
+ * timeValue: "2000"
58
+ * },
59
+ * {
60
+ * fieldName: "F2010",
61
+ * timeValue: "2010"
62
+ * },
63
+ * {
64
+ * fieldName: "F2020",
65
+ * timeValue: "2020"
66
+ * }
67
+ * ],
68
+ * timeInterval: 1,
69
+ * timeValueUnits: "years",
70
+ * timeIntervalUnits: "decades",
71
+ * timeExtent: {
72
+ * start: new Date("1910-01-01"),
73
+ * end: new Date("2020-01-01")
74
+ * }
75
+ * }];
76
+ */
77
+ dataSeriesInfos?: TimeSeriesInfoProperties[] | null;
78
+ }
79
+
80
+ /**
81
+ * Mixin for layers that support data series configurations.
82
+ *
83
+ * @since 5.1
84
+ */
85
+ export abstract class DataSeriesLayer {
86
+ constructor(...args: any[]);
87
+ /**
88
+ * An array of objects that define data series configurations for the layer. A data series
89
+ * describes a series of fields that represent a sequence of related data points over time or other dimensions.
90
+ * Client applications can use the information in a data series info to generate expressions for renderers,
91
+ * labels, popups, charts, or for other representations of the data to display in the web map. These may be
92
+ * defined and referenced by name in client applications for use in various contexts.
93
+ *
94
+ * @default null
95
+ * @example
96
+ * layer.dataSeriesInfos = [{
97
+ * type: "time-series-fields",
98
+ * name: "ts0",
99
+ * title: "U.S. National Park Annual Visitation Numbers (10 year increments, 1910-2020)",
100
+ * fieldTimeMappings: [
101
+ * {
102
+ * fieldName: "F1910",
103
+ * timeValue: "1910"
104
+ * },
105
+ * {
106
+ * fieldName: "F1920",
107
+ * timeValue: "1920"
108
+ * },
109
+ * {
110
+ * fieldName: "F1930",
111
+ * timeValue: "1930"
112
+ * },
113
+ * {
114
+ * fieldName: "F1940",
115
+ * timeValue: "1940"
116
+ * },
117
+ * {
118
+ * fieldName: "F1950",
119
+ * timeValue: "1950"
120
+ * },
121
+ * {
122
+ * fieldName: "F1960",
123
+ * timeValue: "1960"
124
+ * },
125
+ * {
126
+ * fieldName: "F1970",
127
+ * timeValue: "1970"
128
+ * },
129
+ * {
130
+ * fieldName: "F1980",
131
+ * timeValue: "1980"
132
+ * },
133
+ * {
134
+ * fieldName: "F1990",
135
+ * timeValue: "1990"
136
+ * },
137
+ * {
138
+ * fieldName: "F2000",
139
+ * timeValue: "2000"
140
+ * },
141
+ * {
142
+ * fieldName: "F2010",
143
+ * timeValue: "2010"
144
+ * },
145
+ * {
146
+ * fieldName: "F2020",
147
+ * timeValue: "2020"
148
+ * }
149
+ * ],
150
+ * timeInterval: 1,
151
+ * timeValueUnits: "years",
152
+ * timeIntervalUnits: "decades",
153
+ * timeExtent: {
154
+ * start: new Date("1910-01-01"),
155
+ * end: new Date("2020-01-01")
156
+ * }
157
+ * }];
158
+ */
159
+ get dataSeriesInfos(): TimeSeriesInfo[] | null | undefined;
160
+ set dataSeriesInfos(value: TimeSeriesInfoProperties[] | null | undefined);
161
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{__decorate as e}from"tslib";import{property as r,subclass as o}from"../../core/accessorSupport/decorators.js";import{excludeTables as s}from"../../core/accessorSupport/layerContainerType.js";import t from"../support/TimeSeriesInfo.js";const i=i=>{const a=i;let n=class extends a{constructor(){super(...arguments),this.dataSeriesInfos=null}};return e([r({type:[t],json:{write:{enabled:!0,allowNull:!0,layerContainerTypes:s},origins:{"web-scene":{write:!1,read:!1}}}})],n.prototype,"dataSeriesInfos",void 0),n=e([o("esri.layers.mixins.DataSeriesLayer")],n),n};export{i as DataSeriesLayer};
@@ -147,8 +147,8 @@ export abstract class FeatureLayerBase {
147
147
  * @default false
148
148
  * @since 4.21
149
149
  * @see [ArcGIS REST API - New in 10.9](https://developers.arcgis.com/rest/services-reference/enterprise/layer-table/#new-in-109)
150
- * @see [What's new in ArcGIS Server](https://enterprise.arcgis.com/en/server/latest/get-started/windows/what-s-new-in-arcgis-for-server.htm)
151
- * @see [Edit map service settings](https://enterprise.arcgis.com/en/server/latest/publish-services/windows/edit-map-service-settings.htm#LI_A5825E4A9A3A42E991C662CD7B76A860)
150
+ * @see [What's new in ArcGIS Server](https://doc.esri.com/en/arcgis-enterprise/latest/introduction/what-s-new-in-arcgis-enterprise.html)
151
+ * @see [Edit map service settings](https://doc.esri.com/en/arcgis-enterprise/latest/administer/edit-map-service-settings.html#LI_A5825E4A9A3A42E991C662CD7B76A860)
152
152
  * @example
153
153
  * // Only download data for the year 2020.
154
154
  * // if the layer supports unknown time zone then create
@@ -296,7 +296,7 @@ export abstract class FeatureLayerBase {
296
296
  set fullExtent(value: ExtentProperties | null | undefined);
297
297
  /**
298
298
  * The version of the geodatabase of the feature service data. Read
299
- * the [Overview of versioning](https://pro.arcgis.com/en/pro-app/latest/help/data/geodatabases/overview/overview-of-versioning-in-arcgis-pro.htm) topic for more details
299
+ * the [Overview of versioning](https://doc.esri.com/en/arcgis-pro/latest/help/data/geodatabases/overview/overview-of-versioning-in-arcgis-pro.html) topic for more details
300
300
  * about this capability.
301
301
  */
302
302
  accessor gdbVersion: string | null | undefined;
@@ -329,17 +329,29 @@ export abstract class FeatureLayerBase {
329
329
  */
330
330
  accessor globalIdField: string | null | undefined;
331
331
  /**
332
- * Indicates whether the client-side features in the layer have `M` (measurement) values.
333
- * Use the `supportsM` property in the FeatureLayer's [capabilities.data](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#capabilities)
334
- * object to verify if `M` values are supported on [feature service](https://developers.arcgis.com/rest/services-reference/feature-service.htm) features.
332
+ * Indicates whether the layer has m aware geometries.
333
+ * Use the `supportsM` property in the layer's [DataCapabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/types/#DataCapabilities)
334
+ * to verify if m-values are supported by the layer.
335
+ *
336
+ * - When `true`: The layer has m aware features. M-values are part of the geometry.
337
+ * - When `false`: The layer does not have m aware features. M-values are not part of the geometry.
338
+ *
339
+ * @see [returnM](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#returnM) for details regarding fetching m-values with features from a layer
340
+ * @see [Linear referencing](https://pro.arcgis.com/en/pro-app/latest/help/data/linear-referencing/introduction-to-linear-referencing.htm)
335
341
  */
336
342
  accessor hasM: boolean;
337
343
  /**
338
- * Indicates whether the client-side features in the layer have `Z` (elevation) values.
339
- * Refer to [elevationInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#elevationInfo) for details regarding placement and rendering
340
- * of features with z-values in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
341
- * Use the `supportsZ` property in the FeatureLayer's [capabilities.data](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#capabilities)
342
- * object to verify if `Z` values are supported on [feature service](https://developers.arcgis.com/rest/services-reference/feature-service.htm) features.
344
+ * Indicates whether the layer has z aware geometries. Use the `supportsZ` property in the layer's [DataCapabilities](https://developers.arcgis.com/javascript/latest/references/core/layers/types/#DataCapabilities)
345
+ * to verify if z-values are supported by the layer.
346
+ *
347
+ * - When `true`: The layer has z aware features. Z-values are part of the geometry.
348
+ * - When `false`: The layer does not have z aware features. Z-values are not part of the geometry.
349
+ * > [!NOTE]
350
+ * > - Refer to [elevationInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#elevationInfo) for details regarding placement and rendering
351
+ * > of features with z-values in 3D [SceneViews](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
352
+ *
353
+ * @see [returnZ](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#returnZ) for details regarding fetching z-values with features from a layer
354
+ * @see [Point.z](https://developers.arcgis.com/javascript/latest/references/core/geometry/Point/#z) for more information on how z-values are represented in geometries
343
355
  */
344
356
  accessor hasZ: boolean;
345
357
  /**
@@ -452,17 +464,29 @@ export abstract class FeatureLayerBase {
452
464
  */
453
465
  get relationships(): Relationship[] | null | undefined;
454
466
  /**
455
- * When `true`, indicates that M values will be returned. When
456
- * `false`, indicates that M values will never be returned. The layer view
457
- * determines whether to include M values in feature queries when the
458
- * property value is `undefined`.
467
+ * Determines whether m-values (measure) are returned in feature geometries. For 2D views, support was added at version 5.1 and the behavior is as follows:
468
+ * - When `undefined` (default): Fetches m-values if they are needed for rendering or labeling, or layer property interacts with the geometry.
469
+ * Otherwise, m-values are excluded from feature queries.
470
+ * - When `true`: Fetches m-values with the geometry, ensuring they are available on the client.
471
+ * - When `false`: Excludes m-values from feature queries. M-values are not part of geometries.
472
+ *
473
+ * > [!WARNING]
474
+ * >
475
+ * > 3D views do not support m-values. They will not be fetched or returned in 3D scene queries, regardless of this setting.
476
+ *
477
+ * @see [FeatureLayerBase.hasM](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#hasM)
459
478
  */
460
479
  accessor returnM: boolean | null | undefined;
461
480
  /**
462
- * When `true`, indicates that z-values will always be returned. When
463
- * `false`, indicates that z-values will never be returned. The layer view
464
- * determines whether to include z-values in feature queries when the
465
- * property value is `undefined`.
481
+ * Determines whether z-values (elevation) are returned in feature geometries. For 3D views, z-values are always fetched regardless of the `returnZ` setting.
482
+ * For 2D views, support was added at version 5.1 and the behavior is as follows:
483
+ * - When `undefined` (default): Fetches z-values if they are needed for rendering or labeling, or layer property interacts with the geometry.
484
+ * Otherwise, z-values are excluded from feature queries.
485
+ * - When `true`: Fetches z-values with the geometry, ensuring they are available on the client.
486
+ * - When `false`: Excludes z-values from feature queries. Z-values are not part of geometries.
487
+ *
488
+ * @see [FeatureLayerBase.hasZ](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/FeatureLayerBase/#hasZ)
489
+ * @see [Geometry.hasZ](https://developers.arcgis.com/javascript/latest/references/core/geometry/Geometry/#hasZ)
466
490
  */
467
491
  accessor returnZ: boolean | null | undefined;
468
492
  /**
@@ -64,7 +64,8 @@ export interface TemporalLayerProperties extends Partial<Pick<TemporalLayer, "us
64
64
  * for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
65
65
  * time of layer initialization if it is being set for a
66
66
  * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
67
- * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/) or
67
+ * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
68
+ * [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/) or
68
69
  * [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
69
70
  * initialized from [client-side features](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#creating-a-featurelayer).
70
71
  * The [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is
@@ -201,7 +202,8 @@ export abstract class TemporalLayer {
201
202
  * for the layer. The `timeInfo` property, along with its `startField` and `endField` properties, must be set at the
202
203
  * time of layer initialization if it is being set for a
203
204
  * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
204
- * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/) or
205
+ * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
206
+ * [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/) or
205
207
  * [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
206
208
  * initialized from [client-side features](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#creating-a-featurelayer).
207
209
  * The [fullTimeExtent](https://developers.arcgis.com/javascript/latest/references/core/layers/support/TimeInfo/#fullTimeExtent) for `timeInfo` is