@arcgis/core 4.28.0-next.20230914 → 4.28.0-next.20230916

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 (365) hide show
  1. package/WebScene.js +1 -1
  2. package/arcade/ArcadeDate.js +1 -1
  3. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  4. package/arcade/functions/date.js +1 -1
  5. package/arcade/functions/string.js +1 -1
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/0359f614a04a012eea31.js +1 -0
  8. package/assets/esri/core/workers/chunks/04a8a1ccf04c5d438886.js +1 -0
  9. package/assets/esri/core/workers/chunks/11ab06fc92d0261879d5.js +1 -0
  10. package/assets/esri/core/workers/chunks/123bb1a9946fc21e6377.js +1 -0
  11. package/assets/esri/core/workers/chunks/1606730e465bb2997f13.js +1 -0
  12. package/assets/esri/core/workers/chunks/19a23c6477452d175abc.js +1 -0
  13. package/assets/esri/core/workers/chunks/1a261dbe8aa1b8b5f57a.js +1 -0
  14. package/assets/esri/core/workers/chunks/1c94624fd001c803a814.js +1 -0
  15. package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +1 -0
  16. package/assets/esri/core/workers/chunks/24b1bf1a5d80f43a6c9a.js +1 -0
  17. package/assets/esri/core/workers/chunks/273167b2dd46e58b8739.js +1 -0
  18. package/assets/esri/core/workers/chunks/294c186855d1b6741260.js +1 -0
  19. package/assets/esri/core/workers/chunks/353bad8530710a284592.js +1 -0
  20. package/assets/esri/core/workers/chunks/3becdfbb4f76642b20cd.js +1 -0
  21. package/assets/esri/core/workers/chunks/3c2be3d204e6bf87266a.js +1 -0
  22. package/assets/esri/core/workers/chunks/3c2c64832fb498bbaa83.js +1 -0
  23. package/assets/esri/core/workers/chunks/{e12d523f06c03313d86a.js → 471e467335e9855de27a.js} +1 -1
  24. package/assets/esri/core/workers/chunks/4ccfc9eb1c5488ef2468.js +1 -0
  25. package/assets/esri/core/workers/chunks/4cd095c12319fd864060.js +1 -0
  26. package/assets/esri/core/workers/chunks/4f5a0bc7411c0db33662.js +1 -0
  27. package/assets/esri/core/workers/chunks/{1899df307bcd8ee941af.js → 57d367ace83ce3866a87.js} +1 -1
  28. package/assets/esri/core/workers/chunks/5b08d578521562b166e3.js +1 -0
  29. package/assets/esri/core/workers/chunks/5d334dd768a8f6adce4c.js +1 -0
  30. package/assets/esri/core/workers/chunks/5ffaa1a9ba56ce71fb06.js +1 -0
  31. package/assets/esri/core/workers/chunks/68035e9fe01983d56854.js +1 -0
  32. package/assets/esri/core/workers/chunks/6caf1e08441bd2c69078.js +1 -0
  33. package/assets/esri/core/workers/chunks/6ea1763bef36af0a1da1.js +1 -0
  34. package/assets/esri/core/workers/chunks/743f2bc6861995bd6fe3.js +1 -0
  35. package/assets/esri/core/workers/chunks/{e55beabed1903fa75445.js → 76c5dfe07b8775e67a9d.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{c4e86bb1bdc2fa20d528.js → 7a6c856ca59cfc3a8c90.js} +1 -1
  37. package/assets/esri/core/workers/chunks/7c54513302c4e88d9b84.js +1 -0
  38. package/assets/esri/core/workers/chunks/{6d94b358e8d1cf79bba3.js → 7e87bc83a0a2715e3016.js} +1 -1
  39. package/assets/esri/core/workers/chunks/80e322c6f4fdc4d348c7.js +1 -0
  40. package/assets/esri/core/workers/chunks/83d4ab132796123388ac.js +1 -0
  41. package/assets/esri/core/workers/chunks/846603a0c4c241660798.js +1 -0
  42. package/assets/esri/core/workers/chunks/{de3499df09ad6ea841c7.js → 846b7a81b870c8b238a1.js} +1 -1
  43. package/assets/esri/core/workers/chunks/9102ad2d22b88a361c24.js +1 -0
  44. package/assets/esri/core/workers/chunks/9275ab11ba306dc32df0.js +1 -0
  45. package/assets/esri/core/workers/chunks/929580e89267a224abe9.js +1 -0
  46. package/assets/esri/core/workers/chunks/{ae6a4ede49e6d4570783.js → 961ff24849ce85c5d26d.js} +1 -1
  47. package/assets/esri/core/workers/chunks/979840360ef98964f940.js +1 -0
  48. package/assets/esri/core/workers/chunks/9d2f3de6953a8ebafdd3.js +1 -0
  49. package/assets/esri/core/workers/chunks/{f9578ae36d3a4daed440.js → af3a22e9cc1103bf61ec.js} +1 -1
  50. package/assets/esri/core/workers/chunks/b4e4d77a385f9636d864.js +1 -0
  51. package/assets/esri/core/workers/chunks/{b944f32e9a3ff0a7b02c.js → b8f89ec9b1ff937a7040.js} +1 -1
  52. package/assets/esri/core/workers/chunks/bdf13091bd0e1ab0db7e.js +1 -0
  53. package/assets/esri/core/workers/chunks/c4d98d18334172dd463d.js +1 -0
  54. package/assets/esri/core/workers/chunks/c62846ea388f7db00309.js +1 -0
  55. package/assets/esri/core/workers/chunks/c7a29439ef85ffa2fbc5.js +1 -0
  56. package/assets/esri/core/workers/chunks/c880d2f0ff06b3bf731f.js +1 -0
  57. package/assets/esri/core/workers/chunks/cc96be71fee49f07dcd4.js +1 -0
  58. package/assets/esri/core/workers/chunks/ccc6cc52802573fb7532.js +1 -0
  59. package/assets/esri/core/workers/chunks/d6cae0507cf5127e2018.js +1 -0
  60. package/assets/esri/core/workers/chunks/d87a48e69568e927361e.js +1 -0
  61. package/assets/esri/core/workers/chunks/dc3b11961fe01bee7db4.js +1 -0
  62. package/assets/esri/core/workers/chunks/edcfc25860fa9ce5a4fb.js +1 -0
  63. package/assets/esri/core/workers/chunks/f2415258dac8f33694a8.js +1 -0
  64. package/assets/esri/core/workers/chunks/f2e7142a8db164940544.js +1 -0
  65. package/assets/esri/core/workers/chunks/ff4567063d0f9c90905c.js +1 -0
  66. package/assets/esri/geometry/support/pe-wasm.wasm +0 -0
  67. package/assets/esri/themes/base/_View.scss +6 -3
  68. package/assets/esri/themes/base/_core.scss +2 -0
  69. package/assets/esri/themes/base/widgets/_Bookmarks.scss +7 -7
  70. package/assets/esri/themes/base/widgets/_ScaleRangeSlider.scss +7 -94
  71. package/assets/esri/themes/base/widgets/_VideoPlayer.scss +121 -0
  72. package/assets/esri/themes/dark/main.css +1 -1
  73. package/assets/esri/themes/light/main.css +1 -1
  74. package/assets/esri/themes/light/view.css +1 -1
  75. package/assets/esri/widgets/Daylight/t9n/Daylight_sk.json +1 -1
  76. package/assets/esri/widgets/Editor/t9n/Editor.json +1 -1
  77. package/assets/esri/widgets/Editor/t9n/Editor_ar.json +1 -1
  78. package/assets/esri/widgets/Editor/t9n/Editor_bg.json +1 -1
  79. package/assets/esri/widgets/Editor/t9n/Editor_bs.json +1 -1
  80. package/assets/esri/widgets/Editor/t9n/Editor_ca.json +1 -1
  81. package/assets/esri/widgets/Editor/t9n/Editor_cs.json +1 -1
  82. package/assets/esri/widgets/Editor/t9n/Editor_da.json +1 -1
  83. package/assets/esri/widgets/Editor/t9n/Editor_de.json +1 -1
  84. package/assets/esri/widgets/Editor/t9n/Editor_el.json +1 -1
  85. package/assets/esri/widgets/Editor/t9n/Editor_en.json +1 -1
  86. package/assets/esri/widgets/Editor/t9n/Editor_es.json +1 -1
  87. package/assets/esri/widgets/Editor/t9n/Editor_et.json +1 -1
  88. package/assets/esri/widgets/Editor/t9n/Editor_fi.json +1 -1
  89. package/assets/esri/widgets/Editor/t9n/Editor_fr.json +1 -1
  90. package/assets/esri/widgets/Editor/t9n/Editor_he.json +1 -1
  91. package/assets/esri/widgets/Editor/t9n/Editor_hr.json +1 -1
  92. package/assets/esri/widgets/Editor/t9n/Editor_hu.json +1 -1
  93. package/assets/esri/widgets/Editor/t9n/Editor_id.json +1 -1
  94. package/assets/esri/widgets/Editor/t9n/Editor_it.json +1 -1
  95. package/assets/esri/widgets/Editor/t9n/Editor_ja.json +1 -1
  96. package/assets/esri/widgets/Editor/t9n/Editor_ko.json +1 -1
  97. package/assets/esri/widgets/Editor/t9n/Editor_lt.json +1 -1
  98. package/assets/esri/widgets/Editor/t9n/Editor_lv.json +1 -1
  99. package/assets/esri/widgets/Editor/t9n/Editor_nb.json +1 -1
  100. package/assets/esri/widgets/Editor/t9n/Editor_nl.json +1 -1
  101. package/assets/esri/widgets/Editor/t9n/Editor_pl.json +1 -1
  102. package/assets/esri/widgets/Editor/t9n/Editor_pt-BR.json +1 -1
  103. package/assets/esri/widgets/Editor/t9n/Editor_pt-PT.json +1 -1
  104. package/assets/esri/widgets/Editor/t9n/Editor_ro.json +1 -1
  105. package/assets/esri/widgets/Editor/t9n/Editor_ru.json +1 -1
  106. package/assets/esri/widgets/Editor/t9n/Editor_sk.json +1 -1
  107. package/assets/esri/widgets/Editor/t9n/Editor_sl.json +1 -1
  108. package/assets/esri/widgets/Editor/t9n/Editor_sr.json +1 -1
  109. package/assets/esri/widgets/Editor/t9n/Editor_sv.json +1 -1
  110. package/assets/esri/widgets/Editor/t9n/Editor_th.json +1 -1
  111. package/assets/esri/widgets/Editor/t9n/Editor_tr.json +1 -1
  112. package/assets/esri/widgets/Editor/t9n/Editor_uk.json +1 -1
  113. package/assets/esri/widgets/Editor/t9n/Editor_vi.json +1 -1
  114. package/assets/esri/widgets/Editor/t9n/Editor_zh-CN.json +1 -1
  115. package/assets/esri/widgets/Editor/t9n/Editor_zh-HK.json +1 -1
  116. package/assets/esri/widgets/Editor/t9n/Editor_zh-TW.json +1 -1
  117. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider.json +1 -1
  118. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ar.json +1 -1
  119. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bg.json +1 -1
  120. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_bs.json +1 -1
  121. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ca.json +1 -1
  122. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_cs.json +1 -1
  123. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_da.json +1 -1
  124. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_de.json +1 -1
  125. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_el.json +1 -1
  126. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_en.json +1 -1
  127. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_es.json +1 -1
  128. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_et.json +1 -1
  129. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fi.json +1 -1
  130. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_fr.json +1 -1
  131. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_he.json +1 -1
  132. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hr.json +1 -1
  133. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_hu.json +1 -1
  134. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_id.json +1 -1
  135. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_it.json +1 -1
  136. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ja.json +1 -1
  137. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ko.json +1 -1
  138. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lt.json +1 -1
  139. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_lv.json +1 -1
  140. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nb.json +1 -1
  141. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_nl.json +1 -1
  142. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pl.json +1 -1
  143. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-BR.json +1 -1
  144. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_pt-PT.json +1 -1
  145. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ro.json +1 -1
  146. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_ru.json +1 -1
  147. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sk.json +1 -1
  148. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sl.json +1 -1
  149. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sr.json +1 -1
  150. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_sv.json +1 -1
  151. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_th.json +1 -1
  152. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_tr.json +1 -1
  153. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_uk.json +1 -1
  154. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_vi.json +1 -1
  155. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-CN.json +1 -1
  156. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-HK.json +1 -1
  157. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_zh-TW.json +1 -1
  158. package/chunks/HUDMaterial.glsl.js +34 -34
  159. package/chunks/LineCallout.glsl.js +12 -12
  160. package/chunks/geometryEngineBase.js +1 -1
  161. package/chunks/languageUtils.js +1 -1
  162. package/chunks/pe-wasm.js +1 -1
  163. package/chunks/pe.js +1 -1
  164. package/core/sql/DateOnly.js +1 -1
  165. package/core/unitUtils.js +1 -1
  166. package/geometry/Circle.js +1 -1
  167. package/geometry/SpatialReference.js +1 -1
  168. package/geometry/coordinateFormatter.js +1 -1
  169. package/geometry/pe.js +1 -1
  170. package/geometry/support/GeographicTransformation.js +1 -1
  171. package/geometry/support/geodesicConstants.js +1 -1
  172. package/geometry/support/geodesicUtils.js +1 -1
  173. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  174. package/geometry/support/normalizeUtils.js +1 -1
  175. package/geometry/support/spatialReferenceUtils.js +1 -1
  176. package/interfaces.d.ts +502 -257
  177. package/layers/Layer.js +1 -1
  178. package/layers/MapImageLayer.js +1 -1
  179. package/layers/UnsupportedLayer.js +1 -1
  180. package/layers/VideoLayer.js +1 -1
  181. package/layers/graphics/data/AttributesBuilder.js +1 -1
  182. package/layers/graphics/data/QueryEngine.js +1 -1
  183. package/layers/graphics/data/projectionSupport.js +1 -1
  184. package/layers/graphics/hydratedFeatures.js +1 -1
  185. package/layers/graphics/sources/WFSSource.js +1 -1
  186. package/layers/graphics/sources/WFSSourceWorker.js +1 -1
  187. package/layers/graphics/sources/geojson/geojson.js +1 -1
  188. package/layers/mixins/ArcGISImageService.js +1 -1
  189. package/layers/mixins/OperationalLayer.d.ts +4 -0
  190. package/layers/mixins/OperationalLayer.js +1 -1
  191. package/layers/ogc/wfsUtils.js +1 -1
  192. package/layers/support/FieldsIndex.js +1 -1
  193. package/layers/support/fieldUtils.js +1 -1
  194. package/layers/support/rasterDatasets/CloudRaster.js +1 -1
  195. package/layers/support/rasterDatasets/pamParser.js +1 -1
  196. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  197. package/layers/video/VideoController.js +1 -1
  198. package/package.json +1 -1
  199. package/portal/schemas/definitions.js +1 -1
  200. package/rest/generateRenderer.js +1 -1
  201. package/rest/geometryService/autoComplete.js +1 -1
  202. package/rest/geometryService/cut.js +1 -1
  203. package/rest/geometryService/fromGeoCoordinateString.js +1 -1
  204. package/rest/geometryService/labelPoints.js +1 -1
  205. package/rest/geometryService/reshape.js +1 -1
  206. package/rest/geometryService/simplify.js +1 -1
  207. package/rest/geometryService/toGeoCoordinateString.js +1 -1
  208. package/rest/imageService.js +1 -1
  209. package/rest/operations/find.js +1 -1
  210. package/rest/operations/identify.js +1 -1
  211. package/rest/operations/lengths.js +1 -1
  212. package/rest/operations/relation.js +1 -1
  213. package/rest/print.js +1 -1
  214. package/rest/query/operations/query.js +1 -1
  215. package/rest/query/operations/queryRelatedRecords.js +1 -1
  216. package/rest/query/operations/queryTopFeatures.js +1 -1
  217. package/rest/support/AreasAndLengthsParameters.js +1 -1
  218. package/rest/support/BufferParameters.js +1 -1
  219. package/rest/support/ImageParameters.js +1 -1
  220. package/rest/support/PrintTemplate.js +1 -1
  221. package/rest/support/ProjectParameters.js +1 -1
  222. package/rest/support/reportTemplate.js +5 -0
  223. package/smartMapping/renderers/color.js +1 -1
  224. package/smartMapping/renderers/opacity.js +1 -1
  225. package/smartMapping/renderers/size.js +1 -1
  226. package/smartMapping/renderers/support/utils.js +1 -1
  227. package/smartMapping/renderers/type.js +1 -1
  228. package/smartMapping/renderers/univariateColorSize.js +1 -1
  229. package/smartMapping/statistics/histogram.js +1 -1
  230. package/smartMapping/statistics/summaryStatistics.js +1 -1
  231. package/smartMapping/statistics/support/utils.js +1 -1
  232. package/support/revision.js +1 -1
  233. package/time/TimeReference.d.ts +4 -0
  234. package/views/2d/ViewState.js +1 -1
  235. package/views/2d/ViewStateManager.js +1 -1
  236. package/views/2d/engine/Stage.js +1 -1
  237. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  238. package/views/2d/layers/VideoLayerView2D.js +1 -1
  239. package/views/2d/layers/imagery/VectorFieldView2D.js +1 -1
  240. package/views/2d/navigation/MapViewNavigation.js +1 -1
  241. package/views/2d/support/screenshotUtils.js +1 -1
  242. package/views/2d/viewpointUtils.js +1 -1
  243. package/views/3d/analysis/DimensionAnalysisView3D.d.ts +4 -0
  244. package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
  245. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  246. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  247. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  248. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  249. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  250. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  251. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  252. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  253. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  254. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  255. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  256. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  257. package/views/3d/support/CombinedElevationProvider.js +1 -1
  258. package/views/3d/support/DisplayQualityProfile.js +1 -1
  259. package/views/3d/support/QualitySettings.js +1 -1
  260. package/views/3d/terrain/OverlayRenderer.js +1 -1
  261. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +12 -19
  262. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUDVisibility.glsl.js +12 -0
  263. package/views/3d/webgl-engine/lib/GLMaterialRepository.js +1 -1
  264. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  265. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  266. package/views/3d/webgl-engine/parts/Model.js +1 -1
  267. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  268. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  269. package/views/MapView.js +1 -1
  270. package/views/Theme.d.ts +4 -0
  271. package/views/VideoView.js +1 -1
  272. package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
  273. package/views/layers/FeatureLayerViewMixin.d.ts +4 -0
  274. package/webdoc/support/writeUtils.js +1 -1
  275. package/webscene/Slide.js +1 -1
  276. package/widgets/Compass/CompassViewModel.js +1 -1
  277. package/widgets/DirectionalPad/DirectionalPadViewModel.js +1 -1
  278. package/widgets/DirectionalPad.js +1 -1
  279. package/widgets/Editor/components/UploadDetails.js +1 -1
  280. package/widgets/Editor.js +1 -1
  281. package/widgets/Feature.js +1 -1
  282. package/widgets/FeatureForm/FieldInput.js +1 -1
  283. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  284. package/widgets/FeatureTable/FieldColumn.js +1 -1
  285. package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
  286. package/widgets/FeatureTable.js +1 -1
  287. package/widgets/FeatureTemplates.js +1 -1
  288. package/widgets/FloorFilter.js +1 -1
  289. package/widgets/Fullscreen.js +1 -1
  290. package/widgets/Histogram.js +1 -1
  291. package/widgets/HistogramRangeSlider.js +1 -1
  292. package/widgets/LayerList.js +1 -1
  293. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  294. package/widgets/OrientedImageryViewer.js +1 -1
  295. package/widgets/Popup.js +1 -1
  296. package/widgets/Print.js +1 -1
  297. package/widgets/ScaleBar/ScaleBarViewModel.js +1 -1
  298. package/widgets/ScaleRangeSlider/css.js +1 -1
  299. package/widgets/ScaleRangeSlider.js +1 -1
  300. package/widgets/Search.js +1 -1
  301. package/widgets/Sketch.js +1 -1
  302. package/widgets/Slider.js +1 -1
  303. package/widgets/Spinner.js +1 -1
  304. package/widgets/Swipe.js +1 -1
  305. package/widgets/TableList.js +1 -1
  306. package/widgets/UtilityNetworkTrace.js +1 -1
  307. package/widgets/VideoPlayer/VideoPlayerViewModel.js +5 -0
  308. package/widgets/VideoPlayer/components/MetadataSection.js +5 -0
  309. package/widgets/VideoPlayer/components/PlayerActionsGroup.js +5 -0
  310. package/widgets/VideoPlayer/components/PlayerControlsGroup.js +5 -0
  311. package/widgets/VideoPlayer/components/SettingsButton.js +5 -0
  312. package/widgets/VideoPlayer.js +5 -0
  313. package/widgets/support/AnchorElementViewModel.js +1 -1
  314. package/assets/esri/core/workers/chunks/014d86e632df9d39eae1.js +0 -1
  315. package/assets/esri/core/workers/chunks/033bdfaf048738485901.js +0 -1
  316. package/assets/esri/core/workers/chunks/0c0e850722cb163f0705.js +0 -1
  317. package/assets/esri/core/workers/chunks/0c1fd8c1996a2a57c474.js +0 -1
  318. package/assets/esri/core/workers/chunks/1439fe543c148058c6f5.js +0 -1
  319. package/assets/esri/core/workers/chunks/1c44f7c86f16f225642d.js +0 -1
  320. package/assets/esri/core/workers/chunks/277a477446d6644aada6.js +0 -1
  321. package/assets/esri/core/workers/chunks/289959c15802d41a8bab.js +0 -1
  322. package/assets/esri/core/workers/chunks/2eb58dc339b2bb03d9e3.js +0 -1
  323. package/assets/esri/core/workers/chunks/2f59b3c6ef0a9cfeb728.js +0 -1
  324. package/assets/esri/core/workers/chunks/2ff0dbd5eb7ca57bb7fc.js +0 -1
  325. package/assets/esri/core/workers/chunks/38ebd270e6ffa60791bb.js +0 -1
  326. package/assets/esri/core/workers/chunks/3e53d1ed23eb9262b303.js +0 -1
  327. package/assets/esri/core/workers/chunks/461eace1f3365f7227fa.js +0 -1
  328. package/assets/esri/core/workers/chunks/49254b4082c6bee3df3c.js +0 -1
  329. package/assets/esri/core/workers/chunks/4ac963a97af010caa37d.js +0 -1
  330. package/assets/esri/core/workers/chunks/4baee613a82f44a3cd0f.js +0 -1
  331. package/assets/esri/core/workers/chunks/50e2d3f96b71b09fb718.js +0 -1
  332. package/assets/esri/core/workers/chunks/50ee15d94473c57de685.js +0 -1
  333. package/assets/esri/core/workers/chunks/5aed6171ca89441bfbc4.js +0 -1
  334. package/assets/esri/core/workers/chunks/61f7facac9a8da5ea462.js +0 -1
  335. package/assets/esri/core/workers/chunks/663eefa12b53eab91266.js +0 -1
  336. package/assets/esri/core/workers/chunks/67f01c71280fa0759742.js +0 -1
  337. package/assets/esri/core/workers/chunks/68343f1b3ebbd9640977.js +0 -1
  338. package/assets/esri/core/workers/chunks/718607d7a3b33fc33b0a.js +0 -1
  339. package/assets/esri/core/workers/chunks/77d39100708859123377.js +0 -1
  340. package/assets/esri/core/workers/chunks/8c72fec5fdcbbc628b30.js +0 -1
  341. package/assets/esri/core/workers/chunks/9279d9f3d91c72e16a16.js +0 -1
  342. package/assets/esri/core/workers/chunks/94ec83a6508e5cb9192c.js +0 -1
  343. package/assets/esri/core/workers/chunks/9982070121cef022b5f9.js +0 -1
  344. package/assets/esri/core/workers/chunks/9fa485b04b997b0a5509.js +0 -1
  345. package/assets/esri/core/workers/chunks/a047fcf3c7307a69b63c.js +0 -1
  346. package/assets/esri/core/workers/chunks/a1dd343eed9ea1d7f08c.js +0 -1
  347. package/assets/esri/core/workers/chunks/a27a0bbc8432ec72cf2b.js +0 -1
  348. package/assets/esri/core/workers/chunks/a9e1d0e495412e3926b5.js +0 -1
  349. package/assets/esri/core/workers/chunks/b410d1735424f23e2953.js +0 -1
  350. package/assets/esri/core/workers/chunks/bc3c4bc001324424c372.js +0 -1
  351. package/assets/esri/core/workers/chunks/c61f20d91a5c432b07dc.js +0 -1
  352. package/assets/esri/core/workers/chunks/cec26d8925e34f8cb983.js +0 -1
  353. package/assets/esri/core/workers/chunks/d2f2ee8eb6d800c37dc0.js +0 -1
  354. package/assets/esri/core/workers/chunks/d3d11242e5af57ba77f4.js +0 -1
  355. package/assets/esri/core/workers/chunks/d81bd0907650a0378b7a.js +0 -1
  356. package/assets/esri/core/workers/chunks/dbf4093728e80df130fc.js +0 -1
  357. package/assets/esri/core/workers/chunks/e6785027a0f532f08ed3.js +0 -1
  358. package/assets/esri/core/workers/chunks/e8a8791d765ab6c450dd.js +0 -1
  359. package/assets/esri/core/workers/chunks/e9766bc9e3129354bf80.js +0 -1
  360. package/assets/esri/core/workers/chunks/ea9d474d88768ffed744.js +0 -1
  361. package/assets/esri/core/workers/chunks/eb01b5df236ff331e0f3.js +0 -1
  362. package/assets/esri/core/workers/chunks/f2fe89b6ac6bf6817e71.js +0 -1
  363. package/assets/esri/core/workers/chunks/f3e5bfdb59a8f66e8dd4.js +0 -1
  364. package/assets/esri/core/workers/chunks/ff48d6f29a199d5def54.js +0 -1
  365. package/views/layers/LayerView2DMixin.d.ts +0 -4
package/WebScene.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import o from"./core/Collection.js";import s from"./core/Error.js";import{clone as a}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{destroyMaybe as c}from"./core/maybe.js";import{MultiOriginJSONMixin as d,MultiOriginJSONSupport as h}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as m}from"./core/Promise.js";import{debounce as u}from"./core/promiseUtils.js";import{on as y}from"./core/reactiveUtils.js";import{urlToObject as w,addQueryParameter as g}from"./core/urlUtils.js";import{property as f}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as b}from"./core/accessorSupport/decorators/subclass.js";import{writer as S}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as _}from"./core/accessorSupport/originUtils.js";import{readLoadable as A}from"./core/accessorSupport/read.js";import I from"./geometry/Extent.js";import j from"./geometry/HeightModelInfo.js";import{canProjectWithoutEngine as L}from"./geometry/projection.js";import P from"./geometry/SpatialReference.js";import{validateWebSceneError as R}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as U}from"./geometry/support/jsonUtils.js";import{isEarth as O}from"./geometry/support/spatialReferenceUtils.js";import V from"./portal/Portal.js";import M from"./portal/PortalItem.js";import{toggleTypeKeword as E,TypeKeyword as N}from"./portal/support/portalItemUtils.js";import{hasDeveloperBasemapLayer as T}from"./support/basemapUtils.js";import C from"./support/MapFloorInfo.js";import{WebSceneTag as G}from"./support/tagSymbols.js";import{createSchemaValidationError as F,createCopyError as J}from"./support/webSceneUtils.js";import{ViewingMode as $}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as x}from"./views/support/spatialReferenceSupport.js";import{SaveOperationType as W}from"./webdoc/interfaces.js";import{updateItemWithResources as B,saveResources as k}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as q}from"./webdoc/support/thumbnailUtils.js";import D from"./webscene/ApplicationProperties.js";import K from"./webscene/Environment.js";import H from"./webscene/InitialViewProperties.js";import z from"./webscene/Presentation.js";import Q from"./webscene/TransportationNetwork.js";import{Version as X}from"./webscene/Version.js";import{getLoader as Y}from"./webscene/support/schemaValidatorLoader.js";var Z;const ee=new X(1,32),te=()=>{const e=8,t=[],r=ee.major;for(let i=e;i<=ee.minor;i++)t.push(`${r}.${i}`);return t},re="Web Scene";let ie=class extends(n.LoadableMixin(m(d(r)))){constructor(e){super(e),this[Z]=!0,this._layersIdGCTimeoutId=void 0,this._updateFromPromise=null,this.applicationProperties=null,this.clippingArea=null,this.clippingEnabled=!1,this.floorInfo=null,this.heightModelInfo=void 0,this.sourceVersion=null,this.transportationNetworks=null,this.presentation=new z,this.initialViewProperties=new H,this.portalItem=null,this.resourceInfo=null,this._debouncedSaveOperations=u((async(e,t,r)=>{switch(e){case W.SAVE:return this._saveImpl(t);case W.SAVE_AS:return this._saveAsImpl(r,t)}})),this._resourceReferences={portalItem:null,paths:[]},this.authoringApp=null,this.authoringAppVersion=null,this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1}initialize(){if(this.when().catch((e=>{p.getLogger(this).error("#load()","Failed to load web scene",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t),this.addResolvingPromise(this._validateSpatialReference()),this.addResolvingPromise(this._validateHeightModelInfo())}this.addHandles(y((()=>this.allLayers),"change",(()=>this._scheduleLayersIdGC())))}destroy(){this._unscheduleLayersIdGC(),this.presentation&&this.presentation.destroy(),this.portalItem=c(this.portalItem)}writeClippingArea(e,t){t.clippingArea||(t.clippingArea={}),t.clippingArea.geometry=e.toJSON()}readClippingEnabled(e,t){return!!t.clippingArea&&!!t.clippingArea.clip}writeClippingEnabled(e,t){this.clippingArea&&(t.clippingArea||(t.clippingArea={}),t.clippingArea.clip=e)}writeLayers(e,t,r,i){t[r]=this._layersToJSON(e,"operational-layers",i)}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new X(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${ee.major}.${ee.minor}`}writeTables(e,t,r,i){const o=this._layersToJSON(e,"tables",i);o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem?.thumbnailUrl??null}set thumbnailUrl(e){e?this._override("thumbnailUrl",e):(this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp="ArcGIS API for JavaScript"}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}writeGround(e,t,r,i){t[r]=e?e.write({},i):{transparency:0,layers:[]}}readInitialViewProperties(e,t){const r={};return t.initialState?.environment&&(r.environment=K.fromJSON(t.initialState.environment)),r.spatialReference=t.spatialReference?P.fromJSON(t.spatialReference):P.WebMercator,r.viewingMode=t.viewingMode??"global",t.initialState?.viewpoint&&(r.viewpoint=i.fromJSON(t.initialState.viewpoint)),new H(r)}get spatialReference(){return this.initialViewProperties?.spatialReference??P.WebMercator}get viewingMode(){return this.initialViewProperties?.viewingMode??"global"}load(e){const t=this.ground;return this.addResolvingPromise(this._loadFromSource().then((()=>{t&&t!==this.ground&&t.destroy()}))),Promise.resolve(this)}loadAll(){return l(this,(e=>{const t=this.presentation&&this.presentation.slides;e(this.ground,this.basemap,this.layers,t&&t.map((e=>e.basemap)),this.tables)}))}read(e,t){t={...t,origin:"web-scene"};const r=this._isAuthoringAppVersionSetByUser,i=this._isAuthoringAppSetByUser;if(A(this,e,(t=>super.read(e,t)),t),i||(this._isAuthoringAppSetByUser=!1),r||(this._isAuthoringAppVersionSetByUser=!1),e.baseMap&&Array.isArray(e.baseMap.elevationLayers)&&this.sourceVersion?.supportsVisibleElevationLayersInSlides){const t=e.baseMap.elevationLayers.map((e=>({id:e.id}))),r=this.presentation.slides,i=(e,t)=>e.visibleLayers.some((e=>e.id===t)),o=t.filter((e=>!r.some((t=>i(t,e.id)))));r.forEach((e=>{e.visibleLayers.addMany(o)}))}}_writeBasemapElevationLayers(e){const t=e.ground&&e.ground.layers;!e.baseMap&&t&&t.length&&(e.baseMap={title:"Basemap",baseMapLayers:[]}),e.baseMap&&(e.baseMap.elevationLayers=a(t))}_layersToJSON(e,t,r){const i={...r,layerContainerType:t};return e.map((e=>this._verifyWritableLayer(e,r)?e.write({},i):null)).filter((e=>!!e)).toArray()}_verifyWritableLayer(e,t){return"write"in e||(t&&t.messages&&t.messages.push(new s("layer:unsupported",`Layers (${e.title}, ${e.id}) of type '${e.declaredClass}' cannot be persisted in web scenes`,{layer:e})),!1)}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webscene:not-loaded","Web scene must be loaded before it can be serialized");throw p.getLogger(this).error("#toJSON()","Web scene must be loaded before it can be serialized",this.loadError||this.loadStatus),e}this._runLayersIdGC();const r=!t?.messages;t={messages:[],...t,origin:"web-scene"};const i=super.write(e,t);if(r){const e=t.messages?.filter((e=>"web-document-write:property-required"===e.name))??[];if(e.length){const t=new s("web-document:property-required","One or more properties that are required in the webscene JSON are missing, see details for the specific errors",{errors:e});throw p.getLogger(this).error("#toJSON()","One or more properties that are required in the webscene JSON are missing",e),t}}return this._writeBasemapElevationLayers(i),i}async save(e){return this._debouncedSaveOperations(W.SAVE,e)}async _saveImpl(e){if(!this.portalItem)throw p.getLogger(this).error("save(): requires the .portalItem property to be set"),await Promise.resolve(),new s("webscene:portal-item-not-set","Portal item to save to has not been set on the WebScene");if(this.portalItem?.type!==re)throw await Promise.resolve(),new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${re}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:this.portalItem.itemUrl?w(this.portalItem.itemUrl):null,messages:[],portal:this.portalItem.portal??V.getDefault(),portalItem:this.portalItem,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,e),this._updateTypeKeywords(this.portalItem),await B(this.portalItem,i,this._resourceReferences,r,null),_(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(W.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=M.from(e);r||(p.getLogger(this).error("saveAs(portalItem): requires a portal item parameter"),await Promise.reject(new s("webscene:portal-item-required","saveAs requires a portal item to save to"))),r.id&&(r=r.clone(),r.id=null);const i=r.portal||V.getDefault();await this._ensureLoadBeforeSave(),r.type=re,r.portal=i;const o=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:null,messages:[],portal:i,portalItem:r,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),a=this.write({},o);await Promise.all(o.resources.pendingOperations),await this._verifySaveAs(a,o,t);const n=this.thumbnailUrl,l=!this._isOverridden("thumbnailUrl");return this._updateTypeKeywords(r),await i.signIn(),await(i.user?.addItem({item:r,folder:t&&t.folder,data:a})),await k(this._resourceReferences,o,null),this.portalItem=r,h.prototype.read.call(this,{version:a.version,authoringApp:a.authoringApp,authoringAppVersion:a.authoringAppVersion},{name:"web-scene",ignoreDefaults:!0,url:r.itemUrl?w(r.itemUrl):void 0}),_(o),n&&(this.thumbnailUrl=l?g(n,"w","8192"):n),o.portalItem=r,await this._saveThumbnail(),r}async _saveThumbnail(){this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl})),this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}_verifySave(e,t,r,i=!1){if(!O(this.spatialReference))return Promise.reject(new s("webscene:unsupported-spatial-reference","Webscenes using spatial reference systems from Mars or Moon can not be saved currently."));let o,a=t.messages?.filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)))??[];t.blockedRelativeUrls&&(a=a.concat(t.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Scene`))))),r&&r.ignoreUnsupported&&(a=a.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name&&"scenemodification:unsupported"!==e.name))),r?.requiredPropertyChecksDisabled&&(a=a.filter((e=>"web-document-write:property-required"!==e.name)));const n=!!r?.strictSchemaValidationEnabled,l=Y();return o=n&&l?l().then((t=>{const r=t.validate(e);if(r.length>0){const e=`webscene did not validate:\n${r.join("\n")}`;p.getLogger(this).error(`${i?"saveAs":"save"}(): ${e}`)}return r.map((e=>new s("webscene:schema-validation",e)))})).then((e=>{if(e.length>0)throw F(e.concat(a));return a})):Promise.resolve(a),o.then((e=>{if(e.length>0)throw new s("webscene:save","Failed to save webscene due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:e})}))}_verifySaveAs(e,t,r){return this.canNotSaveAs(t)?Promise.reject(J()):this._verifySave(e,t,r,!0)}verifySaveAs(e){const t=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),r=this.write({},t);return this._verifySaveAs(r,t,e)}canNotSaveAs(e){return e||(e=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),this.write({},e)),(e.verifyItemRelativeUrls?.writtenUrls?.length??0)>0}async updateFrom(e,t={}){const r=this._updateFrom(e,t);this._updateFromPromise=r,await r;this._updateFromPromise===r&&(this._updateFromPromise=null)}async _updateFrom(e,t={}){if(await e.whenReady(),!t.environmentExcluded&&e.environment&&(this.initialViewProperties.environment=K.prototype.clone.apply(e.environment)),!t.viewpointExcluded&&e.viewpoint&&(this.initialViewProperties.viewpoint=e.viewpoint.clone()),this.initialViewProperties.spatialReference=e.spatialReference.clone(),this.initialViewProperties.viewingMode=e.viewingMode,null!=e.clippingArea?e.clippingArea!==this.clippingArea&&(this.clippingArea=e.clippingArea.clone(),this.clippingEnabled=!0):this.clippingEnabled=!1,e.heightModelInfo&&(this.heightModelInfo=e.heightModelInfo.clone()),e.map===this)for(const r of e.allLayerViews){const e="visible";e in r&&e in r.layer&&r._isOverridden(e)&&(r.layer[e]=r[e])}(!1===t.thumbnailExcluded||null==t.thumbnailExcluded&&!t.viewpointExcluded)&&await this._updateFromThumbnail(e,t.thumbnailSize??void 0)}async _updateFromThumbnail(e,t){const r=q(e,t),i=await e.takeScreenshot({format:"jpg",width:r.width,height:r.height,disableDecorations:!0});this.thumbnailUrl=i.dataUrl}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-scene"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):this._loadObjectsWithLayers()}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_extractOperationalLayers(e){const t=[];if(!this.sourceVersion?.supportsGround&&e.baseMap&&Array.isArray(e.baseMap.elevationLayers))for(const o of e.baseMap.elevationLayers)t.push(o);const r=[],i=e=>(e.layers&&(e.layers=e.layers.filter(i)),"ArcGISTiledElevationServiceLayer"!==e.layerType||(this.sourceVersion?.supportsGround||r.push(e),!1));return{operationalLayers:e.operationalLayers?e.operationalLayers.filter(i):[],operationalElevationLayers:r,basemapElevationLayers:t}}async _loadFromJSON(e,t){const r=new o;await this._validateSpatialReference(),await this._validateHeightModelInfo();const{populateOperationalLayers:i}=await import("./layers/support/layersCreator.js"),{operationalLayers:s,operationalElevationLayers:a,basemapElevationLayers:n}=this._extractOperationalLayers(e),l=[],p={context:{...t,layerContainerType:"operational-layers"}};if(this.portalItem&&(p.context.portal=this.portalItem.portal||V.getDefault()),n.length>0){const e={...p,context:{...p.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",l.push(i(this.ground.layers,n,e))}if(a.length>0){const e={...p,context:{...p.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",l.push(i(r,a,e))}s&&s.length>0&&l.push(i(this.layers,s,p)),e.tables?.length&&l.push(i(this.tables,e.tables,{...p,context:{...p.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"})),await Promise.allSettled(l),await this._loadObjectsWithLayers(),this.ground.layers.addMany(r)}async _ensureLoadBeforeSave(){await this.load(),await this._loadObjectsWithLayers();const e=[],t=[...this.allLayers.items];for(const{basemap:r}of this.presentation.slides.items)r&&(t.push(...r.baseLayers.items),t.push(...r.referenceLayers.items));for(const r of t)if("beforeSave"in r&&"function"==typeof r.beforeSave){const t=r.beforeSave();t&&e.push(t)}await Promise.allSettled(e)}async _loadObjectsWithLayers(){const e=[];this.ground&&e.push(this.ground.load()),this.basemap&&e.push(this.basemap.load()),this.presentation.slides.forEach((t=>{t.basemap&&e.push(t.basemap.load())})),await Promise.allSettled(e)}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webscene:load-portal-item","Failed to load portal item",{error:e})})),"Web Scene"!==e.type)throw new s("webscene:invalid-portal-item","Invalid portal item type '${type}', expected 'Web Scene'",{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-scene",url:w(e.itemUrl),portal:e.portal||V.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]}}_validateSpatialReference(){const e=this.initialViewProperties,t=this._sceneSpatialReference;let r;if("local"!==e.viewingMode){if(!x(t,$.Global))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in global mode, only Web Mercator, WGS84 GCS or CGCS2000 are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||L(e,t)}else{if(!x(t,$.Local))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in local mode, only projected coordinate systems are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||e.equals(t)}const i=e=>e?.camera?.position.spatialReference??e?.targetGeometry?.spatialReference,o=e.viewpoint,a=i(o);if(a&&!r(a))return Promise.reject(new s("webscene:incompatible-camera-spatial-reference","Camera spatial reference (${cameraSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{cameraSpatialReference:a,sceneSpatialReference:t,viewingMode:e.viewingMode}));const n=this.presentation.slides.find((e=>!r(i(e.viewpoint))));if(n){const r=i(n.viewpoint);return Promise.reject(new s("webscene:incompatible-slide-spatial-reference","Slide spatial reference (${slideSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{slideSpatialReference:r,sceneSpatialReference:t,viewingMode:e.viewingMode}))}return Promise.resolve()}_validateHeightModelInfo(){const e=this._sceneSpatialReference,t=R(this.heightModelInfo,e);return t?Promise.reject(t):Promise.resolve()}_validateJSON(e){const t=X.parse(e.version||"","webscene");return ee.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=P.WebMercator.toJSON()),e}_updateTypeKeywords(e){E(e,N.LOCAL_SCENE,"local"===this.initialViewProperties.viewingMode),E(e,N.DEVELOPER_BASEMAP,T(this.basemap)||this.presentation.slides.some((({basemap:e})=>!!e&&T(e)))),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}get _sceneSpatialReference(){return this.initialViewProperties.spatialReference||P.WebMercator}get _verifyItemRelativeRootPath(){return this.portalItem?.itemUrl?w(this.portalItem.itemUrl).path:null}_enableVerifyItemRelativeUrls(e){const t=this._verifyItemRelativeRootPath;return t&&(e.verifyItemRelativeUrls={rootPath:t,writtenUrls:[]}),e}_unscheduleLayersIdGC(){this._layersIdGCTimeoutId&&(clearTimeout(this._layersIdGCTimeoutId),this._layersIdGCTimeoutId=0)}_scheduleLayersIdGC(){this._unscheduleLayersIdGC(),this._layersIdGCTimeoutId=setTimeout((()=>{this._layersIdGCTimeoutId=0,this._runLayersIdGC()}),3e3)}_runLayersIdGC(){this._unscheduleLayersIdGC();const e=this.applicationProperties&&this.applicationProperties.viewing&&this.applicationProperties.viewing.search,t=e=>this.allLayers.some((t=>t.id===e));e&&e.layers&&(e.layers=e.layers.filter((e=>t(e.id))));const r=this.presentation&&this.presentation.slides;r&&r.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>t(e.id))))}))}static fromJSON(e){if(!e)throw new s("webscene:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:e})}};Z=G,ie.version=`${ee.major}.${ee.minor}`,e([f({type:D,json:{write:!0}})],ie.prototype,"applicationProperties",void 0),e([f({type:I,json:{read:{source:"clippingArea.geometry",reader:U},write:{target:"clippingArea.geometry"}}})],ie.prototype,"clippingArea",void 0),e([S("clippingArea")],ie.prototype,"writeClippingArea",null),e([f({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],ie.prototype,"clippingEnabled",void 0),e([v("clippingEnabled",["clippingArea"])],ie.prototype,"readClippingEnabled",null),e([S("clippingEnabled")],ie.prototype,"writeClippingEnabled",null),e([f({type:C,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],ie.prototype,"floorInfo",void 0),e([f({type:j,json:{write:!0}})],ie.prototype,"heightModelInfo",void 0),e([f({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],ie.prototype,"layers",void 0),e([S("layers")],ie.prototype,"writeLayers",null),e([f({readOnly:!0,type:X,json:{type:te(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],ie.prototype,"sourceVersion",void 0),e([v("sourceVersion",["version"])],ie.prototype,"readSourceVersion",null),e([S("sourceVersion")],ie.prototype,"writeSourceVersion",null),e([f({json:{read:!1,write:{enabled:!0,ignoreOrigin:!0}}})],ie.prototype,"tables",void 0),e([S("tables")],ie.prototype,"writeTables",null),e([f()],ie.prototype,"thumbnailUrl",null),e([f({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ie.prototype,"authoringApp",null),e([S("authoringApp")],ie.prototype,"writeAuthoringApp",null),e([f({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ie.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],ie.prototype,"writeAuthoringAppVersion",null),e([f({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],ie.prototype,"ground",void 0),e([S("ground")],ie.prototype,"writeGround",null),e([f({type:o.ofType(Q),json:{write:!0}})],ie.prototype,"transportationNetworks",void 0),e([f({type:z,nonNullable:!0,json:{write:{ignoreOrigin:!0,writer:(e,t,r,i)=>{if(e.slides&&e.slides.length>0){const r={...i,isPresentation:!0};t.presentation=e.write({},r)}}}}})],ie.prototype,"presentation",void 0),e([f({type:H,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new H({viewingMode:"global",spatialReference:P.WebMercator})}})],ie.prototype,"initialViewProperties",void 0),e([v("initialViewProperties",["initialState.environment","initialState.viewpoint","spatialReference","viewingMode"])],ie.prototype,"readInitialViewProperties",null),e([f({type:P,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ie.prototype,"spatialReference",null),e([f({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ie.prototype,"viewingMode",null),e([f({type:M})],ie.prototype,"portalItem",void 0),e([f()],ie.prototype,"resourceInfo",void 0),ie=e([b("esri.WebScene")],ie);const oe=ie;export{oe as default};
5
+ import{_ as e}from"./chunks/tslib.es6.js";import{version as t}from"./kernel.js";import r from"./Map.js";import i from"./Viewpoint.js";import o from"./core/Collection.js";import s from"./core/Error.js";import{clone as a}from"./core/lang.js";import n from"./core/Loadable.js";import{loadAll as l}from"./core/loadAll.js";import p from"./core/Logger.js";import{destroyMaybe as c}from"./core/maybe.js";import{MultiOriginJSONMixin as d,MultiOriginJSONSupport as h}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as m}from"./core/Promise.js";import{debounce as u}from"./core/promiseUtils.js";import{on as y}from"./core/reactiveUtils.js";import{urlToObject as w,addQueryParameter as g}from"./core/urlUtils.js";import{property as f}from"./core/accessorSupport/decorators/property.js";import"./core/accessorSupport/ensureType.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as b}from"./core/accessorSupport/decorators/subclass.js";import{writer as S}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as _}from"./core/accessorSupport/originUtils.js";import{readLoadable as A}from"./core/accessorSupport/read.js";import I from"./geometry/Extent.js";import j from"./geometry/HeightModelInfo.js";import{canProjectWithoutEngine as L}from"./geometry/projection.js";import P from"./geometry/SpatialReference.js";import{validateWebSceneError as R}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as U}from"./geometry/support/jsonUtils.js";import{isEarth as O}from"./geometry/support/spatialReferenceUtils.js";import V from"./portal/Portal.js";import M from"./portal/PortalItem.js";import{toggleTypeKeword as E,TypeKeyword as N}from"./portal/support/portalItemUtils.js";import{hasDeveloperBasemapLayer as T}from"./support/basemapUtils.js";import C from"./support/MapFloorInfo.js";import{WebSceneTag as G}from"./support/tagSymbols.js";import{createSchemaValidationError as F,createCopyError as J}from"./support/webSceneUtils.js";import{ViewingMode as $}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as x}from"./views/support/spatialReferenceSupport.js";import{SaveOperationType as W}from"./webdoc/interfaces.js";import{updateItemWithResources as B,saveResources as k}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as q}from"./webdoc/support/thumbnailUtils.js";import D from"./webscene/ApplicationProperties.js";import K from"./webscene/Environment.js";import H from"./webscene/InitialViewProperties.js";import z from"./webscene/Presentation.js";import Q from"./webscene/TransportationNetwork.js";import{Version as X}from"./webscene/Version.js";import{getLoader as Y}from"./webscene/support/schemaValidatorLoader.js";var Z;const ee=new X(1,32),te=()=>{const e=8,t=[],r=ee.major;for(let i=e;i<=ee.minor;i++)t.push(`${r}.${i}`);return t},re="Web Scene";let ie=class extends(n.LoadableMixin(m(d(r)))){constructor(e){super(e),this[Z]=!0,this._layersIdGCTimeoutId=void 0,this._updateFromPromise=null,this.applicationProperties=null,this.clippingArea=null,this.clippingEnabled=!1,this.floorInfo=null,this.heightModelInfo=void 0,this.sourceVersion=null,this.transportationNetworks=null,this.presentation=new z,this.initialViewProperties=new H,this.portalItem=null,this.resourceInfo=null,this._debouncedSaveOperations=u((async(e,t,r)=>{switch(e){case W.SAVE:return this._saveImpl(t);case W.SAVE_AS:return this._saveAsImpl(r,t)}})),this._resourceReferences={portalItem:null,paths:[]},this.authoringApp=null,this.authoringAppVersion=null,this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1}initialize(){if(this.when().catch((e=>{p.getLogger(this).error("#load()","Failed to load web scene",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t),this.addResolvingPromise(this._validateSpatialReference()),this.addResolvingPromise(this._validateHeightModelInfo())}this.addHandles(y((()=>this.allLayers),"change",(()=>this._scheduleLayersIdGC())))}destroy(){this._unscheduleLayersIdGC(),this.presentation&&this.presentation.destroy(),this.portalItem=c(this.portalItem)}writeClippingArea(e,t){t.clippingArea||(t.clippingArea={}),t.clippingArea.geometry=e.toJSON()}readClippingEnabled(e,t){return!!t.clippingArea&&!!t.clippingArea.clip}writeClippingEnabled(e,t){this.clippingArea&&(t.clippingArea||(t.clippingArea={}),t.clippingArea.clip=e)}writeLayers(e,t,r,i){t[r]=this._layersToJSON(e,"operational-layers",i)}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new X(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${ee.major}.${ee.minor}`}writeTables(e,t,r,i){const o=this._layersToJSON(e,"tables",i);o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem?.thumbnailUrl??null}set thumbnailUrl(e){e?this._override("thumbnailUrl",e):(this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp="ArcGIS API for JavaScript"}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}writeGround(e,t,r,i){t[r]=e?e.write({},i):{transparency:0,layers:[]}}readInitialViewProperties(e,t){const r={};return t.initialState?.environment&&(r.environment=K.fromJSON(t.initialState.environment)),r.spatialReference=t.spatialReference?P.fromJSON(t.spatialReference):P.WebMercator,r.viewingMode=t.viewingMode??"global",t.initialState?.viewpoint&&(r.viewpoint=i.fromJSON(t.initialState.viewpoint)),new H(r)}get spatialReference(){return this.initialViewProperties?.spatialReference??P.WebMercator}get viewingMode(){return this.initialViewProperties?.viewingMode??"global"}load(e){const t=this.ground;return this.addResolvingPromise(this._loadFromSource().then((()=>{t&&t!==this.ground&&t.destroy()}))),Promise.resolve(this)}loadAll(){return l(this,(e=>{const t=this.presentation&&this.presentation.slides;e(this.ground,this.basemap,this.layers,t&&t.map((e=>e.basemap)),this.tables)}))}read(e,t){t={...t,origin:"web-scene"};const r=this._isAuthoringAppVersionSetByUser,i=this._isAuthoringAppSetByUser;if(A(this,e,(t=>super.read(e,t)),t),i||(this._isAuthoringAppSetByUser=!1),r||(this._isAuthoringAppVersionSetByUser=!1),e.baseMap&&Array.isArray(e.baseMap.elevationLayers)&&this.sourceVersion?.supportsVisibleElevationLayersInSlides){const t=e.baseMap.elevationLayers.map((e=>({id:e.id}))),r=this.presentation.slides,i=(e,t)=>e.visibleLayers.some((e=>e.id===t)),o=t.filter((e=>!r.some((t=>i(t,e.id)))));r.forEach((e=>{e.visibleLayers.addMany(o)}))}}_writeBasemapElevationLayers(e){const t=e.ground&&e.ground.layers;!e.baseMap&&t&&t.length&&(e.baseMap={title:"Basemap",baseMapLayers:[]}),e.baseMap&&(e.baseMap.elevationLayers=a(t))}_layersToJSON(e,t,r){const i={...r,layerContainerType:t};return e.map((e=>this._verifyWritableLayer(e,r)?e.write({},i):null)).filter((e=>!!e)).toArray()}_verifyWritableLayer(e,t){return!!e.persistenceEnabled&&("write"in e||(t&&t.messages&&t.messages.push(new s("layer:unsupported",`Layers (${e.title}, ${e.id}) of type '${e.declaredClass}' cannot be persisted in web scenes`,{layer:e})),!1))}write(e,t){if("loaded"!==this.loadStatus){const e=new s("webscene:not-loaded","Web scene must be loaded before it can be serialized");throw p.getLogger(this).error("#toJSON()","Web scene must be loaded before it can be serialized",this.loadError||this.loadStatus),e}this._runLayersIdGC();const r=!t?.messages;t={messages:[],...t,origin:"web-scene"};const i=super.write(e,t);if(r){const e=t.messages?.filter((e=>"web-document-write:property-required"===e.name))??[];if(e.length){const t=new s("web-document:property-required","One or more properties that are required in the webscene JSON are missing, see details for the specific errors",{errors:e});throw p.getLogger(this).error("#toJSON()","One or more properties that are required in the webscene JSON are missing",e),t}}return this._writeBasemapElevationLayers(i),i}async save(e){return this._debouncedSaveOperations(W.SAVE,e)}async _saveImpl(e){if(!this.portalItem)throw p.getLogger(this).error("save(): requires the .portalItem property to be set"),await Promise.resolve(),new s("webscene:portal-item-not-set","Portal item to save to has not been set on the WebScene");if(this.portalItem?.type!==re)throw await Promise.resolve(),new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${re}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:this.portalItem.itemUrl?w(this.portalItem.itemUrl):null,messages:[],portal:this.portalItem.portal??V.getDefault(),portalItem:this.portalItem,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,e),this._updateTypeKeywords(this.portalItem),await B(this.portalItem,i,this._resourceReferences,r,null),_(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(W.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=M.from(e);r||(p.getLogger(this).error("saveAs(portalItem): requires a portal item parameter"),await Promise.reject(new s("webscene:portal-item-required","saveAs requires a portal item to save to"))),r.id&&(r=r.clone(),r.id=null);const i=r.portal||V.getDefault();await this._ensureLoadBeforeSave(),r.type=re,r.portal=i;const o=this._enableVerifyItemRelativeUrls({origin:"web-scene",url:null,messages:[],portal:i,portalItem:r,writtenProperties:[],blockedRelativeUrls:[],resources:{toAdd:[],toUpdate:[],toKeep:[],pendingOperations:[]}}),a=this.write({},o);await Promise.all(o.resources.pendingOperations),await this._verifySaveAs(a,o,t);const n=this.thumbnailUrl,l=!this._isOverridden("thumbnailUrl");return this._updateTypeKeywords(r),await i.signIn(),await(i.user?.addItem({item:r,folder:t&&t.folder,data:a})),await k(this._resourceReferences,o,null),this.portalItem=r,h.prototype.read.call(this,{version:a.version,authoringApp:a.authoringApp,authoringAppVersion:a.authoringAppVersion},{name:"web-scene",ignoreDefaults:!0,url:r.itemUrl?w(r.itemUrl):void 0}),_(o),n&&(this.thumbnailUrl=l?g(n,"w","8192"):n),o.portalItem=r,await this._saveThumbnail(),r}async _saveThumbnail(){this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl})),this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"))}_verifySave(e,t,r,i=!1){if(!O(this.spatialReference))return Promise.reject(new s("webscene:unsupported-spatial-reference","Webscenes using spatial reference systems from Mars or Moon can not be saved currently."));let o,a=t.messages?.filter((e=>"error"===e.type)).map((e=>new s(e.name,e.message,e.details)))??[];t.blockedRelativeUrls&&(a=a.concat(t.blockedRelativeUrls.map((e=>new s("url:unsupported",`Relative url '${e}' is not supported in Web Scene`))))),r&&r.ignoreUnsupported&&(a=a.filter((e=>"layer:unsupported"!==e.name&&"symbol:unsupported"!==e.name&&"symbol-layer:unsupported"!==e.name&&"property:unsupported"!==e.name&&"url:unsupported"!==e.name&&"scenemodification:unsupported"!==e.name))),r?.requiredPropertyChecksDisabled&&(a=a.filter((e=>"web-document-write:property-required"!==e.name)));const n=!!r?.strictSchemaValidationEnabled,l=Y();return o=n&&l?l().then((t=>{const r=t.validate(e);if(r.length>0){const e=`webscene did not validate:\n${r.join("\n")}`;p.getLogger(this).error(`${i?"saveAs":"save"}(): ${e}`)}return r.map((e=>new s("webscene:schema-validation",e)))})).then((e=>{if(e.length>0)throw F(e.concat(a));return a})):Promise.resolve(a),o.then((e=>{if(e.length>0)throw new s("webscene:save","Failed to save webscene due to unsupported or invalid content. See 'details.errors' for more detailed information",{errors:e})}))}_verifySaveAs(e,t,r){return this.canNotSaveAs(t)?Promise.reject(J()):this._verifySave(e,t,r,!0)}verifySaveAs(e){const t=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),r=this.write({},t);return this._verifySaveAs(r,t,e)}canNotSaveAs(e){return e||(e=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),this.write({},e)),(e.verifyItemRelativeUrls?.writtenUrls?.length??0)>0}async updateFrom(e,t={}){const r=this._updateFrom(e,t);this._updateFromPromise=r,await r;this._updateFromPromise===r&&(this._updateFromPromise=null)}async _updateFrom(e,t={}){if(await e.whenReady(),!t.environmentExcluded&&e.environment&&(this.initialViewProperties.environment=K.prototype.clone.apply(e.environment)),!t.viewpointExcluded&&e.viewpoint&&(this.initialViewProperties.viewpoint=e.viewpoint.clone()),this.initialViewProperties.spatialReference=e.spatialReference.clone(),this.initialViewProperties.viewingMode=e.viewingMode,null!=e.clippingArea?e.clippingArea!==this.clippingArea&&(this.clippingArea=e.clippingArea.clone(),this.clippingEnabled=!0):this.clippingEnabled=!1,e.heightModelInfo&&(this.heightModelInfo=e.heightModelInfo.clone()),e.map===this)for(const r of e.allLayerViews){const e="visible";e in r&&e in r.layer&&r._isOverridden(e)&&(r.layer[e]=r[e])}(!1===t.thumbnailExcluded||null==t.thumbnailExcluded&&!t.viewpointExcluded)&&await this._updateFromThumbnail(e,t.thumbnailSize??void 0)}async _updateFromThumbnail(e,t){const r=q(e,t),i=await e.takeScreenshot({format:"jpg",width:r.width,height:r.height,disableDecorations:!0});this.thumbnailUrl=i.dataUrl}_loadFromSource(){return this.resourceInfo?this._loadFromJSON(this.resourceInfo,{origin:"web-scene"}):this.portalItem&&this.portalItem.id?this._loadFromItem(this.portalItem):this._loadObjectsWithLayers()}_readAndLoadFromJSON(e,t){const r=this._validateJSON(e);return this.read(r,t),this._loadFromJSON(r,t)}_extractOperationalLayers(e){const t=[];if(!this.sourceVersion?.supportsGround&&e.baseMap&&Array.isArray(e.baseMap.elevationLayers))for(const o of e.baseMap.elevationLayers)t.push(o);const r=[],i=e=>(e.layers&&(e.layers=e.layers.filter(i)),"ArcGISTiledElevationServiceLayer"!==e.layerType||(this.sourceVersion?.supportsGround||r.push(e),!1));return{operationalLayers:e.operationalLayers?e.operationalLayers.filter(i):[],operationalElevationLayers:r,basemapElevationLayers:t}}async _loadFromJSON(e,t){const r=new o;await this._validateSpatialReference(),await this._validateHeightModelInfo();const{populateOperationalLayers:i}=await import("./layers/support/layersCreator.js"),{operationalLayers:s,operationalElevationLayers:a,basemapElevationLayers:n}=this._extractOperationalLayers(e),l=[],p={context:{...t,layerContainerType:"operational-layers"}};if(this.portalItem&&(p.context.portal=this.portalItem.portal||V.getDefault()),n.length>0){const e={...p,context:{...p.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",l.push(i(this.ground.layers,n,e))}if(a.length>0){const e={...p,context:{...p.context,layerContainerType:"ground"}};e.defaultLayerType="ArcGISTiledElevationServiceLayer",l.push(i(r,a,e))}s&&s.length>0&&l.push(i(this.layers,s,p)),e.tables?.length&&l.push(i(this.tables,e.tables,{...p,context:{...p.context,layerContainerType:"tables"},defaultLayerType:"ArcGISFeatureLayer"})),await Promise.allSettled(l),await this._loadObjectsWithLayers(),this.ground.layers.addMany(r)}async _ensureLoadBeforeSave(){await this.load(),await this._loadObjectsWithLayers();const e=[],t=[...this.allLayers.items];for(const{basemap:r}of this.presentation.slides.items)r&&(t.push(...r.baseLayers.items),t.push(...r.referenceLayers.items));for(const r of t)if("beforeSave"in r&&"function"==typeof r.beforeSave){const t=r.beforeSave();t&&e.push(t)}await Promise.allSettled(e)}async _loadObjectsWithLayers(){const e=[];this.ground&&e.push(this.ground.load()),this.basemap&&e.push(this.basemap.load()),this.presentation.slides.forEach((t=>{t.basemap&&e.push(t.basemap.load())})),await Promise.allSettled(e)}async _loadFromItem(e){if(await e.load().catch((e=>{throw new s("webscene:load-portal-item","Failed to load portal item",{error:e})})),"Web Scene"!==e.type)throw new s("webscene:invalid-portal-item","Invalid portal item type '${type}', expected 'Web Scene'",{type:e.type});const t=await e.fetchData();this.resourceInfo=t;const r={origin:"web-scene",url:w(e.itemUrl),portal:e.portal||V.getDefault(),portalItem:e,readResourcePaths:[]};await this._readAndLoadFromJSON(t,r),this._resourceReferences={portalItem:e,paths:r.readResourcePaths??[]}}_validateSpatialReference(){const e=this.initialViewProperties,t=this._sceneSpatialReference;let r;if("local"!==e.viewingMode){if(!x(t,$.Global))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in global mode, only Web Mercator, WGS84 GCS or CGCS2000 are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||L(e,t)}else{if(!x(t,$.Local))return Promise.reject(new s("webscene:unsupported-spatial-reference","Unsupported spatial reference (${spatialReference.wkid}) in local mode, only projected coordinate systems are supported",{spatialReference:t,viewingMode:e.viewingMode}));r=e=>!e||e.equals(t)}const i=e=>e?.camera?.position.spatialReference??e?.targetGeometry?.spatialReference,o=e.viewpoint,a=i(o);if(a&&!r(a))return Promise.reject(new s("webscene:incompatible-camera-spatial-reference","Camera spatial reference (${cameraSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{cameraSpatialReference:a,sceneSpatialReference:t,viewingMode:e.viewingMode}));const n=this.presentation.slides.find((e=>!r(i(e.viewpoint))));if(n){const r=i(n.viewpoint);return Promise.reject(new s("webscene:incompatible-slide-spatial-reference","Slide spatial reference (${slideSpatialReference.wkid}) is incompatible with the scene spatial reference (${sceneSpatialReference.wkid})",{slideSpatialReference:r,sceneSpatialReference:t,viewingMode:e.viewingMode}))}return Promise.resolve()}_validateHeightModelInfo(){const e=this._sceneSpatialReference,t=R(this.heightModelInfo,e);return t?Promise.reject(t):Promise.resolve()}_validateJSON(e){const t=X.parse(e.version||"","webscene");return ee.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=P.WebMercator.toJSON()),e}_updateTypeKeywords(e){E(e,N.LOCAL_SCENE,"local"===this.initialViewProperties.viewingMode),E(e,N.DEVELOPER_BASEMAP,T(this.basemap)||this.presentation.slides.some((({basemap:e})=>!!e&&T(e)))),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}get _sceneSpatialReference(){return this.initialViewProperties.spatialReference||P.WebMercator}get _verifyItemRelativeRootPath(){return this.portalItem?.itemUrl?w(this.portalItem.itemUrl).path:null}_enableVerifyItemRelativeUrls(e){const t=this._verifyItemRelativeRootPath;return t&&(e.verifyItemRelativeUrls={rootPath:t,writtenUrls:[]}),e}_unscheduleLayersIdGC(){this._layersIdGCTimeoutId&&(clearTimeout(this._layersIdGCTimeoutId),this._layersIdGCTimeoutId=0)}_scheduleLayersIdGC(){this._unscheduleLayersIdGC(),this._layersIdGCTimeoutId=setTimeout((()=>{this._layersIdGCTimeoutId=0,this._runLayersIdGC()}),3e3)}_runLayersIdGC(){this._unscheduleLayersIdGC();const e=this.applicationProperties&&this.applicationProperties.viewing&&this.applicationProperties.viewing.search,t=e=>this.allLayers.some((t=>t.id===e&&t.persistenceEnabled));e&&e.layers&&(e.layers=e.layers.filter((e=>t(e.id))));const r=this.presentation&&this.presentation.slides;r&&r.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>t(e.id))))}))}static fromJSON(e){if(!e)throw new s("webscene:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:e})}};Z=G,ie.version=`${ee.major}.${ee.minor}`,e([f({type:D,json:{write:!0}})],ie.prototype,"applicationProperties",void 0),e([f({type:I,json:{read:{source:"clippingArea.geometry",reader:U},write:{target:"clippingArea.geometry"}}})],ie.prototype,"clippingArea",void 0),e([S("clippingArea")],ie.prototype,"writeClippingArea",null),e([f({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],ie.prototype,"clippingEnabled",void 0),e([v("clippingEnabled",["clippingArea"])],ie.prototype,"readClippingEnabled",null),e([S("clippingEnabled")],ie.prototype,"writeClippingEnabled",null),e([f({type:C,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],ie.prototype,"floorInfo",void 0),e([f({type:j,json:{write:!0}})],ie.prototype,"heightModelInfo",void 0),e([f({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],ie.prototype,"layers",void 0),e([S("layers")],ie.prototype,"writeLayers",null),e([f({readOnly:!0,type:X,json:{type:te(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],ie.prototype,"sourceVersion",void 0),e([v("sourceVersion",["version"])],ie.prototype,"readSourceVersion",null),e([S("sourceVersion")],ie.prototype,"writeSourceVersion",null),e([f({json:{read:!1,write:{enabled:!0,ignoreOrigin:!0}}})],ie.prototype,"tables",void 0),e([S("tables")],ie.prototype,"writeTables",null),e([f()],ie.prototype,"thumbnailUrl",null),e([f({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ie.prototype,"authoringApp",null),e([S("authoringApp")],ie.prototype,"writeAuthoringApp",null),e([f({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ie.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],ie.prototype,"writeAuthoringAppVersion",null),e([f({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],ie.prototype,"ground",void 0),e([S("ground")],ie.prototype,"writeGround",null),e([f({type:o.ofType(Q),json:{write:!0}})],ie.prototype,"transportationNetworks",void 0),e([f({type:z,nonNullable:!0,json:{write:{ignoreOrigin:!0,writer:(e,t,r,i)=>{if(e.slides&&e.slides.length>0){const r={...i,isPresentation:!0};t.presentation=e.write({},r)}}}}})],ie.prototype,"presentation",void 0),e([f({type:H,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new H({viewingMode:"global",spatialReference:P.WebMercator})}})],ie.prototype,"initialViewProperties",void 0),e([v("initialViewProperties",["initialState.environment","initialState.viewpoint","spatialReference","viewingMode"])],ie.prototype,"readInitialViewProperties",null),e([f({type:P,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ie.prototype,"spatialReference",null),e([f({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ie.prototype,"viewingMode",null),e([f({type:M})],ie.prototype,"portalItem",void 0),e([f()],ie.prototype,"resourceInfo",void 0),ie=e([b("esri.WebScene")],ie);const oe=ie;export{oe 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.28/esri/copyright.txt for details.
4
4
  */
5
- import{doSubstitutions as e}from"./executionError.js";import{IANAZone as t,DateTime as n,Zone as r,FixedOffsetZone as s}from"luxon";class i{}var o;i.instance=new t("Etc/UTC"),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,t){const n=h(t);return e.isUnknownTimeZone||n===i.instance?m.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,n):new m(e._date.setZone(t))}static dateJSToArcadeDate(e){return new m(n.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){return new m(n.fromJSDate(e,{zone:t}))}static unknownEpochToArcadeDate(e){return new m(n.fromMillis(e,{zone:i.instance}))}static unknownDateJSToArcadeDate(e){return new m(n.fromMillis(e.getTime(),{zone:i.instance}))}static epochToArcadeDate(e,t="system"){return new m(n.fromMillis(e,{zone:t}))}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,t){const n=h(t);return e.zone===i.instance||n===i.instance?m.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,n):new m(e.setZone(n))}static nowToArcadeDate(e){return new m(n.fromJSDate(new Date,{zone:e}))}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===i.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]}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!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 i.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=t.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,i as UnknownTimeZone,h as createDateTimeZone};
5
+ import{doSubstitutions as e}from"./executionError.js";import{IANAZone as t,DateTime as n,Zone as r,FixedOffsetZone as s}from"luxon";class i{}var o;i.instance=new t("Etc/UTC"),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,t){const n=h(t);return e.isUnknownTimeZone||n===i.instance?m.fromParts(e.year,e.monthJS+1,e.day,e.hour,e.minute,e.second,e.millisecond,n):new m(e._date.setZone(n))}static dateJSToArcadeDate(e){return new m(n.fromJSDate(e,{zone:"system"}))}static dateJSAndZoneToArcadeDate(e,t="system"){return new m(n.fromJSDate(e,{zone:t}))}static unknownEpochToArcadeDate(e){return new m(n.fromMillis(e,{zone:i.instance}))}static unknownDateJSToArcadeDate(e){return new m(n.fromMillis(e.getTime(),{zone:i.instance}))}static epochToArcadeDate(e,t="system"){return new m(n.fromMillis(e,{zone:t}))}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,t){const n=h(t);return e.zone===i.instance||n===i.instance?m.fromParts(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond,n):new m(e.setZone(n))}static nowToArcadeDate(e){return new m(n.fromJSDate(new Date,{zone:e}))}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===i.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]}toISOString(e){return e?this._date.toISO({suppressMilliseconds:!0,includeOffset:!this.isUnknownTimeZone}):this._date.toISO({includeOffset:!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 i.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=t.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,i as UnknownTimeZone,h as createDateTimeZone};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../Graphic.js";import{id as t}from"../../../kernel.js";import i from"../../../request.js";import r from"../../Attachment.js";import s from"../../Dictionary.js";import{FeatureSetError as a,FeatureSetErrorCodes as n}from"../support/errorsupport.js";import l from"../support/FeatureSet.js";import o from"../support/IdSet.js";import{defaultMaxRecords as u,stableStringify as d,FeatureServiceDatabaseType as c,IdState as h,extractServiceUrl as p}from"../support/shared.js";import{toWhereClause as y,isSingleField as f}from"../support/sqlUtils.js";import{decodeStatType as m}from"../support/stats.js";import{createMD5Hash as _,outputTypes as g}from"../../../core/MD5.js";import{fromJSON as R}from"../../../geometry/support/jsonUtils.js";import w from"../../../layers/FeatureLayer.js";import S from"../../../layers/SubtypeGroupLayer.js";import{executeQuery as F}from"../../../rest/query/executeQuery.js";import"../../../config.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/urlUtils.js";import"../../../rest/query/support/AttachmentInfo.js";import"../../../rest/support/AttachmentQuery.js";import{executeForCount as b}from"../../../rest/query/executeForCount.js";import"../../../geometry.js";import"../../../geometry/support/normalizeUtils.js";import"../../../core/Error.js";import"../../../core/pbf.js";import"../../../core/unitUtils.js";import"../../../geometry/support/spatialReferenceUtils.js";import"../../../geometry/ellipsoidUtils.js";import D from"../../../rest/support/Query.js";import{executeForIds as I}from"../../../rest/query/executeForIds.js";import{executeQueryJSON as x}from"../../../rest/query/executeQueryJSON.js";import"../../../layers/graphics/featureConversionUtils.js";import"../../../rest/support/FeatureSet.js";import"../../../rest/support/RelationshipQuery.js";import"../../../rest/support/TopFeaturesQuery.js";import T from"../../../rest/support/StatisticDefinition.js";class C extends l{constructor(e){super(e),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerDynamic",this._removeGeometry=!1,this._overrideFields=null,this.formulaCredential=null,this._pageJustIds=!1,this._requestStandardised=!1,this._useDefinitionExpression=!0,this._cachedDateMetaData={},e.spatialReference&&(this.spatialReference=e.spatialReference),this._transparent=!0,this._maxProcessing=1e3,this._layer=e.layer,this._wset=null,void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry)}_maxQueryRate(){return u}end(){return this._layer}optimisePagingFeatureQueries(e){this._pageJustIds=e}get urlQueryPath(){return this._layer.parsedUrl.path||""}convertQueryToLruCacheKey(e){const t=this.urlQueryPath+","+d(e.toJSON());return _(t,g.String)}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){if(null==this.spatialReference&&(this.spatialReference=this._layer.spatialReference),this.geometryType=this._layer.geometryType,this.fields=this._layer.fields.slice(0),this.hasZ=!0===this._layer?.capabilities?.data?.supportsZ,this.hasM=!0===this._layer?.capabilities?.data?.supportsM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=[],t=[];for(const i of this.fields)if("oid"===i.type)e.push(i),t.push(i.name);else for(const r of this._overrideFields)if(r.toLowerCase()===i.name.toLowerCase()){e.push(i),t.push(i.name);break}this.fields=e,this._overrideFields=t}if(this._layer.source&&this._layer.source.sourceJSON){const e=this._layer.source.sourceJSON.currentVersion;!0===this._layer.source.sourceJSON.useStandardizedQueries?(this._databaseType=c.StandardisedNoInterval,null!=e&&e>=10.61&&(this._databaseType=c.Standardised)):null!=e&&(e>=10.5&&(this._databaseType=c.StandardisedNoInterval,this._requestStandardised=!0),e>=10.61&&(this._databaseType=c.Standardised))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this._layer instanceof S?(this.typeIdField=this._layer.subtypeField??"",this.types=this._layer.subtypes):(this.typeIdField=this._layer.typeIdField??"",this.types=this._layer.types)}_isInFeatureSet(){return h.InFeatureSet}async _refineSetBlock(e){return e}_candidateIdTransform(e){return e}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,t}return this._wset}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new D;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch(i){return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}pbfSupportedForQuery(e){const t=this._layer?.capabilities?.query;return!e.outStatistics&&!0===t?.supportsFormatPBF&&!0===t?.supportsQuantizationEditMode}async queryPBF(e){return e.quantizationParameters={mode:"edit"},(await F(this._layer.parsedUrl,e,{format:"pbf"},{})).unquantize()}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}executeQuery(e,t){e.returnZ=this.hasZ,e.returnM=this.hasM;const i="execute"===t?x:"executeForCount"===t?b:I,r="execute"===t&&this.pbfSupportedForQuery(e);let s=null;if(this.recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);s=this.recentlyUsedQueries.getFromCache(t),null===s&&(s=!0!==r?i(this._layer.parsedUrl.path,e):this.queryPBF(e),this.recentlyUsedQueries.addToCache(t,s),s=s.catch((e=>{throw this.recentlyUsedQueries?.removeFromCache(t),e})))}return this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===s&&(s=!0!==r?i(this._layer.parsedUrl.path,e):this.queryPBF(e)),s}async _getFilteredSet(e,t,i,r,s){const a=await this.databaseType();if(this.isTable()&&t&&null!==e&&""!==e){return new o([],[],!0,null)}if(this._canUsePagination())return this._getFilteredSetUsingPaging(e,t,i,r,s);let n="",l=!1;null!==r&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(n=r.constructClause(),l=!0);const u=new D;this.datesInUnknownTimezone&&(u.timeReferenceUnknownClient=!0),u.where=null===i?null===t?"1=1":"":y(i,a),this._requestStandardised&&(u.sqlFormat="standard"),u.spatialRelationship=this._makeRelationshipEnum(e),u.outSpatialReference=this.spatialReference,u.orderByFields=""!==n?n.split(","):null,u.geometry=null===t?null:t,u.relationParameter=this._makeRelationshipParam(e);let d=await this.executeQuery(u,"executeForIds");null===d&&(d=[]),this._checkCancelled(s);return new o([],d,l,null)}_expandPagedSet(e,t,i,r,s){return this._expandPagedSetFeatureSet(e,t,i,r,s)}async _getFilteredSetUsingPaging(e,t,i,r,s){let a="",n=!1;null!==r&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(a=r.constructClause(),n=!0);const l=await this.databaseType();let u=null===i?null===t?"1=1":"":y(i,l);this._layer.definitionExpression&&this._useDefinitionExpression&&(u=""!==u?"(("+this._layer.definitionExpression+") AND ("+u+"))":this._layer.definitionExpression);let d=this._maxQueryRate();const c=this._layer.capabilities?.query.maxRecordCount;null!=c&&c<d&&(d=c);let h=null;if(!0===this._pageJustIds)h=new o([],["GETPAGES"],n,{spatialRel:this._makeRelationshipEnum(e),relationParam:this._makeRelationshipParam(e),outFields:this._layer.objectIdField,resultRecordCount:d,resultOffset:0,geometry:null===t?null:t,where:u,orderByFields:a,returnGeometry:!1,returnIdsOnly:"false",internal:{set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}});else{let i=!0;!0===this._removeGeometry&&(i=!1);const r=this._overrideFields??this._fieldsIncludingObjectId(["*"]);h=new o([],["GETPAGES"],n,{spatialRel:this._makeRelationshipEnum(e),relationParam:this._makeRelationshipParam(e),outFields:r.join(","),resultRecordCount:d,resultOffset:0,geometry:null===t?null:t,where:u,orderByFields:a,returnGeometry:i,returnIdsOnly:"false",internal:{set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}})}return await this._expandPagedSet(h,d,0,1,s),h}_clonePageDefinition(e){return null===e?null:!0!==e.groupbypage?{groupbypage:!1,spatialRel:e.spatialRel,relationParam:e.relationParam,outFields:e.outFields,resultRecordCount:e.resultRecordCount,resultOffset:e.resultOffset,geometry:e.geometry,where:e.where,orderByFields:e.orderByFields,returnGeometry:e.returnGeometry,returnIdsOnly:e.returnIdsOnly,internal:e.internal}:{groupbypage:!0,spatialRel:e.spatialRel,relationParam:e.relationParam,outFields:e.outFields,resultRecordCount:e.resultRecordCount,useOIDpagination:e.useOIDpagination,generatedOid:e.generatedOid,groupByFieldsForStatistics:e.groupByFieldsForStatistics,resultOffset:e.resultOffset,outStatistics:e.outStatistics,geometry:e.geometry,where:e.where,orderByFields:e.orderByFields,returnGeometry:e.returnGeometry,returnIdsOnly:e.returnIdsOnly,internal:e.internal}}async _getPhysicalPage(e,t,i){const r=e.pagesDefinition.internal.lastRetrieved,s=r,a=e.pagesDefinition.internal.lastPage,n=new D;this._requestStandardised&&(n.sqlFormat="standard"),this.datesInUnknownTimezone&&(n.timeReferenceUnknownClient=!0),n.spatialRelationship=e.pagesDefinition.spatialRel,n.relationParameter=e.pagesDefinition.relationParam,n.outFields=e.pagesDefinition.outFields.split(","),n.num=e.pagesDefinition.resultRecordCount,n.start=e.pagesDefinition.internal.lastPage,n.geometry=e.pagesDefinition.geometry,n.where=e.pagesDefinition.where,n.orderByFields=""!==e.pagesDefinition.orderByFields?e.pagesDefinition.orderByFields.split(","):null,n.returnGeometry=e.pagesDefinition.returnGeometry,n.outSpatialReference=this.spatialReference;const l=await this.executeQuery(n,"execute");if(this._checkCancelled(i),e.pagesDefinition.internal.lastPage!==a)return"done";const o=this._layer.objectIdField;for(let u=0;u<l.features.length;u++)e.pagesDefinition.internal.set[s+u]=l.features[u].attributes[o];if(!1===this._pageJustIds)for(let u=0;u<l.features.length;u++)this._featureCache[l.features[u].attributes[o]]=l.features[u];return(void 0===l.exceededTransferLimit&&l.features.length!==e.pagesDefinition.resultRecordCount||!1===l.exceededTransferLimit)&&(e.pagesDefinition.internal.fullyResolved=!0),e.pagesDefinition.internal.lastRetrieved=r+l.features.length,e.pagesDefinition.internal.lastPage+=e.pagesDefinition.resultRecordCount,"done"}_fieldsIncludingObjectId(e){if(null===e)return[this.objectIdField];const t=e.slice(0);if(t.includes("*"))return t;let i=!1;for(const r of t)if(r.toUpperCase()===this.objectIdField.toUpperCase()){i=!0;break}return!1===i&&t.push(this.objectIdField),t}async _getFeatures(e,t,i,r){const s=[];if(-1!==t&&void 0===this._featureCache[t]&&s.push(t),!0===this._checkIfNeedToExpandKnownPage(e,this._maxProcessingRate()))return await this._expandPagedSet(e,this._maxProcessingRate(),0,0,r),this._getFeatures(e,t,i,r);let l=0;for(let a=e._lastFetchedIndex;a<e._known.length;a++){if(e._lastFetchedIndex+=1,l++,void 0===this._featureCache[e._known[a]]){let i=!1;if(null!==this._layer._mode&&void 0!==this._layer._mode){const t=this._layer._mode;if(void 0!==t._featureMap[e._known[a]]){const r=t._featureMap[e._known[a]];null!==r&&(i=!0,this._featureCache[e._known[a]]=r)}}if(!1===i&&(e._known[a]!==t&&s.push(e._known[a]),s.length>=this._maxProcessingRate()-1))break}if(l>=i&&0===s.length)break}if(0===s.length)return"success";const o=new D;this._requestStandardised&&(o.sqlFormat="standard"),this.datesInUnknownTimezone&&(o.timeReferenceUnknownClient=!0),o.objectIds=s,o.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),o.returnGeometry=!0,!0===this._removeGeometry&&(o.returnGeometry=!1),o.outSpatialReference=this.spatialReference;const u=await this.executeQuery(o,"execute");if(this._checkCancelled(r),void 0!==u.error)throw new a(n.RequestFailed,{reason:u.error});const d=this._layer.objectIdField;for(let a=0;a<u.features.length;a++)this._featureCache[u.features[a].attributes[d]]=u.features[a];return"success"}async _getDistinctPages(e,t,i,r,s,l,o,u,d){await this._ensureLoaded();const c=await this.databaseType();let h=i.parseTree.column;const p=this._layer.fields??[];for(let a=0;a<p.length;a++)if(p[a].name.toLowerCase()===h.toLowerCase()){h=p[a].name;break}const f=new D;this._requestStandardised&&(f.sqlFormat="standard"),this.datesInUnknownTimezone&&(f.timeReferenceUnknownClient=!0);let m=null===l?null===s?"1=1":"":y(l,c);this._layer.definitionExpression&&this._useDefinitionExpression&&(m=""!==m?"(("+this._layer.definitionExpression+") AND ("+m+"))":this._layer.definitionExpression),f.where=m,f.spatialRelationship=this._makeRelationshipEnum(r),f.relationParameter=this._makeRelationshipParam(r),f.geometry=null===s?null:s,f.returnDistinctValues=!0,f.returnGeometry=!1,f.outFields=[h];const _=await this.executeQuery(f,"execute");if(this._checkCancelled(d),!_.hasOwnProperty("features"))throw new a(n.InvalidStatResponse);let g=!1;for(let a=0;a<p.length;a++)if(p[a].name===h){"date"===p[a].type&&(g=!0);break}for(let a=0;a<_.features.length;a++){if(g){const e=_.features[a].attributes[h];null!==e?u.push(new Date(e)):u.push(e)}else u.push(_.features[a].attributes[h]);if(u.length>=o)break}if(0===_.features.length)return u;if(_.features.length===this._layer.capabilities?.query.maxRecordCount&&u.length<o){return{calculated:!0,result:await this._getDistinctPages(e+_.features.length,t,i,r,s,l,o,u,d)}}return u}async _distinctStat(e,t,i,r,s,a,n){return{calculated:!0,result:await this._getDistinctPages(0,e,t,i,r,s,a,[],n)}}isTable(){return this._layer.isTable||null===this._layer.geometryType||"table"===this._layer.type||""===this._layer.geometryType||"esriGeometryNull"===this._layer.geometryType}async _countstat(e,t,i,r){const s=await this.databaseType(),a=new D;if(this._requestStandardised&&(a.sqlFormat="standard"),this.isTable()&&i&&null!==t&&""!==t)return{calculated:!0,result:0};let n=null===r?null===i?"1=1":"":y(r,s);this._layer.definitionExpression&&this._useDefinitionExpression&&(n=""!==n?"(("+this._layer.definitionExpression+") AND ("+n+"))":this._layer.definitionExpression),a.where=n,this.datesInUnknownTimezone&&(a.timeReferenceUnknownClient=!0),a.where=n,a.spatialRelationship=this._makeRelationshipEnum(t),a.relationParameter=this._makeRelationshipParam(t),a.geometry=null===i?null:i,a.returnGeometry=!1;return{calculated:!0,result:await this.executeQuery(a,"executeForCount")}}async _stats(e,t,i,r,s,l,o){await this._ensureLoaded();const u=this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsSqlExpression,d=this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsStatistics,c=this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsDistinct;if("count"===e)return c?this._countstat(e,i,r,s):{calculated:!1};if(!1===d||!1===f(t)&&!1===u||!1===t.isStandardized)return""!==i||null!==s?{calculated:!1}:this._manualStat(e,t,l,o);if("distinct"===e)return!1===c?""!==i||null!==s?{calculated:!1}:this._manualStat(e,t,l,o):this._distinctStat(e,t,i,r,s,l,o);const h=await this.databaseType();if(this.isTable()&&r&&null!==i&&""!==i)return{calculated:!0,result:null};const p=new D;this._requestStandardised&&(p.sqlFormat="standard");let _=null===s?null===r?"1=1":"":y(s,h);this._layer.definitionExpression&&this._useDefinitionExpression&&(_=""!==_?"(("+this._layer.definitionExpression+") AND ("+_+"))":this._layer.definitionExpression),p.where=_,p.spatialRelationship=this._makeRelationshipEnum(i),p.relationParameter=this._makeRelationshipParam(i),p.geometry=null===r?null:r,this.datesInUnknownTimezone&&(p.timeReferenceUnknownClient=!0);const g=new T;g.statisticType=m(e),g.onStatisticField=y(t,h),g.outStatisticFieldName="ARCADE_STAT_RESULT",p.returnGeometry=!1;let R="ARCADE_STAT_RESULT";p.outStatistics=[g];const w=await this.executeQuery(p,"execute");if(!w.hasOwnProperty("features")||0===w.features.length)throw new a(n.InvalidStatResponse);let S=!1;const F=w.fields??[];for(let a=0;a<F.length;a++)if("ARCADE_STAT_RESULT"===F[a].name.toUpperCase()){R=F[a].name,"date"===F[a].type&&(S=!0);break}if(S){let e=w.features[0].attributes[R];return null!==e&&(e=new Date(w.features[0].attributes[R])),{calculated:!0,result:e}}return{calculated:!0,result:w.features[0].attributes[R]}}_stat(e,t,i,r,s,a,n){return this._stats(e,t,i,r,s,a,n)}async _canDoAggregates(e,t){await this._ensureLoaded();let i=!1;const r=this._layer.capabilities?.query,s=!0===r?.supportsSqlExpression;if(null!=r&&!0===r.supportsStatistics&&!0===r.supportsOrderBy&&(i=!0),i)for(let a=0;a<t.length-1;a++)(!1===t[a].workingexpr?.isStandardized||!1===f(t[a].workingexpr)&&!1===s)&&(i=!1);return!1!==i}_makeRelationshipEnum(e){if(e.includes("esriSpatialRelRelation"))return"relation";switch(e){case"esriSpatialRelRelation":return"relation";case"esriSpatialRelIntersects":return"intersects";case"esriSpatialRelContains":return"contains";case"esriSpatialRelOverlaps":return"overlaps";case"esriSpatialRelWithin":return"within";case"esriSpatialRelTouches":return"touches";case"esriSpatialRelCrosses":return"crosses";case"esriSpatialRelEnvelopeIntersects":return"envelope-intersects"}return e}_makeRelationshipParam(e){return e.includes("esriSpatialRelRelation")?e.split(":")[1]:""}async _getAggregatePagesDataSourceDefinition(e,t,i,r,s,a,n){await this._ensureLoaded();const l=await this.databaseType();let u="",d=!1,c=!1;null!==a&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(u=a.constructClause(),c=!0),this._layer.capabilities&&this._layer.capabilities.query&&!1===this._layer.capabilities.query.supportsPagination&&(c=!1,d=!0,u=this._layer.objectIdField);const h=[];for(let o=0;o<t.length;o++){const e=new T;e.onStatisticField=null!==t[o].workingexpr?y(t[o].workingexpr,l):"",e.outStatisticFieldName=t[o].field,e.statisticType=t[o].toStatisticsName(),h.push(e)}""===u&&(u=e.join(","));let p=this._maxQueryRate();const f=this._layer.capabilities?.query.maxRecordCount;null!=f&&f<p&&(p=f);let m=null===s?null===r?"1=1":"":y(s,l);this._layer.definitionExpression&&this._useDefinitionExpression&&(m=""!==m?"(("+this._layer.definitionExpression+") AND ("+m+"))":this._layer.definitionExpression);return new o([],["GETPAGES"],c,{groupbypage:!0,spatialRel:this._makeRelationshipEnum(i),relationParam:this._makeRelationshipParam(i),outFields:["*"],useOIDpagination:d,generatedOid:n,resultRecordCount:p,resultOffset:0,groupByFieldsForStatistics:e,outStatistics:h,geometry:null===r?null:r,where:m,orderByFields:u,returnGeometry:!1,returnIdsOnly:!1,internal:{lastMaxId:-1,set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}})}async _getAgregagtePhysicalPage(t,i,r){let s=t.pagesDefinition.where;!0===t.pagesDefinition.useOIDpagination&&(s=""!==s?"("+s+") AND ("+t.pagesDefinition.generatedOid+">"+t.pagesDefinition.internal.lastMaxId.toString()+")":t.pagesDefinition.generatedOid+">"+t.pagesDefinition.internal.lastMaxId.toString());const l=t.pagesDefinition.internal.lastRetrieved,o=l,u=t.pagesDefinition.internal.lastPage,d=new D;if(this._requestStandardised&&(d.sqlFormat="standard"),d.where=s,d.spatialRelationship=t.pagesDefinition.spatialRel,d.relationParameter=t.pagesDefinition.relationParam,d.outFields=t.pagesDefinition.outFields,d.outStatistics=t.pagesDefinition.outStatistics,d.geometry=t.pagesDefinition.geometry,d.groupByFieldsForStatistics=t.pagesDefinition.groupByFieldsForStatistics,d.num=t.pagesDefinition.resultRecordCount,d.start=t.pagesDefinition.internal.lastPage,d.returnGeometry=t.pagesDefinition.returnGeometry,this.datesInUnknownTimezone&&(d.timeReferenceUnknownClient=!0),d.orderByFields=""!==t.pagesDefinition.orderByFields?t.pagesDefinition.orderByFields.split(","):null,this.isTable()&&d.geometry&&d.spatialRelationship)return[];const c=await this.executeQuery(d,"execute");if(this._checkCancelled(r),!c.hasOwnProperty("features"))throw new a(n.InvalidStatResponse);const h=[];if(t.pagesDefinition.internal.lastPage!==u)return[];c.features.length>0&&void 0===c.features[0].attributes[t.pagesDefinition.generatedOid]&&(t.pagesDefinition.generatedOid=t.pagesDefinition.generatedOid.toLowerCase());for(let e=0;e<c.features.length;e++)t.pagesDefinition.internal.set[o+e]=c.features[e].attributes[t.pagesDefinition.generatedOid];for(let a=0;a<c.features.length;a++)h.push(new e({attributes:c.features[a].attributes,geometry:null}));return!0===t.pagesDefinition.useOIDpagination?0===c.features.length?t.pagesDefinition.internal.fullyResolved=!0:t.pagesDefinition.internal.lastMaxId=c.features[c.features.length-1].attributes[t.pagesDefinition.generatedOid]:(void 0===c.exceededTransferLimit&&c.features.length!==t.pagesDefinition.resultRecordCount||!1===c.exceededTransferLimit)&&(t.pagesDefinition.internal.fullyResolved=!0),t.pagesDefinition.internal.lastRetrieved=l+c.features.length,t.pagesDefinition.internal.lastPage+=t.pagesDefinition.resultRecordCount,h}static create(e,t,i,r,s){const a=new w({url:e,outFields:null===t?["*"]:t});return new C({layer:a,spatialReference:i,lrucache:r,interceptor:s})}relationshipMetaData(){return this._layer&&this._layer.source&&this._layer.source.sourceJSON&&this._layer.source.sourceJSON.relationships?this._layer.source.sourceJSON.relationships:[]}serviceUrl(){return p(this._layer.parsedUrl.path)}async queryAttachments(e,t,i,a,n){const l=this._layer.capabilities;if(l?.data.supportsAttachment&&l?.operations.supportsQueryAttachments){const l={objectIds:[e],returnMetadata:n};(t&&t>0||i&&i>0)&&(l.size=[t&&t>0?t:0,i&&i>0?i:t+1]),a&&a.length>0&&(l.attachmentTypes=a),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:l,method:"attachments"});const o=await this._layer.queryAttachments(l),u=[];return o&&o[e]&&o[e].forEach((t=>{const i=this._layer.parsedUrl.path+"/"+e.toString()+"/attachments/"+t.id.toString();let a=null;n&&t.exifInfo&&(a=s.convertJsonToArcade(t.exifInfo,"system",!0)),u.push(new r(t.id,t.name,t.contentType,t.size,i,a,t.keywords??null))})),u}return[]}async queryRelatedFeatures(t){const r={f:"json",relationshipId:t.relationshipId.toString(),definitionExpression:t.where,outFields:t.outFields?.join(","),returnGeometry:t.returnGeometry.toString()};void 0!==t.resultOffset&&null!==t.resultOffset&&(r.resultOffset=t.resultOffset.toString()),void 0!==t.resultRecordCount&&null!==t.resultRecordCount&&(r.resultRecordCount=t.resultRecordCount.toString()),t.orderByFields&&(r.orderByFields=t.orderByFields.join(",")),t.objectIds&&t.objectIds.length>0&&(r.objectIds=t.objectIds.join(",")),t.outSpatialReference&&(r.outSR=JSON.stringify(t.outSpatialReference.toJSON())),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:r,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const s=await i(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:r});if(s.data){const t={},i=s.data;if(i&&i.relatedRecordGroups){const r=i.spatialReference;for(const s of i.relatedRecordGroups){const a=s.objectId,n=[];for(const t of s.relatedRecords){t.geometry&&(t.geometry.spatialReference=r);const i=new e({geometry:t.geometry?R(t.geometry):null,attributes:t.attributes});n.push(i)}t[a]={features:n,exceededTransferLimit:!0===i.exceededTransferLimit}}}return t}throw new a(n.InvalidRequest)}async getFeatureByObjectId(e,t){const i=new D;i.outFields=t,i.returnGeometry=!1,i.outSpatialReference=this.spatialReference,i.where=this.objectIdField+"="+e.toString(),this.datesInUnknownTimezone&&(i.timeReferenceUnknownClient=!0),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:i,method:"execute"});const r=await x(this._layer.parsedUrl.path,i);return 1===r.features.length?r.features[0]:null}async getIdentityUser(){await this.load();const e=t?.findCredential(this._layer.url);return e?e.userId:null}async getOwningSystemUrl(){await this.load();const e=t?.findServerInfo(this._layer.url);if(e)return e.owningSystemUrl;let r=this._layer.url;const s=r.toLowerCase().indexOf("/rest/services");if(r=s>-1?r.substring(0,s):r,r){r+="/rest/info";try{const e=await i(r,{query:{f:"json"}});let t="";return e.data&&e.data.owningSystemUrl&&(t=e.data.owningSystemUrl),t}catch(a){return""}}return""}getDataSourceFeatureSet(){const e=new C({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this.recentlyUsedQueries??void 0,interceptor:this.featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeReference(){return void 0===this._cachedDateMetaData.preferredTimeReference&&(this._cachedDateMetaData.preferredTimeReference=this._layer?.preferredTimeReference?.toJSON()??null),this._cachedDateMetaData.preferredTimeReference}get dateFieldsTimeReference(){return void 0===this._cachedDateMetaData.dateFieldsTimeReference&&(this._cachedDateMetaData.dateFieldsTimeReference=this._layer?.dateFieldsTimeReference?.toJSON()??null),this._cachedDateMetaData.dateFieldsTimeReference}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone}get editFieldsInfo(){return void 0===this._cachedDateMetaData.editFieldsInfo&&(this._cachedDateMetaData.editFieldsInfo=this._layer?.editFieldsInfo?.toJSON()??null),this._cachedDateMetaData.editFieldsInfo}get timeInfo(){return void 0===this._cachedDateMetaData.timeInfo&&(this._cachedDateMetaData.timeInfo=this._layer?.timeInfo?.toJSON()??null),this._cachedDateMetaData.timeInfo}}export{C as default};
5
+ import e from"../../../Graphic.js";import{id as t}from"../../../kernel.js";import i from"../../../request.js";import r from"../../Attachment.js";import s from"../../Dictionary.js";import{FeatureSetError as a,FeatureSetErrorCodes as n}from"../support/errorsupport.js";import l from"../support/FeatureSet.js";import o from"../support/IdSet.js";import{defaultMaxRecords as u,stableStringify as d,FeatureServiceDatabaseType as c,IdState as h,extractServiceUrl as p}from"../support/shared.js";import{toWhereClause as y,isSingleField as f}from"../support/sqlUtils.js";import{decodeStatType as m}from"../support/stats.js";import{createMD5Hash as _,outputTypes as g}from"../../../core/MD5.js";import{fromJSON as R}from"../../../geometry/support/jsonUtils.js";import{srToRESTValue as w}from"../../../geometry/support/spatialReferenceUtils.js";import S from"../../../layers/FeatureLayer.js";import F from"../../../layers/SubtypeGroupLayer.js";import{executeQuery as b}from"../../../rest/query/executeQuery.js";import"../../../config.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/urlUtils.js";import"../../../rest/query/support/AttachmentInfo.js";import"../../../rest/support/AttachmentQuery.js";import{executeForCount as D}from"../../../rest/query/executeForCount.js";import"../../../geometry.js";import"../../../geometry/support/normalizeUtils.js";import"../../../core/Error.js";import"../../../core/pbf.js";import"../../../core/unitUtils.js";import"../../../geometry/ellipsoidUtils.js";import I from"../../../rest/support/Query.js";import{executeForIds as x}from"../../../rest/query/executeForIds.js";import{executeQueryJSON as T}from"../../../rest/query/executeQueryJSON.js";import"../../../layers/graphics/featureConversionUtils.js";import"../../../rest/support/FeatureSet.js";import"../../../rest/support/RelationshipQuery.js";import"../../../rest/support/TopFeaturesQuery.js";import C from"../../../rest/support/StatisticDefinition.js";class P extends l{constructor(e){super(e),this.declaredClass="esri.arcade.featureset.sources.FeatureLayerDynamic",this._removeGeometry=!1,this._overrideFields=null,this.formulaCredential=null,this._pageJustIds=!1,this._requestStandardised=!1,this._useDefinitionExpression=!0,this._cachedDateMetaData={},e.spatialReference&&(this.spatialReference=e.spatialReference),this._transparent=!0,this._maxProcessing=1e3,this._layer=e.layer,this._wset=null,void 0!==e.outFields&&(this._overrideFields=e.outFields),void 0!==e.includeGeometry&&(this._removeGeometry=!1===e.includeGeometry)}_maxQueryRate(){return u}end(){return this._layer}optimisePagingFeatureQueries(e){this._pageJustIds=e}get urlQueryPath(){return this._layer.parsedUrl.path||""}convertQueryToLruCacheKey(e){const t=this.urlQueryPath+","+d(e.toJSON());return _(t,g.String)}async loadImpl(){return!0===this._layer.loaded?(this._initialiseFeatureSet(),this):(await this._layer.load(),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){if(null==this.spatialReference&&(this.spatialReference=this._layer.spatialReference),this.geometryType=this._layer.geometryType,this.fields=this._layer.fields.slice(0),this.hasZ=!0===this._layer?.capabilities?.data?.supportsZ,this.hasM=!0===this._layer?.capabilities?.data?.supportsM,null!==this._overrideFields)if(1===this._overrideFields.length&&"*"===this._overrideFields[0])this._overrideFields=null;else{const e=[],t=[];for(const i of this.fields)if("oid"===i.type)e.push(i),t.push(i.name);else for(const r of this._overrideFields)if(r.toLowerCase()===i.name.toLowerCase()){e.push(i),t.push(i.name);break}this.fields=e,this._overrideFields=t}if(this._layer.source&&this._layer.source.sourceJSON){const e=this._layer.source.sourceJSON.currentVersion;!0===this._layer.source.sourceJSON.useStandardizedQueries?(this._databaseType=c.StandardisedNoInterval,null!=e&&e>=10.61&&(this._databaseType=c.Standardised)):null!=e&&(e>=10.5&&(this._databaseType=c.StandardisedNoInterval,this._requestStandardised=!0),e>=10.61&&(this._databaseType=c.Standardised))}this.objectIdField=this._layer.objectIdField;for(const e of this.fields)"global-id"===e.type&&(this.globalIdField=e.name);this._layer instanceof F?(this.typeIdField=this._layer.subtypeField??"",this.types=this._layer.subtypes):(this.typeIdField=this._layer.typeIdField??"",this.types=this._layer.types)}_isInFeatureSet(){return h.InFeatureSet}async _refineSetBlock(e){return e}_candidateIdTransform(e){return e}async _getSet(e){if(null===this._wset){await this._ensureLoaded();const t=await this._getFilteredSet("",null,null,null,e);return this._wset=t,t}return this._wset}async _runDatabaseProbe(e){await this._ensureLoaded();const t=new I;this.datesInUnknownTimezone&&(t.timeReferenceUnknownClient=!0),t.where=e.replace("OBJECTID",this._layer.objectIdField);try{return await this._layer.queryObjectIds(t),!0}catch(i){return!1}}_canUsePagination(){return!(!this._layer.capabilities||!this._layer.capabilities.query||!0!==this._layer.capabilities.query.supportsPagination)}_cacheableFeatureSetSourceKey(){return this._layer.url}pbfSupportedForQuery(e){const t=this._layer?.capabilities?.query;return!e.outStatistics&&!0===t?.supportsFormatPBF&&!0===t?.supportsQuantizationEditMode}async queryPBF(e){return e.quantizationParameters={mode:"edit"},(await b(this._layer.parsedUrl,e,{format:"pbf"},{})).unquantize()}get gdbVersion(){return this._layer&&this._layer.capabilities&&this._layer.capabilities.data&&this._layer.capabilities.data.isVersioned?this._layer.gdbVersion||"SDE.DEFAULT":""}nativeCapabilities(){return{title:this._layer.title??"",source:this,canQueryRelated:!0,capabilities:this._layer.capabilities,databaseType:this._databaseType,requestStandardised:this._requestStandardised}}executeQuery(e,t){e.returnZ=this.hasZ,e.returnM=this.hasM;const i="execute"===t?T:"executeForCount"===t?D:x,r="execute"===t&&this.pbfSupportedForQuery(e);let s=null;if(this.recentlyUsedQueries){const t=this.convertQueryToLruCacheKey(e);s=this.recentlyUsedQueries.getFromCache(t),null===s&&(s=!0!==r?i(this._layer.parsedUrl.path,e):this.queryPBF(e),this.recentlyUsedQueries.addToCache(t,s),s=s.catch((e=>{throw this.recentlyUsedQueries?.removeFromCache(t),e})))}return this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:e,method:t}),null===s&&(s=!0!==r?i(this._layer.parsedUrl.path,e):this.queryPBF(e)),s}async _getFilteredSet(e,t,i,r,s){const a=await this.databaseType();if(this.isTable()&&t&&null!==e&&""!==e){return new o([],[],!0,null)}if(this._canUsePagination())return this._getFilteredSetUsingPaging(e,t,i,r,s);let n="",l=!1;null!==r&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(n=r.constructClause(),l=!0);const u=new I;this.datesInUnknownTimezone&&(u.timeReferenceUnknownClient=!0),u.where=null===i?null===t?"1=1":"":y(i,a),this._requestStandardised&&(u.sqlFormat="standard"),u.spatialRelationship=this._makeRelationshipEnum(e),u.outSpatialReference=this.spatialReference,u.orderByFields=""!==n?n.split(","):null,u.geometry=null===t?null:t,u.relationParameter=this._makeRelationshipParam(e);let d=await this.executeQuery(u,"executeForIds");null===d&&(d=[]),this._checkCancelled(s);return new o([],d,l,null)}_expandPagedSet(e,t,i,r,s){return this._expandPagedSetFeatureSet(e,t,i,r,s)}async _getFilteredSetUsingPaging(e,t,i,r,s){let a="",n=!1;null!==r&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(a=r.constructClause(),n=!0);const l=await this.databaseType();let u=null===i?null===t?"1=1":"":y(i,l);this._layer.definitionExpression&&this._useDefinitionExpression&&(u=""!==u?"(("+this._layer.definitionExpression+") AND ("+u+"))":this._layer.definitionExpression);let d=this._maxQueryRate();const c=this._layer.capabilities?.query.maxRecordCount;null!=c&&c<d&&(d=c);let h=null;if(!0===this._pageJustIds)h=new o([],["GETPAGES"],n,{spatialRel:this._makeRelationshipEnum(e),relationParam:this._makeRelationshipParam(e),outFields:this._layer.objectIdField,resultRecordCount:d,resultOffset:0,geometry:null===t?null:t,where:u,orderByFields:a,returnGeometry:!1,returnIdsOnly:"false",internal:{set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}});else{let i=!0;!0===this._removeGeometry&&(i=!1);const r=this._overrideFields??this._fieldsIncludingObjectId(["*"]);h=new o([],["GETPAGES"],n,{spatialRel:this._makeRelationshipEnum(e),relationParam:this._makeRelationshipParam(e),outFields:r.join(","),resultRecordCount:d,resultOffset:0,geometry:null===t?null:t,where:u,orderByFields:a,returnGeometry:i,returnIdsOnly:"false",internal:{set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}})}return await this._expandPagedSet(h,d,0,1,s),h}_clonePageDefinition(e){return null===e?null:!0!==e.groupbypage?{groupbypage:!1,spatialRel:e.spatialRel,relationParam:e.relationParam,outFields:e.outFields,resultRecordCount:e.resultRecordCount,resultOffset:e.resultOffset,geometry:e.geometry,where:e.where,orderByFields:e.orderByFields,returnGeometry:e.returnGeometry,returnIdsOnly:e.returnIdsOnly,internal:e.internal}:{groupbypage:!0,spatialRel:e.spatialRel,relationParam:e.relationParam,outFields:e.outFields,resultRecordCount:e.resultRecordCount,useOIDpagination:e.useOIDpagination,generatedOid:e.generatedOid,groupByFieldsForStatistics:e.groupByFieldsForStatistics,resultOffset:e.resultOffset,outStatistics:e.outStatistics,geometry:e.geometry,where:e.where,orderByFields:e.orderByFields,returnGeometry:e.returnGeometry,returnIdsOnly:e.returnIdsOnly,internal:e.internal}}async _getPhysicalPage(e,t,i){const r=e.pagesDefinition.internal.lastRetrieved,s=r,a=e.pagesDefinition.internal.lastPage,n=new I;this._requestStandardised&&(n.sqlFormat="standard"),this.datesInUnknownTimezone&&(n.timeReferenceUnknownClient=!0),n.spatialRelationship=e.pagesDefinition.spatialRel,n.relationParameter=e.pagesDefinition.relationParam,n.outFields=e.pagesDefinition.outFields.split(","),n.num=e.pagesDefinition.resultRecordCount,n.start=e.pagesDefinition.internal.lastPage,n.geometry=e.pagesDefinition.geometry,n.where=e.pagesDefinition.where,n.orderByFields=""!==e.pagesDefinition.orderByFields?e.pagesDefinition.orderByFields.split(","):null,n.returnGeometry=e.pagesDefinition.returnGeometry,n.outSpatialReference=this.spatialReference;const l=await this.executeQuery(n,"execute");if(this._checkCancelled(i),e.pagesDefinition.internal.lastPage!==a)return"done";const o=this._layer.objectIdField;for(let u=0;u<l.features.length;u++)e.pagesDefinition.internal.set[s+u]=l.features[u].attributes[o];if(!1===this._pageJustIds)for(let u=0;u<l.features.length;u++)this._featureCache[l.features[u].attributes[o]]=l.features[u];return(void 0===l.exceededTransferLimit&&l.features.length!==e.pagesDefinition.resultRecordCount||!1===l.exceededTransferLimit)&&(e.pagesDefinition.internal.fullyResolved=!0),e.pagesDefinition.internal.lastRetrieved=r+l.features.length,e.pagesDefinition.internal.lastPage+=e.pagesDefinition.resultRecordCount,"done"}_fieldsIncludingObjectId(e){if(null===e)return[this.objectIdField];const t=e.slice(0);if(t.includes("*"))return t;let i=!1;for(const r of t)if(r.toUpperCase()===this.objectIdField.toUpperCase()){i=!0;break}return!1===i&&t.push(this.objectIdField),t}async _getFeatures(e,t,i,r){const s=[];if(-1!==t&&void 0===this._featureCache[t]&&s.push(t),!0===this._checkIfNeedToExpandKnownPage(e,this._maxProcessingRate()))return await this._expandPagedSet(e,this._maxProcessingRate(),0,0,r),this._getFeatures(e,t,i,r);let l=0;for(let a=e._lastFetchedIndex;a<e._known.length;a++){if(e._lastFetchedIndex+=1,l++,void 0===this._featureCache[e._known[a]]){let i=!1;if(null!==this._layer._mode&&void 0!==this._layer._mode){const t=this._layer._mode;if(void 0!==t._featureMap[e._known[a]]){const r=t._featureMap[e._known[a]];null!==r&&(i=!0,this._featureCache[e._known[a]]=r)}}if(!1===i&&(e._known[a]!==t&&s.push(e._known[a]),s.length>=this._maxProcessingRate()-1))break}if(l>=i&&0===s.length)break}if(0===s.length)return"success";const o=new I;this._requestStandardised&&(o.sqlFormat="standard"),this.datesInUnknownTimezone&&(o.timeReferenceUnknownClient=!0),o.objectIds=s,o.outFields=this._overrideFields??this._fieldsIncludingObjectId(["*"]),o.returnGeometry=!0,!0===this._removeGeometry&&(o.returnGeometry=!1),o.outSpatialReference=this.spatialReference;const u=await this.executeQuery(o,"execute");if(this._checkCancelled(r),void 0!==u.error)throw new a(n.RequestFailed,{reason:u.error});const d=this._layer.objectIdField;for(let a=0;a<u.features.length;a++)this._featureCache[u.features[a].attributes[d]]=u.features[a];return"success"}async _getDistinctPages(e,t,i,r,s,l,o,u,d){await this._ensureLoaded();const c=await this.databaseType();let h=i.parseTree.column;const p=this._layer.fields??[];for(let a=0;a<p.length;a++)if(p[a].name.toLowerCase()===h.toLowerCase()){h=p[a].name;break}const f=new I;this._requestStandardised&&(f.sqlFormat="standard"),this.datesInUnknownTimezone&&(f.timeReferenceUnknownClient=!0);let m=null===l?null===s?"1=1":"":y(l,c);this._layer.definitionExpression&&this._useDefinitionExpression&&(m=""!==m?"(("+this._layer.definitionExpression+") AND ("+m+"))":this._layer.definitionExpression),f.where=m,f.spatialRelationship=this._makeRelationshipEnum(r),f.relationParameter=this._makeRelationshipParam(r),f.geometry=null===s?null:s,f.returnDistinctValues=!0,f.returnGeometry=!1,f.outFields=[h];const _=await this.executeQuery(f,"execute");if(this._checkCancelled(d),!_.hasOwnProperty("features"))throw new a(n.InvalidStatResponse);let g=!1;for(let a=0;a<p.length;a++)if(p[a].name===h){"date"===p[a].type&&(g=!0);break}for(let a=0;a<_.features.length;a++){if(g){const e=_.features[a].attributes[h];null!==e?u.push(new Date(e)):u.push(e)}else u.push(_.features[a].attributes[h]);if(u.length>=o)break}if(0===_.features.length)return u;if(_.features.length===this._layer.capabilities?.query.maxRecordCount&&u.length<o){return{calculated:!0,result:await this._getDistinctPages(e+_.features.length,t,i,r,s,l,o,u,d)}}return u}async _distinctStat(e,t,i,r,s,a,n){return{calculated:!0,result:await this._getDistinctPages(0,e,t,i,r,s,a,[],n)}}isTable(){return this._layer.isTable||null===this._layer.geometryType||"table"===this._layer.type||""===this._layer.geometryType||"esriGeometryNull"===this._layer.geometryType}async _countstat(e,t,i,r){const s=await this.databaseType(),a=new I;if(this._requestStandardised&&(a.sqlFormat="standard"),this.isTable()&&i&&null!==t&&""!==t)return{calculated:!0,result:0};let n=null===r?null===i?"1=1":"":y(r,s);this._layer.definitionExpression&&this._useDefinitionExpression&&(n=""!==n?"(("+this._layer.definitionExpression+") AND ("+n+"))":this._layer.definitionExpression),a.where=n,this.datesInUnknownTimezone&&(a.timeReferenceUnknownClient=!0),a.where=n,a.spatialRelationship=this._makeRelationshipEnum(t),a.relationParameter=this._makeRelationshipParam(t),a.geometry=null===i?null:i,a.returnGeometry=!1;return{calculated:!0,result:await this.executeQuery(a,"executeForCount")}}async _stats(e,t,i,r,s,l,o){await this._ensureLoaded();const u=this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsSqlExpression,d=this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsStatistics,c=this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsDistinct;if("count"===e)return c?this._countstat(e,i,r,s):{calculated:!1};if(!1===d||!1===f(t)&&!1===u||!1===t.isStandardized)return""!==i||null!==s?{calculated:!1}:this._manualStat(e,t,l,o);if("distinct"===e)return!1===c?""!==i||null!==s?{calculated:!1}:this._manualStat(e,t,l,o):this._distinctStat(e,t,i,r,s,l,o);const h=await this.databaseType();if(this.isTable()&&r&&null!==i&&""!==i)return{calculated:!0,result:null};const p=new I;this._requestStandardised&&(p.sqlFormat="standard");let _=null===s?null===r?"1=1":"":y(s,h);this._layer.definitionExpression&&this._useDefinitionExpression&&(_=""!==_?"(("+this._layer.definitionExpression+") AND ("+_+"))":this._layer.definitionExpression),p.where=_,p.spatialRelationship=this._makeRelationshipEnum(i),p.relationParameter=this._makeRelationshipParam(i),p.geometry=null===r?null:r,this.datesInUnknownTimezone&&(p.timeReferenceUnknownClient=!0);const g=new C;g.statisticType=m(e),g.onStatisticField=y(t,h),g.outStatisticFieldName="ARCADE_STAT_RESULT",p.returnGeometry=!1;let R="ARCADE_STAT_RESULT";p.outStatistics=[g];const w=await this.executeQuery(p,"execute");if(!w.hasOwnProperty("features")||0===w.features.length)throw new a(n.InvalidStatResponse);let S=!1;const F=w.fields??[];for(let a=0;a<F.length;a++)if("ARCADE_STAT_RESULT"===F[a].name.toUpperCase()){R=F[a].name,"date"===F[a].type&&(S=!0);break}if(S){let e=w.features[0].attributes[R];return null!==e&&(e=new Date(w.features[0].attributes[R])),{calculated:!0,result:e}}return{calculated:!0,result:w.features[0].attributes[R]}}_stat(e,t,i,r,s,a,n){return this._stats(e,t,i,r,s,a,n)}async _canDoAggregates(e,t){await this._ensureLoaded();let i=!1;const r=this._layer.capabilities?.query,s=!0===r?.supportsSqlExpression;if(null!=r&&!0===r.supportsStatistics&&!0===r.supportsOrderBy&&(i=!0),i)for(let a=0;a<t.length-1;a++)(!1===t[a].workingexpr?.isStandardized||!1===f(t[a].workingexpr)&&!1===s)&&(i=!1);return!1!==i}_makeRelationshipEnum(e){if(e.includes("esriSpatialRelRelation"))return"relation";switch(e){case"esriSpatialRelRelation":return"relation";case"esriSpatialRelIntersects":return"intersects";case"esriSpatialRelContains":return"contains";case"esriSpatialRelOverlaps":return"overlaps";case"esriSpatialRelWithin":return"within";case"esriSpatialRelTouches":return"touches";case"esriSpatialRelCrosses":return"crosses";case"esriSpatialRelEnvelopeIntersects":return"envelope-intersects"}return e}_makeRelationshipParam(e){return e.includes("esriSpatialRelRelation")?e.split(":")[1]:""}async _getAggregatePagesDataSourceDefinition(e,t,i,r,s,a,n){await this._ensureLoaded();const l=await this.databaseType();let u="",d=!1,c=!1;null!==a&&this._layer.capabilities&&this._layer.capabilities.query&&!0===this._layer.capabilities.query.supportsOrderBy&&(u=a.constructClause(),c=!0),this._layer.capabilities&&this._layer.capabilities.query&&!1===this._layer.capabilities.query.supportsPagination&&(c=!1,d=!0,u=this._layer.objectIdField);const h=[];for(let o=0;o<t.length;o++){const e=new C;e.onStatisticField=null!==t[o].workingexpr?y(t[o].workingexpr,l):"",e.outStatisticFieldName=t[o].field,e.statisticType=t[o].toStatisticsName(),h.push(e)}""===u&&(u=e.join(","));let p=this._maxQueryRate();const f=this._layer.capabilities?.query.maxRecordCount;null!=f&&f<p&&(p=f);let m=null===s?null===r?"1=1":"":y(s,l);this._layer.definitionExpression&&this._useDefinitionExpression&&(m=""!==m?"(("+this._layer.definitionExpression+") AND ("+m+"))":this._layer.definitionExpression);return new o([],["GETPAGES"],c,{groupbypage:!0,spatialRel:this._makeRelationshipEnum(i),relationParam:this._makeRelationshipParam(i),outFields:["*"],useOIDpagination:d,generatedOid:n,resultRecordCount:p,resultOffset:0,groupByFieldsForStatistics:e,outStatistics:h,geometry:null===r?null:r,where:m,orderByFields:u,returnGeometry:!1,returnIdsOnly:!1,internal:{lastMaxId:-1,set:[],lastRetrieved:0,lastPage:0,fullyResolved:!1}})}async _getAgregagtePhysicalPage(t,i,r){let s=t.pagesDefinition.where;!0===t.pagesDefinition.useOIDpagination&&(s=""!==s?"("+s+") AND ("+t.pagesDefinition.generatedOid+">"+t.pagesDefinition.internal.lastMaxId.toString()+")":t.pagesDefinition.generatedOid+">"+t.pagesDefinition.internal.lastMaxId.toString());const l=t.pagesDefinition.internal.lastRetrieved,o=l,u=t.pagesDefinition.internal.lastPage,d=new I;if(this._requestStandardised&&(d.sqlFormat="standard"),d.where=s,d.spatialRelationship=t.pagesDefinition.spatialRel,d.relationParameter=t.pagesDefinition.relationParam,d.outFields=t.pagesDefinition.outFields,d.outStatistics=t.pagesDefinition.outStatistics,d.geometry=t.pagesDefinition.geometry,d.groupByFieldsForStatistics=t.pagesDefinition.groupByFieldsForStatistics,d.num=t.pagesDefinition.resultRecordCount,d.start=t.pagesDefinition.internal.lastPage,d.returnGeometry=t.pagesDefinition.returnGeometry,this.datesInUnknownTimezone&&(d.timeReferenceUnknownClient=!0),d.orderByFields=""!==t.pagesDefinition.orderByFields?t.pagesDefinition.orderByFields.split(","):null,this.isTable()&&d.geometry&&d.spatialRelationship)return[];const c=await this.executeQuery(d,"execute");if(this._checkCancelled(r),!c.hasOwnProperty("features"))throw new a(n.InvalidStatResponse);const h=[];if(t.pagesDefinition.internal.lastPage!==u)return[];c.features.length>0&&void 0===c.features[0].attributes[t.pagesDefinition.generatedOid]&&(t.pagesDefinition.generatedOid=t.pagesDefinition.generatedOid.toLowerCase());for(let e=0;e<c.features.length;e++)t.pagesDefinition.internal.set[o+e]=c.features[e].attributes[t.pagesDefinition.generatedOid];for(let a=0;a<c.features.length;a++)h.push(new e({attributes:c.features[a].attributes,geometry:null}));return!0===t.pagesDefinition.useOIDpagination?0===c.features.length?t.pagesDefinition.internal.fullyResolved=!0:t.pagesDefinition.internal.lastMaxId=c.features[c.features.length-1].attributes[t.pagesDefinition.generatedOid]:(void 0===c.exceededTransferLimit&&c.features.length!==t.pagesDefinition.resultRecordCount||!1===c.exceededTransferLimit)&&(t.pagesDefinition.internal.fullyResolved=!0),t.pagesDefinition.internal.lastRetrieved=l+c.features.length,t.pagesDefinition.internal.lastPage+=t.pagesDefinition.resultRecordCount,h}static create(e,t,i,r,s){const a=new S({url:e,outFields:null===t?["*"]:t});return new P({layer:a,spatialReference:i,lrucache:r,interceptor:s})}relationshipMetaData(){return this._layer&&this._layer.source&&this._layer.source.sourceJSON&&this._layer.source.sourceJSON.relationships?this._layer.source.sourceJSON.relationships:[]}serviceUrl(){return p(this._layer.parsedUrl.path)}async queryAttachments(e,t,i,a,n){const l=this._layer.capabilities;if(l?.data.supportsAttachment&&l?.operations.supportsQueryAttachments){const l={objectIds:[e],returnMetadata:n};(t&&t>0||i&&i>0)&&(l.size=[t&&t>0?t:0,i&&i>0?i:t+1]),a&&a.length>0&&(l.attachmentTypes=a),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:l,method:"attachments"});const o=await this._layer.queryAttachments(l),u=[];return o&&o[e]&&o[e].forEach((t=>{const i=this._layer.parsedUrl.path+"/"+e.toString()+"/attachments/"+t.id.toString();let a=null;n&&t.exifInfo&&(a=s.convertJsonToArcade(t.exifInfo,"system",!0)),u.push(new r(t.id,t.name,t.contentType,t.size,i,a,t.keywords??null))})),u}return[]}async queryRelatedFeatures(t){const r={f:"json",relationshipId:t.relationshipId.toString(),definitionExpression:t.where,outFields:t.outFields?.join(","),returnGeometry:t.returnGeometry.toString()};void 0!==t.resultOffset&&null!==t.resultOffset&&(r.resultOffset=t.resultOffset.toString()),void 0!==t.resultRecordCount&&null!==t.resultRecordCount&&(r.resultRecordCount=t.resultRecordCount.toString()),t.orderByFields&&(r.orderByFields=t.orderByFields.join(",")),t.objectIds&&t.objectIds.length>0&&(r.objectIds=t.objectIds.join(",")),t.outSpatialReference&&(r.outSR=w(t.outSpatialReference)),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preRequestCallback({layer:this._layer,queryPayload:r,method:"relatedrecords",url:this._layer.parsedUrl.path+"/queryRelatedRecords"});const s=await i(this._layer.parsedUrl.path+"/queryRelatedRecords",{responseType:"json",query:r});if(s.data){const t={},i=s.data;if(i&&i.relatedRecordGroups){const r=i.spatialReference;for(const s of i.relatedRecordGroups){const a=s.objectId,n=[];for(const t of s.relatedRecords){t.geometry&&(t.geometry.spatialReference=r);const i=new e({geometry:t.geometry?R(t.geometry):null,attributes:t.attributes});n.push(i)}t[a]={features:n,exceededTransferLimit:!0===i.exceededTransferLimit}}}return t}throw new a(n.InvalidRequest)}async getFeatureByObjectId(e,t){const i=new I;i.outFields=t,i.returnGeometry=!1,i.outSpatialReference=this.spatialReference,i.where=this.objectIdField+"="+e.toString(),this.datesInUnknownTimezone&&(i.timeReferenceUnknownClient=!0),this.featureSetQueryInterceptor&&this.featureSetQueryInterceptor.preLayerQueryCallback({layer:this._layer,query:i,method:"execute"});const r=await T(this._layer.parsedUrl.path,i);return 1===r.features.length?r.features[0]:null}async getIdentityUser(){await this.load();const e=t?.findCredential(this._layer.url);return e?e.userId:null}async getOwningSystemUrl(){await this.load();const e=t?.findServerInfo(this._layer.url);if(e)return e.owningSystemUrl;let r=this._layer.url;const s=r.toLowerCase().indexOf("/rest/services");if(r=s>-1?r.substring(0,s):r,r){r+="/rest/info";try{const e=await i(r,{query:{f:"json"}});let t="";return e.data&&e.data.owningSystemUrl&&(t=e.data.owningSystemUrl),t}catch(a){return""}}return""}getDataSourceFeatureSet(){const e=new P({layer:this._layer,spatialReference:this.spatialReference??void 0,outFields:this._overrideFields??void 0,includeGeometry:!this._removeGeometry,lrucache:this.recentlyUsedQueries??void 0,interceptor:this.featureSetQueryInterceptor??void 0});return e._useDefinitionExpression=!1,e}get preferredTimeReference(){return void 0===this._cachedDateMetaData.preferredTimeReference&&(this._cachedDateMetaData.preferredTimeReference=this._layer?.preferredTimeReference?.toJSON()??null),this._cachedDateMetaData.preferredTimeReference}get dateFieldsTimeReference(){return void 0===this._cachedDateMetaData.dateFieldsTimeReference&&(this._cachedDateMetaData.dateFieldsTimeReference=this._layer?.dateFieldsTimeReference?.toJSON()??null),this._cachedDateMetaData.dateFieldsTimeReference}get datesInUnknownTimezone(){return this._layer.datesInUnknownTimezone}get editFieldsInfo(){return void 0===this._cachedDateMetaData.editFieldsInfo&&(this._cachedDateMetaData.editFieldsInfo=this._layer?.editFieldsInfo?.toJSON()??null),this._cachedDateMetaData.editFieldsInfo}get timeInfo(){return void 0===this._cachedDateMetaData.timeInfo&&(this._cachedDateMetaData.timeInfo=this._layer?.timeInfo?.toJSON()??null),this._cachedDateMetaData.timeInfo}}export{P 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.28/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{E as o,L as u,g as a,c as s,n as i,k as l,m as c,j as f,l as m,H as d,O as h,P as y}from"../../chunks/languageUtils.js";import{DateOnly as N}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as A}from"luxon";function T(n,e,r){return n+(k(r)?P:D)[e]}function k(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 c(n)?n.toArcadeDate():m(n,u(e))}function C(k,D){k.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))}))},k.time=function(e,f){return D(e,f,((m,d,h)=>{switch(o(h,0,4,e,f),h.length){case 0:{const r=n.nowToArcadeDate(u(e));return new w(r.hour,r.minute,r.second,r.millisecond)}case 1:{if(i(h[0]))return h[0].clone();if(l(h[0]))return new w(h[0].hour,h[0].minute,h[0].second,h[0].millisecond);if(c(h[0]))return new w(0,0,0,0);if(s(h[0]))return w.fromString(h[0]);const n=a(h[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return s(h[0])&&s(h[1])?w.fromString(h[0],h[1]):w.fromParts(a(h[0]),a(h[1]),0,0);case 3:return w.fromParts(a(h[0]),a(h[1]),a(h[2]),0);case 4:return w.fromParts(a(h[0]),a(h[1]),a(h[2]),a(h[3]))}throw new r(e,t.InvalidParameter,f)}))},k.dateonly=function(e,r){return D(e,r,((t,i,m)=>{if(o(m,0,3,e,r),3===m.length)return N.fromParts(a(m[0]),a(m[1])+1,a(m[2]));if(2===m.length){const n=f(m[1]);return""===n?null:"X"===n?N.fromSeconds(a(m[0])):"x"===n?N.fromMilliseconds(a(m[0])):N.fromString(f(m[0]),n)}if(1===m.length){if(s(m[0])){if(""===m[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(m[0]))return N.fromString(m[0]+"-01-01")}if(c(m[0]))return m[0].clone();if(l(m[0]))return N.fromParts(m[0].year,m[0].monthJS+1,m[0].day);const n=a(m[0]);return!1===isNaN(n)?N.fromMilliseconds(n):s(m[0])?N.fromString(m[0]):null}if(0===m.length){const r=n.nowToArcadeDate(u(e));return!1===r.isValid?null:N.fromParts(r.year,r.monthJS+1,r.day)}return null}))},k.changetimezone=function(a,s){return D(a,s,((i,l,d)=>{if(o(d,2,2,a,s),null===d[0])return null;if(c(d[0]))throw new r(a,t.CannotChangeTimeZoneDateOnly,s);if(c(d[0]))throw new r(a,t.CannotChangeTimeZoneTime,s);const h=m(d[0],u(a));if(null===h)throw new r(a,t.InvalidParameter,s);const y=e(Z(f(d[1]),a),!1);if(null===y)return null;const N=n.arcadeDateAndZoneToArcadeDate(h,y);return!1===N.isValid?null:N}))},k.timezone=function(e,r){return D(e,r,((t,a,s)=>{if(o(s,1,2,e,r),i(s[0]))return"unknown";if(c(s[0]))return"unknown";const l=m(s[0],u(e));if(null===l)return null;const f=l.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":f}))},k.timezoneoffset=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:60*s.timeZoneOffset*1e3}))},k.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}))},k.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}))},k.toutc=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:s.toUTC()}))},k.tolocal=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:s.toLocal()}))},k.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}))},k.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}))},k.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}))},k.hour=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].hour;const s=m(a[0],u(n));return null===s?NaN:s.hour}))},k.second=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].second;const s=m(a[0],u(n));return null===s?NaN:s.second}))},k.millisecond=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].millisecond;const s=m(a[0],u(n));return null===s?NaN:s.millisecond}))},k.minute=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].minute;const s=m(a[0],u(n));return null===s?NaN:s.minute}))},k.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(d(l[1],0));if(f<0||f>6)throw new r(n,t.InvalidParameter,e);const m=c.day,h=c.monthJS,y=c.year,N=c.dayOfWeekJS,w=T(m,h,y)-1,g=Math.floor(w/7);return N-f+(N-f<0?7:0)<w-7*g?g+1:g}))},k.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}))},k.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}))},k.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}))},k.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}))},k.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}))},k.date=function(r,t){return D(r,t,((l,d,y)=>{if(o(y,0,8,r,t),3===y.length){if(c(y[0])&&i(y[1])&&s(y[2])){const t=e(Z(f(y[2])??"unknown",r),!1);return null===t?null:S(n.fromParts(y[0].year,y[0].month,y[0].day,y[1].hour,y[1].minute,y[1].second,y[1].millisecond,t))}return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),0,0,0,0,u(r)))}if(4===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),0,0,0,u(r)));if(5===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),0,0,u(r)));if(6===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),0,u(r)));if(7===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),a(y[6]),u(r)));if(8===y.length){const t=e(Z(f(y[7])??"unknown",r),!1);return null===t?null:S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),a(y[6]),t))}if(2===y.length){if(c(y[0])&&s(y[1])){const t=e(Z(f(y[1])??"unknown",r),!1);return null===t?null:S(n.fromParts(y[0].year,y[0].month,y[0].day,0,0,0,0,t))}if(c(y[0])&&i(y[1]))return S(n.fromParts(y[0].year,y[0].month,y[0].day,y[1].hour,y[1].minute,y[1].second,y[1].millisecond,"unknown"));let t,o=f(y[1]);return""===o?null:(o=h(o),t="X"===o?A.fromSeconds(a(y[0])):"x"===o?A.fromMillis(a(y[0])):A.fromFormat(f(y[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===y.length){if(c(y[0]))return S(n.fromParts(y[0].year,y[0].month,y[0].day,0,0,0,0,"unknown"));if(s(y[0])){if(""===y[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(y[0]))return m(y[0]+"-01-01",u(r))}const e=a(y[0]);if(!1===isNaN(e)){const t=A.fromMillis(e);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,u(r)):null}return m(y[0],u(r))}return 0===y.length?n.nowToArcadeDate(u(r)):null}))},k.datediff=function(e,r){return D(e,r,((t,a,s)=>{if(o(s,2,4,e,r),i(s[0]))return i(s[1])?s[0].difference(s[1],f(s[2])):NaN;if(i(s[1]))return NaN;if(c(s[0]))return c(s[1])?s[0].difference(s[1],f(s[2])):NaN;if(c(s[1]))return NaN;let l=m(s[0],u(e)),h=m(s[1],u(e));if(null===l||null===h)return NaN;let y=d(s[3],"");switch(""!==y&&null!==y?(y=f(y),l=n.arcadeDateAndZoneToArcadeDate(l,y),h=n.arcadeDateAndZoneToArcadeDate(h,y)):l.timeZone!==h.timeZone&&(l.isUnknownTimeZone?l=n.arcadeDateAndZoneToArcadeDate(l,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,l.timeZone))),f(s[2]).toLowerCase()){case"days":case"day":case"d":return l.diff(h,"days");case"months":case"month":return l.diff(h,"months");case"minutes":case"minute":case"m":return"M"===s[2]?l.diff(h,"months"):l.diff(h,"minutes");case"seconds":case"second":case"s":return l.diff(h,"seconds");case"milliseconds":case"millisecond":case"ms":default:return l.diff(h);case"hours":case"hour":case"h":return l.diff(h,"hours");case"years":case"year":case"y":return l.diff(h,"years")}}))},k.dateadd=function(n,e){return D(n,e,((r,t,s)=>{o(s,2,3,n,e);let l=a(s[1]);if(isNaN(l))return i(s[0])||c(s[0])?s[0].clone():m(s[0],u(n));let d="milliseconds";switch(f(s[2]).toLowerCase()){case"days":case"day":case"d":d="days",l=y(l);break;case"months":case"month":d="months",l=y(l);break;case"minutes":case"minute":case"m":d="M"===s[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(i(s[0]))return s[0].plus(d,l);if(c(s[0]))return s[0].plus(d,l);const h=m(s[0],u(n));return null===h?null:h.plus({[d]:l})}))}}export{C as registerFunctions};
5
+ import{ArcadeDate as n,createDateTimeZone as e}from"../ArcadeDate.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"../executionError.js";import{E as o,L as u,g as a,c as s,n as i,k as l,m as c,j as f,l as m,H as d,O as h,P as y}from"../../chunks/languageUtils.js";import{DateOnly as N}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as A}from"luxon";function T(n,e,r){return n+(k(r)?P:D)[e]}function k(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 c(n)?n.toArcadeDate():m(n,u(e))}function C(k,D){k.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))}))},k.time=function(e,f){return D(e,f,((m,d,h)=>{switch(o(h,0,4,e,f),h.length){case 0:{const r=n.nowToArcadeDate(u(e));return new w(r.hour,r.minute,r.second,r.millisecond)}case 1:{if(i(h[0]))return h[0].clone();if(l(h[0]))return new w(h[0].hour,h[0].minute,h[0].second,h[0].millisecond);if(c(h[0]))return new w(0,0,0,0);if(s(h[0]))return w.fromString(h[0]);const n=a(h[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return s(h[0])&&s(h[1])?w.fromString(h[0],h[1]):w.fromParts(a(h[0]),a(h[1]),0,0);case 3:return w.fromParts(a(h[0]),a(h[1]),a(h[2]),0);case 4:return w.fromParts(a(h[0]),a(h[1]),a(h[2]),a(h[3]))}throw new r(e,t.InvalidParameter,f)}))},k.dateonly=function(e,r){return D(e,r,((t,i,m)=>{if(o(m,0,3,e,r),3===m.length)return N.fromParts(a(m[0]),a(m[1])+1,a(m[2]));if(2===m.length){const n=f(m[1]);return""===n?null:"X"===n?N.fromSeconds(a(m[0])):"x"===n?N.fromMilliseconds(a(m[0])):N.fromString(f(m[0]),n)}if(1===m.length){if(s(m[0])){if(""===m[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(m[0]))return N.fromString(m[0]+"-01-01")}if(c(m[0]))return m[0].clone();if(l(m[0]))return N.fromParts(m[0].year,m[0].monthJS+1,m[0].day);const n=a(m[0]);return!1===isNaN(n)?N.fromMilliseconds(n):s(m[0])?N.fromString(m[0]):null}if(0===m.length){const r=n.nowToArcadeDate(u(e));return!1===r.isValid?null:N.fromParts(r.year,r.monthJS+1,r.day)}return null}))},k.changetimezone=function(a,s){return D(a,s,((i,l,d)=>{if(o(d,2,2,a,s),null===d[0])return null;if(c(d[0]))throw new r(a,t.CannotChangeTimeZoneDateOnly,s);if(c(d[0]))throw new r(a,t.CannotChangeTimeZoneTime,s);const h=m(d[0],u(a));if(null===h)throw new r(a,t.InvalidParameter,s);const y=e(Z(f(d[1]),a),!1);if(null===y)return null;const N=n.arcadeDateAndZoneToArcadeDate(h,y);return!1===N.isValid?null:N}))},k.timezone=function(e,r){return D(e,r,((t,a,s)=>{if(o(s,1,2,e,r),i(s[0]))return"unknown";if(c(s[0]))return"unknown";const l=m(s[0],u(e));if(null===l)return null;const f=l.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":f}))},k.timezoneoffset=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:60*s.timeZoneOffset*1e3}))},k.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}))},k.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}))},k.toutc=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:s.toUTC()}))},k.tolocal=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:s.toLocal()}))},k.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}))},k.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}))},k.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}))},k.hour=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].hour;const s=m(a[0],u(n));return null===s?NaN:s.hour}))},k.second=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].second;const s=m(a[0],u(n));return null===s?NaN:s.second}))},k.millisecond=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].millisecond;const s=m(a[0],u(n));return null===s?NaN:s.millisecond}))},k.minute=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].minute;const s=m(a[0],u(n));return null===s?NaN:s.minute}))},k.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(d(l[1],0));if(f<0||f>6)throw new r(n,t.InvalidParameter,e);const m=c.day,h=c.monthJS,y=c.year,N=c.dayOfWeekJS,w=T(m,h,y)-1,g=Math.floor(w/7);return N-f+(N-f<0?7:0)<w-7*g?g+1:g}))},k.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}))},k.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}))},k.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}))},k.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}))},k.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}))},k.date=function(r,t){return D(r,t,((l,d,y)=>{if(o(y,0,8,r,t),3===y.length){if(c(y[0])&&i(y[1])&&s(y[2])){const t=e(Z(f(y[2])??"unknown",r),!1);return null===t?null:S(n.fromParts(y[0].year,y[0].month,y[0].day,y[1].hour,y[1].minute,y[1].second,y[1].millisecond,t))}return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),0,0,0,0,u(r)))}if(4===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),0,0,0,u(r)));if(5===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),0,0,u(r)));if(6===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),0,u(r)));if(7===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),a(y[6]),u(r)));if(8===y.length){const t=e(Z(f(y[7])??"unknown",r),!1);return null===t?null:S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),a(y[6]),t))}if(2===y.length){if(c(y[0])&&s(y[1])){const t=e(Z(f(y[1])??"unknown",r),!1);return null===t?null:S(n.fromParts(y[0].year,y[0].month,y[0].day,0,0,0,0,t))}if(c(y[0])&&i(y[1]))return S(n.fromParts(y[0].year,y[0].month,y[0].day,y[1].hour,y[1].minute,y[1].second,y[1].millisecond,"unknown"));let t,o=f(y[1]);return""===o?null:(o=h(o,!0),t="X"===o?A.fromSeconds(a(y[0])):"x"===o?A.fromMillis(a(y[0])):A.fromFormat(f(y[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===y.length){if(c(y[0]))return S(n.fromParts(y[0].year,y[0].month,y[0].day,0,0,0,0,"unknown"));if(s(y[0])){if(""===y[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(y[0]))return m(y[0]+"-01-01",u(r))}const e=a(y[0]);if(!1===isNaN(e)){const t=A.fromMillis(e);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,u(r)):null}return m(y[0],u(r))}return 0===y.length?n.nowToArcadeDate(u(r)):null}))},k.datediff=function(e,r){return D(e,r,((t,a,s)=>{if(o(s,2,4,e,r),i(s[0]))return i(s[1])?s[0].difference(s[1],f(s[2])):NaN;if(i(s[1]))return NaN;if(c(s[0]))return c(s[1])?s[0].difference(s[1],f(s[2])):NaN;if(c(s[1]))return NaN;let l=m(s[0],u(e)),h=m(s[1],u(e));if(null===l||null===h)return NaN;let y=d(s[3],"");switch(""!==y&&null!==y?(y=Z(f(y),e),l=n.arcadeDateAndZoneToArcadeDate(l,y),h=n.arcadeDateAndZoneToArcadeDate(h,y)):l.timeZone!==h.timeZone&&(l.isUnknownTimeZone?l=n.arcadeDateAndZoneToArcadeDate(l,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,l.timeZone))),f(s[2]).toLowerCase()){case"days":case"day":case"d":return l.diff(h,"days");case"months":case"month":return l.diff(h,"months");case"minutes":case"minute":case"m":return"M"===s[2]?l.diff(h,"months"):l.diff(h,"minutes");case"seconds":case"second":case"s":return l.diff(h,"seconds");case"milliseconds":case"millisecond":case"ms":default:return l.diff(h);case"hours":case"hour":case"h":return l.diff(h,"hours");case"years":case"year":case"y":return l.diff(h,"years")}}))},k.dateadd=function(n,e){return D(n,e,((r,t,s)=>{o(s,2,3,n,e);let l=a(s[1]);if(isNaN(l))return i(s[0])||c(s[0])?s[0].clone():m(s[0],u(n));let d="milliseconds";switch(f(s[2]).toLowerCase()){case"days":case"day":case"d":d="days",l=c(s[0])?l:y(l);break;case"months":case"month":d="months",l=c(s[0])?l:y(l);break;case"minutes":case"minute":case"m":d="M"===s[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(i(s[0]))return s[0].plus(d,l);if(c(s[0]))return s[0].plus(d,l);const h=m(s[0],u(n));return null===h?null:h.plus({[d]:l})}))}}export{C 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.28/esri/copyright.txt for details.
4
4
  */
5
- import t from"../ArcadePortal.js";import e from"../Attachment.js";import r from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as a}from"../executionError.js";import{E as o,j as i,N as u,g as s,T as l,x as d,H as p,h as c,t as f,o as h,q as y,S as m,r as g,U as A,L as w,V as I,W as v,X as U,Y as b,c as j,Z as x,k as N,m as P,n as F,a as T,b as C,i as O,u as L,s as k}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as S}from"../featureset/support/shared.js";import{convertDirection as z}from"./convertdirection.js";import{XXH as D}from"./hash.js";import{hasSamePortal as R}from"../../core/urlUtils.js";import H from"../../geometry/Extent.js";import M from"../../geometry/Multipoint.js";import W from"../../geometry/Point.js";import J from"../../geometry/Polygon.js";import V from"../../geometry/Polyline.js";import E from"../../geometry/SpatialReference.js";import Z from"../../portal/Portal.js";function B(t){if("loaded"===t.loadStatus&&t.user&&t.user.sourceJSON){return t.user.sourceJSON}return null}function q(t,e){return!!t&&R(t,e?.restUrl||"")}function X(t,e){if(!t||!e)return t===e;if(t.x===e.x&&t.y===e.y){if(t.hasZ){if(t.z!==e.z)return!1}else if(e.hasZ)return!1;if(t.hasM){if(t.m!==e.m)return!1}else if(e.hasM)return!1;return!0}return!1}function Y(o,i,u){if(null!==o)if(h(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o)Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else if(y(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.toArray())Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else{if(N(o))return i.updateIntArray([o.toNumber()]),void i.updateUint8Array([241]);if(P(o))return i.updateIntArray([o.toNumber()]),void i.updateIntArray([257]);if(F(o))return i.updateIntArray([o.toNumber()]),void i.updateIntArray([263]);if(j(o))return i.updateIntArray([o.length]),i.updateWithString(o),void i.updateUint8Array([41]);if(T(o))i.updateUint8Array([!0===o?1:0,113]);else{if(C(o))return i.updateFloatArray([o]),void i.updateUint8Array([173]);if(o instanceof e)throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof t)throw new n(u.context,a.UnsupportedHashType,u.node);if(!(o instanceof r)){if(g(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof W)return i.updateIntArray([3833836621]),i.updateIntArray([0]),i.updateFloatArray([o.x]),i.updateIntArray([1]),i.updateFloatArray([o.y]),o.hasZ&&(i.updateIntArray([2]),i.updateFloatArray([o.z])),o.hasM&&(i.updateIntArray([3]),i.updateFloatArray([o.m])),i.updateIntArray([3765347959]),void Y(o.spatialReference.wkid,i,u);if(o instanceof J){i.updateIntArray([1266616829]);for(let t=0;t<o.rings.length;t++){const e=o.rings[t],r=[];let n=null,a=null;for(let i=0;i<e.length;i++){const u=o.getPoint(t,i);if(0===i)n=u;else if(X(a,u))continue;a=u,i===e.length-1&&X(n,u)||r.push(u)}i.updateIntArray([1397116793,r.length]);for(let t=0;t<r.length;t++){const e=r[t];i.updateIntArray([3962308117,t]),Y(e,i,u),i.updateIntArray([2716288009])}i.updateIntArray([2278822459])}return i.updateIntArray([3878477243]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof V){i.updateIntArray([4106883559]);for(let t=0;t<o.paths.length;t++){const e=o.paths[t];i.updateIntArray([1397116793,e.length]);for(let r=0;r<e.length;r++)i.updateIntArray([3962308117,r]),Y(o.getPoint(t,r),i,u),i.updateIntArray([2716288009]);i.updateIntArray([2278822459])}return i.updateIntArray([2568784753]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof M){i.updateIntArray([588535921,o.points.length]);for(let t=0;t<o.points.length;t++){const e=o.getPoint(t);i.updateIntArray([t]),Y(e,i,u)}return i.updateIntArray([1700171621]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof H)return i.updateIntArray([3483648373]),i.updateIntArray([0]),i.updateFloatArray([o.xmax]),i.updateIntArray([1]),i.updateFloatArray([o.xmin]),i.updateIntArray([2]),i.updateFloatArray([o.ymax]),i.updateIntArray([3]),i.updateFloatArray([o.ymin]),o.hasZ&&(i.updateIntArray([4]),i.updateFloatArray([o.zmax]),i.updateIntArray([5]),i.updateFloatArray([o.zmin])),o.hasM&&(i.updateIntArray([6]),i.updateFloatArray([o.mmax]),i.updateIntArray([7]),i.updateFloatArray([o.mmin])),i.updateIntArray([3622027469]),void Y(o.spatialReference.wkid,i,u);if(o instanceof E)return i.updateIntArray([14]),void 0!==o.wkid&&null!==o.wkid&&i.updateIntArray([o.wkid]),void(o.wkt&&i.updateWithString(o.wkt));if(O(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(L(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(k(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o===d)throw new n(u.context,a.UnsupportedHashType,u.node);throw new n(u.context,a.UnsupportedHashType,u.node)}if(i.updateUint8Array([223]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.keys()){i.updateIntArray([t.length]),i.updateWithString(t),i.updateUint8Array([251]);Y(o.field(t),i,u),i.updateUint8Array([239])}u.map.delete(o),u.currentLength--}i.updateUint8Array([73])}}else i.updateUint8Array([0,139])}function $(e,N){e.portal=function(e,r){return N(e,r,((n,a,u)=>(o(u,1,1,e,r),new t(i(u[0])))))},e.typeof=function(t,e){return N(t,e,((r,i,s)=>{o(s,1,1,t,e);const l=u(s[0]);if("Unrecognized Type"===l)throw new n(t,a.UnrecognizedType,e);return l}))},e.trim=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).trim())))},e.tohex=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=s(a[0]);return isNaN(i)?i:i.toString(16)}))},e.upper=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toUpperCase())))},e.proper=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,2,t,e);let u=1;2===a.length&&"firstword"===i(a[1]).toLowerCase()&&(u=2);const s=/\s/,l=i(a[0]);let d="",p=!0;for(let t=0;t<l.length;t++){let e=l[t];if(s.test(e))1===u&&(p=!0);else{e.toUpperCase()!==e.toLowerCase()&&(p?(e=e.toUpperCase(),p=!1):e=e.toLowerCase())}d+=e}return d}))},e.lower=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toLowerCase())))},e.guid=function(t,e){return N(t,e,((r,n,a)=>{if(o(a,0,1,t,e),a.length>0)switch(i(a[0]).toLowerCase()){case"digits":return l().replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return l();case"digits-hyphen-braces":return"{"+l()+"}";case"digits-hyphen-parentheses":return"("+l()+")"}return"{"+l()+"}"}))},e.standardizeguid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=i(a[0]);if(""===u||null===u)return"";const s=/^(\{|\()?(?<partA>[0-9a-z]{8})(\-?)(?<partB>[0-9a-z]{4})(\-?)(?<partC>[0-9a-z]{4})(\-?)(?<partD>[0-9a-z]{4})(\-?)(?<partE>[0-9a-z]{12})(\}|\))?$/gim.exec(u);if(!s)return"";const l=s.groups;switch(u=l.partA+"-"+l.partB+"-"+l.partC+"-"+l.partD+"-"+l.partE,i(a[1]).toLowerCase()){case"digits":return u.replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return u;case"digits-hyphen-braces":return"{"+u+"}";case"digits-hyphen-parentheses":return"("+u+")"}return"{"+u+"}"}))},e.console=function(t,e){return N(t,e,((e,r,n)=>(0===n.length||(1===n.length?t.console(i(n[0])):t.console(i(n))),d)))},e.mid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=s(a[1]);if(isNaN(u))return"";if(u<0&&(u=0),2===a.length)return i(a[0]).substr(u);let l=s(a[2]);return isNaN(l)?"":(l<0&&(l=0),i(a[0]).substr(u,l))}))},e.find=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=0;if(a.length>2){if(u=s(p(a[2],0)),isNaN(u))return-1;u<0&&(u=0)}return i(a[1]).indexOf(i(a[0]),u)}))},e.left=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(0,u))}))},e.right=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(-1*u,u))}))},e.split=function(t,e){return N(t,e,((r,n,a)=>{let u;o(a,2,4,t,e);let l=s(p(a[2],-1));const d=c(p(a[3],!1));if(-1===l||null===l||!0===d?u=i(a[0]).split(i(a[1])):(isNaN(l)&&(l=-1),l<-1&&(l=-1),u=i(a[0]).split(i(a[1]),l)),!1===d)return u;const f=[];for(let t=0;t<u.length&&!(-1!==l&&f.length>=l);t++)""!==u[t]&&void 0!==u[t]&&f.push(u[t]);return f}))},e.text=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,2,t,e),f(a[0],a[1]))))},e.concatenate=function(t,e){return N(t,e,((t,e,r)=>{const n=[];if(r.length<1)return"";if(h(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length;e++)n[e]=f(r[0][e],t);return r.length>1?n.join(r[1]):n.join("")}if(y(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length();e++)n[e]=f(r[0].get(e),t);return r.length>1?n.join(r[1]):n.join("")}for(let a=0;a<r.length;a++)n[a]=f(r[a]);return n.join("")}))},e.reverse=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),h(u[0])){const t=u[0].slice(0);return t.reverse(),t}if(y(u[0])){const t=u[0].toArray().slice(0);return t.reverse(),t}throw new n(t,a.InvalidParameter,e)}))},e.replace=function(t,e){return N(t,e,((r,n,a)=>{o(a,3,4,t,e);const u=i(a[0]),s=i(a[1]),l=i(a[2]);return 4!==a.length||c(a[3])?m(u,s,l):u.replace(s,l)}))},e.schema=function(t,e){return N(t,e,((o,i,u)=>{if(g(u[0])){const e=A(u[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypes=function(t,e){return N(t,e,((i,u,s)=>{if(o(s,1,1,t,e),g(s[0])){const e=I(s[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypecode=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return null;if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.code;return null}return null}throw new n(t,a.InvalidParameter,e)}))},e.subtypename=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return"";if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.name;return""}return""}throw new n(t,a.InvalidParameter,e)}))},e.gdbversion=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0]))return u[0].gdbVersion();throw new n(t,a.InvalidParameter,e)}))},e.domain=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,2,3,t,e),g(l[0])){const e=v(l[0],i(l[1]),void 0===l[2]?void 0:l[2]);return e&&e.domain?"coded-value"===e.domain.type||"codedValue"===e.domain.type?r.convertObjectToArcadeDictionary({type:"codedValue",name:e.domain.name,dataType:S[e.field.type],codedValues:e.domain.codedValues.map((t=>({name:t.name,code:t.code})))},w(t)):r.convertObjectToArcadeDictionary({type:"range",name:e.domain.name,dataType:S[e.field.type],min:e.domain.min,max:e.domain.max},w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.domainname=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return U(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.domaincode=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return b(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.urlencode=function(t,e){return N(t,e,((n,a,u)=>{if(o(u,1,1,t,e),null===u[0])return"";if(u[0]instanceof r){let t="";for(const e of u[0].keys()){const r=u[0].field(e);""!==t&&(t+="&"),t+=null===r?encodeURIComponent(e)+"=":encodeURIComponent(e)+"="+encodeURIComponent(r)}return t}return encodeURIComponent(i(u[0]))}))},e.hash=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=new D(0);return Y(a[0],i,{context:t,node:e,map:new Map,currentLength:0}),i.digest()}))},e.convertdirection=function(t,e){return N(t,e,((r,n,a)=>(o(a,3,3,t,e),z(a[0],a[1],a[2]))))},e.fromjson=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,1,1,t,e),!1===j(l[0]))throw new n(t,a.InvalidParameter,e);return r.convertJsonToArcade(JSON.parse(i(l[0])),w(t))}))},e.expects=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);return d}))},e.tocharcode=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.charCodeAt(d)}))},e.tocodepoint=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.codePointAt(d)}))},e.fromcharcode=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);const u=i.map((t=>Math.trunc(s(t)))).filter((t=>t>=0&&t<=65535));return 0===u.length?null:String.fromCharCode.apply(null,u)}))},e.fromcodepoint=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);let u;try{u=i.map((t=>Math.trunc(s(t)))).filter((t=>t<=1114111&&t>>>0===t))}catch(l){return null}return 0===u.length?null:String.fromCodePoint.apply(null,u)}))},e.getuser=function(e,u){return N(e,u,((s,l,d)=>{o(d,0,2,e,u);let c=p(d[1],"");if(c=!0===c||!1===c?"":i(c),null!==c&&""!==c)return null;if(0===d.length||d[0]instanceof t){let t=null;if(t=e.services&&e.services.portal?e.services.portal:Z.getDefault(),d.length>0){if(!q(d[0].field("url"),t))return null}if(!t)return null;if(""===c){const n=B(t);if(n){const t=JSON.parse(JSON.stringify(n));for(const e of["lastLogin","created","modified"])void 0!==t[e]&&null!==t[e]&&(t[e]=new Date(t[e]));return r.convertObjectToArcadeDictionary(t,w(e))}}return null}throw new n(e,a.InvalidParameter,u)}))},e.getenvironment=function(t,e){return N(t,e,((n,a,i)=>(o(i,0,0,t,e),r.convertObjectToArcadeDictionary(x(w(t),t.spatialReference),w(t),!0))))}}export{$ as registerFunctions};
5
+ import t from"../ArcadePortal.js";import e from"../Attachment.js";import r from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as a}from"../executionError.js";import{E as o,j as i,N as u,g as s,T as l,x as d,H as p,h as c,t as f,o as h,q as y,S as m,r as g,U as A,L as w,V as I,W as v,X as U,Y as b,c as j,Z as x,k as N,m as P,n as F,a as T,b as C,i as O,u as k,s as L}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as S}from"../featureset/support/shared.js";import{convertDirection as z}from"./convertdirection.js";import{XXH as D}from"./hash.js";import{hasSamePortal as R}from"../../core/urlUtils.js";import H from"../../geometry/Extent.js";import M from"../../geometry/Multipoint.js";import W from"../../geometry/Point.js";import J from"../../geometry/Polygon.js";import V from"../../geometry/Polyline.js";import E from"../../geometry/SpatialReference.js";import Z from"../../portal/Portal.js";function B(t){if("loaded"===t.loadStatus&&t.user&&t.user.sourceJSON){return t.user.sourceJSON}return null}function q(t,e){return!!t&&R(t,e?.restUrl||"")}function X(t,e){if(!t||!e)return t===e;if(t.x===e.x&&t.y===e.y){if(t.hasZ){if(t.z!==e.z)return!1}else if(e.hasZ)return!1;if(t.hasM){if(t.m!==e.m)return!1}else if(e.hasM)return!1;return!0}return!1}function Y(o,i,u){if(null!==o)if(h(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o)Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else if(y(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.toArray())Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else{if(N(o))return i.updateIntArray([o.toNumber()]),void i.updateUint8Array([241]);if(P(o))return i.updateIntArray([o.toNumber()]),void i.updateIntArray([257]);if(F(o))return i.updateIntArray([o.toNumber()]),void i.updateIntArray([263]);if(j(o))return i.updateIntArray([o.length]),i.updateWithString(o),void i.updateUint8Array([41]);if(T(o))i.updateUint8Array([!0===o?1:0,113]);else{if(C(o))return i.updateFloatArray([o]),void i.updateUint8Array([173]);if(o instanceof e)throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof t)throw new n(u.context,a.UnsupportedHashType,u.node);if(!(o instanceof r)){if(g(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof W)return i.updateIntArray([3833836621]),i.updateIntArray([0]),i.updateFloatArray([o.x]),i.updateIntArray([1]),i.updateFloatArray([o.y]),o.hasZ&&(i.updateIntArray([2]),i.updateFloatArray([o.z])),o.hasM&&(i.updateIntArray([3]),i.updateFloatArray([o.m])),i.updateIntArray([3765347959]),void Y(o.spatialReference.wkid,i,u);if(o instanceof J){i.updateIntArray([1266616829]);for(let t=0;t<o.rings.length;t++){const e=o.rings[t],r=[];let n=null,a=null;for(let i=0;i<e.length;i++){const u=o.getPoint(t,i);if(0===i)n=u;else if(X(a,u))continue;a=u,i===e.length-1&&X(n,u)||r.push(u)}i.updateIntArray([1397116793,r.length]);for(let t=0;t<r.length;t++){const e=r[t];i.updateIntArray([3962308117,t]),Y(e,i,u),i.updateIntArray([2716288009])}i.updateIntArray([2278822459])}return i.updateIntArray([3878477243]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof V){i.updateIntArray([4106883559]);for(let t=0;t<o.paths.length;t++){const e=o.paths[t];i.updateIntArray([1397116793,e.length]);for(let r=0;r<e.length;r++)i.updateIntArray([3962308117,r]),Y(o.getPoint(t,r),i,u),i.updateIntArray([2716288009]);i.updateIntArray([2278822459])}return i.updateIntArray([2568784753]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof M){i.updateIntArray([588535921,o.points.length]);for(let t=0;t<o.points.length;t++){const e=o.getPoint(t);i.updateIntArray([t]),Y(e,i,u)}return i.updateIntArray([1700171621]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof H)return i.updateIntArray([3483648373]),i.updateIntArray([0]),i.updateFloatArray([o.xmax]),i.updateIntArray([1]),i.updateFloatArray([o.xmin]),i.updateIntArray([2]),i.updateFloatArray([o.ymax]),i.updateIntArray([3]),i.updateFloatArray([o.ymin]),o.hasZ&&(i.updateIntArray([4]),i.updateFloatArray([o.zmax]),i.updateIntArray([5]),i.updateFloatArray([o.zmin])),o.hasM&&(i.updateIntArray([6]),i.updateFloatArray([o.mmax]),i.updateIntArray([7]),i.updateFloatArray([o.mmin])),i.updateIntArray([3622027469]),void Y(o.spatialReference.wkid,i,u);if(o instanceof E)return i.updateIntArray([14]),void 0!==o.wkid&&null!==o.wkid&&i.updateIntArray([o.wkid]),o.wkt&&i.updateWithString(o.wkt),void(o.wkt2&&i.updateWithString(o.wkt2));if(O(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(k(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(L(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o===d)throw new n(u.context,a.UnsupportedHashType,u.node);throw new n(u.context,a.UnsupportedHashType,u.node)}if(i.updateUint8Array([223]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.keys()){i.updateIntArray([t.length]),i.updateWithString(t),i.updateUint8Array([251]);Y(o.field(t),i,u),i.updateUint8Array([239])}u.map.delete(o),u.currentLength--}i.updateUint8Array([73])}}else i.updateUint8Array([0,139])}function $(e,N){e.portal=function(e,r){return N(e,r,((n,a,u)=>(o(u,1,1,e,r),new t(i(u[0])))))},e.typeof=function(t,e){return N(t,e,((r,i,s)=>{o(s,1,1,t,e);const l=u(s[0]);if("Unrecognized Type"===l)throw new n(t,a.UnrecognizedType,e);return l}))},e.trim=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).trim())))},e.tohex=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=s(a[0]);return isNaN(i)?i:i.toString(16)}))},e.upper=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toUpperCase())))},e.proper=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,2,t,e);let u=1;2===a.length&&"firstword"===i(a[1]).toLowerCase()&&(u=2);const s=/\s/,l=i(a[0]);let d="",p=!0;for(let t=0;t<l.length;t++){let e=l[t];if(s.test(e))1===u&&(p=!0);else{e.toUpperCase()!==e.toLowerCase()&&(p?(e=e.toUpperCase(),p=!1):e=e.toLowerCase())}d+=e}return d}))},e.lower=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toLowerCase())))},e.guid=function(t,e){return N(t,e,((r,n,a)=>{if(o(a,0,1,t,e),a.length>0)switch(i(a[0]).toLowerCase()){case"digits":return l().replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return l();case"digits-hyphen-braces":return"{"+l()+"}";case"digits-hyphen-parentheses":return"("+l()+")"}return"{"+l()+"}"}))},e.standardizeguid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=i(a[0]);if(""===u||null===u)return"";const s=/^(\{|\()?(?<partA>[0-9a-z]{8})(\-?)(?<partB>[0-9a-z]{4})(\-?)(?<partC>[0-9a-z]{4})(\-?)(?<partD>[0-9a-z]{4})(\-?)(?<partE>[0-9a-z]{12})(\}|\))?$/gim.exec(u);if(!s)return"";const l=s.groups;switch(u=l.partA+"-"+l.partB+"-"+l.partC+"-"+l.partD+"-"+l.partE,i(a[1]).toLowerCase()){case"digits":return u.replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return u;case"digits-hyphen-braces":return"{"+u+"}";case"digits-hyphen-parentheses":return"("+u+")"}return"{"+u+"}"}))},e.console=function(t,e){return N(t,e,((e,r,n)=>(0===n.length||(1===n.length?t.console(i(n[0])):t.console(i(n))),d)))},e.mid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=s(a[1]);if(isNaN(u))return"";if(u<0&&(u=0),2===a.length)return i(a[0]).substr(u);let l=s(a[2]);return isNaN(l)?"":(l<0&&(l=0),i(a[0]).substr(u,l))}))},e.find=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=0;if(a.length>2){if(u=s(p(a[2],0)),isNaN(u))return-1;u<0&&(u=0)}return i(a[1]).indexOf(i(a[0]),u)}))},e.left=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(0,u))}))},e.right=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(-1*u,u))}))},e.split=function(t,e){return N(t,e,((r,n,a)=>{let u;o(a,2,4,t,e);let l=s(p(a[2],-1));const d=c(p(a[3],!1));if(-1===l||null===l||!0===d?u=i(a[0]).split(i(a[1])):(isNaN(l)&&(l=-1),l<-1&&(l=-1),u=i(a[0]).split(i(a[1]),l)),!1===d)return u;const f=[];for(let t=0;t<u.length&&!(-1!==l&&f.length>=l);t++)""!==u[t]&&void 0!==u[t]&&f.push(u[t]);return f}))},e.text=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,2,t,e),f(a[0],a[1]))))},e.concatenate=function(t,e){return N(t,e,((t,e,r)=>{const n=[];if(r.length<1)return"";if(h(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length;e++)n[e]=f(r[0][e],t);return r.length>1?n.join(r[1]):n.join("")}if(y(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length();e++)n[e]=f(r[0].get(e),t);return r.length>1?n.join(r[1]):n.join("")}for(let a=0;a<r.length;a++)n[a]=f(r[a]);return n.join("")}))},e.reverse=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),h(u[0])){const t=u[0].slice(0);return t.reverse(),t}if(y(u[0])){const t=u[0].toArray().slice(0);return t.reverse(),t}throw new n(t,a.InvalidParameter,e)}))},e.replace=function(t,e){return N(t,e,((r,n,a)=>{o(a,3,4,t,e);const u=i(a[0]),s=i(a[1]),l=i(a[2]);return 4!==a.length||c(a[3])?m(u,s,l):u.replace(s,l)}))},e.schema=function(t,e){return N(t,e,((o,i,u)=>{if(g(u[0])){const e=A(u[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypes=function(t,e){return N(t,e,((i,u,s)=>{if(o(s,1,1,t,e),g(s[0])){const e=I(s[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypecode=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return null;if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.code;return null}return null}throw new n(t,a.InvalidParameter,e)}))},e.subtypename=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return"";if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.name;return""}return""}throw new n(t,a.InvalidParameter,e)}))},e.gdbversion=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0]))return u[0].gdbVersion();throw new n(t,a.InvalidParameter,e)}))},e.domain=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,2,3,t,e),g(l[0])){const e=v(l[0],i(l[1]),void 0===l[2]?void 0:l[2]);return e&&e.domain?"coded-value"===e.domain.type||"codedValue"===e.domain.type?r.convertObjectToArcadeDictionary({type:"codedValue",name:e.domain.name,dataType:S[e.field.type],codedValues:e.domain.codedValues.map((t=>({name:t.name,code:t.code})))},w(t)):r.convertObjectToArcadeDictionary({type:"range",name:e.domain.name,dataType:S[e.field.type],min:e.domain.min,max:e.domain.max},w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.domainname=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return U(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.domaincode=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return b(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.urlencode=function(t,e){return N(t,e,((n,a,u)=>{if(o(u,1,1,t,e),null===u[0])return"";if(u[0]instanceof r){let t="";for(const e of u[0].keys()){const r=u[0].field(e);""!==t&&(t+="&"),t+=null===r?encodeURIComponent(e)+"=":encodeURIComponent(e)+"="+encodeURIComponent(r)}return t}return encodeURIComponent(i(u[0]))}))},e.hash=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=new D(0);return Y(a[0],i,{context:t,node:e,map:new Map,currentLength:0}),i.digest()}))},e.convertdirection=function(t,e){return N(t,e,((r,n,a)=>(o(a,3,3,t,e),z(a[0],a[1],a[2]))))},e.fromjson=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,1,1,t,e),!1===j(l[0]))throw new n(t,a.InvalidParameter,e);return r.convertJsonToArcade(JSON.parse(i(l[0])),w(t))}))},e.expects=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);return d}))},e.tocharcode=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.charCodeAt(d)}))},e.tocodepoint=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.codePointAt(d)}))},e.fromcharcode=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);const u=i.map((t=>Math.trunc(s(t)))).filter((t=>t>=0&&t<=65535));return 0===u.length?null:String.fromCharCode.apply(null,u)}))},e.fromcodepoint=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);let u;try{u=i.map((t=>Math.trunc(s(t)))).filter((t=>t<=1114111&&t>>>0===t))}catch(l){return null}return 0===u.length?null:String.fromCodePoint.apply(null,u)}))},e.getuser=function(e,u){return N(e,u,((s,l,d)=>{o(d,0,2,e,u);let c=p(d[1],"");if(c=!0===c||!1===c?"":i(c),null!==c&&""!==c)return null;if(0===d.length||d[0]instanceof t){let t=null;if(t=e.services&&e.services.portal?e.services.portal:Z.getDefault(),d.length>0){if(!q(d[0].field("url"),t))return null}if(!t)return null;if(""===c){const n=B(t);if(n){const t=JSON.parse(JSON.stringify(n));for(const e of["lastLogin","created","modified"])void 0!==t[e]&&null!==t[e]&&(t[e]=new Date(t[e]));return r.convertObjectToArcadeDictionary(t,w(e))}}return null}throw new n(e,a.InvalidParameter,u)}))},e.getenvironment=function(t,e){return N(t,e,((n,a,i)=>(o(i,0,0,t,e),r.convertObjectToArcadeDictionary(x(w(t),t.spatialReference),w(t),!0))))}}export{$ as registerFunctions};