@arcgis/core 4.32.0-next.20241028 → 4.32.0-next.20241029

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 (288) hide show
  1. package/WebScene.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/031a1f81c1afbdcd8a9c.js +1 -0
  4. package/assets/esri/core/workers/chunks/{bc4ef18d0a02354186e3.js → 04fbb60b1b42ad861703.js} +1 -1
  5. package/assets/esri/core/workers/chunks/056048abc743e2f2d806.js +1 -0
  6. package/assets/esri/core/workers/chunks/{bd1cb0ba0ec302ab1ad5.js → 06fa2a58cb7c02fc1ecb.js} +1 -1
  7. package/assets/esri/core/workers/chunks/076c60a46e6e909efbf9.js +1 -0
  8. package/assets/esri/core/workers/chunks/{fa965913c3da2e89329b.js → 123a34146d26075aa409.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{66595213e5db07a54a07.js → 12b725c403f8244174d9.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{d497b6443353efc80417.js → 16285ee565edf8081735.js} +1 -1
  11. package/assets/esri/core/workers/chunks/164fbbf29d062d470e36.js +1 -0
  12. package/assets/esri/core/workers/chunks/{229d48e4f3c12cb094c1.js → 165911e07a48542534de.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{3d411e74ce7bc1ce2497.js → 17a77972b2fbd8e9e905.js} +1 -1
  14. package/assets/esri/core/workers/chunks/188371b682afa56bed28.js +1 -0
  15. package/assets/esri/core/workers/chunks/1ab8dff1ffd2cfc606a3.js +1 -0
  16. package/assets/esri/core/workers/chunks/1c958d0379b5bbc365b0.js +1 -0
  17. package/assets/esri/core/workers/chunks/1cbdcb1c48d5be5af82f.js +1 -0
  18. package/assets/esri/core/workers/chunks/1cefd1d7845f5e4b9c0f.js +1 -0
  19. package/assets/esri/core/workers/chunks/24429a8abe0efc93786d.js +1 -0
  20. package/assets/esri/core/workers/chunks/2a9667166327be968064.js +1 -0
  21. package/assets/esri/core/workers/chunks/{c59c024ca1c6ae87e087.js → 2d83aae61e986b97ac62.js} +1 -1
  22. package/assets/esri/core/workers/chunks/30c064cfff7e45462504.js +1 -0
  23. package/assets/esri/core/workers/chunks/35dd6f224b76a3d4a2c8.js +1 -0
  24. package/assets/esri/core/workers/chunks/3883e9b815d48496efc5.js +1 -0
  25. package/assets/esri/core/workers/chunks/3ca5550642b1387c1340.js +1 -0
  26. package/assets/esri/core/workers/chunks/3d15d8621abed8de1b85.js +1 -0
  27. package/assets/esri/core/workers/chunks/3fdb8a5b3b3f24737ef4.js +1 -0
  28. package/assets/esri/core/workers/chunks/{da1687d68cfe20e4f069.js → 41baac4299181d99970f.js} +1 -1
  29. package/assets/esri/core/workers/chunks/4603225bee1768f88821.js +1 -0
  30. package/assets/esri/core/workers/chunks/463d9a05f40e2c73f644.js +1 -0
  31. package/assets/esri/core/workers/chunks/47af510d0bd89b108729.js +1 -0
  32. package/assets/esri/core/workers/chunks/485907740fd791f9b307.js +1 -0
  33. package/assets/esri/core/workers/chunks/{e20994ca9739e7c58c7a.js → 48942d8c2417321f53d4.js} +1 -1
  34. package/assets/esri/core/workers/chunks/4e3099b06ea3ad933fa5.js +1 -0
  35. package/assets/esri/core/workers/chunks/52255276b1d53ac75bef.js +1 -0
  36. package/assets/esri/core/workers/chunks/{24ca364848b51494b923.js → 533aec3418eb419a8cce.js} +1 -1
  37. package/assets/esri/core/workers/chunks/58986cfd3ba0192cc1a4.js +1 -0
  38. package/assets/esri/core/workers/chunks/5c2eafb194f5dc314e7c.js +1 -0
  39. package/assets/esri/core/workers/chunks/646589be704473787fc2.js +1 -0
  40. package/assets/esri/core/workers/chunks/6517f695e8ee3d82b596.js +1 -0
  41. package/assets/esri/core/workers/chunks/6fa13a7f0ac42b56319f.js +1 -0
  42. package/assets/esri/core/workers/chunks/6ff1419676e95fa990f8.js +1 -0
  43. package/assets/esri/core/workers/chunks/73c38971d3501285d48b.js +1 -0
  44. package/assets/esri/core/workers/chunks/75f017bc3bde698288ca.js +1 -0
  45. package/assets/esri/core/workers/chunks/76dde08f36f8ddd688f2.js +1 -0
  46. package/assets/esri/core/workers/chunks/7a340d87526e179fd871.js +1 -0
  47. package/assets/esri/core/workers/chunks/802c8305b5dcfcb186f3.js +1 -0
  48. package/assets/esri/core/workers/chunks/{1d6c66dfeb646b2d38d0.js → 8037466b51865338410a.js} +1 -1
  49. package/assets/esri/core/workers/chunks/812573c222af4fee8ff0.js +320 -0
  50. package/assets/esri/core/workers/chunks/835b4d20687e6404acc0.js +51 -0
  51. package/assets/esri/core/workers/chunks/{bdc31a00e1f889a27efa.js → 857166490684430878d9.js} +1 -1
  52. package/assets/esri/core/workers/chunks/9189d24f71e2e706821e.js +1 -0
  53. package/assets/esri/core/workers/chunks/94451bca86ccdf05974c.js +1 -0
  54. package/assets/esri/core/workers/chunks/999a12ab248a3a205f58.js +1 -0
  55. package/assets/esri/core/workers/chunks/9ca3d958cdec3db99591.js +1 -0
  56. package/assets/esri/core/workers/chunks/a8c536027b6d40e3b4e7.js +1 -0
  57. package/assets/esri/core/workers/chunks/ac7f3df658b7f7596c4b.js +1 -0
  58. package/assets/esri/core/workers/chunks/aedb2e7cd5b3300da5fa.js +1 -0
  59. package/assets/esri/core/workers/chunks/{d4353dbfd03d7054c716.js → b0db3106f38fcc2f0b5c.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{c87ef4e3054c661a74e9.js → b58a48daff2914f8fa81.js} +1 -1
  61. package/assets/esri/core/workers/chunks/b6044b20fb38524a268f.js +1 -0
  62. package/assets/esri/core/workers/chunks/b91f1247016dec1122f9.js +1 -0
  63. package/assets/esri/core/workers/chunks/b997aed3aeb9b63d7c4e.js +1 -0
  64. package/assets/esri/core/workers/chunks/c76174977ac5059e5cdd.js +1 -0
  65. package/assets/esri/core/workers/chunks/ca9a0b86a293112368f4.js +1 -0
  66. package/assets/esri/core/workers/chunks/cca72ca3a4f90b45c2ce.js +1 -0
  67. package/assets/esri/core/workers/chunks/d181447e2be06beaa23f.js +1 -0
  68. package/assets/esri/core/workers/chunks/{5649ede11144c9cfe9ba.js → d45c406c051ab8b33196.js} +1 -1
  69. package/assets/esri/core/workers/chunks/e1148291e19a0eaef5a4.js +1 -0
  70. package/assets/esri/core/workers/chunks/e298b561933737eda0ad.js +1 -0
  71. package/assets/esri/core/workers/chunks/e71ab113f15d2165feb1.js +1 -0
  72. package/assets/esri/core/workers/chunks/{8a232508b7fe011154ab.js → e96fee65970b1530be7e.js} +1 -1
  73. package/assets/esri/core/workers/chunks/eb28eab7539898ce75a7.js +1 -0
  74. package/assets/esri/core/workers/chunks/f4747538a1e42cc08ccb.js +1 -0
  75. package/assets/esri/core/workers/chunks/fb43c44a7d6b61f31e75.js +1 -0
  76. package/assets/esri/core/workers/chunks/{99f28667eacd170fe43c.js → ff2284d90d79ae9343d4.js} +1 -1
  77. package/assets/esri/core/workers/chunks/ffbf38a565cbe8f44ff4.js +1 -0
  78. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/ar-iq.jpg +0 -0
  79. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/ar-kw.jpg +0 -0
  80. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/da-dk.jpg +0 -0
  81. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/da-gl.jpg +0 -0
  82. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-au.jpg +0 -0
  83. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-hk.jpg +0 -0
  84. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-id.jpg +0 -0
  85. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-iq.jpg +0 -0
  86. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-my.jpg +0 -0
  87. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-nz.jpg +0 -0
  88. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-sg.jpg +0 -0
  89. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-us.jpg +0 -0
  90. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/en-wo.jpg +0 -0
  91. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/ja-jp.jpg +0 -0
  92. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/sv-se.jpg +0 -0
  93. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/th-th.jpg +0 -0
  94. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/zh-cn.jpg +0 -0
  95. package/assets/esri/widgets/ScaleRangeSlider/images/scalePreview/zh-tw.jpg +0 -0
  96. package/chunks/Bufferer-BUAXAzDQ.js +5 -0
  97. package/chunks/GeodeticDistanceCalculator-CJvEB3vc.js +5 -0
  98. package/chunks/Geometry.js +1 -1
  99. package/chunks/OperatorGeodesicBuffer.js +1 -1
  100. package/chunks/OperatorGeodeticArea.js +1 -1
  101. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  102. package/chunks/OperatorGeodeticDistance.js +1 -1
  103. package/chunks/OperatorGeodeticLength.js +1 -1
  104. package/chunks/OperatorProximity.js +1 -1
  105. package/chunks/OperatorProximityGeodesic.js +1 -1
  106. package/chunks/OperatorShapePreservingDensify.js +1 -1
  107. package/chunks/QuadraticBezier.js +1 -1
  108. package/chunks/SideCalculator2D-CsYV5zVZ.js +5 -0
  109. package/chunks/vec2.js +1 -1
  110. package/core/MemCache.js +1 -1
  111. package/core/memoryEstimations.js +5 -0
  112. package/core/pbf.js +1 -1
  113. package/core/typedArrayUtil.js +1 -1
  114. package/geometry/Mesh.js +1 -1
  115. package/geometry/operators/geodesicProximityOperator.d.ts +4 -0
  116. package/geometry/operators/gx/operatorBuffer.js +1 -1
  117. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  118. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  119. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  120. package/geometry/operators/minimumBoundingCircleOperator.d.ts +2 -2
  121. package/geometry/operators/polygonOverlayOperator.d.ts +4 -0
  122. package/geometry/operators/polygonSlicerOperator.d.ts +4 -0
  123. package/geometry/operators/support/jsonConverter.js +1 -1
  124. package/geometry/support/DoubleArray.js +1 -1
  125. package/geometry/support/FloatArray.js +1 -1
  126. package/geometry/support/Indices.js +1 -1
  127. package/geometry/support/meshUtils/exporters/gltf/gltf.js +1 -1
  128. package/geometry/support/meshUtils/loadExternal.js +1 -1
  129. package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
  130. package/interfaces.d.ts +329 -25
  131. package/layers/ImageryLayer.js +1 -1
  132. package/layers/ImageryTileLayer.js +1 -1
  133. package/layers/RouteLayer.js +1 -1
  134. package/layers/SceneLayer.js +1 -1
  135. package/layers/SubtypeGroupLayer.js +1 -1
  136. package/layers/WCSLayer.js +1 -1
  137. package/layers/catalog/catalogUtils.js +1 -1
  138. package/layers/graphics/OptimizedFeature.js +1 -1
  139. package/layers/graphics/OptimizedGeometry.js +1 -1
  140. package/layers/graphics/data/QueryEngine.js +1 -1
  141. package/layers/graphics/dehydratedFeatures.js +1 -1
  142. package/layers/graphics/sources/support/uploadAssets.js +1 -1
  143. package/layers/mixins/ArcGISImageService.js +1 -1
  144. package/layers/mixins/SceneService.js +1 -1
  145. package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
  146. package/layers/orientedImagery/transformations/utils.js +1 -1
  147. package/layers/save/utils.js +1 -1
  148. package/layers/support/SubtypeSublayer.js +1 -1
  149. package/layers/support/Tilemap.js +1 -1
  150. package/layers/support/meshSpatialReferenceScaleUtils.js +5 -0
  151. package/layers/support/rasterFieldUtils.js +5 -0
  152. package/layers/support/subtypeGroupLayerUtils.js +5 -0
  153. package/package.json +1 -1
  154. package/portal/Portal.js +1 -1
  155. package/portal/support/loadUtils.js +1 -1
  156. package/request.js +1 -1
  157. package/rest/support/meshFeatureSet.js +1 -1
  158. package/rest/utils.js +1 -1
  159. package/smartMapping/renderers/size.js +1 -1
  160. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  161. package/statistics/utils.js +1 -1
  162. package/support/apiKeyUtils.js +1 -1
  163. package/support/popupUtils.js +1 -1
  164. package/support/revision.js +1 -1
  165. package/views/2d/engine/AFeatureContainer.js +1 -1
  166. package/views/2d/engine/vectorTiles/RenderBucket.js +1 -1
  167. package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
  168. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  169. package/views/2d/layers/MediaLayerView2D.js +1 -1
  170. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  171. package/views/2d/layers/features/support/FeatureSetReaderIndirect.js +1 -1
  172. package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
  173. package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
  174. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  175. package/views/2d/layers/features/support/GraphicsReader.js +1 -1
  176. package/views/2d/layers/graphics/GraphicStoreItem.js +1 -1
  177. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  178. package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
  179. package/views/3d/analysis/Viewshed/ViewshedTool.js +1 -1
  180. package/views/3d/environment/EnvironmentManager.js +1 -1
  181. package/views/3d/input/handlers/DragZoom.js +1 -1
  182. package/views/3d/input/handlers/MouseWheelZoom.js +1 -1
  183. package/views/3d/layers/I3SMeshView3D.js +1 -1
  184. package/views/3d/layers/MediaLayerView3D.js +1 -1
  185. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  186. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  187. package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
  188. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  189. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  190. package/views/3d/layers/graphics/QueryEngine.js +1 -1
  191. package/views/3d/layers/graphics/QueryEngineCache.js +5 -0
  192. package/views/3d/layers/graphics/QueryEngineContext.js +5 -0
  193. package/views/3d/layers/graphics/pipeline/featureSet/PBFPointFeatureSetView.js +1 -1
  194. package/views/3d/layers/graphics/pipeline/featureSet/TiledFeatureStore.js +1 -1
  195. package/views/3d/layers/graphics/wosrLoader.js +1 -1
  196. package/views/3d/layers/i3s/I3SOverrides.js +1 -1
  197. package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
  198. package/views/3d/layers/i3s/I3SQueryFeatureAdapter.js +1 -1
  199. package/views/3d/layers/support/FeatureVisibilityFilter.js +1 -1
  200. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  201. package/views/3d/state/controllers/FovController.js +1 -1
  202. package/views/3d/support/MemoryController.js +1 -1
  203. package/views/3d/support/cameraUtils.js +1 -1
  204. package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
  205. package/views/3d/webgl-engine/lib/AttributeArray.js +1 -1
  206. package/views/3d/webgl-engine/lib/Path.js +1 -1
  207. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  208. package/views/3d/webgl-engine/lib/PathProfile.js +1 -1
  209. package/views/3d/webgl-engine/lib/edgeRendering/EdgeWorkerHandle.js +1 -1
  210. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
  211. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  212. package/views/layers/ImageryTileLayerView.js +1 -1
  213. package/views/webgl/VertexArrayObject.js +1 -1
  214. package/webdoc/support/webdocSaveUtils.js +1 -1
  215. package/widgets/Feature/FeatureUtilityNetworkAssociationType.js +1 -1
  216. package/widgets/Feature/FeatureViewModel.js +1 -1
  217. package/widgets/FeatureTable/Grid/Column.js +1 -1
  218. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  219. package/widgets/FeatureTable/support/templateUtils.js +1 -1
  220. package/widgets/Features/FeaturesDrillIn.js +1 -1
  221. package/widgets/Features.js +1 -1
  222. package/widgets/FovOverlay.js +1 -1
  223. package/widgets/LayerList/LayerListItem.js +1 -1
  224. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  225. package/widgets/OrientedImageryViewer/adapters/OrientedImageryViewerViewModelAdapter3D.js +1 -1
  226. package/widgets/OrientedImageryViewer.js +1 -1
  227. package/widgets/VersionManagement/VersionManagementViewModel.js +1 -1
  228. package/assets/esri/core/workers/chunks/0092a6be826d00efc989.js +0 -1
  229. package/assets/esri/core/workers/chunks/089215b6724cb2bda01a.js +0 -1
  230. package/assets/esri/core/workers/chunks/0ad628ba26fd1798ca9b.js +0 -1
  231. package/assets/esri/core/workers/chunks/128702abaae686a723a2.js +0 -1
  232. package/assets/esri/core/workers/chunks/15f1433e0d44c742cc44.js +0 -1
  233. package/assets/esri/core/workers/chunks/1678d1d0ecb9b2af69a8.js +0 -1
  234. package/assets/esri/core/workers/chunks/1ae257fd22c88d216538.js +0 -1
  235. package/assets/esri/core/workers/chunks/1fdb086f793f84a74a42.js +0 -1
  236. package/assets/esri/core/workers/chunks/2222ebdc9c436bec80d3.js +0 -1
  237. package/assets/esri/core/workers/chunks/236e0f5d5ac1a6ea1107.js +0 -1
  238. package/assets/esri/core/workers/chunks/24e7f4948860c5b239cd.js +0 -1
  239. package/assets/esri/core/workers/chunks/28ae0265dfb31bf7177a.js +0 -1
  240. package/assets/esri/core/workers/chunks/2d055375ee78d3867a75.js +0 -1
  241. package/assets/esri/core/workers/chunks/2d326816127032dd8ec1.js +0 -1
  242. package/assets/esri/core/workers/chunks/3ef2763d480b0d1e8d1a.js +0 -1
  243. package/assets/esri/core/workers/chunks/43ae802aaee9292090cc.js +0 -1
  244. package/assets/esri/core/workers/chunks/45a5c92d2cccbf1bc017.js +0 -1
  245. package/assets/esri/core/workers/chunks/4671081f6c556c401cc4.js +0 -1
  246. package/assets/esri/core/workers/chunks/47c8f8a48d6c8175a016.js +0 -1
  247. package/assets/esri/core/workers/chunks/4b0f9f298f8c7560f318.js +0 -1
  248. package/assets/esri/core/workers/chunks/4c5b1197902d2dc111bc.js +0 -1
  249. package/assets/esri/core/workers/chunks/4c6a6787d0c9dc7b99c1.js +0 -1
  250. package/assets/esri/core/workers/chunks/56debaa070f69ca41524.js +0 -1
  251. package/assets/esri/core/workers/chunks/587df97288a83721d251.js +0 -51
  252. package/assets/esri/core/workers/chunks/5964a821171992abc991.js +0 -1
  253. package/assets/esri/core/workers/chunks/59b51698c38eade0ac9e.js +0 -1
  254. package/assets/esri/core/workers/chunks/5caa02a7a85d05e253b4.js +0 -1
  255. package/assets/esri/core/workers/chunks/608118665a9ed136b2b8.js +0 -1
  256. package/assets/esri/core/workers/chunks/63670af7bc12a6f243d0.js +0 -1
  257. package/assets/esri/core/workers/chunks/65a095fe7417c7d5bd70.js +0 -1
  258. package/assets/esri/core/workers/chunks/6f48c576f2359bec20d4.js +0 -1
  259. package/assets/esri/core/workers/chunks/72e9f2b30b637bbcdf7c.js +0 -1
  260. package/assets/esri/core/workers/chunks/7519da0829cb718aebee.js +0 -1
  261. package/assets/esri/core/workers/chunks/777c21225a6c7a1ad0a7.js +0 -1
  262. package/assets/esri/core/workers/chunks/837471fcf383a0f4b6ff.js +0 -1
  263. package/assets/esri/core/workers/chunks/860539eb50f6bd62e663.js +0 -1
  264. package/assets/esri/core/workers/chunks/8dab75b9b059aa9f9f7b.js +0 -1
  265. package/assets/esri/core/workers/chunks/914ac4fc7e24f2c814ac.js +0 -1
  266. package/assets/esri/core/workers/chunks/92b2d81ef16877341f97.js +0 -1
  267. package/assets/esri/core/workers/chunks/931fd7656a893459bcad.js +0 -1
  268. package/assets/esri/core/workers/chunks/97e2da750105431b8e94.js +0 -1
  269. package/assets/esri/core/workers/chunks/a611e0543d4b4bb01f3c.js +0 -1
  270. package/assets/esri/core/workers/chunks/a6d9f35635164d088b68.js +0 -1
  271. package/assets/esri/core/workers/chunks/a7ba05cfc6a7d8936651.js +0 -1
  272. package/assets/esri/core/workers/chunks/a8d109d2bd5285de2841.js +0 -1
  273. package/assets/esri/core/workers/chunks/ac42e288b0fed706b63d.js +0 -1
  274. package/assets/esri/core/workers/chunks/b249375dc905cdf50763.js +0 -1
  275. package/assets/esri/core/workers/chunks/c1e67a20380ec6e0e41c.js +0 -1
  276. package/assets/esri/core/workers/chunks/c28f01f886f1fbfa9fe4.js +0 -1
  277. package/assets/esri/core/workers/chunks/c9160a55db38aa3efbc8.js +0 -1
  278. package/assets/esri/core/workers/chunks/d074ba015bab3ec39071.js +0 -320
  279. package/assets/esri/core/workers/chunks/db8667fe639bee14c5ca.js +0 -1
  280. package/assets/esri/core/workers/chunks/dc1225b55b5d09fbaf63.js +0 -1
  281. package/assets/esri/core/workers/chunks/e31923da0ded26b8003c.js +0 -1
  282. package/assets/esri/core/workers/chunks/e6a07b8d34435aedd72e.js +0 -1
  283. package/assets/esri/core/workers/chunks/ee200440485d4f0981ed.js +0 -1
  284. package/chunks/Bufferer-BhkgvSV4.js +0 -5
  285. package/chunks/GeodeticDistanceCalculator-B5uO-Y_z.js +0 -5
  286. package/chunks/SideCalculator2D-CoWc8Oe3.js +0 -5
  287. package/core/byteSizeEstimations.js +0 -5
  288. package/webdoc/support/saveAPIKeyUtils.js +0 -5
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.32/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,watch as w}from"./core/reactiveUtils.js";import{urlToObject as f,addQueryParameter as g}from"./core/urlUtils.js";import{property as b}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as S}from"./core/accessorSupport/decorators/subclass.js";import{writer as _}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as A}from"./core/accessorSupport/originUtils.js";import{readLoadable as I}from"./core/accessorSupport/read.js";import j from"./geometry/Extent.js";import L from"./geometry/HeightModelInfo.js";import{canProjectWithoutEngine as V}from"./geometry/projection.js";import R from"./geometry/SpatialReference.js";import{validateWebSceneError as P}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as E}from"./geometry/support/jsonUtils.js";import{isEarth as O}from"./geometry/support/spatialReferenceUtils.js";import M from"./portal/Portal.js";import U from"./portal/PortalItem.js";import{createForItemWrite as C}from"./portal/support/jsonContext.js";import{toggleTypeKeyword as N,typeKeyword as T}from"./portal/support/portalItemUtils.js";import{hasDeveloperBasemapLayer as x}from"./support/basemapUtils.js";import G from"./support/MapFloorInfo.js";import{WebSceneTag as F}from"./support/tagSymbols.js";import{createSchemaValidationError as J}from"./support/webSceneUtils.js";import W from"./time/TimeExtent.js";import{ViewingMode as $}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as B}from"./views/support/spatialReferenceSupport.js";import{SaveOperationType as q}from"./webdoc/interfaces.js";import k from"./webdoc/Widgets.js";import{updateItemWithResources as D,saveResources as K}from"./webdoc/support/resourceUtils.js";import{validateSaveAPIKey as H}from"./webdoc/support/saveAPIKeyUtils.js";import{evaluateWriteErrors as z}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as Q}from"./webdoc/support/thumbnailUtils.js";import{isCopyAllowed as X,initializeNewItem as Y}from"./webdoc/support/webdocSaveUtils.js";import Z from"./webscene/ApplicationProperties.js";import ee from"./webscene/Environment.js";import te from"./webscene/InitialViewProperties.js";import re from"./webscene/Presentation.js";import ie from"./webscene/TransportationNetwork.js";import{Version as oe}from"./webscene/Version.js";import{getLoader as se}from"./webscene/support/schemaValidatorLoader.js";var ae;const ne=new oe(1,35),le=()=>{const e=8,t=[],r=ne.major;for(let i=e;i<=ne.minor;i++)t.push(`${r}.${i}`);return t},pe="Web Scene";let ce=class extends(n.LoadableMixin(m(d(r)))){constructor(e){super(e),this[ae]=!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 re,this.initialViewProperties=new te,this.portalItem=null,this.resourceInfo=null,this.widgets=null,this._debouncedSaveOperations=u((async(e,t,r)=>{switch(e){case q.SAVE:return this._saveImpl(t);case q.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 oe(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${ne.major}.${ne.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={};t.initialState?.environment&&(r.environment=ee.fromJSON(t.initialState.environment)),r.spatialReference=t.spatialReference?R.fromJSON(t.spatialReference):R.WebMercator,r.viewingMode=t.viewingMode??"global",t.initialState?.viewpoint&&(r.viewpoint=i.fromJSON(t.initialState.viewpoint));const o=t.initialState?.timeExtent;return null!=o&&(r.timeExtent=W.fromArray(o)),new te(r)}get spatialReference(){return this.initialViewProperties?.spatialReference??R.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(),this._validateFeatureLayerSymbolVisibility()}))),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(I(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?.layers;!e.baseMap&&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?.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(q.SAVE,e)}async _saveImpl(e){if(!this.portalItem)throw new s("webscene:portal-item-not-set","Portal item to save to has not been set on the WebScene");if(H(this.portalItem),this.portalItem?.type!==pe)throw new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${pe}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls(C(this.portalItem,"web-scene",!0)),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,q.SAVE,e),this._updateTypeKeywords(this.portalItem),await D(this.portalItem,i,this._resourceReferences,r),A(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(q.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=U.from(e);if(!r)throw new s("webscene:portal-item-required","saveAs requires a portal item to save to");H(r),r.id&&(r=r.clone(),r.id=null);const i=r.portal||M.getDefault();await this._ensureLoadBeforeSave(),r.type=pe,r.portal=i;const o=this._enableVerifyItemRelativeUrls(C(r,"web-scene",!0)),a=this.write({},o);await Promise.all(o.resources.pendingOperations),await this._verifySaveAs(a,o,t);const n=this.thumbnailUrl,l=!this._isOverridden("thumbnailUrl");if(this._updateTypeKeywords(r),await i.signIn(),!i.user)throw new s("webscene:user-not-signed-in","saveAs requires a user to be signed in to the portal");const p=this.portalItem,c={item:p,authenticated:!(!p?.id||!p.portal.user)},{copyAllowed:d,itemReloaded:m}=await X(c,i);if(c.authenticated||=m,!d)throw new s(`${o.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const u={...t,copyAllResources:!0};return await Y(r,c,a,u)&&(this._resourceReferences.portalItem=r),await K(this._resourceReferences,o),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?f(r.itemUrl):void 0}),A(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"))}async _verifySave(e,t,r,i){if(!O(this.spatialReference))throw new s("webscene:unsupported-spatial-reference","Webscenes using spatial reference systems from Mars or Moon can not be saved currently.");const{ignoreUnsupported:o,requiredPropertyChecksDisabled:a,strictSchemaValidationEnabled:n}=i||{};z(t,{errorName:"webscene:save"},{ignoreUnsupported:o,supplementalUnsupportedErrors:["scenemodification:unsupported"],requiredPropertyChecksDisabled:a});const l=se();if(n&&l){const t=(await l()).validate(e);if(!t.length)return;const i=`webscene did not validate:\n${t.join("\n")}`;p.getLogger(this).error(`${r===q.SAVE_AS?"saveAs":"save"}(): ${i}`);const o=t.map((e=>new s("webscene:schema-validation",e)));throw J(o)}}_verifySaveAs(e,t,r){return this._verifySave(e,t,q.SAVE_AS,r)}verifySaveAs(e){const t=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),r=this.write({},t);return this._verifySaveAs(r,t,e)}canNotSaveAs(){return!1}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=ee.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,this.initialViewProperties.timeExtent=e.timeExtent?.clone()??null,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])}if(!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this);(!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?.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||M.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.filter((e=>"base-elevation"===e.type||"elevation"===e.type)))}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:f(e.itemUrl),portal:e.portal||M.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(!B(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||V(e,t)}else{if(!B(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=P(this.heightModelInfo,e);return t?Promise.reject(t):Promise.resolve()}_validateFeatureLayerSymbolVisibility(){this.sourceVersion?.greaterEqual(1,35)||this.layers.forEach((e=>{"feature"===e.type&&w((()=>e.loaded),(()=>e.warnInvisibleDrapedSymbols()),{once:!0,sync:!0})}))}_validateJSON(e){const t=oe.parse(e.version||"","webscene");return ne.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=R.WebMercator.toJSON()),e}_updateTypeKeywords(e){N(e,T.LOCAL_SCENE,"local"===this.initialViewProperties.viewingMode),N(e,T.DEVELOPER_BASEMAP,x(this.basemap)||this.presentation.slides.some((({basemap:e})=>!!e&&x(e)))),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}get _sceneSpatialReference(){return this.initialViewProperties.spatialReference||R.WebMercator}get _verifyItemRelativeRootPath(){return this.portalItem?.itemUrl?f(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?.viewing?.search,t=e=>this.allLayers.some((t=>t.id===e&&t.persistenceEnabled));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})}};ae=F,ce.version=`${ne.major}.${ne.minor}`,e([b({type:Z,json:{write:!0}})],ce.prototype,"applicationProperties",void 0),e([b({type:j,json:{read:{source:"clippingArea.geometry",reader:E},write:{target:"clippingArea.geometry"}}})],ce.prototype,"clippingArea",void 0),e([_("clippingArea")],ce.prototype,"writeClippingArea",null),e([b({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],ce.prototype,"clippingEnabled",void 0),e([v("clippingEnabled",["clippingArea"])],ce.prototype,"readClippingEnabled",null),e([_("clippingEnabled")],ce.prototype,"writeClippingEnabled",null),e([b({type:G,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],ce.prototype,"floorInfo",void 0),e([b({type:L,json:{write:!0}})],ce.prototype,"heightModelInfo",void 0),e([b({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],ce.prototype,"layers",void 0),e([_("layers")],ce.prototype,"writeLayers",null),e([b({readOnly:!0,type:oe,json:{type:le(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],ce.prototype,"sourceVersion",void 0),e([v("sourceVersion",["version"])],ce.prototype,"readSourceVersion",null),e([_("sourceVersion")],ce.prototype,"writeSourceVersion",null),e([b({json:{read:!1,write:{enabled:!0,ignoreOrigin:!0}}})],ce.prototype,"tables",void 0),e([_("tables")],ce.prototype,"writeTables",null),e([b()],ce.prototype,"thumbnailUrl",null),e([b({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ce.prototype,"authoringApp",null),e([_("authoringApp")],ce.prototype,"writeAuthoringApp",null),e([b({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ce.prototype,"authoringAppVersion",null),e([_("authoringAppVersion")],ce.prototype,"writeAuthoringAppVersion",null),e([b({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],ce.prototype,"ground",void 0),e([_("ground")],ce.prototype,"writeGround",null),e([b({type:o.ofType(ie),json:{write:!0}})],ce.prototype,"transportationNetworks",void 0),e([b({type:re,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)}}}}})],ce.prototype,"presentation",void 0),e([b({type:te,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new te({viewingMode:"global",spatialReference:R.WebMercator})}})],ce.prototype,"initialViewProperties",void 0),e([v("initialViewProperties",["initialState.timeExtent","initialState.environment","initialState.viewpoint","spatialReference","viewingMode"])],ce.prototype,"readInitialViewProperties",null),e([b({type:R,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ce.prototype,"spatialReference",null),e([b({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ce.prototype,"viewingMode",null),e([b({type:U})],ce.prototype,"portalItem",void 0),e([b()],ce.prototype,"resourceInfo",void 0),e([b({type:k,json:{write:!0}})],ce.prototype,"widgets",void 0),ce=e([S("esri.WebScene")],ce);const de=ce;export{de 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,watch as w}from"./core/reactiveUtils.js";import{urlToObject as f,addQueryParameter as g}from"./core/urlUtils.js";import{property as b}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import{reader as v}from"./core/accessorSupport/decorators/reader.js";import{subclass as S}from"./core/accessorSupport/decorators/subclass.js";import{writer as _}from"./core/accessorSupport/decorators/writer.js";import{updateOrigins as A}from"./core/accessorSupport/originUtils.js";import{readLoadable as I}from"./core/accessorSupport/read.js";import j from"./geometry/Extent.js";import L from"./geometry/HeightModelInfo.js";import{canProjectWithoutEngine as V}from"./geometry/projection.js";import R from"./geometry/SpatialReference.js";import{validateWebSceneError as E}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as P}from"./geometry/support/jsonUtils.js";import{isEarth as O}from"./geometry/support/spatialReferenceUtils.js";import M from"./portal/Portal.js";import U from"./portal/PortalItem.js";import{createForItemWrite as C}from"./portal/support/jsonContext.js";import{toggleTypeKeyword as N,typeKeyword as T}from"./portal/support/portalItemUtils.js";import{hasDeveloperBasemapLayer as x}from"./support/basemapUtils.js";import G from"./support/MapFloorInfo.js";import{WebSceneTag as F}from"./support/tagSymbols.js";import{createSchemaValidationError as J}from"./support/webSceneUtils.js";import W from"./time/TimeExtent.js";import{ViewingMode as $}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as B}from"./views/support/spatialReferenceSupport.js";import{SaveOperationType as q}from"./webdoc/interfaces.js";import k from"./webdoc/Widgets.js";import{updateItemWithResources as D,saveResources as K}from"./webdoc/support/resourceUtils.js";import{evaluateWriteErrors as H}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as z}from"./webdoc/support/thumbnailUtils.js";import{isCopyAllowed as Q,initializeNewItem as X}from"./webdoc/support/webdocSaveUtils.js";import Y from"./webscene/ApplicationProperties.js";import Z from"./webscene/Environment.js";import ee from"./webscene/InitialViewProperties.js";import te from"./webscene/Presentation.js";import re from"./webscene/TransportationNetwork.js";import{Version as ie}from"./webscene/Version.js";import{getLoader as oe}from"./webscene/support/schemaValidatorLoader.js";var se;const ae=new ie(1,35),ne=()=>{const e=8,t=[],r=ae.major;for(let i=e;i<=ae.minor;i++)t.push(`${r}.${i}`);return t},le="Web Scene";let pe=class extends(n.LoadableMixin(m(d(r)))){constructor(e){super(e),this[se]=!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 te,this.initialViewProperties=new ee,this.portalItem=null,this.resourceInfo=null,this.widgets=null,this._debouncedSaveOperations=u((async(e,t,r)=>{switch(e){case q.SAVE:return this._saveImpl(t);case q.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 ie(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${ae.major}.${ae.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={};t.initialState?.environment&&(r.environment=Z.fromJSON(t.initialState.environment)),r.spatialReference=t.spatialReference?R.fromJSON(t.spatialReference):R.WebMercator,r.viewingMode=t.viewingMode??"global",t.initialState?.viewpoint&&(r.viewpoint=i.fromJSON(t.initialState.viewpoint));const o=t.initialState?.timeExtent;return null!=o&&(r.timeExtent=W.fromArray(o)),new ee(r)}get spatialReference(){return this.initialViewProperties?.spatialReference??R.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(),this._validateFeatureLayerSymbolVisibility()}))),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(I(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?.layers;!e.baseMap&&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?.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(q.SAVE,e)}async _saveImpl(e){if(!this.portalItem)throw new s("webscene:portal-item-not-set","Portal item to save to has not been set on the WebScene");if(this.portalItem?.type!==le)throw new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${le}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls(C(this.portalItem,"web-scene",!0)),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,q.SAVE,e),this._updateTypeKeywords(this.portalItem),await D(this.portalItem,i,this._resourceReferences,r),A(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(q.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=U.from(e);if(!r)throw 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||M.getDefault();await this._ensureLoadBeforeSave(),r.type=le,r.portal=i;const o=this._enableVerifyItemRelativeUrls(C(r,"web-scene",!0)),a=this.write({},o);await Promise.all(o.resources.pendingOperations),await this._verifySaveAs(a,o,t);const n=this.thumbnailUrl,l=!this._isOverridden("thumbnailUrl");if(this._updateTypeKeywords(r),await i.signIn(),!i.user)throw new s("webscene:user-not-signed-in","saveAs requires a user to be signed in to the portal");const p=this.portalItem,c={item:p,authenticated:!(!p?.id||!p.portal.user)},{copyAllowed:d,itemReloaded:m}=await Q(c,i);if(c.authenticated||=m,!d)throw new s(`${o.name}:save-as-copy-not-allowed`,"Owner of this map does not allow others to save a copy");const u={...t,copyAllResources:!0};return await X(r,c,a,u)&&(this._resourceReferences.portalItem=r),await K(this._resourceReferences,o),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?f(r.itemUrl):void 0}),A(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"))}async _verifySave(e,t,r,i){if(!O(this.spatialReference))throw new s("webscene:unsupported-spatial-reference","Webscenes using spatial reference systems from Mars or Moon can not be saved currently.");const{ignoreUnsupported:o,requiredPropertyChecksDisabled:a,strictSchemaValidationEnabled:n}=i||{};H(t,{errorName:"webscene:save"},{ignoreUnsupported:o,supplementalUnsupportedErrors:["scenemodification:unsupported"],requiredPropertyChecksDisabled:a});const l=oe();if(n&&l){const t=(await l()).validate(e);if(!t.length)return;const i=`webscene did not validate:\n${t.join("\n")}`;p.getLogger(this).error(`${r===q.SAVE_AS?"saveAs":"save"}(): ${i}`);const o=t.map((e=>new s("webscene:schema-validation",e)));throw J(o)}}_verifySaveAs(e,t,r){return this._verifySave(e,t,q.SAVE_AS,r)}verifySaveAs(e){const t=this._enableVerifyItemRelativeUrls({origin:"web-scene",messages:[]}),r=this.write({},t);return this._verifySaveAs(r,t,e)}canNotSaveAs(){return!1}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=Z.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,this.initialViewProperties.timeExtent=e.timeExtent?.clone()??null,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])}if(!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this);(!1===t.thumbnailExcluded||null==t.thumbnailExcluded&&!t.viewpointExcluded)&&await this._updateFromThumbnail(e,t.thumbnailSize??void 0)}async _updateFromThumbnail(e,t){const r=z(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?.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||M.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.filter((e=>"base-elevation"===e.type||"elevation"===e.type)))}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:f(e.itemUrl),portal:e.portal||M.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(!B(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||V(e,t)}else{if(!B(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=E(this.heightModelInfo,e);return t?Promise.reject(t):Promise.resolve()}_validateFeatureLayerSymbolVisibility(){this.sourceVersion?.greaterEqual(1,35)||this.layers.forEach((e=>{"feature"===e.type&&w((()=>e.loaded),(()=>e.warnInvisibleDrapedSymbols()),{once:!0,sync:!0})}))}_validateJSON(e){const t=ie.parse(e.version||"","webscene");return ae.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=R.WebMercator.toJSON()),e}_updateTypeKeywords(e){N(e,T.LOCAL_SCENE,"local"===this.initialViewProperties.viewingMode),N(e,T.DEVELOPER_BASEMAP,x(this.basemap)||this.presentation.slides.some((({basemap:e})=>!!e&&x(e)))),e.typeKeywords&&(e.typeKeywords=e.typeKeywords.filter(((e,t,r)=>r.indexOf(e)===t)))}get _sceneSpatialReference(){return this.initialViewProperties.spatialReference||R.WebMercator}get _verifyItemRelativeRootPath(){return this.portalItem?.itemUrl?f(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?.viewing?.search,t=e=>this.allLayers.some((t=>t.id===e&&t.persistenceEnabled));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})}};se=F,pe.version=`${ae.major}.${ae.minor}`,e([b({type:Y,json:{write:!0}})],pe.prototype,"applicationProperties",void 0),e([b({type:j,json:{read:{source:"clippingArea.geometry",reader:P},write:{target:"clippingArea.geometry"}}})],pe.prototype,"clippingArea",void 0),e([_("clippingArea")],pe.prototype,"writeClippingArea",null),e([b({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],pe.prototype,"clippingEnabled",void 0),e([v("clippingEnabled",["clippingArea"])],pe.prototype,"readClippingEnabled",null),e([_("clippingEnabled")],pe.prototype,"writeClippingEnabled",null),e([b({type:G,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],pe.prototype,"floorInfo",void 0),e([b({type:L,json:{write:!0}})],pe.prototype,"heightModelInfo",void 0),e([b({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],pe.prototype,"layers",void 0),e([_("layers")],pe.prototype,"writeLayers",null),e([b({readOnly:!0,type:ie,json:{type:ne(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],pe.prototype,"sourceVersion",void 0),e([v("sourceVersion",["version"])],pe.prototype,"readSourceVersion",null),e([_("sourceVersion")],pe.prototype,"writeSourceVersion",null),e([b({json:{read:!1,write:{enabled:!0,ignoreOrigin:!0}}})],pe.prototype,"tables",void 0),e([_("tables")],pe.prototype,"writeTables",null),e([b()],pe.prototype,"thumbnailUrl",null),e([b({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],pe.prototype,"authoringApp",null),e([_("authoringApp")],pe.prototype,"writeAuthoringApp",null),e([b({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],pe.prototype,"authoringAppVersion",null),e([_("authoringAppVersion")],pe.prototype,"writeAuthoringAppVersion",null),e([b({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],pe.prototype,"ground",void 0),e([_("ground")],pe.prototype,"writeGround",null),e([b({type:o.ofType(re),json:{write:!0}})],pe.prototype,"transportationNetworks",void 0),e([b({type:te,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)}}}}})],pe.prototype,"presentation",void 0),e([b({type:ee,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new ee({viewingMode:"global",spatialReference:R.WebMercator})}})],pe.prototype,"initialViewProperties",void 0),e([v("initialViewProperties",["initialState.timeExtent","initialState.environment","initialState.viewpoint","spatialReference","viewingMode"])],pe.prototype,"readInitialViewProperties",null),e([b({type:R,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],pe.prototype,"spatialReference",null),e([b({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],pe.prototype,"viewingMode",null),e([b({type:U})],pe.prototype,"portalItem",void 0),e([b()],pe.prototype,"resourceInfo",void 0),e([b({type:k,json:{write:!0}})],pe.prototype,"widgets",void 0),pe=e([S("esri.WebScene")],pe);const ce=pe;export{ce as default};