@arcgis/core 4.33.0-next.20250516 → 4.33.0-next.20250518

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 (411) hide show
  1. package/applications/Components/QuantityFormatter.d.ts +4 -0
  2. package/applications/Components/QuantityFormatter.js +5 -0
  3. package/arcade/ArcadeDate.js +1 -1
  4. package/arcade/enum.js +5 -0
  5. package/arcade/featureset/actions/GroupBy.js +1 -1
  6. package/arcade/functions/convertdirection.js +1 -1
  7. package/arcade/functions/date.js +1 -1
  8. package/arcade/functions/featuresetbase.js +1 -1
  9. package/arcade/functions/geomasync.js +1 -1
  10. package/arcade/functions/geomsync.js +1 -1
  11. package/arcade/functions/string.js +1 -1
  12. package/arcade/geometry/functions.js +1 -1
  13. package/arcade/geometry/unitConversion.js +1 -1
  14. package/assets/esri/core/workers/RemoteClient.js +1 -1
  15. package/assets/esri/core/workers/chunks/{0fd6d80393722132e044.js → 0229c573fa8a2fff2d8b.js} +2 -2
  16. package/assets/esri/core/workers/chunks/{612f6739c9399fbae4d0.js → 094e8aae6dada24c8115.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{ffaa977cd97a2b7190c5.js → 0c2dccec20c0994366fe.js} +1 -1
  18. package/assets/esri/core/workers/chunks/151d6354e7bc105b25c0.js +346 -0
  19. package/assets/esri/core/workers/chunks/1cf0fae3f2e848a2a738.js +1 -0
  20. package/assets/esri/core/workers/chunks/24327d01cb2c5c55a4b7.js +1 -0
  21. package/assets/esri/core/workers/chunks/{1a010d877b8428e755fb.js → 2841888fdbc2770e90c8.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{7e1dc8e5e18f18dd21e2.js → 29fb64826bb1351aca8d.js} +2 -2
  23. package/assets/esri/core/workers/chunks/{4e0d2458f4d7a35bb97c.js → 2ce5cc797ae0d66c8678.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{9d564f79b82d427fc1da.js → 2fd30428309f4c517d4c.js} +1 -1
  25. package/assets/esri/core/workers/chunks/3ca6f893fd58f5b17af5.js +1 -0
  26. package/assets/esri/core/workers/chunks/{52d160cb7921ae7a4f57.js → 3fc44d8cef392b4b9c7a.js} +1 -1
  27. package/assets/esri/core/workers/chunks/417293f00b2c21cc3175.js +1 -0
  28. package/assets/esri/core/workers/chunks/{4cb199b547e5b97e65fb.js → 48cedef1c926d11164b7.js} +1 -1
  29. package/assets/esri/core/workers/chunks/{563594357f3648652a5c.js → 4b21c4815533a43835c3.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{921c040d0497031fd8ff.js → 54da9c7fd1088a8076ce.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{ab9614555a15f04396f6.js → 54f981fe0f8851767be9.js} +2 -2
  32. package/assets/esri/core/workers/chunks/{28d9e2ffc3059a55311e.js → 59f701c30bcd9088b291.js} +1 -1
  33. package/assets/esri/core/workers/chunks/5d50a8d0427eab0a2514.js +1 -0
  34. package/assets/esri/core/workers/chunks/5f4ca51b82daf0e51010.js +1 -0
  35. package/assets/esri/core/workers/chunks/{05c80002c37002ac99e8.js → 5f6719286a6c9a3ac74b.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{a09b5700c92bb76c3234.js → 638ecabe3e22978af5a3.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{9fff43ffcd5602ccc50f.js → 649caffe8f5dbaad0d7b.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{4480e4b61affb3b2e9d6.js → 6648e68f00d28e12bcf9.js} +1 -1
  39. package/assets/esri/core/workers/chunks/66a1b92358344dd28ee1.js +1 -0
  40. package/assets/esri/core/workers/chunks/{b92a34f88569c481ed10.js → 67338948e470c1251d8a.js} +3 -3
  41. package/assets/esri/core/workers/chunks/{a8d043b73e087bee7c40.js → 67c5f1112a7c65e9eeff.js} +1 -1
  42. package/assets/esri/core/workers/chunks/6a225393b63e1e8c7933.js +1 -0
  43. package/assets/esri/core/workers/chunks/6c29a768f02dc7ce0ed6.js +1 -0
  44. package/assets/esri/core/workers/chunks/{fbd2f45d5adce4ca323f.js → 73ddb356121add556994.js} +2 -2
  45. package/assets/esri/core/workers/chunks/{a6ca68ef6311ffc365b2.js → 73e179b04bb931ca9b86.js} +1 -1
  46. package/assets/esri/core/workers/chunks/7678177555570682154e.js +1 -0
  47. package/assets/esri/core/workers/chunks/7b9d14cc4a466ef18d71.js +1 -0
  48. package/assets/esri/core/workers/chunks/7e6141b5baae47682f97.js +1 -0
  49. package/assets/esri/core/workers/chunks/{257db39a1ba1a11ebfb4.js → 8365707e408d19988356.js} +1 -1
  50. package/assets/esri/core/workers/chunks/8a2cee726b7843c7408a.js +1 -0
  51. package/assets/esri/core/workers/chunks/{b1e275607d9754079f60.js → 8eadf90d938753691044.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{ff4e7da880b206fd98ec.js → 9049c81445cc044286f1.js} +1 -1
  53. package/assets/esri/core/workers/chunks/9588328d4ed6b0f04166.js +2 -0
  54. package/assets/esri/core/workers/chunks/{dcf5719f38ad40b92941.js → 9826a1c66885dbbdc130.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{4954e0cf4a40e45d237f.js → 9c8e66da6cf32ace0914.js} +1 -1
  56. package/assets/esri/core/workers/chunks/9cac00d4bfac14aaae12.js +1 -0
  57. package/assets/esri/core/workers/chunks/{d60da671aba70485050e.js → 9f18392933c06f1d63b6.js} +1 -1
  58. package/assets/esri/core/workers/chunks/{c3b2b05996e2008adbe3.js → a9f16323666042a9d47f.js} +1 -1
  59. package/assets/esri/core/workers/chunks/aad9a693813b47a51530.js +2 -0
  60. package/assets/esri/core/workers/chunks/{654fe135d41af81daa13.js → be1f3cac908c28c64401.js} +1 -1
  61. package/assets/esri/core/workers/chunks/bf4d9cdcbe6bb8bc9d39.js +1 -0
  62. package/assets/esri/core/workers/chunks/{d49518eb4b351afc5f00.js → ca3851ca2621879eb887.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{56db71ea7eb8a5652d98.js → ca62e7ec102a1bb879dc.js} +1 -1
  64. package/assets/esri/core/workers/chunks/cb16ba9512ae0a09c55d.js +1 -0
  65. package/assets/esri/core/workers/chunks/{8c1242ffd48b3ef800fa.js → d103e184ddf9beec779d.js} +1 -1
  66. package/assets/esri/core/workers/chunks/d3d98ea5b5e56fc60a31.js +1 -0
  67. package/assets/esri/core/workers/chunks/{5719471414810b6a9aec.js → d9d9180689bcf71af00f.js} +1 -1
  68. package/assets/esri/core/workers/chunks/{dcaeb57c69d432118604.js → db13c93b4d708a2481db.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{2c3bfa75286376388806.js → db192728fa0ee08a776a.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{40b8e53c8b1c447eff7e.js → e2d012078d51dc2b2802.js} +1 -1
  71. package/assets/esri/core/workers/chunks/e385a27fd1ac2123a05f.js +1 -0
  72. package/assets/esri/core/workers/chunks/{e85f892ea44d67d53ff0.js → f3b51aa0a1a8fc3b231c.js} +2 -2
  73. package/assets/esri/core/workers/chunks/f74f8ed3f17713a208c3.js +1 -0
  74. package/assets/esri/core/workers/chunks/f9567108862629f25c8b.js +1 -0
  75. package/assets/esri/core/workers/chunks/fa99abc572b382e7e0c7.js +1 -0
  76. package/assets/esri/themes/base/widgets/_Directions.scss +74 -0
  77. package/assets/esri/themes/dark/main.css +1 -1
  78. package/assets/esri/themes/light/main.css +1 -1
  79. package/assets/esri/themes/light/view.css +1 -1
  80. package/assets/esri/widgets/Directions/t9n/Directions.json +1 -1
  81. package/assets/esri/widgets/Directions/t9n/Directions_ar.json +1 -1
  82. package/assets/esri/widgets/Directions/t9n/Directions_bg.json +1 -1
  83. package/assets/esri/widgets/Directions/t9n/Directions_bs.json +1 -1
  84. package/assets/esri/widgets/Directions/t9n/Directions_ca.json +1 -1
  85. package/assets/esri/widgets/Directions/t9n/Directions_cs.json +1 -1
  86. package/assets/esri/widgets/Directions/t9n/Directions_da.json +1 -1
  87. package/assets/esri/widgets/Directions/t9n/Directions_de.json +1 -1
  88. package/assets/esri/widgets/Directions/t9n/Directions_el.json +1 -1
  89. package/assets/esri/widgets/Directions/t9n/Directions_en.json +1 -1
  90. package/assets/esri/widgets/Directions/t9n/Directions_es.json +1 -1
  91. package/assets/esri/widgets/Directions/t9n/Directions_et.json +1 -1
  92. package/assets/esri/widgets/Directions/t9n/Directions_fi.json +1 -1
  93. package/assets/esri/widgets/Directions/t9n/Directions_fr.json +1 -1
  94. package/assets/esri/widgets/Directions/t9n/Directions_he.json +1 -1
  95. package/assets/esri/widgets/Directions/t9n/Directions_hr.json +1 -1
  96. package/assets/esri/widgets/Directions/t9n/Directions_hu.json +1 -1
  97. package/assets/esri/widgets/Directions/t9n/Directions_id.json +1 -1
  98. package/assets/esri/widgets/Directions/t9n/Directions_it.json +1 -1
  99. package/assets/esri/widgets/Directions/t9n/Directions_ja.json +1 -1
  100. package/assets/esri/widgets/Directions/t9n/Directions_ko.json +1 -1
  101. package/assets/esri/widgets/Directions/t9n/Directions_lt.json +1 -1
  102. package/assets/esri/widgets/Directions/t9n/Directions_lv.json +1 -1
  103. package/assets/esri/widgets/Directions/t9n/Directions_nl.json +1 -1
  104. package/assets/esri/widgets/Directions/t9n/Directions_no.json +1 -1
  105. package/assets/esri/widgets/Directions/t9n/Directions_pl.json +1 -1
  106. package/assets/esri/widgets/Directions/t9n/Directions_pt-BR.json +1 -1
  107. package/assets/esri/widgets/Directions/t9n/Directions_pt-PT.json +1 -1
  108. package/assets/esri/widgets/Directions/t9n/Directions_ro.json +1 -1
  109. package/assets/esri/widgets/Directions/t9n/Directions_ru.json +1 -1
  110. package/assets/esri/widgets/Directions/t9n/Directions_sk.json +1 -1
  111. package/assets/esri/widgets/Directions/t9n/Directions_sl.json +1 -1
  112. package/assets/esri/widgets/Directions/t9n/Directions_sr.json +1 -1
  113. package/assets/esri/widgets/Directions/t9n/Directions_sv.json +1 -1
  114. package/assets/esri/widgets/Directions/t9n/Directions_th.json +1 -1
  115. package/assets/esri/widgets/Directions/t9n/Directions_tr.json +1 -1
  116. package/assets/esri/widgets/Directions/t9n/Directions_uk.json +1 -1
  117. package/assets/esri/widgets/Directions/t9n/Directions_vi.json +1 -1
  118. package/assets/esri/widgets/Directions/t9n/Directions_zh-CN.json +1 -1
  119. package/assets/esri/widgets/Directions/t9n/Directions_zh-HK.json +1 -1
  120. package/assets/esri/widgets/Directions/t9n/Directions_zh-TW.json +1 -1
  121. package/assets/esri/widgets/Search/t9n/Search_ar.json +1 -1
  122. package/assets/esri/widgets/Search/t9n/Search_bg.json +1 -1
  123. package/assets/esri/widgets/Search/t9n/Search_bs.json +1 -1
  124. package/assets/esri/widgets/Search/t9n/Search_ca.json +1 -1
  125. package/assets/esri/widgets/Search/t9n/Search_cs.json +1 -1
  126. package/assets/esri/widgets/Search/t9n/Search_da.json +1 -1
  127. package/assets/esri/widgets/Search/t9n/Search_de.json +1 -1
  128. package/assets/esri/widgets/Search/t9n/Search_el.json +1 -1
  129. package/assets/esri/widgets/Search/t9n/Search_es.json +1 -1
  130. package/assets/esri/widgets/Search/t9n/Search_et.json +1 -1
  131. package/assets/esri/widgets/Search/t9n/Search_fi.json +1 -1
  132. package/assets/esri/widgets/Search/t9n/Search_fr.json +1 -1
  133. package/assets/esri/widgets/Search/t9n/Search_he.json +1 -1
  134. package/assets/esri/widgets/Search/t9n/Search_hr.json +1 -1
  135. package/assets/esri/widgets/Search/t9n/Search_hu.json +1 -1
  136. package/assets/esri/widgets/Search/t9n/Search_id.json +1 -1
  137. package/assets/esri/widgets/Search/t9n/Search_it.json +1 -1
  138. package/assets/esri/widgets/Search/t9n/Search_ja.json +1 -1
  139. package/assets/esri/widgets/Search/t9n/Search_ko.json +1 -1
  140. package/assets/esri/widgets/Search/t9n/Search_lt.json +1 -1
  141. package/assets/esri/widgets/Search/t9n/Search_lv.json +1 -1
  142. package/assets/esri/widgets/Search/t9n/Search_nl.json +1 -1
  143. package/assets/esri/widgets/Search/t9n/Search_no.json +1 -1
  144. package/assets/esri/widgets/Search/t9n/Search_pl.json +1 -1
  145. package/assets/esri/widgets/Search/t9n/Search_pt-BR.json +1 -1
  146. package/assets/esri/widgets/Search/t9n/Search_pt-PT.json +1 -1
  147. package/assets/esri/widgets/Search/t9n/Search_ro.json +1 -1
  148. package/assets/esri/widgets/Search/t9n/Search_ru.json +1 -1
  149. package/assets/esri/widgets/Search/t9n/Search_sk.json +1 -1
  150. package/assets/esri/widgets/Search/t9n/Search_sl.json +1 -1
  151. package/assets/esri/widgets/Search/t9n/Search_sr.json +1 -1
  152. package/assets/esri/widgets/Search/t9n/Search_sv.json +1 -1
  153. package/assets/esri/widgets/Search/t9n/Search_th.json +1 -1
  154. package/assets/esri/widgets/Search/t9n/Search_tr.json +1 -1
  155. package/assets/esri/widgets/Search/t9n/Search_uk.json +1 -1
  156. package/assets/esri/widgets/Search/t9n/Search_vi.json +1 -1
  157. package/assets/esri/widgets/Search/t9n/Search_zh-CN.json +1 -1
  158. package/assets/esri/widgets/Search/t9n/Search_zh-HK.json +1 -1
  159. package/assets/esri/widgets/Search/t9n/Search_zh-TW.json +1 -1
  160. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_ar.json +1 -0
  161. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_bg.json +1 -0
  162. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_bs.json +1 -0
  163. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_ca.json +1 -0
  164. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_cs.json +1 -0
  165. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_da.json +1 -0
  166. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_de.json +1 -0
  167. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_el.json +1 -0
  168. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_es.json +1 -0
  169. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_et.json +1 -0
  170. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_fi.json +1 -0
  171. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_fr.json +1 -0
  172. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_he.json +1 -0
  173. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_hr.json +1 -0
  174. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_hu.json +1 -0
  175. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_id.json +1 -0
  176. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_it.json +1 -0
  177. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_ja.json +1 -0
  178. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_ko.json +1 -0
  179. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_lt.json +1 -0
  180. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_lv.json +1 -0
  181. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_nl.json +1 -0
  182. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_no.json +1 -0
  183. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_pl.json +1 -0
  184. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_pt-BR.json +1 -0
  185. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_pt-PT.json +1 -0
  186. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_ro.json +1 -0
  187. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_ru.json +1 -0
  188. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_sk.json +1 -0
  189. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_sl.json +1 -0
  190. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_sr.json +1 -0
  191. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_sv.json +1 -0
  192. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_th.json +1 -0
  193. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_tr.json +1 -0
  194. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_uk.json +1 -0
  195. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_vi.json +1 -0
  196. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_zh-CN.json +1 -0
  197. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_zh-HK.json +1 -0
  198. package/assets/esri/widgets/support/FilterBuilder/t9n/FilterBuilder_zh-TW.json +1 -0
  199. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_ar.json +1 -0
  200. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_bg.json +1 -0
  201. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_bs.json +1 -0
  202. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_ca.json +1 -0
  203. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_cs.json +1 -0
  204. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_da.json +1 -0
  205. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_de.json +1 -0
  206. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_el.json +1 -0
  207. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_es.json +1 -0
  208. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_et.json +1 -0
  209. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_fi.json +1 -0
  210. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_fr.json +1 -0
  211. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_he.json +1 -0
  212. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_hr.json +1 -0
  213. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_hu.json +1 -0
  214. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_id.json +1 -0
  215. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_it.json +1 -0
  216. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_ja.json +1 -0
  217. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_ko.json +1 -0
  218. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_lt.json +1 -0
  219. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_lv.json +1 -0
  220. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_nl.json +1 -0
  221. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_no.json +1 -0
  222. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_pl.json +1 -0
  223. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_pt-BR.json +1 -0
  224. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_pt-PT.json +1 -0
  225. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_ro.json +1 -0
  226. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_ru.json +1 -0
  227. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_sk.json +1 -0
  228. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_sl.json +1 -0
  229. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_sr.json +1 -0
  230. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_sv.json +1 -0
  231. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_th.json +1 -0
  232. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_tr.json +1 -0
  233. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_uk.json +1 -0
  234. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_vi.json +1 -0
  235. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_zh-CN.json +1 -0
  236. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_zh-HK.json +1 -0
  237. package/assets/esri/widgets/support/FilterCondition/t9n/FilterCondition_zh-TW.json +1 -0
  238. package/chunks/Bufferer-Dw9Qi4T1.js +5 -0
  239. package/chunks/Distance2DCalculator-CXhBP-8I.js +5 -0
  240. package/chunks/Envelope.js +1 -1
  241. package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +5 -0
  242. package/chunks/Geometry.js +1 -1
  243. package/chunks/MultiPathImpl.js +5 -0
  244. package/chunks/OperatorClip.js +1 -1
  245. package/chunks/OperatorCut.js +1 -1
  246. package/chunks/OperatorDensify.js +1 -1
  247. package/chunks/OperatorGeneralize.js +1 -1
  248. package/chunks/OperatorGeodesicBuffer.js +1 -1
  249. package/chunks/OperatorGeodeticArea.js +1 -1
  250. package/chunks/OperatorGeodeticDistance.js +1 -1
  251. package/chunks/OperatorGeodeticLength.js +1 -1
  252. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  253. package/chunks/OperatorProximityGeodesic.js +1 -1
  254. package/chunks/OperatorShapePreservingLength.js +1 -1
  255. package/chunks/OperatorShapePreservingProject.js +1 -1
  256. package/chunks/Point2D.js +1 -1
  257. package/chunks/ProjectionTransformation.js +1 -1
  258. package/chunks/distanceOperator.js +1 -1
  259. package/geometry/operators/extendOperator.js +1 -1
  260. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  261. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  262. package/geometry/operators/gx/operatorBoundary.js +1 -1
  263. package/geometry/operators/gx/operatorBuffer.js +1 -1
  264. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  265. package/geometry/operators/gx/operatorDifference.js +1 -1
  266. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  267. package/geometry/operators/gx/operatorIntegrate.js +1 -1
  268. package/geometry/operators/gx/operatorIntersection.js +1 -1
  269. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  270. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  271. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  272. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  273. package/geometry/operators/gx/operatorOffset.js +1 -1
  274. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  275. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  276. package/geometry/operators/gx/operatorSimplify.js +1 -1
  277. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  278. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  279. package/geometry/operators/gx/operatorUnion.js +1 -1
  280. package/geometry/operators/isNearOperator.js +1 -1
  281. package/geometry/operators/reshapeOperator.js +1 -1
  282. package/geometry/operators/support/apiConverter.js +1 -1
  283. package/geometry/operators/support/initNoPeFactory.js +1 -1
  284. package/geometry/operators/support/jsonConverter.js +1 -1
  285. package/geometry.js +1 -1
  286. package/interfaces.d.ts +68 -11
  287. package/layers/KnowledgeGraphLayer.js +1 -1
  288. package/layers/LinkChartLayer.js +1 -1
  289. package/layers/graphics/sources/support/QueryTask.js +1 -1
  290. package/package.json +1 -1
  291. package/pointCloudRenderers.js +1 -1
  292. package/rasterRenderers.js +1 -1
  293. package/renderers.js +1 -1
  294. package/rest/query/executeForCount.js +1 -1
  295. package/support/revision.js +1 -1
  296. package/symbols.js +1 -1
  297. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  298. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementController.js +1 -1
  299. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  300. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  301. package/views/3d/analysis/Dimension/DimensionController.js +1 -1
  302. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  303. package/views/3d/analysis/DimensionAnalysisView3D.js +1 -1
  304. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
  305. package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
  306. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  307. package/views/3d/analysis/support/measurementUtils.js +1 -1
  308. package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
  309. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  310. package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
  311. package/views/3d/interactive/editingTools/reshape/ReshapeTool3D.js +1 -1
  312. package/views/3d/interactive/editingTools/reshape/reshapeTooltipUtils3D.js +1 -1
  313. package/views/3d/interactive/editingTools/transform/ExtentTransformTool.js +1 -1
  314. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentMove.js +1 -1
  315. package/views/3d/interactive/editingTools/transform/extentTransform/ExtentScale.js +1 -1
  316. package/views/3d/interactive/editingTools/transform/extentTransform/extentUtils.js +1 -1
  317. package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
  318. package/views/3d/layers/DimensionLayerView3D.js +1 -1
  319. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  320. package/views/3d/layers/GraphicsLayerView3D.js +1 -1
  321. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  322. package/views/3d/layers/LineOfSightLayerView3D.js +1 -1
  323. package/views/3d/layers/RouteLayerView3D.js +1 -1
  324. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  325. package/views/3d/layers/ViewshedLayerView3D.js +1 -1
  326. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  327. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  328. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  329. package/views/3d/layers/graphics/Labeler.js +1 -1
  330. package/views/3d/layers/support/LayerViewAnalysisViewManager.js +1 -1
  331. package/views/3d/layers/support/MediaLayerInteraction.js +1 -1
  332. package/views/3d/terrain/TerrainRenderer.js +1 -1
  333. package/views/3d/terrain/TerrainSurface.js +1 -1
  334. package/views/LinkChartView.js +1 -1
  335. package/views/draw/DrawAction.js +1 -1
  336. package/views/draw/DrawGraphicTool.js +1 -1
  337. package/views/draw/DrawOperation.js +1 -1
  338. package/views/draw/DrawScreenTool.js +1 -1
  339. package/views/draw/DrawTool.js +1 -1
  340. package/views/draw/PointDrawAction.js +1 -1
  341. package/views/draw/PolygonDrawAction.js +1 -1
  342. package/views/draw/PolylineDrawAction.js +1 -1
  343. package/views/draw/SegmentDrawAction.js +1 -1
  344. package/views/draw/support/Box.js +1 -1
  345. package/views/draw/support/Reshape.js +1 -1
  346. package/views/draw/support/reshapeTooltipUtils.js +1 -1
  347. package/views/draw/support/tooltipUtils.js +1 -1
  348. package/views/interactive/SegmentLabels.js +1 -1
  349. package/views/interactive/coordinateHelper.js +1 -1
  350. package/views/interactive/snapping/LineSnapper.js +1 -1
  351. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  352. package/views/interactive/snapping/SelfSnappingEngine.js +1 -1
  353. package/views/interactive/snapping/SnappingManager.js +1 -1
  354. package/views/support/automaticAreaMeasurementUtils.js +1 -1
  355. package/views/support/automaticLengthMeasurementUtils.js +1 -1
  356. package/views/support/extentUtils.js +1 -1
  357. package/views/support/geodesicAreaMeasurementUtils.js +1 -1
  358. package/views/support/geodesicLengthMeasurementUtils.js +1 -1
  359. package/views/support/geodesicMeasurementUtils.js +1 -1
  360. package/views/support/layerViewUtils.js +1 -1
  361. package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
  362. package/widgets/BasemapLayerList.js +1 -1
  363. package/widgets/CatalogLayerList.js +1 -1
  364. package/widgets/Directions/css.js +1 -1
  365. package/widgets/Directions.js +1 -1
  366. package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
  367. package/widgets/Editor/EditorViewModel.js +1 -1
  368. package/widgets/Editor/UpdateFeaturesWorkflow.d.ts +1 -1
  369. package/widgets/Editor/UpdateFeaturesWorkflow.js +1 -1
  370. package/widgets/Editor/UpdateFeaturesWorkflowData.d.ts +1 -1
  371. package/widgets/Editor/UpdateFeaturesWorkflowData.js +1 -1
  372. package/widgets/ElevationProfile/support/geometryUtils.js +1 -1
  373. package/widgets/LayerList.js +1 -1
  374. package/widgets/Sketch/SketchViewModel.js +1 -1
  375. package/widgets/TableList.js +1 -1
  376. package/widgets/support/GridControls/GridControlsViewModel.js +1 -1
  377. package/widgets/support/Selector2D/SelectionOperation.js +1 -1
  378. package/assets/esri/core/workers/chunks/009730713ed9bc7c7388.js +0 -1
  379. package/assets/esri/core/workers/chunks/0817ddd885ce8b2459cb.js +0 -1
  380. package/assets/esri/core/workers/chunks/0cce3770591b0730cf22.js +0 -1
  381. package/assets/esri/core/workers/chunks/1991f0d0f0a12175f849.js +0 -1
  382. package/assets/esri/core/workers/chunks/19c50f052eba0553bf4d.js +0 -1
  383. package/assets/esri/core/workers/chunks/1f194ffea16cc6595ecc.js +0 -1
  384. package/assets/esri/core/workers/chunks/320e821af81138fe12ac.js +0 -1
  385. package/assets/esri/core/workers/chunks/394b9723d108cff7136e.js +0 -1
  386. package/assets/esri/core/workers/chunks/4a362a35bcdb8405a53a.js +0 -1
  387. package/assets/esri/core/workers/chunks/52a3d0e041717da7697e.js +0 -1
  388. package/assets/esri/core/workers/chunks/5f766bcb751d66fbf1c8.js +0 -1
  389. package/assets/esri/core/workers/chunks/a70a86ba4e487f62f683.js +0 -346
  390. package/assets/esri/core/workers/chunks/aeb5bbe861f65544d504.js +0 -1
  391. package/assets/esri/core/workers/chunks/b52b28a6f422b10ff166.js +0 -1
  392. package/assets/esri/core/workers/chunks/c07c1bb7ae09136dc1f6.js +0 -1
  393. package/assets/esri/core/workers/chunks/cbbca011f8b176d4b5db.js +0 -1
  394. package/assets/esri/core/workers/chunks/cd5c380196db7fb55242.js +0 -1
  395. package/assets/esri/core/workers/chunks/ce321fd8fc5551e190ec.js +0 -1
  396. package/assets/esri/core/workers/chunks/ce53ddda04e09ba2f860.js +0 -1
  397. package/assets/esri/core/workers/chunks/d6ab65ad864782c50705.js +0 -1
  398. package/assets/esri/core/workers/chunks/da3c62a851a4332f6dda.js +0 -1
  399. package/assets/esri/core/workers/chunks/db3f710d770adf631b28.js +0 -2
  400. package/assets/esri/core/workers/chunks/f4c6ea630cecf0f260d7.js +0 -2
  401. package/chunks/Bufferer-CicaNej1.js +0 -5
  402. package/chunks/Distance2DCalculator-C1KHhZwD.js +0 -5
  403. package/chunks/GeodeticDistanceCalculator-CcF1gMZX.js +0 -5
  404. package/chunks/QuadraticBezier.js +0 -5
  405. /package/assets/esri/core/workers/chunks/{0fd6d80393722132e044.js.LICENSE.txt → 0229c573fa8a2fff2d8b.js.LICENSE.txt} +0 -0
  406. /package/assets/esri/core/workers/chunks/{7e1dc8e5e18f18dd21e2.js.LICENSE.txt → 29fb64826bb1351aca8d.js.LICENSE.txt} +0 -0
  407. /package/assets/esri/core/workers/chunks/{ab9614555a15f04396f6.js.LICENSE.txt → 54f981fe0f8851767be9.js.LICENSE.txt} +0 -0
  408. /package/assets/esri/core/workers/chunks/{fbd2f45d5adce4ca323f.js.LICENSE.txt → 73ddb356121add556994.js.LICENSE.txt} +0 -0
  409. /package/assets/esri/core/workers/chunks/{db3f710d770adf631b28.js.LICENSE.txt → 9588328d4ed6b0f04166.js.LICENSE.txt} +0 -0
  410. /package/assets/esri/core/workers/chunks/{f4c6ea630cecf0f260d7.js.LICENSE.txt → aad9a693813b47a51530.js.LICENSE.txt} +0 -0
  411. /package/assets/esri/core/workers/chunks/{e85f892ea44d67d53ff0.js.LICENSE.txt → f3b51aa0a1a8fc3b231c.js.LICENSE.txt} +0 -0
@@ -0,0 +1,4 @@
1
+ import "../../interfaces";
2
+
3
+ import QuantityFormatter = __esri.QuantityFormatter;
4
+ export default QuantityFormatter;
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{_ as s}from"../../chunks/tslib.es6.js";import"../../intl.js";import e from"../../core/Accessor.js";import{createTask as t}from"../../core/asyncUtils.js";import{formatLength as r,formatVerticalLength as o,formatArea as a,formatDecimal as i}from"../../core/quantityFormatUtils.js";import{property as m}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as n}from"../../core/accessorSupport/decorators/subclass.js";import{onLocaleChange as c}from"../../intl/locale.js";import{fetchMessageBundle as p}from"../../intl/messages.js";let g=class extends e{constructor(){super()}initialize(){this.addHandles(c((()=>this._load()))),this._load()}destroy(){this._messagesTask.abort()}async when(){await this._messagesTask.promise}_load(){return this._messagesTask.abort(),this._messagesTask=t((()=>p("esri/core/t9n/Units"))),this._messagesTask.promise}get _messages(){return this._messagesTask.value}formatLength(s,e,t){return this._messages?r(this._messages,s,s.unit,e,t):""}formatVerticalLength(s,e,t){return this._messages?o(this._messages,s,s.unit,e,t):""}formatArea(s,e,t){return this._messages?a(this._messages,s,s.unit,e,t):""}formatDecimal(s,e,t){return this._messages?i(this._messages,s,s.unit,e,t):""}};s([m()],g.prototype,"_messagesTask",void 0),s([m()],g.prototype,"_messages",null),g=s([n("esri.applications.Components.QuantityFormatter")],g);const l=g;export{l as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{replace as e}from"../core/string.js";import{UnknownTimeZone as t}from"../core/sql/UnknownTimeZone.js";import{DateTime as n,Zone as r,FixedOffsetZone as s,IANAZone as i}from"luxon";var o;!function(e){e.TimeZoneNotRecognized="TimeZoneNotRecognized"}(o||(o={}));const a={[o.TimeZoneNotRecognized]:"Timezone identifier has not been recognized."};class d extends Error{constructor(t,n){super(e(a[t],n)),this.declaredRootClass="esri.arcade.arcadedate.dateerror",Error.captureStackTrace&&Error.captureStackTrace(this,d)}}function u(e,t,n){return e<t?e-t:e>n?e-n:0}function c(e,t,n){return e<t?t:e>n?n:e}class m{constructor(e){this._date=e,this.declaredRootClass="esri.arcade.arcadedate"}static fromParts(e=0,t=1,r=1,s=0,i=0,o=0,a=0,d){if(isNaN(e)||isNaN(t)||isNaN(r)||isNaN(s)||isNaN(i)||isNaN(o)||isNaN(a))return null;const l=n.local(e,t).daysInMonth;let f=n.fromObject({day:c(r,1,l),year:e,month:c(t,1,12),hour:c(s,0,23),minute:c(i,0,59),second:c(o,0,59),millisecond:c(a,0,999)},{zone:h(d)});return f=f.plus({months:u(t,1,12),days:u(r,1,l),hours:u(s,0,23),minutes:u(i,0,59),seconds:u(o,0,59),milliseconds:u(a,0,999)}),new m(f)}static get systemTimeZoneCanonicalName(){return Intl.DateTimeFormat().resolvedOptions().timeZone??"system"}static arcadeDateAndZoneToArcadeDate(e,n){const r=h(n);return e.isUnknownTimeZone||r===t.instance?m.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,r):new m(e._date.setZone(r))}static dateJSToArcadeDate(e){return new m(n.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){const r=h(t);return new m(n.fromJSDate(e,{zone:r}))}static unknownEpochToArcadeDate(e){return new m(n.fromMillis(e,{zone:t.instance}))}static unknownDateJSToArcadeDate(e){return new m(n.fromMillis(e.getTime(),{zone:t.instance}))}static epochToArcadeDate(e,t="system"){const r=h(t);return new m(n.fromMillis(e,{zone:r}))}static dateTimeToArcadeDate(e){return new m(e)}clone(){return new m(this._date)}changeTimeZone(e){const t=h(e);return m.dateTimeToArcadeDate(this._date.setZone(t))}static dateTimeAndZoneToArcadeDate(e,n){const r=h(n);return e.zone===t.instance||r===t.instance?m.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,r):new m(e.setZone(r))}static nowToArcadeDate(e){const t=h(e);return new m(n.fromJSDate(new Date,{zone:t}))}static nowUTCToArcadeDate(){return new m(n.utc())}get isSystem(){return"system"===this.timeZone||this.timeZone===m.systemTimeZoneCanonicalName}equals(e){return this.isSystem&&e.isSystem?this.toNumber()===e.toNumber():this.isUnknownTimeZone===e.isUnknownTimeZone&&this._date.equals(e._date)}get isUnknownTimeZone(){return this._date.zone===t.instance}get isValid(){return this._date.isValid}get hour(){return this._date.hour}get second(){return this._date.second}get day(){return this._date.day}get dayOfWeekISO(){return this._date.weekday}get dayOfWeekJS(){let e=this._date.weekday;return e>6&&(e=0),e}get millisecond(){return this._date.millisecond}get monthISO(){return this._date.month}get weekISO(){return this._date.weekNumber}get yearISO(){return this._date.weekYear}get monthJS(){return this._date.month-1}get year(){return this._date.year}get minute(){return this._date.minute}get zone(){return this._date.zone}get timeZoneOffset(){return this.isUnknownTimeZone?0:this._date.offset}get timeZone(){if(this.isUnknownTimeZone)return"unknown";if("system"===this._date.zone.type)return"system";const e=this.zone;return"fixed"===e.type?0===e.fixed?"UTC":e.formatOffset(0,"short"):e.name}stringify(){return JSON.stringify(this.toJSDate())}plus(e){return new m(this._date.plus(e))}diff(e,t="milliseconds"){return this._date.diff(e._date,t)[t]}toISODate(){return this._date.toISODate()}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!this.isUnknownTimeZone})}toISOTime(e,t){return this._date.toISOTime({suppressMilliseconds:e,includeOffset:t&&!this.isUnknownTimeZone})}toFormat(e,t){return this.isUnknownTimeZone&&(e=e.replaceAll("Z","")),this._date.toFormat(e,t)}toJSDate(){return this._date.toJSDate()}toSQLValue(){return this._date.toFormat("yyyy-LL-dd HH:mm:ss")}toSQLWithKeyword(){return`timestamp '${this.toSQLValue()}'`}toDateTime(){return this._date}toNumber(){return this._date.toMillis()}getTime(){return this._date.toMillis()}toUTC(){return new m(this._date.toUTC())}toLocal(){return new m(this._date.toLocal())}toString(){return this.toISOString(!0)}static fromReaderAsTimeStampOffset(e){if(!e)return null;const t=n.fromISO(e,{setZone:!0});return new m(t)}}function h(e,n=!0){if(e instanceof r)return e;if("system"===e.toLowerCase())return"system";if("utc"===e.toLowerCase())return"UTC";if("unknown"===e.toLowerCase())return t.instance;if(/^[+-]?[0-9]{1,2}([:][0-9]{2})?$/.test(e)){const t=s.parseSpecifier("UTC"+(e.startsWith("+")||e.startsWith("-")?"":"+")+e);if(t)return t}const a=i.create(e);if(!a.isValid){if(n)throw new d(o.TimeZoneNotRecognized);return null}return a}export{m as ArcadeDate,d as ArcadeDateError,o as ArcadeDateErrorCodes,a as arcadeDateErrorMessages,h as createDateTimeZone};
5
+ import{toStringEnumKey as e}from"./enum.js";import{replace as t}from"../core/string.js";import{UnknownTimeZone as n}from"../core/sql/UnknownTimeZone.js";import{DateTime as r,Zone as s,FixedOffsetZone as i,IANAZone as o}from"luxon";var a;!function(e){e.TimeZoneNotRecognized="TimeZoneNotRecognized"}(a||(a={}));const d={[a.TimeZoneNotRecognized]:"Timezone identifier has not been recognized."};class u extends Error{constructor(e,n){super(t(d[e],n)),this.declaredRootClass="esri.arcade.arcadedate.dateerror",Error.captureStackTrace&&Error.captureStackTrace(this,u)}}function c(e,t,n){return e<t?e-t:e>n?e-n:0}function m(e,t,n){return e<t?t:e>n?n:e}class h{constructor(e){this._date=e,this.declaredRootClass="esri.arcade.arcadedate"}static fromParts(e=0,t=1,n=1,s=0,i=0,o=0,a=0,d){if(isNaN(e)||isNaN(t)||isNaN(n)||isNaN(s)||isNaN(i)||isNaN(o)||isNaN(a))return null;const u=r.local(e,t).daysInMonth;let f=r.fromObject({day:m(n,1,u),year:e,month:m(t,1,12),hour:m(s,0,23),minute:m(i,0,59),second:m(o,0,59),millisecond:m(a,0,999)},{zone:l(d)});return f=f.plus({months:c(t,1,12),days:c(n,1,u),hours:c(s,0,23),minutes:c(i,0,59),seconds:c(o,0,59),milliseconds:c(a,0,999)}),new h(f)}static get systemTimeZoneCanonicalName(){return Intl.DateTimeFormat().resolvedOptions().timeZone??"system"}static arcadeDateAndZoneToArcadeDate(e,t){const r=l(t);return e.isUnknownTimeZone||r===n.instance?h.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,r):new h(e._date.setZone(r))}static dateJSToArcadeDate(e){return new h(r.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){const n=l(t);return new h(r.fromJSDate(e,{zone:n}))}static unknownEpochToArcadeDate(e){return new h(r.fromMillis(e,{zone:n.instance}))}static unknownDateJSToArcadeDate(e){return new h(r.fromMillis(e.getTime(),{zone:n.instance}))}static epochToArcadeDate(e,t="system"){const n=l(t);return new h(r.fromMillis(e,{zone:n}))}static dateTimeToArcadeDate(e){return new h(e)}clone(){return new h(this._date)}changeTimeZone(e){const t=l(e);return h.dateTimeToArcadeDate(this._date.setZone(t))}static dateTimeAndZoneToArcadeDate(e,t){const r=l(t);return e.zone===n.instance||r===n.instance?h.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,r):new h(e.setZone(r))}static nowToArcadeDate(e){const t=l(e);return new h(r.fromJSDate(new Date,{zone:t}))}static nowUTCToArcadeDate(){return new h(r.utc())}get isSystem(){return"system"===this.timeZone||this.timeZone===h.systemTimeZoneCanonicalName}equals(e){return this.isSystem&&e.isSystem?this.toNumber()===e.toNumber():this.isUnknownTimeZone===e.isUnknownTimeZone&&this._date.equals(e._date)}get isUnknownTimeZone(){return this._date.zone===n.instance}get isValid(){return this._date.isValid}get hour(){return this._date.hour}get second(){return this._date.second}get day(){return this._date.day}get dayOfWeekISO(){return this._date.weekday}get dayOfWeekJS(){let e=this._date.weekday;return e>6&&(e=0),e}get millisecond(){return this._date.millisecond}get monthISO(){return this._date.month}get weekISO(){return this._date.weekNumber}get yearISO(){return this._date.weekYear}get monthJS(){return this._date.month-1}get year(){return this._date.year}get minute(){return this._date.minute}get zone(){return this._date.zone}get timeZoneOffset(){return this.isUnknownTimeZone?0:this._date.offset}get timeZone(){if(this.isUnknownTimeZone)return"unknown";if("system"===this._date.zone.type)return"system";const e=this.zone;return"fixed"===e.type?0===e.fixed?"UTC":e.formatOffset(0,"short"):e.name}stringify(){return JSON.stringify(this.toJSDate())}plus(e){return new h(this._date.plus(e))}diff(e,t){return this._date.diff(e._date,t)[t]}toISODate(){return this._date.toISODate()}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!this.isUnknownTimeZone})}toISOTime(e,t){return this._date.toISOTime({suppressMilliseconds:e,includeOffset:t&&!this.isUnknownTimeZone})}toFormat(e,t){return this.isUnknownTimeZone&&(e=e.replaceAll("Z","")),this._date.toFormat(e,t)}toJSDate(){return this._date.toJSDate()}toSQLValue(){return this._date.toFormat("yyyy-LL-dd HH:mm:ss")}toSQLWithKeyword(){return`timestamp '${this.toSQLValue()}'`}toDateTime(){return this._date}toNumber(){return this._date.toMillis()}getTime(){return this._date.toMillis()}toUTC(){return new h(this._date.toUTC())}toLocal(){return new h(this._date.toLocal())}toString(){return this.toISOString(!0)}static fromReaderAsTimeStampOffset(e){if(!e)return null;const t=r.fromISO(e,{setZone:!0});return new h(t)}}function l(t,r=!0){if(t instanceof s)return t;switch(e(t)){case"system":return"system";case"utc":return"UTC";case"unknown":return n.instance}if(/^[+-]?[0-9]{1,2}([:][0-9]{2})?$/.test(t)){const e=i.parseSpecifier("UTC"+(t.startsWith("+")||t.startsWith("-")?"":"+")+t);if(e)return e}const d=o.create(t);if(!d.isValid){if(r)throw new u(a.TimeZoneNotRecognized);return null}return d}export{h as ArcadeDate,u as ArcadeDateError,a as ArcadeDateErrorCodes,d as arcadeDateErrorMessages,l as createDateTimeZone};
package/arcade/enum.js ADDED
@@ -0,0 +1,5 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"./executionError.js";function o(r){return r.toLowerCase().replaceAll(/[\s-]+/g,"")}class e{constructor(r,t){const e=new Map;for(const n of r){const r=o(n);if(e.has(r))throw new Error(`${n} already added as ${e.get(r)}`);e.set(r,n)}if(null!=t)for(const[n,s]of t){const r=o(n);if(e.has(r))throw new Error(`${n} already associated with ${e.get(r)}`);e.set(r,s)}this._enumMap=e}lookup(r){return this._enumMap.get(o(r))}get(o){const e=this.lookup(o);if(null==e)throw new r(null,t.InvalidParameter,null);return e}}export{e as StringEnum,o as toStringEnumKey};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../Graphic.js";import{a0 as t}from"../../../chunks/languageUtils.js";import{SqlExpressionAdapted as i,OriginalField as s,AdaptedFeatureSet as n}from"./Adapted.js";import r from"./AttributeFilter.js";import a from"./OrderBy.js";import{FeatureSetError as o,FeatureSetErrorCodes as l}from"../support/errorsupport.js";import d from"../support/FeatureSet.js";import u from"../support/IdSet.js";import f from"../support/OrderbyClause.js";import{IdState as c,layerGeometryEsriConstants as p,FeatureServiceDatabaseType as h}from"../support/shared.js";import{isSingleField as g,toWhereClause as _,predictType as m,scanForField as y,reformulateWithoutField as b}from"../support/sqlUtils.js";import w from"../support/StatsField.js";import{createMD5Hash as F,outputTypes as I}from"../../../core/MD5.js";import{aggregateFunction as S}from"../../../core/sql/AggregateFunctions.js";import{DateOnly as x}from"../../../core/sql/DateOnly.js";import{SqlTimeStampOffset as D}from"../../../core/sql/SqlTimestampOffset.js";import{TimeOnly as j}from"../../../core/sql/TimeOnly.js";import k from"../../../core/sql/WhereClause.js";import C from"../../../geometry/SpatialReference.js";import A from"../../../layers/support/Field.js";import T from"../../../layers/support/FieldsIndex.js";function G(e){if(!e)return"COUNT";switch(e.toLowerCase()){case"max":return"MAX";case"var":case"variance":return"VAR";case"avg":case"average":case"mean":return"AVG";case"min":return"MIN";case"sum":return"SUM";case"stdev":case"stddev":return"STDDEV";case"count":return"COUNT"}return"COUNT"}class O extends d{constructor(e){super(e),this._decodedStatsfield=[],this._decodedGroupbyfield=[],this._candosimplegroupby=!0,this.phsyicalgroupbyfields=[],this.objectIdField="ROW__ID",this._internalObjectIdField="ROW__ID",this._adaptedFields=[],this.declaredClass="esri.arcade.featureset.actions.Aggregate",this._uniqueIds=1,this._maxQuery=10,this._maxProcessing=10,this._parent=e.parentfeatureset,this._config=e}isTable(){return!0}async _getSet(e){if(null===this._wset){const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,this._wset}return this._wset}_isInFeatureSet(){return c.InFeatureSet}_nextUniqueName(e){for(;1===e["T"+this._uniqueIds.toString()];)this._uniqueIds++;const t="T"+this._uniqueIds.toString();return e[t]=1,t}_convertToEsriFieldType(e){return e}_initialiseFeatureSet(){const e={};let t=!1,n=1;const r=this._parent?this._parent.getFieldsIndex():new T([]);for(this.objectIdField="ROW__ID",this.globalIdField="";!1===t;){let e=!1;for(let t=0;t<this._config.groupbyfields.length;t++)if(this._config.groupbyfields[t].name.toLowerCase()===this.objectIdField.toLowerCase()){e=!0;break}if(!1===e)for(let t=0;t<this._config.statsfields.length;t++)if(this._config.statsfields[t].name.toLowerCase()===this.objectIdField.toLowerCase()){e=!0;break}!1===e?t=!0:(this.objectIdField="ROW__ID"+n.toString(),n++)}for(const i of this._config.statsfields){const e=new w;e.field=i.name,e.tofieldname=i.name,e.workingexpr=i.expression instanceof k?i.expression:k.create(i.expression,{fieldsIndex:r,timeZone:this.dateFieldsTimeZoneDefaultUTC}),e.typeofstat=G(i.statistic),this._decodedStatsfield.push(e)}this._decodedGroupbyfield=[];for(const i of this._config.groupbyfields){const e={name:i.name,singlefield:null,tofieldname:i.name,expression:i.expression instanceof k?i.expression:k.create(i.expression,{fieldsIndex:r,timeZone:this.dateFieldsTimeZoneDefaultUTC}),sqlType:null};this._decodedGroupbyfield.push(e)}if(null!==this._parent){this.geometryType=this._parent.geometryType,this.spatialReference=this._parent.spatialReference,this.hasM=this._parent.hasM,this.hasZ=this._parent.hasZ,this.typeIdField="";for(const t of this._parent.fields)e[t.name.toUpperCase()]=1;this.types=null,this.subtypes=null,this.subtypeField=""}else this.geometryType=p.point,this.typeIdField="",this.types=null,this.subtypes=null,this.subtypeField="",this.spatialReference=new C({wkid:4326});this.fields=[];const a=new w;a.field=this._nextUniqueName(e),a.tofieldname=this.objectIdField,a.workingexpr=k.create(this._parent.objectIdField,{fieldsIndex:this._parent.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC}),a.typeofstat="MIN",this._decodedStatsfield.push(a);for(const s of this._decodedGroupbyfield){const t=new A;if(s.name=this._nextUniqueName(e),t.name=s.tofieldname,t.alias=t.name,g(s.expression)){const e=this._parent.getField(_(s.expression,h.Standardised));if(!e)throw new o(l.AggregationFieldNotFound);s.name=e.name,s.singlefield=e.name,this.phsyicalgroupbyfields.push(e.name),t.type=e.type,s.sqlType=e.type}else{t.type=this._convertToEsriFieldType(m(s.expression,this._parent.fields));const e=new A;e.name=s.name,e.alias=e.name,this.phsyicalgroupbyfields.push(s.name),this._adaptedFields.push(new i(e,s.expression)),this._candosimplegroupby=!1,s.sqlType=t.type}this.fields.push(t)}if(this._adaptedFields.length>0)for(const i of this._parent.fields)this._adaptedFields.push(new s(i));for(let i=0;i<this._decodedStatsfield.length;i++){const t=new A;let s=null;const n=this._decodedStatsfield[i];n.field=this._nextUniqueName(e),n.tofieldname===this.objectIdField&&(this._internalObjectIdField=n.field),t.name=n.tofieldname,t.alias=t.name;const r=null!==n.workingexpr&&g(n.workingexpr)?_(n.workingexpr,h.Standardised):"";switch(this._decodedStatsfield[i].typeofstat){case"SUM":if(""!==r){if(s=this._parent.getField(r),!s)throw new o(l.AggregationFieldNotFound);t.type=s.type}else t.type="double";break;case"MIN":case"MAX":if(""!==r){if(s=this._parent.getField(r),!s)throw new o(l.AggregationFieldNotFound);t.type=s.type}else t.type="double";break;case"COUNT":t.type="integer";break;case"STDDEV":case"VAR":case"AVG":if(""!==r&&(s=this._parent.getField(r),!s))throw new o(l.AggregationFieldNotFound);t.type="double"}this.fields.push(t)}}async _canDoAggregates(){return!1}async _getFeatures(e,t,i,s){-1!==t&&this._featureCache[t];const n=this._maxQuery;return!0===this._checkIfNeedToExpandKnownPage(e,n)?(await this._expandPagedSet(e,n,0,0,s),this._getFeatures(e,t,i,s)):"success"}async _getFilteredSet(e,t,i,s,o){if(""!==e)return new u([],[],!0,null);let l=null;const d={ordered:!1,nowhereclause:!1};if(await this._ensureLoaded(),null!==i)for(let n=0;n<this._decodedStatsfield.length;n++)if(!0===y(i,this._decodedStatsfield[n].tofieldname)){d.nowhereclause=!0,i=null;break}if(null!==s){d.ordered=!0;for(let e=0;e<this._decodedStatsfield.length;e++)if(!0===s.scanForField(this._decodedStatsfield[e].tofieldname)){s=null,d.ordered=!1;break}if(null!==s)for(const e of this._decodedGroupbyfield)if(null===e.singlefield&&!0===s.scanForField(e.tofieldname)){s=null,d.ordered=!1;break}}if(!1!==this._candosimplegroupby&&await this._parent._canDoAggregates(this.phsyicalgroupbyfields,this._decodedStatsfield,"",null,null)){let e=null;i&&(e=this._reformulateWhereClauseWithoutGroupByFields(i));let t=null;s&&(t=this._reformulateOrderClauseWithoutGroupByFields(s));const n=await this._parent._getAggregatePagesDataSourceDefinition(this.phsyicalgroupbyfields,this._decodedStatsfield,"",null,e,t,this._internalObjectIdField);return this._checkCancelled(o),l=!0===d.nowhereclause?new u(n._candidates.slice().concat(n._known.slice()),[],!0===d.ordered&&n._ordered,this._clonePageDefinition(n.pagesDefinition)):new u(n._candidates.slice(),n._known.slice(),!0===d.ordered&&n._ordered,this._clonePageDefinition(n.pagesDefinition)),l}let c=this._parent;if(this._adaptedFields.length>0&&(c=new n({parentfeatureset:this._parent,adaptedFields:this._adaptedFields,extraFilter:null})),!0===d.nowhereclause)l=new u(["GETPAGES"],[],!1,{aggregatefeaturesetpagedefinition:!0,resultOffset:0,resultRecordCount:this._maxQuery,internal:{fullyResolved:!1,workingItem:null,type:"manual",iterator:null,set:[],subfeatureset:new a({parentfeatureset:c,orderbyclause:new f(this.phsyicalgroupbyfields.join(",")+","+this._parent.objectIdField+" ASC")})}});else{let e=c;if(null!==i){let t=null;i&&(t=this._reformulateWhereClauseWithoutGroupByFields(i)),e=new r({parentfeatureset:e,whereclause:t})}l=new u(["GETPAGES"],[],!1,{aggregatefeaturesetpagedefinition:!0,resultOffset:0,resultRecordCount:this._maxQuery,internal:{fullyResolved:!1,workingItem:null,type:"manual",iterator:null,set:[],subfeatureset:new a({parentfeatureset:e,orderbyclause:new f(this.phsyicalgroupbyfields.join(",")+","+this._parent.objectIdField+" ASC")})}})}return l}_reformulateWhereClauseWithoutStatsFields(e){for(const t of this._decodedStatsfield)e=b(e,t.tofieldname,_(t.workingexpr,h.Standardised),this._parent.getFieldsIndex());return e}_reformulateWhereClauseWithoutGroupByFields(e){for(const t of this._decodedGroupbyfield)t.tofieldname!==t.name&&(e=b(e,t.tofieldname,_(t.expression,h.Standardised),this._parent.getFieldsIndex()));return e}_reformulateOrderClauseWithoutGroupByFields(e){const t=[];for(const i of this._decodedGroupbyfield)i.tofieldname!==i.name&&t.push({field:i.tofieldname,newfield:i.name});return t.length>0?e.replaceFields(t):e}_clonePageDefinition(e){return null===e?null:!0===e.aggregatefeaturesetpagedefinition?{aggregatefeaturesetpagedefinition:!0,resultRecordCount:e.resultRecordCount,resultOffset:e.resultOffset,internal:e.internal}:this._parent._clonePageDefinition(e)}async _refineSetBlock(e,t,i){if(!0===this._checkIfNeedToExpandCandidatePage(e,this._maxQuery))return await this._expandPagedSet(e,this._maxQuery,0,0,i),this._refineSetBlock(e,t,i);this._checkCancelled(i);const s=e._candidates.length;this._refineKnowns(e,t);e._candidates.length;return e._candidates.length,e}_expandPagedSet(e,t,i,s,n){return this._expandPagedSetFeatureSet(e,t,i,s,n)}async _getPhysicalPage(t,i,s){if(!0===t.pagesDefinition.aggregatefeaturesetpagedefinition)return this._sequentialGetPhysicalItem(t,t.pagesDefinition.resultRecordCount,s,[]);const n=await this._getAgregagtePhysicalPage(t,i,s);for(const r of n){const t={geometry:r.geometry,attributes:{}},i={};for(const e in r.attributes)i[e.toLowerCase()]=r.attributes[e];for(const e of this._decodedGroupbyfield)t.attributes[e.tofieldname]=i[e.name.toLowerCase()];for(const e of this._decodedStatsfield)t.attributes[e.tofieldname]=i[e.field.toLowerCase()];this._featureCache[t.attributes[this.objectIdField]]=new e(t)}return n.length}_sequentialGetPhysicalItem(e,t,i,s){return new Promise(((n,r)=>{null===e.pagesDefinition.internal.iterator&&(e.pagesDefinition.internal.iterator=e.pagesDefinition.internal.subfeatureset.iterator(i)),!0===e.pagesDefinition.internal.fullyResolved||0===t?n(s.length):this._nextAggregateItem(e,t,i,s,(r=>{null===r?n(s.length):(t-=1,n(this._sequentialGetPhysicalItem(e,t,i,s)))}),r)}))}_nextAggregateItem(e,i,s,n,r,a){try{t(e.pagesDefinition.internal.iterator.next()).then((t=>{if(null===t)if(null!==e.pagesDefinition.internal.workingItem){const t=this._calculateAndAppendAggregateItem(e.pagesDefinition.internal.workingItem);n.push(t),e.pagesDefinition.internal.workingItem=null,e.pagesDefinition.internal.set.push(t.attributes[this.objectIdField]),e.pagesDefinition.internal.fullyResolved=!0,r(null)}else e.pagesDefinition.internal.fullyResolved=!0,r(null);else{const o=this._generateAggregateHash(t);if(null===e.pagesDefinition.internal.workingItem)e.pagesDefinition.internal.workingItem={features:[t],id:o};else{if(o!==e.pagesDefinition.internal.workingItem.id){const s=this._calculateAndAppendAggregateItem(e.pagesDefinition.internal.workingItem);return n.push(s),e.pagesDefinition.internal.workingItem=null,e.pagesDefinition.internal.set.push(s.attributes[this.objectIdField]),i-=1,e.pagesDefinition.internal.workingItem={features:[t],id:o},void r(s)}e.pagesDefinition.internal.workingItem.features.push(t)}this._nextAggregateItem(e,i,s,n,r,a)}}),a)}catch(o){a(o)}}_calculateFieldStat(e,t,i){const s=[];for(const n of e.features)if(null!==t.workingexpr){const e=t.workingexpr.calculateValue(n);null!==e&&(e instanceof x||e instanceof j?s.push(e.toNumber()):e instanceof D?s.push(e.toMilliseconds()):s.push(e))}else s.push(null);i.attributes[t.tofieldname]=S(t.typeofstat,[s])}_calculateAndAppendAggregateItem(t){const i={attributes:{},geometry:null};for(const e of this._decodedGroupbyfield){const s=e.singlefield?t.features[0].attributes[e.singlefield]:k.convertValueToStorageFormat(e.expression.calculateValue(t.features[0]),e.sqlType);i.attributes[e.tofieldname]=s}for(const e of this._decodedStatsfield)this._calculateFieldStat(t,e,i);const s=[];for(let e=0;e<this._decodedStatsfield.length;e++)s.push(this._calculateFieldStat(t,this._decodedStatsfield[e],i));return this._featureCache[i.attributes[this.objectIdField]]=new e({attributes:i.attributes,geometry:i.geometry}),i}_generateAggregateHash(e){let t="";for(const i of this._decodedGroupbyfield){const s=i.singlefield?e.attributes[i.singlefield]:i.expression.calculateValue(e);t+=null==s?":":":"+s.toString()}return F(t,I.String)}async _stat(){return{calculated:!1}}async getFeatureByObjectId(){return null}static registerAction(){d._featuresetFunctions.groupby=function(e,t){return new O({parentfeatureset:this,groupbyfields:e,statsfields:t})}}}export{O as default};
5
+ import e from"../../../Graphic.js";import{StringEnum as t}from"../../enum.js";import{a0 as i}from"../../../chunks/languageUtils.js";import{SqlExpressionAdapted as s,OriginalField as n,AdaptedFeatureSet as r}from"./Adapted.js";import a from"./AttributeFilter.js";import o from"./OrderBy.js";import{FeatureSetError as l,FeatureSetErrorCodes as d}from"../support/errorsupport.js";import u from"../support/FeatureSet.js";import f from"../support/IdSet.js";import p from"../support/OrderbyClause.js";import{IdState as h,layerGeometryEsriConstants as c,FeatureServiceDatabaseType as g}from"../support/shared.js";import{isSingleField as _,toWhereClause as m,predictType as y,scanForField as b,reformulateWithoutField as w}from"../support/sqlUtils.js";import F from"../support/StatsField.js";import{createMD5Hash as I,outputTypes as S}from"../../../core/MD5.js";import{aggregateFunction as x}from"../../../core/sql/AggregateFunctions.js";import{DateOnly as D}from"../../../core/sql/DateOnly.js";import{SqlTimeStampOffset as A}from"../../../core/sql/SqlTimestampOffset.js";import{TimeOnly as j}from"../../../core/sql/TimeOnly.js";import k from"../../../core/sql/WhereClause.js";import C from"../../../geometry/SpatialReference.js";import T from"../../../layers/support/Field.js";import G from"../../../layers/support/FieldsIndex.js";const R=new t(["MIN","MAX","VAR","STDDEV","COUNT","SUM","AVG"],[["VARIANCE","VAR"],["AVERAGE","AVG"],["MEAN","AVG"],["STDEV","STDDEV"]]);class q extends u{constructor(e){super(e),this._decodedStatsfield=[],this._decodedGroupbyfield=[],this._candosimplegroupby=!0,this.phsyicalgroupbyfields=[],this.objectIdField="ROW__ID",this._internalObjectIdField="ROW__ID",this._adaptedFields=[],this.declaredClass="esri.arcade.featureset.actions.Aggregate",this._uniqueIds=1,this._maxQuery=10,this._maxProcessing=10,this._parent=e.parentfeatureset,this._config=e}isTable(){return!0}async _getSet(e){if(null===this._wset){const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,this._wset}return this._wset}_isInFeatureSet(){return h.InFeatureSet}_nextUniqueName(e){for(;1===e["T"+this._uniqueIds.toString()];)this._uniqueIds++;const t="T"+this._uniqueIds.toString();return e[t]=1,t}_convertToEsriFieldType(e){return e}_initialiseFeatureSet(){const e={};let t=!1,i=1;const r=this._parent?this._parent.getFieldsIndex():new G([]);for(this.objectIdField="ROW__ID",this.globalIdField="";!1===t;){let e=!1;for(let t=0;t<this._config.groupbyfields.length;t++)if(this._config.groupbyfields[t].name.toLowerCase()===this.objectIdField.toLowerCase()){e=!0;break}if(!1===e)for(let t=0;t<this._config.statsfields.length;t++)if(this._config.statsfields[t].name.toLowerCase()===this.objectIdField.toLowerCase()){e=!0;break}!1===e?t=!0:(this.objectIdField="ROW__ID"+i.toString(),i++)}for(const s of this._config.statsfields){const e=new F;e.field=s.name,e.tofieldname=s.name,e.workingexpr=s.expression instanceof k?s.expression:k.create(s.expression,{fieldsIndex:r,timeZone:this.dateFieldsTimeZoneDefaultUTC}),e.typeofstat=R.lookup(s.statistic)??"COUNT",this._decodedStatsfield.push(e)}this._decodedGroupbyfield=[];for(const s of this._config.groupbyfields){const e={name:s.name,singlefield:null,tofieldname:s.name,expression:s.expression instanceof k?s.expression:k.create(s.expression,{fieldsIndex:r,timeZone:this.dateFieldsTimeZoneDefaultUTC}),sqlType:null};this._decodedGroupbyfield.push(e)}if(null!==this._parent){this.geometryType=this._parent.geometryType,this.spatialReference=this._parent.spatialReference,this.hasM=this._parent.hasM,this.hasZ=this._parent.hasZ,this.typeIdField="";for(const t of this._parent.fields)e[t.name.toUpperCase()]=1;this.types=null,this.subtypes=null,this.subtypeField=""}else this.geometryType=c.point,this.typeIdField="",this.types=null,this.subtypes=null,this.subtypeField="",this.spatialReference=new C({wkid:4326});this.fields=[];const a=new F;a.field=this._nextUniqueName(e),a.tofieldname=this.objectIdField,a.workingexpr=k.create(this._parent.objectIdField,{fieldsIndex:this._parent.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC}),a.typeofstat="MIN",this._decodedStatsfield.push(a);for(const n of this._decodedGroupbyfield){const t=new T;if(n.name=this._nextUniqueName(e),t.name=n.tofieldname,t.alias=t.name,_(n.expression)){const e=this._parent.getField(m(n.expression,g.Standardised));if(!e)throw new l(d.AggregationFieldNotFound);n.name=e.name,n.singlefield=e.name,this.phsyicalgroupbyfields.push(e.name),t.type=e.type,n.sqlType=e.type}else{t.type=this._convertToEsriFieldType(y(n.expression,this._parent.fields));const e=new T;e.name=n.name,e.alias=e.name,this.phsyicalgroupbyfields.push(n.name),this._adaptedFields.push(new s(e,n.expression)),this._candosimplegroupby=!1,n.sqlType=t.type}this.fields.push(t)}if(this._adaptedFields.length>0)for(const s of this._parent.fields)this._adaptedFields.push(new n(s));for(let s=0;s<this._decodedStatsfield.length;s++){const t=new T;let i=null;const n=this._decodedStatsfield[s];n.field=this._nextUniqueName(e),n.tofieldname===this.objectIdField&&(this._internalObjectIdField=n.field),t.name=n.tofieldname,t.alias=t.name;const r=null!==n.workingexpr&&_(n.workingexpr)?m(n.workingexpr,g.Standardised):"";switch(this._decodedStatsfield[s].typeofstat){case"SUM":if(""!==r){if(i=this._parent.getField(r),!i)throw new l(d.AggregationFieldNotFound);t.type=i.type}else t.type="double";break;case"MIN":case"MAX":if(""!==r){if(i=this._parent.getField(r),!i)throw new l(d.AggregationFieldNotFound);t.type=i.type}else t.type="double";break;case"COUNT":t.type="integer";break;case"STDDEV":case"VAR":case"AVG":if(""!==r&&(i=this._parent.getField(r),!i))throw new l(d.AggregationFieldNotFound);t.type="double"}this.fields.push(t)}}async _canDoAggregates(){return!1}async _getFeatures(e,t,i,s){-1!==t&&this._featureCache[t];const n=this._maxQuery;return!0===this._checkIfNeedToExpandKnownPage(e,n)?(await this._expandPagedSet(e,n,0,0,s),this._getFeatures(e,t,i,s)):"success"}async _getFilteredSet(e,t,i,s,n){if(""!==e)return new f([],[],!0,null);let l=null;const d={ordered:!1,nowhereclause:!1};if(await this._ensureLoaded(),null!==i)for(let r=0;r<this._decodedStatsfield.length;r++)if(!0===b(i,this._decodedStatsfield[r].tofieldname)){d.nowhereclause=!0,i=null;break}if(null!==s){d.ordered=!0;for(let e=0;e<this._decodedStatsfield.length;e++)if(!0===s.scanForField(this._decodedStatsfield[e].tofieldname)){s=null,d.ordered=!1;break}if(null!==s)for(const e of this._decodedGroupbyfield)if(null===e.singlefield&&!0===s.scanForField(e.tofieldname)){s=null,d.ordered=!1;break}}if(!1!==this._candosimplegroupby&&await this._parent._canDoAggregates(this.phsyicalgroupbyfields,this._decodedStatsfield,"",null,null)){let e=null;i&&(e=this._reformulateWhereClauseWithoutGroupByFields(i));let t=null;s&&(t=this._reformulateOrderClauseWithoutGroupByFields(s));const r=await this._parent._getAggregatePagesDataSourceDefinition(this.phsyicalgroupbyfields,this._decodedStatsfield,"",null,e,t,this._internalObjectIdField);return this._checkCancelled(n),l=!0===d.nowhereclause?new f(r._candidates.slice().concat(r._known.slice()),[],!0===d.ordered&&r._ordered,this._clonePageDefinition(r.pagesDefinition)):new f(r._candidates.slice(),r._known.slice(),!0===d.ordered&&r._ordered,this._clonePageDefinition(r.pagesDefinition)),l}let u=this._parent;if(this._adaptedFields.length>0&&(u=new r({parentfeatureset:this._parent,adaptedFields:this._adaptedFields,extraFilter:null})),!0===d.nowhereclause)l=new f(["GETPAGES"],[],!1,{aggregatefeaturesetpagedefinition:!0,resultOffset:0,resultRecordCount:this._maxQuery,internal:{fullyResolved:!1,workingItem:null,type:"manual",iterator:null,set:[],subfeatureset:new o({parentfeatureset:u,orderbyclause:new p(this.phsyicalgroupbyfields.join(",")+","+this._parent.objectIdField+" ASC")})}});else{let e=u;if(null!==i){let t=null;i&&(t=this._reformulateWhereClauseWithoutGroupByFields(i)),e=new a({parentfeatureset:e,whereclause:t})}l=new f(["GETPAGES"],[],!1,{aggregatefeaturesetpagedefinition:!0,resultOffset:0,resultRecordCount:this._maxQuery,internal:{fullyResolved:!1,workingItem:null,type:"manual",iterator:null,set:[],subfeatureset:new o({parentfeatureset:e,orderbyclause:new p(this.phsyicalgroupbyfields.join(",")+","+this._parent.objectIdField+" ASC")})}})}return l}_reformulateWhereClauseWithoutStatsFields(e){for(const t of this._decodedStatsfield)e=w(e,t.tofieldname,m(t.workingexpr,g.Standardised),this._parent.getFieldsIndex());return e}_reformulateWhereClauseWithoutGroupByFields(e){for(const t of this._decodedGroupbyfield)t.tofieldname!==t.name&&(e=w(e,t.tofieldname,m(t.expression,g.Standardised),this._parent.getFieldsIndex()));return e}_reformulateOrderClauseWithoutGroupByFields(e){const t=[];for(const i of this._decodedGroupbyfield)i.tofieldname!==i.name&&t.push({field:i.tofieldname,newfield:i.name});return t.length>0?e.replaceFields(t):e}_clonePageDefinition(e){return null===e?null:!0===e.aggregatefeaturesetpagedefinition?{aggregatefeaturesetpagedefinition:!0,resultRecordCount:e.resultRecordCount,resultOffset:e.resultOffset,internal:e.internal}:this._parent._clonePageDefinition(e)}async _refineSetBlock(e,t,i){if(!0===this._checkIfNeedToExpandCandidatePage(e,this._maxQuery))return await this._expandPagedSet(e,this._maxQuery,0,0,i),this._refineSetBlock(e,t,i);this._checkCancelled(i);const s=e._candidates.length;this._refineKnowns(e,t);e._candidates.length;return e._candidates.length,e}_expandPagedSet(e,t,i,s,n){return this._expandPagedSetFeatureSet(e,t,i,s,n)}async _getPhysicalPage(t,i,s){if(!0===t.pagesDefinition.aggregatefeaturesetpagedefinition)return this._sequentialGetPhysicalItem(t,t.pagesDefinition.resultRecordCount,s,[]);const n=await this._getAgregagtePhysicalPage(t,i,s);for(const r of n){const t={geometry:r.geometry,attributes:{}},i={};for(const e in r.attributes)i[e.toLowerCase()]=r.attributes[e];for(const e of this._decodedGroupbyfield)t.attributes[e.tofieldname]=i[e.name.toLowerCase()];for(const e of this._decodedStatsfield)t.attributes[e.tofieldname]=i[e.field.toLowerCase()];this._featureCache[t.attributes[this.objectIdField]]=new e(t)}return n.length}_sequentialGetPhysicalItem(e,t,i,s){return new Promise(((n,r)=>{null===e.pagesDefinition.internal.iterator&&(e.pagesDefinition.internal.iterator=e.pagesDefinition.internal.subfeatureset.iterator(i)),!0===e.pagesDefinition.internal.fullyResolved||0===t?n(s.length):this._nextAggregateItem(e,t,i,s,(r=>{null===r?n(s.length):(t-=1,n(this._sequentialGetPhysicalItem(e,t,i,s)))}),r)}))}_nextAggregateItem(e,t,s,n,r,a){try{i(e.pagesDefinition.internal.iterator.next()).then((i=>{if(null===i)if(null!==e.pagesDefinition.internal.workingItem){const t=this._calculateAndAppendAggregateItem(e.pagesDefinition.internal.workingItem);n.push(t),e.pagesDefinition.internal.workingItem=null,e.pagesDefinition.internal.set.push(t.attributes[this.objectIdField]),e.pagesDefinition.internal.fullyResolved=!0,r(null)}else e.pagesDefinition.internal.fullyResolved=!0,r(null);else{const o=this._generateAggregateHash(i);if(null===e.pagesDefinition.internal.workingItem)e.pagesDefinition.internal.workingItem={features:[i],id:o};else{if(o!==e.pagesDefinition.internal.workingItem.id){const s=this._calculateAndAppendAggregateItem(e.pagesDefinition.internal.workingItem);return n.push(s),e.pagesDefinition.internal.workingItem=null,e.pagesDefinition.internal.set.push(s.attributes[this.objectIdField]),t-=1,e.pagesDefinition.internal.workingItem={features:[i],id:o},void r(s)}e.pagesDefinition.internal.workingItem.features.push(i)}this._nextAggregateItem(e,t,s,n,r,a)}}),a)}catch(o){a(o)}}_calculateFieldStat(e,t,i){const s=[];for(const n of e.features)if(null!==t.workingexpr){const e=t.workingexpr.calculateValue(n);null!==e&&(e instanceof D||e instanceof j?s.push(e.toNumber()):e instanceof A?s.push(e.toMilliseconds()):s.push(e))}else s.push(null);i.attributes[t.tofieldname]=x(t.typeofstat,[s])}_calculateAndAppendAggregateItem(t){const i={attributes:{},geometry:null};for(const e of this._decodedGroupbyfield){const s=e.singlefield?t.features[0].attributes[e.singlefield]:k.convertValueToStorageFormat(e.expression.calculateValue(t.features[0]),e.sqlType);i.attributes[e.tofieldname]=s}for(const e of this._decodedStatsfield)this._calculateFieldStat(t,e,i);const s=[];for(let e=0;e<this._decodedStatsfield.length;e++)s.push(this._calculateFieldStat(t,this._decodedStatsfield[e],i));return this._featureCache[i.attributes[this.objectIdField]]=new e({attributes:i.attributes,geometry:i.geometry}),i}_generateAggregateHash(e){let t="";for(const i of this._decodedGroupbyfield){const s=i.singlefield?e.attributes[i.singlefield]:i.expression.calculateValue(e);t+=null==s?":":":"+s.toString()}return I(t,S.String)}async _stat(){return{calculated:!1}}async getFeatureByObjectId(){return null}static registerAction(){u._featuresetFunctions.groupby=function(e,t){return new q({parentfeatureset:this,groupbyfields:e,statsfields:t})}}}export{q as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{f as r,t as s,m as a}from"../../chunks/languageUtils.js";import{assertIsSome as i}from"../../core/maybe.js";import{isString as o,isNumber as c,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,m=(e,n)=>e*n,g=(e,n)=>e/n,_=(e,n,t)=>l(d)(e,n,t),f=(e,n,t)=>l(h)(e,n,t),w=(e,n,t)=>l(m)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=360,p=400,E=2*Math.PI,T=3600,S=3240,R=60,M=60,F=180*T/Math.PI,v=D*R*M,L=90*T,U=180*T,N=270*T,x=String.fromCharCode(7501),z="°";function O(e){if(!1===o(e))throw new n(null,t.InvalidParameter,null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function b(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}var H,y,q,k;function C(e,n){switch(e){case H.north:return"SHORT"===n?"N":"North";case H.east:return"SHORT"===n?"E":"East";case H.south:return"SHORT"===n?"S":"South";case H.west:return"SHORT"===n?"W":"West"}}function P(e,n){return e-Math.floor(e/n)*n}function Q(e){switch(e){case y.truncated_degrees:case y.decimal_degrees:return D;case y.radians:return E;case y.gradians:return p;case y.seconds:return v;case y.fractional_degree_minutes:return R;case y.fractional_minute_seconds:return M;default:throw new n(null,t.LogicError,null,{reason:"unsupported evaluations"})}}function j(e){switch(e.toUpperCase().trim()){case"NORTH":case"NORTHAZIMUTH":case"NORTH AZIMUTH":return q.north_azimuth;case"POLAR":return q.polar;case"QUADRANT":return q.quadrant;case"SOUTH":case"SOUTHAZIMUTH":case"SOUTH AZIMUTH":return q.south_azimuth}throw new n(null,t.LogicError,null,{reason:"unsupported directionType"})}function W(e){switch(e.toUpperCase().trim()){case"D":case"DD":case"DECIMALDEGREE":case"DECIMAL DEGREE":case"DEGREE":case"DECIMALDEGREES":case"DECIMAL DEGREES":case"DEGREES":return y.decimal_degrees;case"DMS":case"DEGREESMINUTESSECONDS":case"DEGREES MINUTES SECONDS":return y.degrees_minutes_seconds;case"R":case"RAD":case"RADS":case"RADIAN":case"RADIANS":return y.radians;case"G":case"GON":case"GONS":case"GRAD":case"GRADS":case"GRADIAN":case"GRADIANS":return y.gradians}throw new n(null,t.LogicError,null,{reason:"unsupported units"})}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(y||(y={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(q||(q={})),function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(k||(k={}));class Z{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case y.decimal_degrees:case y.truncated_degrees:return this.m_degrees;case y.fractional_degree_minutes:return this.m_minutes;case y.seconds:case y.fractional_minute_seconds:return this.m_seconds;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=b(e).fraction;let t=b(e).integer;const r=Math.floor(t/T);t-=r*T;const s=Math.floor(t/M);return t-=s*M,new Z(r,s,t+n)}static numberToDms(e){const n=b(e).fraction,t=b(e).integer,r=w(b(100*n).fraction,100),s=b(100*n).integer;return new Z(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(e===y.seconds||e===y.fractional_minute_seconds)M<=t&&(t-=M,++r),R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.fractional_degree_minutes)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.decimal_degrees||e===y.truncated_degrees){const e=A(this.m_seconds,T),n=A(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new Z(s,r,t)}static dmsToSeconds(e,n,t){return e*T+n*M+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return e===k.meridian?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new J(V._convertDirectionFormat(e.extractAngularUnits(y.seconds),n,q.north_azimuth)))}getAngle(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:case q.south_azimuth:case q.polar:return new J(V._convertDirectionFormat(n,q.north_azimuth,e));case q.quadrant:{const e=V.secondsNorthAzimuthToQuadrant(n);return new J(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.north;case q.south_azimuth:return H.south;case q.polar:return H.east;case q.quadrant:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.east;case q.south_azimuth:return H.west;case q.polar:return H.north;case q.quadrant:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=N?H.north:H.south,t=n===H.north?Math.min(v-e,e):Math.abs(e-U),r=e>U?H.west:H.east;return new B(n,t,r)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new J(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(y.seconds),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return n===H.north?t===H.east?e:v-e:t===H.east?U-e:U+e}static _convertDirectionFormat(e,r,s){let a=0;switch(r){case q.north_azimuth:a=e;break;case q.polar:a=L-e;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:a=e+U}let i=0;switch(s){case q.north_azimuth:i=a;break;case q.polar:i=L-a;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:i=a-U}return i=I(i,v),i<0?v+i:i}}function X(e,r,s){let a=null;switch(r){case y.decimal_degrees:a=w(e,T);break;case y.seconds:a=e;break;case y.gradians:a=w(e,S);break;case y.radians:a=w(e,F);break;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}switch(s){case y.decimal_degrees:return A(a,T);case y.seconds:return a;case y.gradians:return A(a,S);case y.radians:return a/F;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}class J{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new J(X(e,n,y.seconds))}extractAngularUnits(e){return X(this._seconds,y.seconds,K(e))}static createFromDegreesMinutesSeconds(e,n,t){return new J(_(_(w(e,T),w(n,M)),t))}}function K(e){switch(i(e),e){case y.decimal_degrees:case y.truncated_degrees:case y.degrees_minutes_seconds:return y.decimal_degrees;case y.gradians:return y.gradians;case y.fractional_degree_minutes:return y.fractional_degree_minutes;case y.radians:return y.radians;case y.seconds:case y.fractional_minute_seconds:return y.seconds}}class Y{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new Y(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=y.truncated_degrees,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=le(this.view,r,s),n=n===y.truncated_degrees?y.fractional_degree_minutes:n,r=e.newpos;continue;case"s":e=le(this.view,r,s),n=y.fractional_minute_seconds,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=Z.secondsToDMS(this.angle.extractAngularUnits(y.seconds)),this._formattedDms=Z.secondsToDMS(this.angle.extractAngularUnits(y.seconds)).format(n,t)}}function $(e,r,s,a,i){let o=null;switch(r){case y.decimal_degrees:case y.radians:case y.gradians:return o=P(G(e.extractAngularUnits(r),a),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case y.truncated_degrees:case y.fractional_degree_minutes:return o=P(i.fetchFormattedDms().getField(r),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case y.fractional_minute_seconds:return o=P(G(i.fetchDms().getField(r),a),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}function ee(e,r,s){if(s===q.quadrant)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(r===y.degrees_minutes_seconds){const n=Z.numberToDms(e);return V.createFromAngleAndDirection(J.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),s)}return V.createFromAngleAndDirection(J.createFromAngleAndUnits(e,K(r)),s)}function ne(e){switch(s(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}function te(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function re(e){const r=parseFloat(e);if(c(r)){if(isNaN(r))throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return r}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function se(e,s,a){const i=a===q.quadrant;let o=null,c=null,u=0,l=0,d=0;if(i){if(e.length<2)throw new n(null,t.LogicError,null,{reason:"conversion error"});d=1;const s=ne(r(e[e.length-1]));if(s?(o=s.first,c=s.second):(u=1,o=te(r(e[0])),c=te(r(e[e.length-1]))),null===o||null===c)throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}switch(s){case y.decimal_degrees:case y.radians:case y.gradians:if(0===e.length)throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(J.createFromAngleAndUnits(re(e[u]),K(s)),o,c):V.createFromAngleAndDirection(J.createFromAngleAndUnits(re(e[u]),K(s)),a);case y.degrees_minutes_seconds:if(l=e.length-d-u,3===l){const n=J.createFromDegreesMinutesSeconds(re(e[u]),re(e[u+1]),re(e[u+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,a)}if(1===l){const n=re(e[u]),t=Z.numberToDms(n),r=J.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,a)}}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ae(e){const n=new Set([" ","-","/","'",'"',"\\","^",z,x,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter((e=>""!==e))}function ie(e,r,i){if(c(e))return ee(s(e),r,i);if(o(e))return se(ae(e),r,i);if(u(e))return se(e,r,i);if(a(e))return se(e.toArray(),r,i);throw new n(null,t.LogicError,null,{reason:"conversion error"})}function oe(e,r,s){const a=K(s);if(a&&s!==y.degrees_minutes_seconds){return e.getAngle(r).extractAngularUnits(a)}throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ce(e,n,t){const r=e.getAngle(n);if(n===q.quadrant&&t===y.degrees_minutes_seconds){const t=Z.secondsToDMS(r.extractAngularUnits(y.seconds));return[C(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,C(e.getDirection(n),"SHORT")]}if(t===y.degrees_minutes_seconds){const e=Z.secondsToDMS(r.extractAngularUnits(y.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return n===q.quadrant?[C(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),C(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ue(e,r){let s="";switch(e){case y.decimal_degrees:s=r===q.quadrant?"DD.DD"+z:"DDD.DD"+z;break;case y.degrees_minutes_seconds:s=r===q.quadrant?"dd"+z+" mm' ss\"":"ddd"+z+" mm' ss.ss\"";break;case y.radians:s="R.RR";break;case y.gradians:s="GGG.GG"+x;break;default:throw new n(null,t.LogicError,null,{reason:"conversion error"})}return r===q.quadrant&&(s="p "+s+" b"),s}function le(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const a=e[n];if(a===t)s?r.rounding++:r.padding++,n++;else{if("."!==a)break;s=!0,n++}}return r.newpos=n-1,r}function de(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function he(e,n,t){let r="",s=null,a=null;const i=Y.createFromStringAndBearing(n,e,t),o={D:y.decimal_degrees,d:y.truncated_degrees,m:y.fractional_degree_minutes,s:y.fractional_minute_seconds,R:y.radians,G:y.gradians};for(let c=0;c<n.length;c++){const u=n[c];switch(u){case"[":s=de(n,c),r+=s.escaped,c=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=le(n,c,u),a=e.getAngle(t),r+=$(a,o[u],s.padding,s.rounding,i),c=s.newpos;continue;case"P":case"p":r+=C(i.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=C(i.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}function me(s,a,i){if(!(a instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===a.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===a.hasField("angleType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const o=j(O(a.field("directiontype"))),c=ie(s,W(O(a.field("angletype"))),o);if(!(i instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===i.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const u=j(O(i.field("directiontype"))),l=i.hasField("angleType")?W(O(i.field("angletype"))):null,d=O(i.field("outputType")).toUpperCase().trim();if(!u||!d)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(!(l||"TEXT"===d&&i.hasField("format")))throw new n(null,t.LogicError,null,{reason:"invalid unit"});switch(d){case"VALUE":return u===q.quadrant||l===y.degrees_minutes_seconds?ce(c,u,l):oe(c,u,l);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ue(l,u)),he(c,e,u)}default:throw new n(null,t.InvalidParameter,null)}}export{me as convertDirection,_ as preciseAdd,A as preciseDivide,f as preciseMinus,w as preciseMultiply};
5
+ import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as r}from"../executionError.js";import{f as s,t as a,m as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as u,isArray as d}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),h=(e,n)=>e+n,g=(e,n)=>e-n,m=(e,n)=>e*n,_=(e,n)=>e/n,f=(e,n,t)=>l(h)(e,n,t),w=(e,n,t)=>l(g)(e,n,t),A=(e,n,t)=>l(m)(e,n,t),D=(e,n,t)=>l(_)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,R=3240,F=60,v=60,M=180*S/Math.PI,L=p*F*v,U=90*S,z=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t(null,r.InvalidParameter,null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}var H,k,q;function P(e,n){switch(e){case H.north:return"SHORT"===n?"N":"North";case H.east:return"SHORT"===n?"E":"East";case H.south:return"SHORT"===n?"S":"South";case H.west:return"SHORT"===n?"W":"West"}}function Q(e,n){return e-Math.floor(e/n)*n}function j(e){switch(e){case k.truncated_degrees:case k.decimal_degrees:return p;case k.radians:return E;case k.gradians:return T;case k.seconds:return L;case k.fractional_degree_minutes:return F;case k.fractional_minute_seconds:return v;default:throw new t(null,r.LogicError,null,{reason:"unsupported evaluations"})}}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(k||(k={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(q||(q={}));const C=new n([],[["NORTH",q.north_azimuth],["NORTH AZIMUTH",q.north_azimuth],["POLAR",q.polar],["QUADRANT",q.quadrant],["SOUTH",q.south_azimuth],["SOUTH AZIMUTH",q.south_azimuth]]);function W(e){const n=C.lookup(e);if(null==n)throw new t(null,r.LogicError,null,{reason:"unsupported directionType"});return n}const B=new n([],[["D",k.decimal_degrees],["DD",k.decimal_degrees],["DECIMAL DEGREE",k.decimal_degrees],["DEGREE",k.decimal_degrees],["DECIMAL DEGREES",k.decimal_degrees],["DEGREES",k.decimal_degrees],["DMS",k.degrees_minutes_seconds],["DEGREES MINUTES SECONDS",k.degrees_minutes_seconds],["R",k.radians],["RAD",k.radians],["RADS",k.radians],["RADIAN",k.radians],["RADIANS",k.radians],["G",k.gradians],["GON",k.gradians],["GONS",k.gradians],["GRAD",k.gradians],["GRADS",k.gradians],["GRADIAN",k.gradians],["GRADIANS",k.gradians]]);function V(e){const n=B.lookup(e);if(null==n)throw new t(null,r.LogicError,null,{reason:"unsupported units"});return n}var X;!function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(X||(X={}));class Z{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case k.decimal_degrees:case k.truncated_degrees:return this.m_degrees;case k.fractional_degree_minutes:return this.m_minutes;case k.seconds:case k.fractional_minute_seconds:return this.m_seconds;default:throw new t(null,r.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/v);return t-=s*v,new Z(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new Z(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(e===k.seconds||e===k.fractional_minute_seconds)v<=t&&(t-=v,++r),F<=r&&(r=0,++s),p<=s&&(s=0);else if(e===k.fractional_degree_minutes)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,F<=r&&(r=0,++s),p<=s&&(s=0);else if(e===k.decimal_degrees||e===k.truncated_degrees){const e=D(this.m_seconds,S),n=D(this.m_minutes,F);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new Z(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*v+t}}class J{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return e===X.meridian?this.meridian:this.direction}}class K{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new K(new $(K._convertDirectionFormat(e.extractAngularUnits(k.seconds),n,q.north_azimuth)))}getAngle(e){const n=this._angle.extractAngularUnits(k.seconds);switch(e){case q.north_azimuth:case q.south_azimuth:case q.polar:return new $(K._convertDirectionFormat(n,q.north_azimuth,e));case q.quadrant:{const e=K.secondsNorthAzimuthToQuadrant(n);return new $(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(k.seconds);switch(e){case q.north_azimuth:return H.north;case q.south_azimuth:return H.south;case q.polar:return H.east;case q.quadrant:return K.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(k.seconds);switch(e){case q.north_azimuth:return H.east;case q.south_azimuth:return H.west;case q.polar:return H.north;case q.quadrant:return K.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=U||e>=x?H.north:H.south,t=n===H.north?Math.min(L-e,e):Math.abs(e-z),r=e>z?H.west:H.east;return new J(n,t,r)}static createFromAngleMeridianAndDirection(e,n,t){return new K(new $(K.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(k.seconds),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return n===H.north?t===H.east?e:L-e:t===H.east?z-e:z+e}static _convertDirectionFormat(e,n,s){let a=0;switch(n){case q.north_azimuth:a=e;break;case q.polar:a=U-e;break;case q.quadrant:throw new t(null,r.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:a=e+z}let i=0;switch(s){case q.north_azimuth:i=a;break;case q.polar:i=U-a;break;case q.quadrant:throw new t(null,r.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:i=a-z}return i=I(i,L),i<0?L+i:i}}function Y(e,n,s){let a=null;switch(n){case k.decimal_degrees:a=A(e,S);break;case k.seconds:a=e;break;case k.gradians:a=A(e,R);break;case k.radians:a=A(e,M);break;default:throw new t(null,r.LogicError,null,{reason:"unexpected evaluation"})}switch(s){case k.decimal_degrees:return D(a,S);case k.seconds:return a;case k.gradians:return D(a,R);case k.radians:return a/M;default:throw new t(null,r.LogicError,null,{reason:"unexpected evaluation"})}}class ${constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new $(Y(e,n,k.seconds))}extractAngularUnits(e){return Y(this._seconds,k.seconds,ee(e))}static createFromDegreesMinutesSeconds(e,n,t){return new $(f(f(A(e,S),A(n,v)),t))}}function ee(e){switch(o(e),e){case k.decimal_degrees:case k.truncated_degrees:case k.degrees_minutes_seconds:return k.decimal_degrees;case k.gradians:return k.gradians;case k.fractional_degree_minutes:return k.fractional_degree_minutes;case k.radians:return k.radians;case k.seconds:case k.fractional_minute_seconds:return k.seconds}}class ne{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new ne(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=k.truncated_degrees,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ge(this.view,r,s),n=n===k.truncated_degrees?k.fractional_degree_minutes:n,r=e.newpos;continue;case"s":e=ge(this.view,r,s),n=k.fractional_minute_seconds,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=Z.secondsToDMS(this.angle.extractAngularUnits(k.seconds)),this._formattedDms=Z.secondsToDMS(this.angle.extractAngularUnits(k.seconds)).format(n,t)}}function te(e,n,s,a,i){let o=null;switch(n){case k.decimal_degrees:case k.radians:case k.gradians:return o=Q(G(e.extractAngularUnits(n),a),j(n)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case k.truncated_degrees:case k.fractional_degree_minutes:return o=Q(i.fetchFormattedDms().getField(n),j(n)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case k.fractional_minute_seconds:return o=Q(G(i.fetchDms().getField(n),a),j(n)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");default:throw new t(null,r.LogicError,null,{reason:"unexpected evaluation"})}}function re(e,n,s){if(s===q.quadrant)throw new t(null,r.LogicError,null,{reason:"conversion error"});if(n===k.degrees_minutes_seconds){const n=Z.numberToDms(e);return K.createFromAngleAndDirection($.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),s)}return K.createFromAngleAndDirection($.createFromAngleAndUnits(e,ee(n)),s)}function se(e){switch(a(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}function ae(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function ie(e){const n=parseFloat(e);if(u(n)){if(isNaN(n))throw new t(null,r.LogicError,null,{reason:"invalid conversion"});return n}throw new t(null,r.LogicError,null,{reason:"invalid conversion"})}function oe(e,n,a){const i=a===q.quadrant;let o=null,c=null,u=0,d=0,l=0;if(i){if(e.length<2)throw new t(null,r.LogicError,null,{reason:"conversion error"});l=1;const n=se(s(e[e.length-1]));if(n?(o=n.first,c=n.second):(u=1,o=ae(s(e[0])),c=ae(s(e[e.length-1]))),null===o||null===c)throw new t(null,r.LogicError,null,{reason:"invalid conversion"})}switch(n){case k.decimal_degrees:case k.radians:case k.gradians:if(0===e.length)throw new t(null,r.LogicError,null,{reason:"invalid conversion"});return i?K.createFromAngleMeridianAndDirection($.createFromAngleAndUnits(ie(e[u]),ee(n)),o,c):K.createFromAngleAndDirection($.createFromAngleAndUnits(ie(e[u]),ee(n)),a);case k.degrees_minutes_seconds:if(d=e.length-l-u,3===d){const n=$.createFromDegreesMinutesSeconds(ie(e[u]),ie(e[u+1]),ie(e[u+2]));return i?K.createFromAngleMeridianAndDirection(n,o,c):K.createFromAngleAndDirection(n,a)}if(1===d){const n=ie(e[u]),t=Z.numberToDms(n),r=$.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?K.createFromAngleMeridianAndDirection(r,o,c):K.createFromAngleAndDirection(r,a)}}throw new t(null,r.LogicError,null,{reason:"invalid conversion"})}function ce(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter((e=>""!==e))}function ue(e,n,s){if(u(e))return re(a(e),n,s);if(c(e))return oe(ce(e),n,s);if(d(e))return oe(e,n,s);if(i(e))return oe(e.toArray(),n,s);throw new t(null,r.LogicError,null,{reason:"conversion error"})}function de(e,n,s){const a=ee(s);if(a&&s!==k.degrees_minutes_seconds){return e.getAngle(n).extractAngularUnits(a)}throw new t(null,r.LogicError,null,{reason:"conversion error"})}function le(e,n,t){const r=e.getAngle(n);if(n===q.quadrant&&t===k.degrees_minutes_seconds){const t=Z.secondsToDMS(r.extractAngularUnits(k.seconds));return[P(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,P(e.getDirection(n),"SHORT")]}if(t===k.degrees_minutes_seconds){const e=Z.secondsToDMS(r.extractAngularUnits(k.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return n===q.quadrant?[P(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),P(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function he(e,n){let s="";switch(e){case k.decimal_degrees:s=n===q.quadrant?"DD.DD"+b:"DDD.DD"+b;break;case k.degrees_minutes_seconds:s=n===q.quadrant?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case k.radians:s="R.RR";break;case k.gradians:s="GGG.GG"+N;break;default:throw new t(null,r.LogicError,null,{reason:"conversion error"})}return n===q.quadrant&&(s="p "+s+" b"),s}function ge(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const a=e[n];if(a===t)s?r.rounding++:r.padding++,n++;else{if("."!==a)break;s=!0,n++}}return r.newpos=n-1,r}function me(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function _e(e,n,t){let r="",s=null,a=null;const i=ne.createFromStringAndBearing(n,e,t),o={D:k.decimal_degrees,d:k.truncated_degrees,m:k.fractional_degree_minutes,s:k.fractional_minute_seconds,R:k.radians,G:k.gradians};for(let c=0;c<n.length;c++){const u=n[c];switch(u){case"[":s=me(n,c),r+=s.escaped,c=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ge(n,c,u),a=e.getAngle(t),r+=te(a,o[u],s.padding,s.rounding,i),c=s.newpos;continue;case"P":case"p":r+=P(i.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=P(i.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const fe=new n(["TEXT","VALUE"]);function we(n,a,i){if(!(a instanceof e))throw new t(null,r.InvalidParameter,null);if(!1===a.hasField("directionType"))throw new t(null,r.LogicError,null,{reason:"missing directionType"});if(!1===a.hasField("angleType"))throw new t(null,r.LogicError,null,{reason:"missing angleType"});const o=W(O(a.field("directiontype"))),c=ue(n,V(O(a.field("angletype"))),o);if(!(i instanceof e))throw new t(null,r.InvalidParameter,null);if(!1===i.hasField("directionType"))throw new t(null,r.LogicError,null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t(null,r.LogicError,null,{reason:"missing angleType"});const u=W(O(i.field("directiontype"))),d=i.hasField("angleType")?V(O(i.field("angletype"))):null,l=fe.get(O(i.field("outputType")));if(!u||!l)throw new t(null,r.LogicError,null,{reason:"conversion error"});if(!(d||"TEXT"===l&&i.hasField("format")))throw new t(null,r.LogicError,null,{reason:"invalid unit"});switch(l){case"VALUE":return u===q.quadrant||d===k.degrees_minutes_seconds?le(c,u,d):de(c,u,d);case"TEXT":{let e="";return i.hasField("format")&&(e=s(i.field("format"))),null!==e&&""!==e||(e=he(d,u)),_e(c,e,u)}default:throw new t(null,r.InvalidParameter,null)}}export{we as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as n,createDateTimeZone as e}from"../ArcadeDate.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"../executionError.js";import{D as o,L as u,t as a,k as s,g as i,j as l,f as c,h as f,K as m,O as d,P as h}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as N}from"../../core/sql/TimeOnly.js";import{getLocale as w}from"../../intl/locale.js";import{DateTime as g}from"luxon";import{isString as A}from"../../support/guards.js";function k(n,e,r){return n+(T(r)?P:D)[e]}function T(n){return n%4==0&&(n%100!=0||n%400==0)}const D=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,e){return""===n||"default"===n.toLowerCase().trim()?u(e):"z"===n||"Z"===n?"UTC":n}function p(n,e){return l(n)?n.toArcadeDate():f(n,u(e))}function C(T,D){T.today=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=new Date;return i.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(i,u(e))}))},T.time=function(e,c){return D(e,c,((f,m,d)=>{switch(o(d,0,4,e,c),d.length){case 0:{const r=n.nowToArcadeDate(u(e));return new N(r.hour,r.minute,r.second,r.millisecond)}case 1:{if(s(d[0]))return d[0].clone();if(i(d[0]))return new N(d[0].hour,d[0].minute,d[0].second,d[0].millisecond);if(l(d[0]))return new N(0,0,0,0);if(A(d[0]))return N.fromString(d[0]);const n=a(d[0]);return!1===isNaN(n)?N.fromMilliseconds(n):null}case 2:return A(d[0])&&A(d[1])?N.fromString(d[0],d[1]):N.fromParts(a(d[0]),a(d[1]),0,0);case 3:return N.fromParts(a(d[0]),a(d[1]),a(d[2]),0);case 4:return N.fromParts(a(d[0]),a(d[1]),a(d[2]),a(d[3]))}throw new r(e,t.InvalidParameter,c)}))},T.dateonly=function(e,r){return D(e,r,((t,s,f)=>{if(o(f,0,3,e,r),3===f.length)return y.fromParts(a(f[0]),a(f[1])+1,a(f[2]));if(2===f.length){const n=c(f[1]);return""===n?null:"X"===n?y.fromSeconds(a(f[0])):"x"===n?y.fromMilliseconds(a(f[0])):y.fromString(c(f[0]),n)}if(1===f.length){if(A(f[0])){if(""===f[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(f[0]))return y.fromString(f[0]+"-01-01")}if(l(f[0]))return f[0].clone();if(i(f[0]))return y.fromParts(f[0].year,f[0].monthJS+1,f[0].day);const n=a(f[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(f[0])?y.fromString(f[0]):null}if(0===f.length){const r=n.nowToArcadeDate(u(e));return!1===r.isValid?null:y.fromParts(r.year,r.monthJS+1,r.day)}return null}))},T.changetimezone=function(a,s){return D(a,s,((i,m,d)=>{if(o(d,2,2,a,s),null===d[0])return null;if(l(d[0]))throw new r(a,t.CannotChangeTimeZoneDateOnly,s);if(l(d[0]))throw new r(a,t.CannotChangeTimeZoneTime,s);const h=f(d[0],u(a));if(null===h)throw new r(a,t.InvalidParameter,s);const y=e(Z(c(d[1]),a),!1);if(null===y)return null;const N=n.arcadeDateAndZoneToArcadeDate(h,y);return!1===N.isValid?null:N}))},T.timezone=function(e,r){return D(e,r,((t,a,i)=>{if(o(i,1,2,e,r),s(i[0]))return"Unknown";if(l(i[0]))return"Unknown";const c=f(i[0],u(e));if(null===c)return null;const m=c.timeZone;return"system"===m?n.systemTimeZoneCanonicalName:"utc"===m.toLowerCase()?"UTC":"unknown"===m.toLowerCase()?"Unknown":m}))},T.timezoneoffset=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:60*s.timeZoneOffset*1e3}))},T.now=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=n.nowToArcadeDate(u(e));return!1===i.isValid?null:i}))},T.timestamp=function(e,r){return D(e,r,((t,u,a)=>{o(a,0,0,e,r);const s=n.nowUTCToArcadeDate();return!1===s.isValid?null:s}))},T.toutc=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:s.toUTC()}))},T.tolocal=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=f(a[0],u(n));return null===s?null:s.toLocal()}))},T.day=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.day}))},T.month=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthJS}))},T.year=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.year}))},T.hour=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].hour;const i=f(a[0],u(n));return null===i?NaN:i.hour}))},T.second=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].second;const i=f(a[0],u(n));return null===i?NaN:i.second}))},T.millisecond=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].millisecond;const i=f(a[0],u(n));return null===i?NaN:i.millisecond}))},T.minute=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),s(a[0]))return a[0].minute;const i=f(a[0],u(n));return null===i?NaN:i.minute}))},T.week=function(n,e){return D(n,e,((s,i,l)=>{o(l,1,2,n,e);const c=p(l[0],u(n));if(null===c)return NaN;const f=a(m(l[1],0));if(f<0||f>6)throw new r(n,t.InvalidParameter,e);const d=c.day,h=c.monthJS,y=c.year,N=c.dayOfWeekJS,w=k(d,h,y)-1,g=Math.floor(w/7);return N-f+(N-f<0?7:0)<w-7*g?g+1:g}))},T.weekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekJS}))},T.isoweekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekISO}))},T.isomonth=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthISO}))},T.isoweek=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.weekISO}))},T.isoyear=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.yearISO}))},T.date=function(r,t){return D(r,t,((i,m,h)=>{if(o(h,0,8,r,t),3===h.length){if(l(h[0])&&s(h[1])&&A(h[2])){const t=e(Z(c(h[2])??"unknown",r),!1);return null===t?null:S(n.fromParts(h[0].year,h[0].month,h[0].day,h[1].hour,h[1].minute,h[1].second,h[1].millisecond,t))}return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),0,0,0,0,u(r)))}if(4===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),0,0,0,u(r)));if(5===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),0,0,u(r)));if(6===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),0,u(r)));if(7===h.length)return S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),u(r)));if(8===h.length){const t=e(Z(c(h[7])??"unknown",r),!1);return null===t?null:S(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),t))}if(2===h.length){if(l(h[0])&&A(h[1])){const t=e(Z(c(h[1])??"unknown",r),!1);return null===t?null:S(n.fromParts(h[0].year,h[0].month,h[0].day,0,0,0,0,t))}if(l(h[0])&&s(h[1]))return S(n.fromParts(h[0].year,h[0].month,h[0].day,h[1].hour,h[1].minute,h[1].second,h[1].millisecond,"unknown"));let t,o=c(h[1]);return""===o?null:(o=d(o,!0),t="X"===o?g.fromSeconds(a(h[0])):"x"===o?g.fromMillis(a(h[0])):g.fromFormat(c(h[0]),o,{locale:w(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===h.length){if(l(h[0]))return S(n.fromParts(h[0].year,h[0].month,h[0].day,0,0,0,0,"unknown"));if(A(h[0])){if(""===h[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(h[0]))return f(h[0]+"-01-01",u(r))}const e=a(h[0]);if(!1===isNaN(e)){const t=g.fromMillis(e);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,u(r)):null}return f(h[0],u(r))}return 0===h.length?n.nowToArcadeDate(u(r)):null}))},T.datediff=function(e,r){return D(e,r,((t,a,i)=>{if(o(i,2,4,e,r),s(i[0]))return s(i[1])?i[0].difference(i[1],c(i[2])):NaN;if(s(i[1]))return NaN;if(l(i[0]))return l(i[1])?i[0].difference(i[1],c(i[2])):NaN;if(l(i[1]))return NaN;let d=f(i[0],u(e)),h=f(i[1],u(e));if(null===d||null===h)return NaN;let y=m(i[3],"");switch(""!==y&&null!==y?(y=Z(c(y),e),d=n.arcadeDateAndZoneToArcadeDate(d,y),h=n.arcadeDateAndZoneToArcadeDate(h,y)):d.timeZone!==h.timeZone&&(d.isUnknownTimeZone?d=n.arcadeDateAndZoneToArcadeDate(d,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,d.timeZone))),c(i[2]).toLowerCase()){case"days":case"day":case"d":return d.diff(h,"days");case"months":case"month":return d.diff(h,"months");case"minutes":case"minute":case"m":return"M"===i[2]?d.diff(h,"months"):d.diff(h,"minutes");case"seconds":case"second":case"s":return d.diff(h,"seconds");case"milliseconds":case"millisecond":case"ms":default:return d.diff(h);case"hours":case"hour":case"h":return d.diff(h,"hours");case"years":case"year":case"y":return d.diff(h,"years")}}))},T.dateadd=function(n,e){return D(n,e,((r,t,i)=>{o(i,2,3,n,e);let m=a(i[1]);if(isNaN(m)||m===1/0||m===-1/0)return s(i[0])||l(i[0])?i[0].clone():f(i[0],u(n));let d="milliseconds";switch(c(i[2]).toLowerCase()){case"days":case"day":case"d":d="days",m=l(i[0])?m:h(m);break;case"months":case"month":d="months",m=l(i[0])?m:h(m);break;case"minutes":case"minute":case"m":d="M"===i[2]?"months":"minutes";break;case"seconds":case"second":case"s":d="seconds";break;case"milliseconds":case"millisecond":case"ms":d="milliseconds";break;case"hours":case"hour":case"h":d="hours";break;case"years":case"year":case"y":d="years"}if(s(i[0]))return i[0].plus(d,m);if(l(i[0]))return i[0].plus(d,m);const y=f(i[0],u(n));return null===y?null:y.plus({[d]:m})}))}}export{C as registerFunctions};
5
+ import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o,ExecutionErrorCodes as u}from"../executionError.js";import{D as l,L as i,t as a,k as s,g as c,j as f,f as m,h as d,K as h,O as N,P as y}from"../../chunks/languageUtils.js";import{DateOnly as w}from"../../core/sql/DateOnly.js";import{TimeOnly as g}from"../../core/sql/TimeOnly.js";import{getLocale as A}from"../../intl/locale.js";import{DateTime as T}from"luxon";import{isString as D}from"../../support/guards.js";function k(n,r,e){return n+(P(e)?S:p)[r]}function P(n){return n%4==0&&(n%100!=0||n%400==0)}const p=[0,31,59,90,120,151,181,212,243,273,304,334],S=[0,31,60,91,121,152,182,213,244,274,305,335];function Z(n){return null===n?n:!1===n.isValid?null:n}function F(n,r){switch(e(n)){case"":case"default":return i(r);case"z":return"UTC";default:return n}}function O(n,r){return f(n)?n.toArcadeDate():d(n,i(r))}const C=new t(["days","months","minutes","seconds","hours","years","milliseconds"],[["day","days"],["d","days"],["month","months"],["minute","minutes"],["m","minutes"],["second","seconds"],["s","seconds"],["hour","hours"],["h","hours"],["year","years"],["y","years"],["millisecond","milliseconds"],["ms","milliseconds"]]);function U(n){return"M"===n?"months":C.lookup(m(n))??"milliseconds"}function j(e,t){e.today=function(r,e){return t(r,e,((t,o,u)=>{l(u,0,0,r,e);const a=new Date;return a.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(a,i(r))}))},e.time=function(r,e){return t(r,e,((t,m,d)=>{switch(l(d,0,4,r,e),d.length){case 0:{const e=n.nowToArcadeDate(i(r));return new g(e.hour,e.minute,e.second,e.millisecond)}case 1:{if(s(d[0]))return d[0].clone();if(c(d[0]))return new g(d[0].hour,d[0].minute,d[0].second,d[0].millisecond);if(f(d[0]))return new g(0,0,0,0);if(D(d[0]))return g.fromString(d[0]);const n=a(d[0]);return!1===isNaN(n)?g.fromMilliseconds(n):null}case 2:return D(d[0])&&D(d[1])?g.fromString(d[0],d[1]):g.fromParts(a(d[0]),a(d[1]),0,0);case 3:return g.fromParts(a(d[0]),a(d[1]),a(d[2]),0);case 4:return g.fromParts(a(d[0]),a(d[1]),a(d[2]),a(d[3]))}throw new o(r,u.InvalidParameter,e)}))},e.dateonly=function(r,e){return t(r,e,((t,o,u)=>{if(l(u,0,3,r,e),3===u.length)return w.fromParts(a(u[0]),a(u[1])+1,a(u[2]));if(2===u.length){const n=m(u[1]);return""===n?null:"X"===n?w.fromSeconds(a(u[0])):"x"===n?w.fromMilliseconds(a(u[0])):w.fromString(m(u[0]),n)}if(1===u.length){if(D(u[0])){if(""===u[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(u[0]))return w.fromString(u[0]+"-01-01")}if(f(u[0]))return u[0].clone();if(c(u[0]))return w.fromParts(u[0].year,u[0].monthJS+1,u[0].day);const n=a(u[0]);return!1===isNaN(n)?w.fromMilliseconds(n):D(u[0])?w.fromString(u[0]):null}if(0===u.length){const e=n.nowToArcadeDate(i(r));return!1===e.isValid?null:w.fromParts(e.year,e.monthJS+1,e.day)}return null}))},e.changetimezone=function(e,a){return t(e,a,((t,s,c)=>{if(l(c,2,2,e,a),null===c[0])return null;if(f(c[0]))throw new o(e,u.CannotChangeTimeZoneDateOnly,a);if(f(c[0]))throw new o(e,u.CannotChangeTimeZoneTime,a);const h=d(c[0],i(e));if(null===h)throw new o(e,u.InvalidParameter,a);const N=r(F(m(c[1]),e),!1);if(null===N)return null;const y=n.arcadeDateAndZoneToArcadeDate(h,N);return!1===y.isValid?null:y}))},e.timezone=function(r,e){return t(r,e,((t,o,u)=>{if(l(u,1,2,r,e),s(u[0]))return"Unknown";if(f(u[0]))return"Unknown";const a=d(u[0],i(r));if(null===a)return null;const c=a.timeZone;return"system"===c?n.systemTimeZoneCanonicalName:"utc"===c.toLowerCase()?"UTC":"unknown"===c.toLowerCase()?"Unknown":c}))},e.timezoneoffset=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=d(o[0],i(n));return null===u?null:60*u.timeZoneOffset*1e3}))},e.now=function(r,e){return t(r,e,((t,o,u)=>{l(u,0,0,r,e);const a=n.nowToArcadeDate(i(r));return!1===a.isValid?null:a}))},e.timestamp=function(r,e){return t(r,e,((t,o,u)=>{l(u,0,0,r,e);const i=n.nowUTCToArcadeDate();return!1===i.isValid?null:i}))},e.toutc=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=d(o[0],i(n));return null===u?null:u.toUTC()}))},e.tolocal=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=d(o[0],i(n));return null===u?null:u.toLocal()}))},e.day=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.day}))},e.month=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.monthJS}))},e.year=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.year}))},e.hour=function(n,r){return t(n,r,((e,t,o)=>{if(l(o,1,1,n,r),s(o[0]))return o[0].hour;const u=d(o[0],i(n));return null===u?NaN:u.hour}))},e.second=function(n,r){return t(n,r,((e,t,o)=>{if(l(o,1,1,n,r),s(o[0]))return o[0].second;const u=d(o[0],i(n));return null===u?NaN:u.second}))},e.millisecond=function(n,r){return t(n,r,((e,t,o)=>{if(l(o,1,1,n,r),s(o[0]))return o[0].millisecond;const u=d(o[0],i(n));return null===u?NaN:u.millisecond}))},e.minute=function(n,r){return t(n,r,((e,t,o)=>{if(l(o,1,1,n,r),s(o[0]))return o[0].minute;const u=d(o[0],i(n));return null===u?NaN:u.minute}))},e.week=function(n,r){return t(n,r,((e,t,s)=>{l(s,1,2,n,r);const c=O(s[0],i(n));if(null===c)return NaN;const f=a(h(s[1],0));if(f<0||f>6)throw new o(n,u.InvalidParameter,r);const m=c.day,d=c.monthJS,N=c.year,y=c.dayOfWeekJS,w=k(m,d,N)-1,g=Math.floor(w/7);return y-f+(y-f<0?7:0)<w-7*g?g+1:g}))},e.weekday=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.dayOfWeekJS}))},e.isoweekday=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.dayOfWeekISO}))},e.isomonth=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.monthISO}))},e.isoweek=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.weekISO}))},e.isoyear=function(n,r){return t(n,r,((e,t,o)=>{l(o,1,1,n,r);const u=O(o[0],i(n));return null===u?NaN:u.yearISO}))},e.date=function(e,o){return t(e,o,((t,u,c)=>{if(l(c,0,8,e,o),3===c.length){if(f(c[0])&&s(c[1])&&D(c[2])){const t=r(F(m(c[2])??"unknown",e),!1);return null===t?null:Z(n.fromParts(c[0].year,c[0].month,c[0].day,c[1].hour,c[1].minute,c[1].second,c[1].millisecond,t))}return Z(n.fromParts(a(c[0]),a(c[1])+1,a(c[2]),0,0,0,0,i(e)))}if(4===c.length)return Z(n.fromParts(a(c[0]),a(c[1])+1,a(c[2]),a(c[3]),0,0,0,i(e)));if(5===c.length)return Z(n.fromParts(a(c[0]),a(c[1])+1,a(c[2]),a(c[3]),a(c[4]),0,0,i(e)));if(6===c.length)return Z(n.fromParts(a(c[0]),a(c[1])+1,a(c[2]),a(c[3]),a(c[4]),a(c[5]),0,i(e)));if(7===c.length)return Z(n.fromParts(a(c[0]),a(c[1])+1,a(c[2]),a(c[3]),a(c[4]),a(c[5]),a(c[6]),i(e)));if(8===c.length){const t=r(F(m(c[7])??"unknown",e),!1);return null===t?null:Z(n.fromParts(a(c[0]),a(c[1])+1,a(c[2]),a(c[3]),a(c[4]),a(c[5]),a(c[6]),t))}if(2===c.length){if(f(c[0])&&D(c[1])){const t=r(F(m(c[1])??"unknown",e),!1);return null===t?null:Z(n.fromParts(c[0].year,c[0].month,c[0].day,0,0,0,0,t))}if(f(c[0])&&s(c[1]))return Z(n.fromParts(c[0].year,c[0].month,c[0].day,c[1].hour,c[1].minute,c[1].second,c[1].millisecond,"unknown"));let t,o=m(c[1]);return""===o?null:(o=N(o,!0),t="X"===o?T.fromSeconds(a(c[0])):"x"===o?T.fromMillis(a(c[0])):T.fromFormat(m(c[0]),o,{locale:A(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===c.length){if(f(c[0]))return Z(n.fromParts(c[0].year,c[0].month,c[0].day,0,0,0,0,"unknown"));if(D(c[0])){if(""===c[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(c[0]))return d(c[0]+"-01-01",i(e))}const r=a(c[0]);if(!1===isNaN(r)){const t=T.fromMillis(r);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,i(e)):null}return d(c[0],i(e))}return 0===c.length?n.nowToArcadeDate(i(e)):null}))},e.datediff=function(r,e){return t(r,e,((t,o,u)=>{if(l(u,2,4,r,e),s(u[0]))return s(u[1])?u[0].difference(u[1],m(u[2])):NaN;if(s(u[1]))return NaN;if(f(u[0]))return f(u[1])?u[0].difference(u[1],m(u[2])):NaN;if(f(u[1]))return NaN;let a=d(u[0],i(r)),c=d(u[1],i(r));if(null===a||null===c)return NaN;let N=h(u[3],"");return""!==N&&null!==N?(N=F(m(N),r),a=n.arcadeDateAndZoneToArcadeDate(a,N),c=n.arcadeDateAndZoneToArcadeDate(c,N)):a.timeZone!==c.timeZone&&(a.isUnknownTimeZone?a=n.arcadeDateAndZoneToArcadeDate(a,c.timeZone):c=(c.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(c,a.timeZone))),a.diff(c,U(u[2]))}))},e.dateadd=function(n,r){return t(n,r,((e,t,o)=>{l(o,2,3,n,r);let u=a(o[1]);if(isNaN(u)||u===1/0||u===-1/0)return s(o[0])||f(o[0])?o[0].clone():d(o[0],i(n));const c=U(o[2]);if("days"!==c&&"months"!==c||(u=f(o[0])?u:y(u)),s(o[0]))return o[0].plus(c,u);if(f(o[0]))return o[0].plus(c,u);const m=d(o[0],i(n));return null===m?null:m.plus({[c]:u})}))}}export{j as registerFunctions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Graphic.js";import{ArcadeDate as t}from"../ArcadeDate.js";import n from"../ArcadePortal.js";import i from"../Dictionary.js";import{ArcadeExecutionError as a,ExecutionErrorCodes as r}from"../executionError.js";import o from"../Feature.js";import{convertToFeatureSet as s,constructFeatureSetFromPortalItem as l,constructFeatureSet as f,constructFeatureSetFromRelationship as d,constructFeatureSetFromUrl as u,constructAssociationMetaDataFeatureSetFromUrl as c}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{D as p,k as y,j as w,p as h,f as I,h as g,L as F,g as b,o as T,K as D,e as x,n as E,m as N,i as A,t as v,M as S,Y as L}from"../../chunks/languageUtils.js";import{getPortal as j}from"../portalUtils.js";import{SqlExpressionAdapted as C,StringToCodeAdapted as Z,FieldRename as k,AdaptedFeatureSet as $,OriginalField as P}from"../featureset/actions/Adapted.js";import U from"../featureset/actions/AttributeFilter.js";import M from"../featureset/actions/OrderBy.js";import R from"../featureset/actions/Top.js";import O from"../featureset/sources/Empty.js";import z from"../featureset/sources/FeatureLayerMemory.js";import W from"../featureset/support/OrderbyClause.js";import{isSupportedLayer as H,cloneField as G}from"../featureset/support/shared.js";import{isSingleField as V}from"../featureset/support/sqlUtils.js";import{calculateStat as _}from"./fieldStats.js";import{isPromiseLike as K}from"../../core/promiseUtils.js";import q from"../../core/sql/WhereClause.js";import B from"../../layers/FeatureLayer.js";import Q from"../../layers/support/Field.js";import J from"../../portal/Portal.js";import{queryAssociations as Y}from"../../rest/networks/queryAssociations.js";import X from"../../rest/networks/support/NetworkElement.js";import ee from"../../rest/networks/support/QueryAssociationsParameters.js";import{isString as te,isArray as ne,isInteger as ie}from"../../support/guards.js";function ae(e){if(1===e.length){if(ne(e[0]))return _("distinct",e[0],-1);if(N(e[0]))return _("distinct",e[0].toArray(),-1)}return _("distinct",e,-1)}function re(e,t,n){const i=e.getVariables();if(i.length>0){const a={};for(const e of i)a[e]=t.evaluateIdentifier(n,{name:e});e.parameters=a}return e}function oe(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function se(e){if(null===e)return null;const t={type:oe(e,"type",""),name:oe(e,"name","")};if("range"===t.type)t.range=oe(e,"range",[]);else{t.codedValues=[];for(const n of oe(e,"codedValues",[]))t.codedValues.push({name:oe(n,"name",""),code:oe(n,"code",null)})}return t}function le(e){if(null===e)return null;const t={},n=oe(e,"wkt");null!==n&&(t.wkt=n);const i=oe(e,"wkid");return null!==i&&(t.wkid=i),t}function fe(e){if(null===e)return null;const t={hasZ:oe(e,"hasz",!1),hasM:oe(e,"hasm",!1)},n=oe(e,"spatialreference");null!=n&&(t.spatialReference=le(n));const i=oe(e,"x",null);if(null!==i)return t.x=i,t.y=oe(e,"y",null),t.hasZ&&(t.z=oe(e,"z",null)),t.hasM&&(t.m=oe(e,"m",null)),t;const a=oe(e,"rings",null);if(null!==a)return t.rings=a,t;const r=oe(e,"paths",null);if(null!==r)return t.paths=r,t;const o=oe(e,"points",null);if(null!==o)return t.points=o,t;for(const s of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=oe(e,s,null);null!==n&&(t[s]=n)}return t}function de(e,t){for(const n of t)if(n===e)return!0;return!1}function ue(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==de(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==ne(e.layerDefinition.fields)&&!1!==ne(e.featureSet.features))))}function ce(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}async function me(t,n,i,o,s,l,d){const u=await t.getFeatureSetInfo();if(null===(u?.layerId??null))return null;if(!s.layerIdLookup.get(u.layerId))return null;const c=t.serviceUrl().replace(/\/FeatureServer/i,"/UtilityNetworkServer"),m=[];switch(i){case"connected":m.push("connectivity"),m.push("junction-edge-from-connectivity"),m.push("junction-edge-to-connectivity"),m.push("junction-edge-midspan-connectivity"),m.push("junction-junction-connectivity");break;case"container":case"content":m.push("containment");break;case"structure":case"attached":m.push("attachment");break;case"junctionedge":m.push("junction-edge-from-connectivity"),m.push("junction-edge-to-connectivity");break;case"midspan":m.push("junction-edge-midspan-connectivity");break;default:throw new a(l,r.InvalidParameter,d)}let p=null,y=!1;if(null!==o&&""!==o&&void 0!==o){for(const e of s.terminals)e.terminalName===o&&(p=e.terminalId);null===p&&(y=!0)}const w=[];if(!y){const a=new X({globalId:n.field(t.globalIdField),networkSourceId:s.layerIdLookup.get(u.layerId).sourceId,...p?{terminalId:p}:""}),r=await Y(c,new ee({types:m,elements:[a]}));let o=0;for(const t of r.associations){let n=null,r="",l="";if(t.fromNetworkElement?.globalId===a.globalId?(n=t.toNetworkElement,l="to"):t.toNetworkElement?.globalId===a.globalId&&(n=t.fromNetworkElement,l="from"),!n)continue;switch(i){case"attached":if("attachment"!==t.associationType)continue;if("to"!==l)continue;break;case"structure":if("attachment"!==t.associationType)continue;if("from"!==l)continue;break;case"container":if("containment"!==t.associationType)continue;if("from"!==l)continue;break;case"content":if("containment"!==t.associationType)continue;if("to"!==l)continue;break;case"connected":break;case"junctionedge":"junction-edge-to-connectivity"===t.associationType?r="to":"junction-edge-from-connectivity"===t.associationType&&(r="from");break;case"midspan":if("junction-edge-midspan-connectivity"!==t.associationType)continue}const f=s.sourceIdLookup.get(n.networkSourceId)?.className??"";w.push(new e({geometry:null,attributes:{objectId:o++,globalId:n.globalId,percentAlong:t.percentAlong??0,isContentVisible:t.isContentVisible?0:1,className:f,side:r}}))}}const h=new B({source:w,geometryType:null,objectIdField:"objectId",globalIdField:"globalId",fields:[new Q({name:"objectId",alias:"objectId",type:"oid"}),new Q({name:"globalId",alias:"globalId",type:"global-id"}),new Q({name:"percentAlong",alias:"percentAlong",type:"double"}),new Q({name:"side",alias:"side",type:"string"}),new Q({name:"isContentVisible",alias:"isContentVisible",type:"integer"}),new Q({name:"className",alias:"className",type:"string"})]});return f(h)}function pe(e){"async"===e.mode&&(e.functions.timezone=function(n,o){return e.standardFunctionAsync(n,o,(async(e,s,l)=>{if(p(l,1,2,n,o),y(l[0]))return"Unknown";if(w(l[0]))return"Unknown";if(h(l[0])){if(await l[0].load(),1===l.length||null===l[1])return l[0].datesInUnknownTimezone?ce("unknown"):ce(l[0].dateFieldsTimeZone);if(!(l[1]instanceof i)||!1===l[1].hasField("type"))throw new a(n,r.InvalidParameter,o);const e=l[1].field("type");if(!1===te(e))throw new a(n,r.InvalidParameter,o);switch(I(e).toLowerCase()){case"preferredtimezone":return ce(l[0].preferredTimeZone);case"editfieldsinfo":return ce(l[0].editFieldsInfo?.timeZone??null);case"timeinfo":return ce(l[0].timeInfo?.timeZone??null);case"field":if(l[1].hasField("fieldname")&&te(l[1].field("fieldname")))return ce(l[0].fieldTimeZone(I(l[1].field("fieldname"))))}throw new a(n,r.InvalidParameter,o)}const f=g(l[0],F(n));if(null===f)return null;const d=f.timeZone;return"system"===d?t.systemTimeZoneCanonicalName:"utc"===d.toLowerCase()?"UTC":"unknown"===d.toLowerCase()?"Unknown":d}))},e.functions.sqltimestamp=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{p(o,1,3,t,n);const s=o[0];if(b(s)){if(1===o.length)return s.toSQLWithKeyword();if(2===o.length)return s.changeTimeZone(I(o[1])).toSQLWithKeyword();throw new a(t,r.InvalidParameter,n)}if(w(s))return s.toSQLWithKeyword();if(h(s)){if(3!==o.length)throw new a(t,r.InvalidParameter,n);await s.load();const e=I(o[1]);if(w(o[2]))return o[2].toSQLWithKeyword();if(!1===b(o[2]))throw new a(t,r.InvalidParameter,n);const i=s.fieldTimeZone(e);return null==i?o[2].toSQLWithKeyword():o[2].changeTimeZone(i).toSQLWithKeyword()}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"sqltimestamp",min:2,max:4}),e.functions.featuresetbyid=function(t,n){return e.standardFunctionAsync(t,n,((e,i,o)=>{if(p(o,2,4,t,n),T(o[0])){const e=I(o[1]);let i=D(o[2],null);const s=x(D(o[3],!0));if(null===i&&(i=["*"]),!1===ne(i))throw new a(t,r.InvalidParameter,n);return o[0].featureSetById(e,s,i)}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"featuresetbyid",min:2,max:4}),e.functions.getfeatureset=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{if(p(o,1,2,t,n),E(o[0])){let e=D(o[1],"datasource");return null===e&&(e="datasource"),e=I(e).toLowerCase(),s(o[0].fullSchema(),e,t.lrucache,t.interceptor,t.spatialReference)}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"getfeatureset",min:1,max:2}),e.functions.featuresetbyportalitem=function(t,i){return e.standardFunctionAsync(t,i,((e,o,s)=>{if(p(s,2,5,t,i),null===s[0])throw new a(t,r.PortalRequired,i);if(s[0]instanceof n){const e=I(s[1]),n=I(s[2]);let o=D(s[3],null);const f=x(D(s[4],!0));if(null===o&&(o=["*"]),!1===ne(o))throw new a(t,r.InvalidParameter,i);let d;return d=t.services?.portal?t.services.portal:J.getDefault(),d=j(s[0],d),l(e,n,t.spatialReference,o,f,d,t.lrucache,t.interceptor)}if(!1===te(s[0]))throw new a(t,r.PortalRequired,i);const f=I(s[0]),d=I(s[1]);let u=D(s[2],null);const c=x(D(s[3],!0));if(null===u&&(u=["*"]),!1===ne(u))throw new a(t,r.InvalidParameter,i);return l(f,d,t.spatialReference,u,c,t.services?.portal??J.getDefault(),t.lrucache,t.interceptor)}))},e.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),e.functions.featuresetbyname=function(t,n){return e.standardFunctionAsync(t,n,((e,i,o)=>{if(p(o,2,4,t,n),T(o[0])){const e=I(o[1]);let i=D(o[2],null);const s=x(D(o[3],!0));if(null===i&&(i=["*"]),!1===ne(i))throw new a(t,r.InvalidParameter,n);return o[0].featureSetByName(e,s,i)}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"featuresetbyname",min:2,max:4}),e.functions.featureset=function(t,n){return e.standardFunction(t,n,((e,o,s)=>{p(s,1,1,t,n);const l={layerDefinition:{geometryType:"",objectIdField:"",globalIdField:"",typeIdField:"",hasM:!1,hasZ:!1,fields:[]},featureSet:{geometryType:"",features:[]}};if(te(s[0])){const e=JSON.parse(s[0]);void 0!==e.layerDefinition?(l.layerDefinition=e.layerDefinition,l.featureSet=e.featureSet,e.layerDefinition.spatialReference&&(l.layerDefinition.spatialReference=e.layerDefinition.spatialReference)):(l.featureSet.features=e.features,l.featureSet.geometryType=e.geometryType,l.layerDefinition.geometryType=l.featureSet.geometryType,l.layerDefinition.objectIdField=e.objectIdFieldName??"",l.layerDefinition.typeIdField=e.typeIdFieldName,l.layerDefinition.globalIdField=e.globalIdFieldName,l.layerDefinition.fields=e.fields,e.spatialReference&&(l.layerDefinition.spatialReference=e.spatialReference))}else{if(!(s[0]instanceof i))throw new a(t,r.InvalidParameter,n);{const e=JSON.parse(s[0].castToText(!0)),i=oe(e,"layerdefinition");if(null!==i){l.layerDefinition.geometryType=oe(i,"geometrytype",""),l.featureSet.geometryType=l.layerDefinition.geometryType,l.layerDefinition.globalIdField=oe(i,"globalidfield",""),l.layerDefinition.objectIdField=oe(i,"objectidfield",""),l.layerDefinition.typeIdField=oe(i,"typeidfield",""),l.layerDefinition.hasZ=!0===oe(i,"hasz",!1),l.layerDefinition.hasM=!0===oe(i,"hasm",!1);const t=oe(i,"spatialreference");t&&(l.layerDefinition.spatialReference=le(t));const n=[];for(const e of oe(i,"fields",[])){const t={name:oe(e,"name",""),alias:oe(e,"alias",""),type:oe(e,"type",""),nullable:oe(e,"nullable",!0),editable:oe(e,"editable",!0),length:oe(e,"length",null),domain:se(oe(e,"domain"))};n.push(t)}l.layerDefinition.fields=n;const a=oe(e,"featureset");if(a){const e={};for(const t of n)e[t.name.toLowerCase()]=t.name;for(const t of oe(a,"features",[])){const n={},i=oe(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];l.featureSet.features.push({attributes:n,geometry:fe(oe(t,"geometry"))})}}}else{l.layerDefinition.hasZ=!0===oe(e,"hasz",!1),l.layerDefinition.hasM=!0===oe(e,"hasm",!1),l.layerDefinition.geometryType=oe(e,"geometrytype",""),l.featureSet.geometryType=l.layerDefinition.geometryType,l.layerDefinition.objectIdField=oe(e,"objectidfieldname",""),l.layerDefinition.typeIdField=oe(e,"typeidfieldname","");const i=oe(e,"spatialreference");i&&(l.layerDefinition.spatialReference=le(i));const o=[],s=oe(e,"fields",null);if(!ne(s))throw new a(t,r.InvalidParameter,n);for(const e of s){const t={name:oe(e,"name",""),alias:oe(e,"alias",""),type:oe(e,"type",""),nullable:oe(e,"nullable",!0),editable:oe(e,"editable",!0),length:oe(e,"length",null),domain:se(oe(e,"domain"))};o.push(t)}l.layerDefinition.fields=o;const f={};for(const e of o)f[e.name.toLowerCase()]=e.name;let d=oe(e,"features",null);if(ne(d))for(const e of d){const t={},n=oe(e,"attributes",{});for(const e in n)t[f[e.toLowerCase()]]=n[e];l.featureSet.features.push({attributes:t,geometry:fe(oe(e,"geometry",null))})}else d=null,l.featureSet.features=d}}}if(!1===ue(l))throw new a(t,r.InvalidParameter,n);return l.layerDefinition.geometryType||(l.layerDefinition.geometryType="esriGeometryNull"),z.create(l,t.spatialReference)}))},e.signatures.push({name:"featureset",min:1,max:1}),e.functions.filter=function(t,n){return e.standardFunctionAsync(t,n,(async(i,o,s)=>{if(p(s,2,2,t,n),ne(s[0])||N(s[0])){const e=[];let i,o=s[0];if(o instanceof m&&(o=o.toArray()),!A(s[1]))throw new a(t,r.InvalidParameter,n);i=s[1].createFunction(t);for(const t of o){const n=i(t);K(n)?!0===await n&&e.push(t):!0===n&&e.push(t)}return e}if(h(s[0])){const n=await s[0].load(),i=q.create(s[1],{fieldsIndex:n.getFieldsIndex(),timeZone:n.dateFieldsTimeZoneDefaultUTC}),a=i.getVariables();if(a.length>0){const n={};for(const i of a)n[i]=e.evaluateIdentifier(t,{name:i});i.parameters=n}return new U({parentfeatureset:s[0],whereclause:i})}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"filter",min:2,max:2}),e.functions.orderby=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{if(p(o,2,2,t,n),h(o[0])){const e=new W(o[1]);return new M({parentfeatureset:o[0],orderbyclause:e})}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"orderby",min:2,max:2}),e.functions.top=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{if(p(o,2,2,t,n),h(o[0]))return new R({parentfeatureset:o[0],topnum:o[1]});if(ne(o[0]))return v(o[1])>=o[0].length?o[0].slice():o[0].slice(0,v(o[1]));if(N(o[0]))return v(o[1])>=o[0].length()?o[0].slice():o[0].slice(0,v(o[1]));throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"top",min:2,max:2}),e.functions.first=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{if(p(a,1,1,t,n),h(a[0])){const n=await a[0].first(e.abortSignal);if(null!==n){const e=o.createFromGraphicLikeObject(n.geometry,n.attributes,a[0],t.timeZone);return e._underlyingGraphic=n,e}return n}return ne(a[0])?0===a[0].length?null:a[0][0]:N(a[0])?0===a[0].length()?null:a[0].get(0):null}))},e.signatures.push({name:"first",min:1,max:1}),e.functions.attachments=function(t,n){return e.standardFunctionAsync(t,n,(async(e,o,s)=>{p(s,1,2,t,n);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(s.length>1)if(s[1]instanceof i){if(s[1].hasField("minsize")&&(l.minsize=v(s[1].field("minsize"))),s[1].hasField("metadata")&&(l.returnMetadata=x(s[1].field("metadata"))),s[1].hasField("maxsize")&&(l.maxsize=v(s[1].field("maxsize"))),s[1].hasField("types")){const e=S(s[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==s[1])throw new a(t,r.InvalidParameter,n);if(E(s[0])){const e=s[0]._layer;let n;if(h(e))n=e;else{if(null==e||!H(e))return[];n=f(e,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}return await n.load(),n.queryAttachments(s[0].field(n.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata)}if(null===s[0])return[];throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"attachments",min:1,max:2}),e.functions.featuresetbyrelationshipname=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{p(o,2,4,t,n);const s=o[0],l=I(o[1]);let c=D(o[2],null);const m=x(D(o[3],!0));if(null===c&&(c=["*"]),!1===ne(c))throw new a(t,r.InvalidParameter,n);if(null===o[0])return null;if(!E(o[0]))throw new a(t,r.InvalidParameter,n);const y=s._layer;let w;if(h(y))w=y;else{if(null==y||!H(y))return null;w=f(y,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}w=await w.load();const g=w.relationshipMetaData().filter((e=>e.name===l));if(0===g.length)return null;if(void 0!==g[0].relationshipTableId&&null!==g[0].relationshipTableId&&g[0].relationshipTableId>-1)return d(w,g[0],s.field(w.objectIdField),w.spatialReference,c,m,t.lrucache,t.interceptor);let F=w.serviceUrl();if(!F)return null;F="/"===F.charAt(F.length-1)?F+g[0].relatedTableId.toString():F+"/"+g[0].relatedTableId.toString();const b=await u(F,w.spatialReference,c,m,t.lrucache,t.interceptor);await b.load();let T=b.relationshipMetaData();if(T=T.filter((e=>e.id===g[0].id)),!1===s.hasField(g[0].keyField)||null===s.field(g[0].keyField)){const e=await w.getFeatureByObjectId(s.field(w.objectIdField),[g[0].keyField]);if(e){const t=q.create(T[0].keyField+"= @id",{fieldsIndex:b.getFieldsIndex(),timeZone:b.dateFieldsTimeZoneDefaultUTC});return t.parameters={id:e.attributes[g[0].keyField]},b.filter(t)}return new O({parentfeatureset:b})}const N=q.create(T[0].keyField+"= @id",{fieldsIndex:b.getFieldsIndex(),timeZone:b.dateFieldsTimeZoneDefaultUTC});return N.parameters={id:s.field(g[0].keyField)},b.filter(N)}))},e.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),e.functions.featuresetbyassociation=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{p(o,2,3,t,n);const s=o[0],l=I(D(o[1],"")).toLowerCase(),d=te(o[2])?I(o[2]):null;if(null===o[0])return null;if(!E(o[0]))throw new a(t,r.InvalidParameter,n);let u=s._layer;if(u instanceof B&&(u=f(u,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===u)return null;if(!1===h(u))return null;await u.load();const m=u.serviceUrl(),y=await c(m,t.spatialReference,!0);if(y.unVersion>=8)return await me(u,s,l,d,y,t,n);const w=y.associations;let g=null,F=null,b=!1;if(null!==d&&""!==d&&void 0!==d){for(const e of y.terminals)e.terminalName===d&&(F=e.terminalId);null===F&&(b=!0)}const T=w.getFieldsIndex(),x=T.get("TOGLOBALID").name,N=T.get("FROMGLOBALID").name,A=T.get("TOTERMINALID").name,v=T.get("FROMTERMINALID").name,S=T.get("FROMNETWORKSOURCEID").name,j=T.get("TONETWORKSOURCEID").name,U=T.get("ASSOCIATIONTYPE").name,M=T.get("ISCONTENTVISIBLE").name,R=T.get("OBJECTID").name;for(const t of u.fields)if("global-id"===t.type){g=s.field(t.name);break}let O=null,z=new C(new Q({name:"percentalong",alias:"percentalong",type:"double"}),q.create("0",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),W=new C(new Q({name:"side",alias:"side",type:"string"}),q.create("''",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));const H="globalid",V="globalId",_={};for(const t in y.lkp)_[t]=y.lkp[t].sourceId;const K=new Z(new Q({name:"classname",alias:"classname",type:"string"}),null,_);let J="";switch(l){case"midspan":{J=`((${x}='${g}') OR ( ${N}='${g}')) AND (${U} IN (5))`,K.codefield=q.create(`CASE WHEN (${x}='${g}') THEN ${S} ELSE ${j} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const e=G($.findField(w.fields,N));e.name=H,e.alias=H,O=new C(e,q.create(`CASE WHEN (${N}='${g}') THEN ${x} ELSE ${N} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),z=y.unVersion>=4?new P($.findField(w.fields,T.get("PERCENTALONG").name)):new C(new Q({name:"percentalong",alias:"percentalong",type:"double"}),q.create("0",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"junctionedge":{J=`((${x}='${g}') OR ( ${N}='${g}')) AND (${U} IN (4,6))`,K.codefield=q.create(`CASE WHEN (${x}='${g}') THEN ${S} ELSE ${j} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const e=G($.findField(w.fields,N));e.name=H,e.alias=H,O=new C(e,q.create(`CASE WHEN (${N}='${g}') THEN ${x} ELSE ${N} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),W=new C(new Q({name:"side",alias:"side",type:"string"}),q.create(`CASE WHEN (${U}=4) THEN 'from' ELSE 'to' END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"connected":{let e=`${x}='@T'`,t=`${N}='@T'`;null!==F&&(e+=` AND ${A}=@A`,t+=` AND ${v}=@A`),J="(("+e+") OR ("+t+"))",J=L(J,"@T",g??""),e=L(e,"@T",g??""),null!==F&&(e=L(e,"@A",F.toString()),J=L(J,"@A",F.toString())),K.codefield=q.create("CASE WHEN "+e+` THEN ${S} ELSE ${j} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const n=G($.findField(w.fields,N));n.name=H,n.alias=H,O=new C(n,q.create("CASE WHEN "+e+` THEN ${N} ELSE ${x} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"container":J=`${x}='${g}' AND ${U} = 2`,null!==F&&(J+=` AND ${A} = `+F.toString()),K.codefield=S,J="( "+J+" )",O=new k($.findField(w.fields,N),H,H);break;case"content":J=`(${N}='${g}' AND ${U} = 2)`,null!==F&&(J+=` AND ${v} = `+F.toString()),K.codefield=j,J="( "+J+" )",O=new k($.findField(w.fields,x),H,H);break;case"structure":J=`(${x}='${g}' AND ${U} = 3)`,null!==F&&(J+=` AND ${A} = `+F.toString()),K.codefield=S,J="( "+J+" )",O=new k($.findField(w.fields,N),H,V);break;case"attached":J=`(${N}='${g}' AND ${U} = 3)`,null!==F&&(J+=` AND ${v} = `+F.toString()),K.codefield=j,J="( "+J+" )",O=new k($.findField(w.fields,x),H,V);break;default:throw new a(t,r.InvalidParameter,n)}b&&(J="1 <> 1");return new $({parentfeatureset:w,adaptedFields:[new P($.findField(w.fields,R)),new P($.findField(w.fields,M)),O,W,K,z],extraFilter:J?q.create(J,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}):null})}))},e.signatures.push({name:"featuresetbyassociation",min:2,max:6}),e.functions.groupby=function(t,n){return e.standardFunctionAsync(t,n,(async(o,s,l)=>{if(p(l,3,3,t,n),!h(l[0]))throw new a(t,r.InvalidParameter,n);const f=await l[0].load(),d=[],u=[];let c=!1,m=[];if(te(l[1]))m.push(l[1]);else if(l[1]instanceof i)m.push(l[1]);else if(ne(l[1]))m=l[1];else{if(!N(l[1]))throw new a(t,r.InvalidParameter,n);m=l[1].toArray()}for(const e of m)if(te(e)){const t=q.create(I(e),{fieldsIndex:f.getFieldsIndex(),timeZone:f.dateFieldsTimeZoneDefaultUTC}),n=!0===V(t)?I(e):"%%%%FIELDNAME";d.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(c=!0)}else{if(!(e instanceof i))throw new a(t,r.InvalidParameter,n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",o=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(c=!0),!i)throw new a(t,r.InvalidParameter,n);d.push({name:i,expression:q.create(o||i,{fieldsIndex:f.getFieldsIndex(),timeZone:f.dateFieldsTimeZoneDefaultUTC})})}}if(m=[],te(l[2]))m.push(l[2]);else if(ne(l[2]))m=l[2];else if(N(l[2]))m=l[2].toArray();else{if(!(l[2]instanceof i))throw new a(t,r.InvalidParameter,n);m.push(l[2])}for(const e of m){if(!(e instanceof i))throw new a(t,r.InvalidParameter,n);{const i=e.hasField("name")?e.field("name"):"",o=e.hasField("statistic")?e.field("statistic"):"",s=e.hasField("expression")?e.field("expression"):"";if(!i||!o||!s)throw new a(t,r.InvalidParameter,n);u.push({name:i,statistic:o.toLowerCase(),expression:q.create(s,{fieldsIndex:f.getFieldsIndex(),timeZone:f.dateFieldsTimeZoneDefaultUTC})})}}if(c){const e={};for(const n of f.fields)e[n.name.toLowerCase()]=1;for(const n of d)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of u)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of d)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of d)re(n.expression,e,t);for(const n of u)re(n.expression,e,t);return l[0].groupby(d,u)}))},e.signatures.push({name:"groupby",min:3,max:3}),e.functions.distinct=function(t,n){return e.standardFunctionAsync(t,n,(async(o,s,l)=>{if(h(l[0])){p(l,2,2,t,n);const o=await l[0].load(),s=[];let f=[];if(te(l[1]))f.push(l[1]);else if(l[1]instanceof i)f.push(l[1]);else if(ne(l[1]))f=l[1];else{if(!N(l[1]))throw new a(t,r.InvalidParameter,n);f=l[1].toArray()}let d=!1;for(const e of f)if(te(e)){const t=q.create(I(e),{fieldsIndex:o.getFieldsIndex(),timeZone:o.dateFieldsTimeZoneDefaultUTC}),n=!0===V(t)?I(e):"%%%%FIELDNAME";s.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(d=!0)}else{if(!(e instanceof i))throw new a(t,r.InvalidParameter,n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",l=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(d=!0),!i)throw new a(t,r.InvalidParameter,n);s.push({name:i,expression:q.create(l||i,{fieldsIndex:o.getFieldsIndex(),timeZone:o.dateFieldsTimeZoneDefaultUTC})})}}if(d){const e={};for(const n of o.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of s)re(n.expression,e,t);return l[0].groupby(s,[])}return ae(l)}))},e.functions.getfeaturesetinfo=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,r)=>{if(p(r,1,1,t,n),!h(r[0]))return null;const o=await r[0].getFeatureSetInfo();return o?i.convertObjectToArcadeDictionary({layerId:o.layerId,layerName:o.layerName,itemId:o.itemId,serviceLayerUrl:o.serviceLayerUrl,webMapLayerId:o.webMapLayerId??null,webMapLayerTitle:o.webMapLayerTitle??null,className:null,objectClassId:null},F(t),!1,!1):null}))},e.signatures.push({name:"getfeaturesetinfo",min:1,max:1}),e.functions.filterbysubtypecode=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,o)=>{if(p(o,2,2,t,n),h(o[0])){const e=await o[0].load(),i=o[1];if(!ie(i))throw new a(t,r.InvalidParameter,n);if(e.subtypeField){const t=q.create(`${e.subtypeField}= ${o[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new U({parentfeatureset:o[0],whereclause:t})}if(null===e.typeIdField||""===e.typeIdField)throw new a(t,r.FeatureSetDoesNotHaveSubtypes,n);const s=q.create(`${e.typeIdField}= ${o[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new U({parentfeatureset:o[0],whereclause:s})}throw new a(t,r.InvalidParameter,n)}))},e.signatures.push({name:"filterbysubtypecode",min:2,max:2}))}export{pe as registerFunctions};
5
+ import e from"../../Graphic.js";import{ArcadeDate as t}from"../ArcadeDate.js";import n from"../ArcadePortal.js";import i from"../Dictionary.js";import{StringEnum as a,toStringEnumKey as r}from"../enum.js";import{ArcadeExecutionError as o,ExecutionErrorCodes as s}from"../executionError.js";import l from"../Feature.js";import{convertToFeatureSet as f,constructFeatureSetFromPortalItem as d,constructFeatureSet as u,constructFeatureSetFromRelationship as c,constructFeatureSetFromUrl as m,constructAssociationMetaDataFeatureSetFromUrl as p}from"../featureSetUtils.js";import y from"../ImmutableArray.js";import{D as w,k as h,j as I,p as g,f as F,h as b,L as T,g as D,o as x,K as E,e as N,n as A,m as v,i as S,t as L,M as j,Y as C}from"../../chunks/languageUtils.js";import{getPortal as k}from"../portalUtils.js";import{SqlExpressionAdapted as Z,StringToCodeAdapted as $,FieldRename as P,AdaptedFeatureSet as U,OriginalField as M}from"../featureset/actions/Adapted.js";import R from"../featureset/actions/AttributeFilter.js";import O from"../featureset/actions/OrderBy.js";import z from"../featureset/actions/Top.js";import W from"../featureset/sources/Empty.js";import H from"../featureset/sources/FeatureLayerMemory.js";import G from"../featureset/support/OrderbyClause.js";import{isSupportedLayer as V,cloneField as _}from"../featureset/support/shared.js";import{isSingleField as K}from"../featureset/support/sqlUtils.js";import{calculateStat as q}from"./fieldStats.js";import{isPromiseLike as B}from"../../core/promiseUtils.js";import Q from"../../core/sql/WhereClause.js";import J from"../../layers/FeatureLayer.js";import Y from"../../layers/support/Field.js";import X from"../../portal/Portal.js";import{queryAssociations as ee}from"../../rest/networks/queryAssociations.js";import te from"../../rest/networks/support/NetworkElement.js";import ne from"../../rest/networks/support/QueryAssociationsParameters.js";import{isString as ie,isArray as ae,isInteger as re}from"../../support/guards.js";function oe(e){if(1===e.length){if(ae(e[0]))return q("distinct",e[0],-1);if(v(e[0]))return q("distinct",e[0].toArray(),-1)}return q("distinct",e,-1)}function se(e,t,n){const i=e.getVariables();if(i.length>0){const a={};for(const e of i)a[e]=t.evaluateIdentifier(n,{name:e});e.parameters=a}return e}function le(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function fe(e){if(null===e)return null;const t={type:le(e,"type",""),name:le(e,"name","")};if("range"===t.type)t.range=le(e,"range",[]);else{t.codedValues=[];for(const n of le(e,"codedValues",[]))t.codedValues.push({name:le(n,"name",""),code:le(n,"code",null)})}return t}function de(e){if(null===e)return null;const t={},n=le(e,"wkt");null!==n&&(t.wkt=n);const i=le(e,"wkid");return null!==i&&(t.wkid=i),t}function ue(e){if(null===e)return null;const t={hasZ:le(e,"hasz",!1),hasM:le(e,"hasm",!1)},n=le(e,"spatialreference");null!=n&&(t.spatialReference=de(n));const i=le(e,"x",null);if(null!==i)return t.x=i,t.y=le(e,"y",null),t.hasZ&&(t.z=le(e,"z",null)),t.hasM&&(t.m=le(e,"m",null)),t;const a=le(e,"rings",null);if(null!==a)return t.rings=a,t;const r=le(e,"paths",null);if(null!==r)return t.paths=r,t;const o=le(e,"points",null);if(null!==o)return t.points=o,t;for(const s of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=le(e,s,null);null!==n&&(t[s]=n)}return t}function ce(e,t){for(const n of t)if(n===e)return!0;return!1}function me(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ce(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==ae(e.layerDefinition.fields)&&!1!==ae(e.featureSet.features))))}function pe(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}async function ye(t,n,i,a,r,l,f){const d=await t.getFeatureSetInfo();if(null===(d?.layerId??null))return null;if(!r.layerIdLookup.get(d.layerId))return null;const c=t.serviceUrl().replace(/\/FeatureServer/i,"/UtilityNetworkServer"),m=[];switch(i){case"connected":m.push("connectivity"),m.push("junction-edge-from-connectivity"),m.push("junction-edge-to-connectivity"),m.push("junction-edge-midspan-connectivity"),m.push("junction-junction-connectivity");break;case"container":case"content":m.push("containment");break;case"structure":case"attached":m.push("attachment");break;case"junctionedge":m.push("junction-edge-from-connectivity"),m.push("junction-edge-to-connectivity");break;case"midspan":m.push("junction-edge-midspan-connectivity");break;default:throw new o(l,s.InvalidParameter,f)}let p=null,y=!1;if(null!==a&&""!==a&&void 0!==a){for(const e of r.terminals)e.terminalName===a&&(p=e.terminalId);null===p&&(y=!0)}const w=[];if(!y){const a=new te({globalId:n.field(t.globalIdField),networkSourceId:r.layerIdLookup.get(d.layerId).sourceId,...p?{terminalId:p}:""}),o=await ee(c,new ne({types:m,elements:[a]}));let s=0;for(const t of o.associations){let n=null,o="",l="";if(t.fromNetworkElement?.globalId===a.globalId?(n=t.toNetworkElement,l="to"):t.toNetworkElement?.globalId===a.globalId&&(n=t.fromNetworkElement,l="from"),!n)continue;switch(i){case"attached":if("attachment"!==t.associationType)continue;if("to"!==l)continue;break;case"structure":if("attachment"!==t.associationType)continue;if("from"!==l)continue;break;case"container":if("containment"!==t.associationType)continue;if("from"!==l)continue;break;case"content":if("containment"!==t.associationType)continue;if("to"!==l)continue;break;case"connected":break;case"junctionedge":"junction-edge-to-connectivity"===t.associationType?o="to":"junction-edge-from-connectivity"===t.associationType&&(o="from");break;case"midspan":if("junction-edge-midspan-connectivity"!==t.associationType)continue}const f=r.sourceIdLookup.get(n.networkSourceId)?.className??"";w.push(new e({geometry:null,attributes:{objectId:s++,globalId:n.globalId,percentAlong:t.percentAlong??0,isContentVisible:t.isContentVisible?0:1,className:f,side:o}}))}}const h=new J({source:w,geometryType:null,objectIdField:"objectId",globalIdField:"globalId",fields:[new Y({name:"objectId",alias:"objectId",type:"oid"}),new Y({name:"globalId",alias:"globalId",type:"global-id"}),new Y({name:"percentAlong",alias:"percentAlong",type:"double"}),new Y({name:"side",alias:"side",type:"string"}),new Y({name:"isContentVisible",alias:"isContentVisible",type:"integer"}),new Y({name:"className",alias:"className",type:"string"})]});return u(h)}function we(e){if("async"===e.mode){e.functions.timezone=function(n,a){return e.standardFunctionAsync(n,a,(async(e,r,l)=>{if(w(l,1,2,n,a),h(l[0]))return"Unknown";if(I(l[0]))return"Unknown";if(g(l[0])){if(await l[0].load(),1===l.length||null===l[1])return l[0].datesInUnknownTimezone?pe("unknown"):pe(l[0].dateFieldsTimeZone);if(!(l[1]instanceof i)||!1===l[1].hasField("type"))throw new o(n,s.InvalidParameter,a);const e=l[1].field("type");if(!1===ie(e))throw new o(n,s.InvalidParameter,a);switch(F(e).toLowerCase()){case"preferredtimezone":return pe(l[0].preferredTimeZone);case"editfieldsinfo":return pe(l[0].editFieldsInfo?.timeZone??null);case"timeinfo":return pe(l[0].timeInfo?.timeZone??null);case"field":if(l[1].hasField("fieldname")&&ie(l[1].field("fieldname")))return pe(l[0].fieldTimeZone(F(l[1].field("fieldname"))))}throw new o(n,s.InvalidParameter,a)}const f=b(l[0],T(n));if(null===f)return null;const d=f.timeZone;return"system"===d?t.systemTimeZoneCanonicalName:"utc"===d.toLowerCase()?"UTC":"unknown"===d.toLowerCase()?"Unknown":d}))},e.functions.sqltimestamp=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{w(a,1,3,t,n);const r=a[0];if(D(r)){if(1===a.length)return r.toSQLWithKeyword();if(2===a.length)return r.changeTimeZone(F(a[1])).toSQLWithKeyword();throw new o(t,s.InvalidParameter,n)}if(I(r))return r.toSQLWithKeyword();if(g(r)){if(3!==a.length)throw new o(t,s.InvalidParameter,n);await r.load();const e=F(a[1]);if(I(a[2]))return a[2].toSQLWithKeyword();if(!1===D(a[2]))throw new o(t,s.InvalidParameter,n);const i=r.fieldTimeZone(e);return null==i?a[2].toSQLWithKeyword():a[2].changeTimeZone(i).toSQLWithKeyword()}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"sqltimestamp",min:2,max:4}),e.functions.featuresetbyid=function(t,n){return e.standardFunctionAsync(t,n,((e,i,a)=>{if(w(a,2,4,t,n),x(a[0])){const e=F(a[1]);let i=E(a[2],null);const r=N(E(a[3],!0));if(null===i&&(i=["*"]),!1===ae(i))throw new o(t,s.InvalidParameter,n);return a[0].featureSetById(e,r,i)}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"featuresetbyid",min:2,max:4});const q=new a(["datasource","parent","root"]);e.functions.getfeatureset=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{if(w(a,1,2,t,n),A(a[0])){const e=null==a[1]?"datasource":q.lookup(F(a[1]));return f(a[0].fullSchema(),e,t.lrucache,t.interceptor,t.spatialReference)}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"getfeatureset",min:1,max:2}),e.functions.featuresetbyportalitem=function(t,i){return e.standardFunctionAsync(t,i,((e,a,r)=>{if(w(r,2,5,t,i),null===r[0])throw new o(t,s.PortalRequired,i);if(r[0]instanceof n){const e=F(r[1]),n=F(r[2]);let a=E(r[3],null);const l=N(E(r[4],!0));if(null===a&&(a=["*"]),!1===ae(a))throw new o(t,s.InvalidParameter,i);let f;return f=t.services?.portal?t.services.portal:X.getDefault(),f=k(r[0],f),d(e,n,t.spatialReference,a,l,f,t.lrucache,t.interceptor)}if(!1===ie(r[0]))throw new o(t,s.PortalRequired,i);const l=F(r[0]),f=F(r[1]);let u=E(r[2],null);const c=N(E(r[3],!0));if(null===u&&(u=["*"]),!1===ae(u))throw new o(t,s.InvalidParameter,i);return d(l,f,t.spatialReference,u,c,t.services?.portal??X.getDefault(),t.lrucache,t.interceptor)}))},e.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),e.functions.featuresetbyname=function(t,n){return e.standardFunctionAsync(t,n,((e,i,a)=>{if(w(a,2,4,t,n),x(a[0])){const e=F(a[1]);let i=E(a[2],null);const r=N(E(a[3],!0));if(null===i&&(i=["*"]),!1===ae(i))throw new o(t,s.InvalidParameter,n);return a[0].featureSetByName(e,r,i)}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"featuresetbyname",min:2,max:4}),e.functions.featureset=function(t,n){return e.standardFunction(t,n,((e,a,r)=>{w(r,1,1,t,n);const l={layerDefinition:{geometryType:"",objectIdField:"",globalIdField:"",typeIdField:"",hasM:!1,hasZ:!1,fields:[]},featureSet:{geometryType:"",features:[]}};if(ie(r[0])){const e=JSON.parse(r[0]);void 0!==e.layerDefinition?(l.layerDefinition=e.layerDefinition,l.featureSet=e.featureSet,e.layerDefinition.spatialReference&&(l.layerDefinition.spatialReference=e.layerDefinition.spatialReference)):(l.featureSet.features=e.features,l.featureSet.geometryType=e.geometryType,l.layerDefinition.geometryType=l.featureSet.geometryType,l.layerDefinition.objectIdField=e.objectIdFieldName??"",l.layerDefinition.typeIdField=e.typeIdFieldName,l.layerDefinition.globalIdField=e.globalIdFieldName,l.layerDefinition.fields=e.fields,e.spatialReference&&(l.layerDefinition.spatialReference=e.spatialReference))}else{if(!(r[0]instanceof i))throw new o(t,s.InvalidParameter,n);{const e=JSON.parse(r[0].castToText(!0)),i=le(e,"layerdefinition");if(null!==i){l.layerDefinition.geometryType=le(i,"geometrytype",""),l.featureSet.geometryType=l.layerDefinition.geometryType,l.layerDefinition.globalIdField=le(i,"globalidfield",""),l.layerDefinition.objectIdField=le(i,"objectidfield",""),l.layerDefinition.typeIdField=le(i,"typeidfield",""),l.layerDefinition.hasZ=!0===le(i,"hasz",!1),l.layerDefinition.hasM=!0===le(i,"hasm",!1);const t=le(i,"spatialreference");t&&(l.layerDefinition.spatialReference=de(t));const n=[];for(const e of le(i,"fields",[])){const t={name:le(e,"name",""),alias:le(e,"alias",""),type:le(e,"type",""),nullable:le(e,"nullable",!0),editable:le(e,"editable",!0),length:le(e,"length",null),domain:fe(le(e,"domain"))};n.push(t)}l.layerDefinition.fields=n;const a=le(e,"featureset");if(a){const e={};for(const t of n)e[t.name.toLowerCase()]=t.name;for(const t of le(a,"features",[])){const n={},i=le(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];l.featureSet.features.push({attributes:n,geometry:ue(le(t,"geometry"))})}}}else{l.layerDefinition.hasZ=!0===le(e,"hasz",!1),l.layerDefinition.hasM=!0===le(e,"hasm",!1),l.layerDefinition.geometryType=le(e,"geometrytype",""),l.featureSet.geometryType=l.layerDefinition.geometryType,l.layerDefinition.objectIdField=le(e,"objectidfieldname",""),l.layerDefinition.typeIdField=le(e,"typeidfieldname","");const i=le(e,"spatialreference");i&&(l.layerDefinition.spatialReference=de(i));const a=[],r=le(e,"fields",null);if(!ae(r))throw new o(t,s.InvalidParameter,n);for(const e of r){const t={name:le(e,"name",""),alias:le(e,"alias",""),type:le(e,"type",""),nullable:le(e,"nullable",!0),editable:le(e,"editable",!0),length:le(e,"length",null),domain:fe(le(e,"domain"))};a.push(t)}l.layerDefinition.fields=a;const f={};for(const e of a)f[e.name.toLowerCase()]=e.name;let d=le(e,"features",null);if(ae(d))for(const e of d){const t={},n=le(e,"attributes",{});for(const e in n)t[f[e.toLowerCase()]]=n[e];l.featureSet.features.push({attributes:t,geometry:ue(le(e,"geometry",null))})}else d=null,l.featureSet.features=d}}}if(!1===me(l))throw new o(t,s.InvalidParameter,n);return l.layerDefinition.geometryType||(l.layerDefinition.geometryType="esriGeometryNull"),H.create(l,t.spatialReference)}))},e.signatures.push({name:"featureset",min:1,max:1}),e.functions.filter=function(t,n){return e.standardFunctionAsync(t,n,(async(i,a,r)=>{if(w(r,2,2,t,n),ae(r[0])||v(r[0])){const e=[];let i,a=r[0];if(a instanceof y&&(a=a.toArray()),!S(r[1]))throw new o(t,s.InvalidParameter,n);i=r[1].createFunction(t);for(const t of a){const n=i(t);B(n)?!0===await n&&e.push(t):!0===n&&e.push(t)}return e}if(g(r[0])){const n=await r[0].load(),i=Q.create(r[1],{fieldsIndex:n.getFieldsIndex(),timeZone:n.dateFieldsTimeZoneDefaultUTC}),a=i.getVariables();if(a.length>0){const n={};for(const i of a)n[i]=e.evaluateIdentifier(t,{name:i});i.parameters=n}return new R({parentfeatureset:r[0],whereclause:i})}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"filter",min:2,max:2}),e.functions.orderby=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{if(w(a,2,2,t,n),g(a[0])){const e=new G(a[1]);return new O({parentfeatureset:a[0],orderbyclause:e})}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"orderby",min:2,max:2}),e.functions.top=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{if(w(a,2,2,t,n),g(a[0]))return new z({parentfeatureset:a[0],topnum:a[1]});if(ae(a[0]))return L(a[1])>=a[0].length?a[0].slice():a[0].slice(0,L(a[1]));if(v(a[0]))return L(a[1])>=a[0].length()?a[0].slice():a[0].slice(0,L(a[1]));throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"top",min:2,max:2}),e.functions.first=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{if(w(a,1,1,t,n),g(a[0])){const n=await a[0].first(e.abortSignal);if(null!==n){const e=l.createFromGraphicLikeObject(n.geometry,n.attributes,a[0],t.timeZone);return e._underlyingGraphic=n,e}return n}return ae(a[0])?0===a[0].length?null:a[0][0]:v(a[0])?0===a[0].length()?null:a[0].get(0):null}))},e.signatures.push({name:"first",min:1,max:1}),e.functions.attachments=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,r)=>{w(r,1,2,t,n);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(r.length>1)if(r[1]instanceof i){if(r[1].hasField("minsize")&&(l.minsize=L(r[1].field("minsize"))),r[1].hasField("metadata")&&(l.returnMetadata=N(r[1].field("metadata"))),r[1].hasField("maxsize")&&(l.maxsize=L(r[1].field("maxsize"))),r[1].hasField("types")){const e=j(r[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==r[1])throw new o(t,s.InvalidParameter,n);if(A(r[0])){const e=r[0]._layer;let n;if(g(e))n=e;else{if(null==e||!V(e))return[];n=u(e,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}return await n.load(),n.queryAttachments(r[0].field(n.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata)}if(null===r[0])return[];throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"attachments",min:1,max:2}),e.functions.featuresetbyrelationshipname=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{w(a,2,4,t,n);const r=a[0],l=F(a[1]);let f=E(a[2],null);const d=N(E(a[3],!0));if(null===f&&(f=["*"]),!1===ae(f))throw new o(t,s.InvalidParameter,n);if(null===a[0])return null;if(!A(a[0]))throw new o(t,s.InvalidParameter,n);const p=r._layer;let y;if(g(p))y=p;else{if(null==p||!V(p))return null;y=u(p,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}y=await y.load();const h=y.relationshipMetaData().filter((e=>e.name===l));if(0===h.length)return null;if(void 0!==h[0].relationshipTableId&&null!==h[0].relationshipTableId&&h[0].relationshipTableId>-1)return c(y,h[0],r.field(y.objectIdField),y.spatialReference,f,d,t.lrucache,t.interceptor);let I=y.serviceUrl();if(!I)return null;I="/"===I.charAt(I.length-1)?I+h[0].relatedTableId.toString():I+"/"+h[0].relatedTableId.toString();const b=await m(I,y.spatialReference,f,d,t.lrucache,t.interceptor);await b.load();let T=b.relationshipMetaData();if(T=T.filter((e=>e.id===h[0].id)),!1===r.hasField(h[0].keyField)||null===r.field(h[0].keyField)){const e=await y.getFeatureByObjectId(r.field(y.objectIdField),[h[0].keyField]);if(e){const t=Q.create(T[0].keyField+"= @id",{fieldsIndex:b.getFieldsIndex(),timeZone:b.dateFieldsTimeZoneDefaultUTC});return t.parameters={id:e.attributes[h[0].keyField]},b.filter(t)}return new W({parentfeatureset:b})}const D=Q.create(T[0].keyField+"= @id",{fieldsIndex:b.getFieldsIndex(),timeZone:b.dateFieldsTimeZoneDefaultUTC});return D.parameters={id:r.field(h[0].keyField)},b.filter(D)}))},e.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),e.functions.featuresetbyassociation=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{w(a,2,3,t,n);const l=a[0],f=r(F(E(a[1],""))),d=ie(a[2])?F(a[2]):null;if(null===a[0])return null;if(!A(a[0]))throw new o(t,s.InvalidParameter,n);let c=l._layer;if(c instanceof J&&(c=u(c,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===c)return null;if(!1===g(c))return null;await c.load();const m=c.serviceUrl(),y=await p(m,t.spatialReference,!0);if(y.unVersion>=8)return await ye(c,l,f,d,y,t,n);const h=y.associations;let I=null,b=null,T=!1;if(null!==d&&""!==d&&void 0!==d){for(const e of y.terminals)e.terminalName===d&&(b=e.terminalId);null===b&&(T=!0)}const D=h.getFieldsIndex(),x=D.get("TOGLOBALID").name,N=D.get("FROMGLOBALID").name,v=D.get("TOTERMINALID").name,S=D.get("FROMTERMINALID").name,L=D.get("FROMNETWORKSOURCEID").name,j=D.get("TONETWORKSOURCEID").name,k=D.get("ASSOCIATIONTYPE").name,R=D.get("ISCONTENTVISIBLE").name,O=D.get("OBJECTID").name;for(const t of c.fields)if("global-id"===t.type){I=l.field(t.name);break}let z=null,W=new Z(new Y({name:"percentalong",alias:"percentalong",type:"double"}),Q.create("0",{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC})),H=new Z(new Y({name:"side",alias:"side",type:"string"}),Q.create("''",{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC}));const G="globalid",V="globalId",K={};for(const t in y.lkp)K[t]=y.lkp[t].sourceId;const q=new $(new Y({name:"classname",alias:"classname",type:"string"}),null,K);let B="";switch(f){case"midspan":{B=`((${x}='${I}') OR ( ${N}='${I}')) AND (${k} IN (5))`,q.codefield=Q.create(`CASE WHEN (${x}='${I}') THEN ${L} ELSE ${j} END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC});const e=_(U.findField(h.fields,N));e.name=G,e.alias=G,z=new Z(e,Q.create(`CASE WHEN (${N}='${I}') THEN ${x} ELSE ${N} END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC})),W=y.unVersion>=4?new M(U.findField(h.fields,D.get("PERCENTALONG").name)):new Z(new Y({name:"percentalong",alias:"percentalong",type:"double"}),Q.create("0",{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC}));break}case"junctionedge":{B=`((${x}='${I}') OR ( ${N}='${I}')) AND (${k} IN (4,6))`,q.codefield=Q.create(`CASE WHEN (${x}='${I}') THEN ${L} ELSE ${j} END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC});const e=_(U.findField(h.fields,N));e.name=G,e.alias=G,z=new Z(e,Q.create(`CASE WHEN (${N}='${I}') THEN ${x} ELSE ${N} END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC})),H=new Z(new Y({name:"side",alias:"side",type:"string"}),Q.create(`CASE WHEN (${k}=4) THEN 'from' ELSE 'to' END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC}));break}case"connected":{let e=`${x}='@T'`,t=`${N}='@T'`;null!==b&&(e+=` AND ${v}=@A`,t+=` AND ${S}=@A`),B="(("+e+") OR ("+t+"))",B=C(B,"@T",I??""),e=C(e,"@T",I??""),null!==b&&(e=C(e,"@A",b.toString()),B=C(B,"@A",b.toString())),q.codefield=Q.create("CASE WHEN "+e+` THEN ${L} ELSE ${j} END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC});const n=_(U.findField(h.fields,N));n.name=G,n.alias=G,z=new Z(n,Q.create("CASE WHEN "+e+` THEN ${N} ELSE ${x} END`,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC}));break}case"container":B=`${x}='${I}' AND ${k} = 2`,null!==b&&(B+=` AND ${v} = `+b.toString()),q.codefield=L,B="( "+B+" )",z=new P(U.findField(h.fields,N),G,G);break;case"content":B=`(${N}='${I}' AND ${k} = 2)`,null!==b&&(B+=` AND ${S} = `+b.toString()),q.codefield=j,B="( "+B+" )",z=new P(U.findField(h.fields,x),G,G);break;case"structure":B=`(${x}='${I}' AND ${k} = 3)`,null!==b&&(B+=` AND ${v} = `+b.toString()),q.codefield=L,B="( "+B+" )",z=new P(U.findField(h.fields,N),G,V);break;case"attached":B=`(${N}='${I}' AND ${k} = 3)`,null!==b&&(B+=` AND ${S} = `+b.toString()),q.codefield=j,B="( "+B+" )",z=new P(U.findField(h.fields,x),G,V);break;default:throw new o(t,s.InvalidParameter,n)}T&&(B="1 <> 1");return new U({parentfeatureset:h,adaptedFields:[new M(U.findField(h.fields,O)),new M(U.findField(h.fields,R)),z,H,q,W],extraFilter:B?Q.create(B,{fieldsIndex:h.getFieldsIndex(),timeZone:h.dateFieldsTimeZoneDefaultUTC}):null})}))},e.signatures.push({name:"featuresetbyassociation",min:2,max:6}),e.functions.groupby=function(t,n){return e.standardFunctionAsync(t,n,(async(a,r,l)=>{if(w(l,3,3,t,n),!g(l[0]))throw new o(t,s.InvalidParameter,n);const f=await l[0].load(),d=[],u=[];let c=!1,m=[];if(ie(l[1]))m.push(l[1]);else if(l[1]instanceof i)m.push(l[1]);else if(ae(l[1]))m=l[1];else{if(!v(l[1]))throw new o(t,s.InvalidParameter,n);m=l[1].toArray()}for(const e of m)if(ie(e)){const t=Q.create(F(e),{fieldsIndex:f.getFieldsIndex(),timeZone:f.dateFieldsTimeZoneDefaultUTC}),n=!0===K(t)?F(e):"%%%%FIELDNAME";d.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(c=!0)}else{if(!(e instanceof i))throw new o(t,s.InvalidParameter,n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",a=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(c=!0),!i)throw new o(t,s.InvalidParameter,n);d.push({name:i,expression:Q.create(a||i,{fieldsIndex:f.getFieldsIndex(),timeZone:f.dateFieldsTimeZoneDefaultUTC})})}}if(m=[],ie(l[2]))m.push(l[2]);else if(ae(l[2]))m=l[2];else if(v(l[2]))m=l[2].toArray();else{if(!(l[2]instanceof i))throw new o(t,s.InvalidParameter,n);m.push(l[2])}for(const e of m){if(!(e instanceof i))throw new o(t,s.InvalidParameter,n);{const i=e.hasField("name")?e.field("name"):"",a=e.hasField("statistic")?e.field("statistic"):"",r=e.hasField("expression")?e.field("expression"):"";if(!(i&&a&&ie(a)&&r))throw new o(t,s.InvalidParameter,n);u.push({name:i,statistic:a,expression:Q.create(r,{fieldsIndex:f.getFieldsIndex(),timeZone:f.dateFieldsTimeZoneDefaultUTC})})}}if(c){const e={};for(const n of f.fields)e[n.name.toLowerCase()]=1;for(const n of d)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of u)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of d)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of d)se(n.expression,e,t);for(const n of u)se(n.expression,e,t);return l[0].groupby(d,u)}))},e.signatures.push({name:"groupby",min:3,max:3}),e.functions.distinct=function(t,n){return e.standardFunctionAsync(t,n,(async(a,r,l)=>{if(g(l[0])){w(l,2,2,t,n);const a=await l[0].load(),r=[];let f=[];if(ie(l[1]))f.push(l[1]);else if(l[1]instanceof i)f.push(l[1]);else if(ae(l[1]))f=l[1];else{if(!v(l[1]))throw new o(t,s.InvalidParameter,n);f=l[1].toArray()}let d=!1;for(const e of f)if(ie(e)){const t=Q.create(F(e),{fieldsIndex:a.getFieldsIndex(),timeZone:a.dateFieldsTimeZoneDefaultUTC}),n=!0===K(t)?F(e):"%%%%FIELDNAME";r.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(d=!0)}else{if(!(e instanceof i))throw new o(t,s.InvalidParameter,n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",l=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(d=!0),!i)throw new o(t,s.InvalidParameter,n);r.push({name:i,expression:Q.create(l||i,{fieldsIndex:a.getFieldsIndex(),timeZone:a.dateFieldsTimeZoneDefaultUTC})})}}if(d){const e={};for(const n of a.fields)e[n.name.toLowerCase()]=1;for(const n of r)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of r)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of r)se(n.expression,e,t);return l[0].groupby(r,[])}return oe(l)}))},e.functions.getfeaturesetinfo=function(t,n){return e.standardFunctionAsync(t,n,(async(e,a,r)=>{if(w(r,1,1,t,n),!g(r[0]))return null;const o=await r[0].getFeatureSetInfo();return o?i.convertObjectToArcadeDictionary({layerId:o.layerId,layerName:o.layerName,itemId:o.itemId,serviceLayerUrl:o.serviceLayerUrl,webMapLayerId:o.webMapLayerId??null,webMapLayerTitle:o.webMapLayerTitle??null,className:null,objectClassId:null},T(t),!1,!1):null}))},e.signatures.push({name:"getfeaturesetinfo",min:1,max:1}),e.functions.filterbysubtypecode=function(t,n){return e.standardFunctionAsync(t,n,(async(e,i,a)=>{if(w(a,2,2,t,n),g(a[0])){const e=await a[0].load(),i=a[1];if(!re(i))throw new o(t,s.InvalidParameter,n);if(e.subtypeField){const t=Q.create(`${e.subtypeField}= ${a[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new R({parentfeatureset:a[0],whereclause:t})}if(null===e.typeIdField||""===e.typeIdField)throw new o(t,s.FeatureSetDoesNotHaveSubtypes,n);const r=Q.create(`${e.typeIdField}= ${a[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new R({parentfeatureset:a[0],whereclause:r})}throw new o(t,s.InvalidParameter,n)}))},e.signatures.push({name:"filterbysubtypecode",min:2,max:2})}}export{we as registerFunctions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as e,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as a}from"../kernel.js";import{E as i,D as o,g as s,k as c,j as l,f as u,m as f,F as d,p as w,G as m,l as y,H as h,J as g,t as p,e as N,K as S,L as O}from"../../chunks/languageUtils.js";import{getPortal as v}from"../portalUtils.js";import{commonRelationsCheck as J,toCurveType as P,planarLength3D as A,measureToCoordinateFunc as I,pointToCoordinateFunc as F,distanceToCoordinateFunc as j}from"../geometry/functions.js";import{invokeRemoteGeometryOp as b}from"../geometry/operatorsWorkerConnection.js";import{equals as R}from"../../core/arrayUtils.js";import x from"../../geometry/Extent.js";import D from"../../geometry/Geometry.js";import L from"../../geometry/Multipoint.js";import C from"../../geometry/Point.js";import U from"../../geometry/Polygon.js";import k from"../../geometry/Polyline.js";import{fromJSON as E}from"../../geometry/support/jsonUtils.js";import M from"../../portal/Portal.js";import{lookupUser as T}from"../../portal/support/utils.js";import{isArray as Z}from"../../support/guards.js";function q(n){if(null==n)return n;switch(typeof n){case"string":case"number":return n;default:throw new e(null,r.InvalidParameter,null)}}function z(z){"async"===z.mode&&(z.functions.disjoint=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null===a[0]||null===a[1]||b("disjoint",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.intersects=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("intersects",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.touches=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("touches",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.crosses=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("crosses",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.within=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("within",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.contains=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("contains",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.overlaps=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("overlaps",[a[0].toJSON(),a[1].toJSON()]))))},z.functions.equals=function(n,t){return z.standardFunctionAsync(n,t,((e,r,a)=>(o(a,2,2,n,t),a[0]===a[1]||(a[0]instanceof D&&a[1]instanceof D?b("equals",[a[0].toJSON(),a[1].toJSON()]):(s(a[0])&&s(a[1])||!!(c(a[0])&&c(a[1])||l(a[0])&&l(a[1])))&&a[0].equals(a[1])))))},z.functions.relate=function(n,t){return z.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,3,3,n,t),c[0]instanceof D&&c[1]instanceof D)return b("relate",[c[0].toJSON(),c[1].toJSON(),u(c[2])]);if(c[0]instanceof D&&null===c[1])return!1;if(c[1]instanceof D&&null===c[0])return!1;if(null===c[0]&&null===c[1])return!1;throw new e(n,r.InvalidParameter,t)}))},z.functions.intersection=function(n,t){return z.standardFunctionAsync(n,t,(async(e,r,a)=>(a=i(a),J(a,n,t),null===a[0]||null===a[1]?null:E(await b("intersection",[a[0].toJSON(),a[1].toJSON()])))))},z.functions.union=function(n,t){return z.standardFunctionAsync(n,t,(async(o,s,c)=>{if(0===(c=i(c)).length)throw new e(n,r.WrongNumberOfParameters,t);const l=[];if(1===c.length)if(Z(c[0])){for(const a of i(c[0]))if(null!==a){if(!(a instanceof D))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else{if(!f(c[0])){if(c[0]instanceof D)return d(a(c[0]),n.spatialReference);if(null===c[0])return null;throw new e(n,r.InvalidParameter,t)}for(const a of i(c[0].toArray()))if(null!==a){if(!(a instanceof D))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else for(const a of c)if(null!==a){if(!(a instanceof D))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}return 0===l.length?null:E(await b("union",[l]))}))},z.functions.difference=function(n,t){return z.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),J(o,n,t),null===o[0]?null:null===o[1]?a(o[0]):E(await b("difference",[o[0].toJSON(),o[1].toJSON()])))))},z.functions.symmetricdifference=function(n,t){return z.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),J(o,n,t),null===o[0]&&null===o[1]?null:null===o[0]?a(o[1]):null===o[1]?a(o[0]):E(await b("symmetricDifference",[o[0].toJSON(),o[1].toJSON()])))))},z.functions.clip=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,2,n,t),!(c[1]instanceof x)&&null!==c[1])throw new e(n,r.InvalidParameter,t);if(null===c[0])return null;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);return null===c[1]?null:E(await b("clip",[c[0].toJSON(),c[1].toJSON()]))}))},z.functions.cut=function(n,t){return z.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,t),!(l[1]instanceof k)&&null!==l[1])throw new e(n,r.InvalidParameter,t);if(null===l[0])return[];if(!(l[0]instanceof D))throw new e(n,r.InvalidParameter,t);return null===l[1]?[a(l[0])]:(await b("cut",[l[0].toJSON(),l[1].toJSON()])).map((n=>E(n)))}))},z.functions.area=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumArea(q(c[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((Z(l)||f(l))&&(l=m(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof D))throw new e(n,r.InvalidParameter,t);return b("area",[l.toJSON(),q(c[1])])}))},z.functions.areageodetic=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{o(c,1,3,n,t);let l=(c=i(c))[0];(Z(l)||f(l))&&(l=m(l,n.spatialReference));const u=q(c[1]),d=P(c[2])??"geodesic";if(w(l)){const a=await l.sumArea(u,d,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}if(null==l)return 0;if(!y(l))throw new e(n,r.InvalidParameter,t);return b("geodeticArea",[l.toJSON(),u,d])}))},z.functions.length=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumLength(q(c[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((Z(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof D))throw new e(n,r.InvalidParameter,t);return b("length",[l.toJSON(),q(c[1])])}))},z.functions.length3d=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),null===(c=i(c))[0])return 0;let l=c[0];if((Z(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof D))throw new e(n,r.InvalidParameter,t);if(!0===l.hasZ){const{convertFromSpatialReferenceUnit:n,toLengthUnit:t}=await import("../geometry/unitConversion.js"),e=A(l);return n(l.spatialReference,t(c[1]),e)}return b("length",[l.toJSON(),q(c[1])])}))},z.functions.lengthgeodetic=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{o(c,1,3,n,t);let l=(c=i(c))[0];(Z(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference));const u=q(c[1]),d=P(c[2])??"geodesic";if(w(l)){const a=await l.sumLength(u,d,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}if(null===l)return 0;if(!y(l))throw new e(n,r.InvalidParameter,t);return b("geodeticLength",[l.toJSON(),u,d])}))},z.functions.distance=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,3,n,t);let l=c[0];if((Z(c[0])||f(c[0]))&&(l=g(c[0],n.spatialReference)),!(l instanceof D))throw new e(n,r.InvalidParameter,t);let u=c[1];if((Z(c[1])||f(c[1]))&&(u=g(c[1],n.spatialReference)),!(u instanceof D))throw new e(n,r.InvalidParameter,t);return b("distance",[l.toJSON(),u.toJSON(),q(c[2])])}))},z.functions.distancegeodetic=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,4,n,t);const l=c[0];if(!(l instanceof C))throw new e(n,r.InvalidParameter,t);const u=c[1];if(!(u instanceof C))throw new e(n,r.InvalidParameter,t);const f=new k({paths:[],spatialReference:l.spatialReference});return f.addPath([l,u]),b("geodeticLength",[f.toJSON(),q(c[2]),P(c[3])??"geodesic"])}))},z.functions.densify=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);if(l<=0)throw new e(n,r.InvalidParameter,t);switch(c[0].type){case"polygon":case"polyline":case"extent":return E(await b("densify",[c[0].toJSON(),l,q(c[2])]));default:return c[0]}}))},z.functions.densifygeodetic=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,4,n,t);const l=c[0];if(null==l)return null;if(!y(l))throw new e(n,r.InvalidParameter,t);const u=p(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);if(u<=0)throw new e(n,r.InvalidParameter,t);const f=q(c[2]),d=P(c[3])??"geodesic";switch(l.type){case"polygon":case"polyline":case"extent":return E(await b("geodeticDensify",[l.toJSON(),u,f,d]));default:return l}}))},z.functions.generalize=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,4,n,t),null===c[0])return null;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const u=N(S(c[2],!0));return E(await b("generalize",[c[0].toJSON(),l,q(c[3]),{removeDegenerateParts:u}]))}))},z.functions.buffer=function(n,t){return z.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,3,n,t),null===l[0])return null;if(!(l[0]instanceof D))throw new e(n,r.InvalidParameter,t);const u=p(l[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);return 0===u?a(l[0]):E(await b("buffer",[l[0].toJSON(),u,q(l[2])]))}))},z.functions.buffergeodetic=function(n,t){return z.standardFunctionAsync(n,t,(async(s,c,l)=>{l=i(l),o(l,2,4,n,t);const u=l[0];if(null==u)return null;if(!y(u))throw new e(n,r.InvalidParameter,t);const f=p(l[1]);if(isNaN(f))throw new e(n,r.InvalidParameter,t);if(0===f)return a(u);const d=q(l[2]),w=P(l[3])??"geodesic";return E(await b("geodesicBuffer",[u.toJSON(),f,d,w]))}))},z.functions.offset=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,6,n,t),null===c[0])return null;if(!(c[0]instanceof U||c[0]instanceof k))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const f=u(c[3]??"round").toLowerCase();let d;switch(f){case"round":case"bevel":case"miter":case"square":d=f;break;default:d="round"}const w=p(S(c[4],10));if(isNaN(w))throw new e(n,r.InvalidParameter,t);const m=p(S(c[5],0));if(isNaN(m))throw new e(n,r.InvalidParameter,t);return E(await b("offset",[c[0].toJSON(),l,q(c[2]),{joins:d,miterLimit:w,flattenError:m}]))}))},z.functions.rotate=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);const l=c[0]instanceof x?U.fromExtent(c[0]):c[0],u=p(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);const f=S(c[2],null);if(null===f){const n="point"===l.type?l:l.extent?.center;return E(await b("rotate",[l.toJSON(),u,n?.x,n?.y]))}if(f instanceof C)return E(await b("rotate",[l.toJSON(),u,f.x,f.y]));throw new e(n,r.InvalidParameter,t)}))},z.functions.centroid=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,2,n,t),null===c[0])return null;const l=u(c[1]??"geometric").toLowerCase();if("geometric"!==l&&"labelpoint"!==l)throw new e(n,r.InvalidParameter,t);let d=c[0];if((Z(c[0])||f(c[0]))&&(d="geometric"===l?g(c[0],n.spatialReference):m(c[0],n.spatialReference),null===d))return null;if(!(d instanceof D))throw new e(n,r.InvalidParameter,t);return E("geometric"===l?await b("centroid",[d.toJSON()]):await b("labelPoint",[d.toJSON()]))}))},z.functions.measuretocoordinate=function(n,t){return z.standardFunctionAsync(n,t,I)},z.functions.pointtocoordinate=function(n,t){return z.standardFunctionAsync(n,t,F)},z.functions.distancetocoordinate=function(n,t){return z.standardFunctionAsync(n,t,j)},z.functions.multiparttosinglepart=function(n,t){return z.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,1,1,n,t),null===l[0])return null;if(!(l[0]instanceof D))throw new e(n,r.InvalidParameter,t);if(l[0]instanceof C)return[d(a(l[0]),n.spatialReference)];if(l[0]instanceof x)return[d(a(l[0]),n.spatialReference)];const u=E(await b("simplify",[l[0].toJSON()]));if(u instanceof U){const n=[],t=[];for(let e=0;e<u.rings.length;e++)if(u.isClockwise(u.rings[e])){const t=E({rings:[u.rings[e]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(t)}else t.push({ring:u.rings[e],pt:u.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(u instanceof k){const n=[];for(let t=0;t<u.paths.length;t++){const e=E({paths:[u.paths[t]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(e)}return n}if(l[0]instanceof L){const t=[],e=d(a(l[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)t.push(e.getPoint(n));return t}return null}))},z.functions.isselfintersecting=function(n,t){return z.standardFunctionAsync(n,t,(async(n,t,e)=>{o(e,1,1,n,t);let r=(e=i(e))[0];if((Z(e[0])||f(e[0]))&&(r=h(e[0],n.spatialReference)),r instanceof L){const n=r.points;for(let t=0;t<n.length;t++)for(let e=t+1;e<n.length;e++)if(R(n[t],n[e]))return!0;return!1}return(r instanceof k||r instanceof U)&&await b("isSelfIntersecting",[r.toJSON()])}))},z.functions.issimple=function(n,t){return z.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return!0;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);return b("isSimple",[c[0].toJSON()])}))},z.functions.simplify=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);return E(await b("simplify",[c[0].toJSON()]))}))},z.functions.convexhull=function(n,t){return z.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof D))throw new e(n,r.InvalidParameter,t);return E(await b("convexHull",[c[0].toJSON()]))}))},z.functions.getuser=function(a,i){return z.standardFunctionAsync(a,i,(async(s,c,l)=>{o(l,0,2,a,i);let f=S(l[1],""),d=!0===f;if(f=!0===f||!1===f?"":u(f),0===l.length||l[0]instanceof n){let n;n=a.services?.portal?a.services.portal:M.getDefault(),l.length>0&&(n=v(l[0],n));const e=await T(n,f,d);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,O(a))}return null}let m=null;if(w(l[0])&&(m=l[0]),m){if(d=!1,f)return null;await m.load();const e=await m.getOwningSystemUrl();if(!e){if(!f){const n=await m.getIdentityUser();return n?t.convertObjectToArcadeDictionary({username:n},O(a)):null}return null}let r;r=a.services?.portal?a.services.portal:M.getDefault(),r=v(new n(e),r);const i=await T(r,f,d);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,O(a))}return null}throw new e(a,r.InvalidParameter,i)}))},z.functions.nearestcoordinate=function(n,a){return z.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof D||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof C||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof x?U.fromExtent(l[0]):l[0],f=await b("getNearestCoordinate",[u.toJSON(),l[1].toJSON(),{calculateLeftRightSide:!0}]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:E(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},O(n),!1,!0)}))},z.functions.nearestvertex=function(n,a){return z.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof D||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof C||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof x?U.fromExtent(l[0]):l[0],f=await b("getNearestVertex",[u.toJSON(),l[1].toJSON()]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:E(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},O(n),!1,!0)}))})}export{z as registerFunctions};
5
+ import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as e,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as a}from"../kernel.js";import{E as i,D as o,g as s,k as c,j as l,f as u,m as f,F as d,p as w,G as m,l as y,H as h,J as p,t as g,e as N,K as S,L as O}from"../../chunks/languageUtils.js";import{getPortal as v}from"../portalUtils.js";import{commonRelationsCheck as J,toCurveType as P,planarLength3D as A,toOffsetJoinType as I,toCentroidAlgorithm as F,measureToCoordinateFunc as j,pointToCoordinateFunc as b,distanceToCoordinateFunc as R}from"../geometry/functions.js";import{invokeRemoteGeometryOp as x}from"../geometry/operatorsWorkerConnection.js";import{equals as D}from"../../core/arrayUtils.js";import L from"../../geometry/Extent.js";import C from"../../geometry/Geometry.js";import U from"../../geometry/Multipoint.js";import E from"../../geometry/Point.js";import k from"../../geometry/Polygon.js";import M from"../../geometry/Polyline.js";import{fromJSON as T}from"../../geometry/support/jsonUtils.js";import Z from"../../portal/Portal.js";import{lookupUser as q}from"../../portal/support/utils.js";import{isArray as z}from"../../support/guards.js";function G(n){if(null==n)return n;switch(typeof n){case"string":case"number":return n;default:throw new e(null,r.InvalidParameter,null)}}function H(H){"async"===H.mode&&(H.functions.disjoint=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null===a[0]||null===a[1]||x("disjoint",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.intersects=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&x("intersects",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.touches=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&x("touches",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.crosses=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&x("crosses",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.within=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&x("within",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.contains=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&x("contains",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.overlaps=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&x("overlaps",[a[0].toJSON(),a[1].toJSON()]))))},H.functions.equals=function(n,t){return H.standardFunctionAsync(n,t,((e,r,a)=>(o(a,2,2,n,t),a[0]===a[1]||(a[0]instanceof C&&a[1]instanceof C?x("equals",[a[0].toJSON(),a[1].toJSON()]):(s(a[0])&&s(a[1])||!!(c(a[0])&&c(a[1])||l(a[0])&&l(a[1])))&&a[0].equals(a[1])))))},H.functions.relate=function(n,t){return H.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,3,3,n,t),c[0]instanceof C&&c[1]instanceof C)return x("relate",[c[0].toJSON(),c[1].toJSON(),u(c[2])]);if(c[0]instanceof C&&null===c[1])return!1;if(c[1]instanceof C&&null===c[0])return!1;if(null===c[0]&&null===c[1])return!1;throw new e(n,r.InvalidParameter,t)}))},H.functions.intersection=function(n,t){return H.standardFunctionAsync(n,t,(async(e,r,a)=>(a=i(a),J(a,n,t),null===a[0]||null===a[1]?null:T(await x("intersection",[a[0].toJSON(),a[1].toJSON()])))))},H.functions.union=function(n,t){return H.standardFunctionAsync(n,t,(async(o,s,c)=>{if(0===(c=i(c)).length)throw new e(n,r.WrongNumberOfParameters,t);const l=[];if(1===c.length)if(z(c[0])){for(const a of i(c[0]))if(null!==a){if(!(a instanceof C))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else{if(!f(c[0])){if(c[0]instanceof C)return d(a(c[0]),n.spatialReference);if(null===c[0])return null;throw new e(n,r.InvalidParameter,t)}for(const a of i(c[0].toArray()))if(null!==a){if(!(a instanceof C))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else for(const a of c)if(null!==a){if(!(a instanceof C))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}return 0===l.length?null:T(await x("union",[l]))}))},H.functions.difference=function(n,t){return H.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),J(o,n,t),null===o[0]?null:null===o[1]?a(o[0]):T(await x("difference",[o[0].toJSON(),o[1].toJSON()])))))},H.functions.symmetricdifference=function(n,t){return H.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),J(o,n,t),null===o[0]&&null===o[1]?null:null===o[0]?a(o[1]):null===o[1]?a(o[0]):T(await x("symmetricDifference",[o[0].toJSON(),o[1].toJSON()])))))},H.functions.clip=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,2,n,t),!(c[1]instanceof L)&&null!==c[1])throw new e(n,r.InvalidParameter,t);if(null===c[0])return null;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);return null===c[1]?null:T(await x("clip",[c[0].toJSON(),c[1].toJSON()]))}))},H.functions.cut=function(n,t){return H.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,t),!(l[1]instanceof M)&&null!==l[1])throw new e(n,r.InvalidParameter,t);if(null===l[0])return[];if(!(l[0]instanceof C))throw new e(n,r.InvalidParameter,t);return null===l[1]?[a(l[0])]:(await x("cut",[l[0].toJSON(),l[1].toJSON()])).map((n=>T(n)))}))},H.functions.area=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumArea(G(c[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((z(l)||f(l))&&(l=m(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof C))throw new e(n,r.InvalidParameter,t);return x("area",[l.toJSON(),G(c[1])])}))},H.functions.areageodetic=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{o(c,1,3,n,t);let l=(c=i(c))[0];(z(l)||f(l))&&(l=m(l,n.spatialReference));const u=G(c[1]),d=P(c[2]);if(w(l)){const a=await l.sumArea(u,d,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}if(null==l)return 0;if(!y(l))throw new e(n,r.InvalidParameter,t);return x("geodeticArea",[l.toJSON(),u,d])}))},H.functions.length=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumLength(G(c[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((z(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof C))throw new e(n,r.InvalidParameter,t);return x("length",[l.toJSON(),G(c[1])])}))},H.functions.length3d=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),null===(c=i(c))[0])return 0;let l=c[0];if((z(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof C))throw new e(n,r.InvalidParameter,t);if(!0===l.hasZ){const{convertFromSpatialReferenceUnit:n,toLengthUnit:t}=await import("../geometry/unitConversion.js"),e=A(l);return n(l.spatialReference,t(c[1]),e)}return x("length",[l.toJSON(),G(c[1])])}))},H.functions.lengthgeodetic=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{o(c,1,3,n,t);let l=(c=i(c))[0];(z(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference));const u=G(c[1]),d=P(c[2]);if(w(l)){const a=await l.sumLength(u,d,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}if(null===l)return 0;if(!y(l))throw new e(n,r.InvalidParameter,t);return x("geodeticLength",[l.toJSON(),u,d])}))},H.functions.distance=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,3,n,t);let l=c[0];if((z(c[0])||f(c[0]))&&(l=p(c[0],n.spatialReference)),!(l instanceof C))throw new e(n,r.InvalidParameter,t);let u=c[1];if((z(c[1])||f(c[1]))&&(u=p(c[1],n.spatialReference)),!(u instanceof C))throw new e(n,r.InvalidParameter,t);return x("distance",[l.toJSON(),u.toJSON(),G(c[2])])}))},H.functions.distancegeodetic=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,4,n,t);const l=c[0];if(!(l instanceof E))throw new e(n,r.InvalidParameter,t);const u=c[1];if(!(u instanceof E))throw new e(n,r.InvalidParameter,t);const f=new M({paths:[],spatialReference:l.spatialReference});return f.addPath([l,u]),x("geodeticLength",[f.toJSON(),G(c[2]),P(c[3])])}))},H.functions.densify=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);const l=g(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);if(l<=0)throw new e(n,r.InvalidParameter,t);switch(c[0].type){case"polygon":case"polyline":case"extent":return T(await x("densify",[c[0].toJSON(),l,G(c[2])]));default:return c[0]}}))},H.functions.densifygeodetic=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,4,n,t);const l=c[0];if(null==l)return null;if(!y(l))throw new e(n,r.InvalidParameter,t);const u=g(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);if(u<=0)throw new e(n,r.InvalidParameter,t);const f=G(c[2]),d=P(c[3]);switch(l.type){case"polygon":case"polyline":case"extent":return T(await x("geodeticDensify",[l.toJSON(),u,f,d]));default:return l}}))},H.functions.generalize=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,4,n,t),null===c[0])return null;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);const l=g(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const u=N(S(c[2],!0));return T(await x("generalize",[c[0].toJSON(),l,G(c[3]),{removeDegenerateParts:u}]))}))},H.functions.buffer=function(n,t){return H.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,3,n,t),null===l[0])return null;if(!(l[0]instanceof C))throw new e(n,r.InvalidParameter,t);const u=g(l[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);return 0===u?a(l[0]):T(await x("buffer",[l[0].toJSON(),u,G(l[2])]))}))},H.functions.buffergeodetic=function(n,t){return H.standardFunctionAsync(n,t,(async(s,c,l)=>{l=i(l),o(l,2,4,n,t);const u=l[0];if(null==u)return null;if(!y(u))throw new e(n,r.InvalidParameter,t);const f=g(l[1]);if(isNaN(f))throw new e(n,r.InvalidParameter,t);if(0===f)return a(u);const d=G(l[2]),w=P(l[3]);return T(await x("geodesicBuffer",[u.toJSON(),f,d,w]))}))},H.functions.offset=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,6,n,t),null===c[0])return null;if(!(c[0]instanceof k||c[0]instanceof M))throw new e(n,r.InvalidParameter,t);const l=g(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const u=I(c[3]),f=g(S(c[4],10));if(isNaN(f))throw new e(n,r.InvalidParameter,t);const d=g(S(c[5],0));if(isNaN(d))throw new e(n,r.InvalidParameter,t);return T(await x("offset",[c[0].toJSON(),l,G(c[2]),{joins:u,miterLimit:f,flattenError:d}]))}))},H.functions.rotate=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);const l=c[0]instanceof L?k.fromExtent(c[0]):c[0],u=g(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);const f=S(c[2],null);if(null===f){const n="point"===l.type?l:l.extent?.center;return T(await x("rotate",[l.toJSON(),u,n?.x,n?.y]))}if(f instanceof E)return T(await x("rotate",[l.toJSON(),u,f.x,f.y]));throw new e(n,r.InvalidParameter,t)}))},H.functions.centroid=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,2,n,t),null===c[0])return null;const l=F(c[1]);let u=c[0];if((z(c[0])||f(c[0]))&&(u="geometric"===l?p(c[0],n.spatialReference):m(c[0],n.spatialReference),null===u))return null;if(!(u instanceof C))throw new e(n,r.InvalidParameter,t);return T("geometric"===l?await x("centroid",[u.toJSON()]):await x("labelPoint",[u.toJSON()]))}))},H.functions.measuretocoordinate=function(n,t){return H.standardFunctionAsync(n,t,j)},H.functions.pointtocoordinate=function(n,t){return H.standardFunctionAsync(n,t,b)},H.functions.distancetocoordinate=function(n,t){return H.standardFunctionAsync(n,t,R)},H.functions.multiparttosinglepart=function(n,t){return H.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,1,1,n,t),null===l[0])return null;if(!(l[0]instanceof C))throw new e(n,r.InvalidParameter,t);if(l[0]instanceof E)return[d(a(l[0]),n.spatialReference)];if(l[0]instanceof L)return[d(a(l[0]),n.spatialReference)];const u=T(await x("simplify",[l[0].toJSON()]));if(u instanceof k){const n=[],t=[];for(let e=0;e<u.rings.length;e++)if(u.isClockwise(u.rings[e])){const t=T({rings:[u.rings[e]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(t)}else t.push({ring:u.rings[e],pt:u.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(u instanceof M){const n=[];for(let t=0;t<u.paths.length;t++){const e=T({paths:[u.paths[t]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(e)}return n}if(l[0]instanceof U){const t=[],e=d(a(l[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)t.push(e.getPoint(n));return t}return null}))},H.functions.isselfintersecting=function(n,t){return H.standardFunctionAsync(n,t,(async(n,t,e)=>{o(e,1,1,n,t);let r=(e=i(e))[0];if((z(e[0])||f(e[0]))&&(r=h(e[0],n.spatialReference)),r instanceof U){const n=r.points;for(let t=0;t<n.length;t++)for(let e=t+1;e<n.length;e++)if(D(n[t],n[e]))return!0;return!1}return(r instanceof M||r instanceof k)&&await x("isSelfIntersecting",[r.toJSON()])}))},H.functions.issimple=function(n,t){return H.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return!0;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);return x("isSimple",[c[0].toJSON()])}))},H.functions.simplify=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);return T(await x("simplify",[c[0].toJSON()]))}))},H.functions.convexhull=function(n,t){return H.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof C))throw new e(n,r.InvalidParameter,t);return T(await x("convexHull",[c[0].toJSON()]))}))},H.functions.getuser=function(a,i){return H.standardFunctionAsync(a,i,(async(s,c,l)=>{o(l,0,2,a,i);let f=S(l[1],""),d=!0===f;if(f=!0===f||!1===f?"":u(f),0===l.length||l[0]instanceof n){let n;n=a.services?.portal?a.services.portal:Z.getDefault(),l.length>0&&(n=v(l[0],n));const e=await q(n,f,d);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,O(a))}return null}let m=null;if(w(l[0])&&(m=l[0]),m){if(d=!1,f)return null;await m.load();const e=await m.getOwningSystemUrl();if(!e){if(!f){const n=await m.getIdentityUser();return n?t.convertObjectToArcadeDictionary({username:n},O(a)):null}return null}let r;r=a.services?.portal?a.services.portal:Z.getDefault(),r=v(new n(e),r);const i=await q(r,f,d);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,O(a))}return null}throw new e(a,r.InvalidParameter,i)}))},H.functions.nearestcoordinate=function(n,a){return H.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof C||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof E||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof L?k.fromExtent(l[0]):l[0],f=await x("getNearestCoordinate",[u.toJSON(),l[1].toJSON(),{calculateLeftRightSide:!0}]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:T(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},O(n),!1,!0)}))},H.functions.nearestvertex=function(n,a){return H.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof C||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof E||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof L?k.fromExtent(l[0]):l[0],f=await x("getNearestVertex",[u.toJSON(),l[1].toJSON()]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:T(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},O(n),!1,!0)}))})}export{H as registerFunctions};