@arcgis/core 4.29.0-next.20231130 → 4.29.0-next.20231202

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 (315) hide show
  1. package/LinkChart.js +1 -1
  2. package/WebMap.js +1 -1
  3. package/WebScene.js +1 -1
  4. package/assets/esri/core/workers/RemoteClient.js +1 -1
  5. package/assets/esri/core/workers/chunks/040e0122efe1cb716431.js +1 -0
  6. package/assets/esri/core/workers/chunks/13749481458e679dfe0e.js +1 -0
  7. package/assets/esri/core/workers/chunks/24087961564e5b8cc20c.js +1 -0
  8. package/assets/esri/core/workers/chunks/37cbf2484732a7d613e5.js +1 -0
  9. package/assets/esri/core/workers/chunks/{1b7778afebd247a26241.js → 4e8763fa17d9b7183410.js} +1 -1
  10. package/assets/esri/core/workers/chunks/{85b4a7fc953073cf8936.js → 4f7c2c9e5100421b0bc2.js} +1 -1
  11. package/assets/esri/core/workers/chunks/693aa07541436064a91f.js +1 -0
  12. package/assets/esri/core/workers/chunks/6a354014099c1fd11cdc.js +1 -0
  13. package/assets/esri/core/workers/chunks/73527820d99f1ebb663a.js +1 -0
  14. package/assets/esri/core/workers/chunks/73950dfd2355733e2fc4.js +1 -0
  15. package/assets/esri/core/workers/chunks/{fa66f82e551de2d3b7c2.js → 8b16e8c8752f355e20ff.js} +1 -1
  16. package/assets/esri/core/workers/chunks/8e1c96f6c518d95a39db.js +1 -0
  17. package/assets/esri/core/workers/chunks/a1650b31d4d83524ab5f.js +1 -0
  18. package/assets/esri/core/workers/chunks/aa4d3276917421abaa12.js +1 -0
  19. package/assets/esri/core/workers/chunks/{fa299e3c4305f703c2f3.js → bcd51dec6693bd4170eb.js} +4 -5
  20. package/assets/esri/core/workers/chunks/cd4ee7dd278e8ae8dde3.js +1 -0
  21. package/assets/esri/core/workers/chunks/cd634692fe51124abaa7.js +1 -0
  22. package/assets/esri/core/workers/chunks/{c640b75f254b6490c696.js → d22fe2435f44a12013d1.js} +1 -1
  23. package/assets/esri/core/workers/chunks/d5df6b3e50e4bb9f4302.js +1 -0
  24. package/assets/esri/core/workers/chunks/f3694851df99086937cc.js +1 -0
  25. package/assets/esri/core/workers/chunks/f7d80d82930eeec732ba.js +1 -0
  26. package/assets/esri/libs/linkchartlayout/lclayout.wasm +0 -0
  27. package/assets/esri/t9n/common_ar.json +1 -1
  28. package/assets/esri/t9n/common_bg.json +1 -1
  29. package/assets/esri/t9n/common_bs.json +1 -1
  30. package/assets/esri/t9n/common_ca.json +1 -1
  31. package/assets/esri/t9n/common_cs.json +1 -1
  32. package/assets/esri/t9n/common_da.json +1 -1
  33. package/assets/esri/t9n/common_de.json +1 -1
  34. package/assets/esri/t9n/common_el.json +1 -1
  35. package/assets/esri/t9n/common_es.json +1 -1
  36. package/assets/esri/t9n/common_et.json +1 -1
  37. package/assets/esri/t9n/common_fi.json +1 -1
  38. package/assets/esri/t9n/common_fr.json +1 -1
  39. package/assets/esri/t9n/common_he.json +1 -1
  40. package/assets/esri/t9n/common_hr.json +1 -1
  41. package/assets/esri/t9n/common_hu.json +1 -1
  42. package/assets/esri/t9n/common_id.json +1 -1
  43. package/assets/esri/t9n/common_it.json +1 -1
  44. package/assets/esri/t9n/common_ja.json +1 -1
  45. package/assets/esri/t9n/common_ko.json +1 -1
  46. package/assets/esri/t9n/common_lt.json +1 -1
  47. package/assets/esri/t9n/common_lv.json +1 -1
  48. package/assets/esri/t9n/common_nb.json +1 -1
  49. package/assets/esri/t9n/common_nl.json +1 -1
  50. package/assets/esri/t9n/common_pl.json +1 -1
  51. package/assets/esri/t9n/common_pt-BR.json +1 -1
  52. package/assets/esri/t9n/common_pt-PT.json +1 -1
  53. package/assets/esri/t9n/common_ro.json +1 -1
  54. package/assets/esri/t9n/common_ru.json +1 -1
  55. package/assets/esri/t9n/common_sk.json +1 -1
  56. package/assets/esri/t9n/common_sl.json +1 -1
  57. package/assets/esri/t9n/common_sr.json +1 -1
  58. package/assets/esri/t9n/common_sv.json +1 -1
  59. package/assets/esri/t9n/common_th.json +1 -1
  60. package/assets/esri/t9n/common_tr.json +1 -1
  61. package/assets/esri/t9n/common_uk.json +1 -1
  62. package/assets/esri/t9n/common_vi.json +1 -1
  63. package/assets/esri/t9n/common_zh-CN.json +1 -1
  64. package/assets/esri/t9n/common_zh-HK.json +1 -1
  65. package/assets/esri/t9n/common_zh-TW.json +1 -1
  66. package/assets/esri/themes/base/_OverlayItem.scss +2 -1
  67. package/assets/esri/themes/base/widgets/_FeatureTable.scss +4 -2
  68. package/assets/esri/themes/dark/main.css +1 -1
  69. package/assets/esri/themes/light/main.css +1 -1
  70. package/assets/esri/themes/light/view.css +1 -1
  71. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ar.json +1 -1
  72. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bg.json +1 -1
  73. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_bs.json +1 -1
  74. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ca.json +1 -1
  75. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_cs.json +1 -1
  76. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_da.json +1 -1
  77. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_de.json +1 -1
  78. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_el.json +1 -1
  79. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_es.json +1 -1
  80. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_et.json +1 -1
  81. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fi.json +1 -1
  82. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_fr.json +1 -1
  83. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_he.json +1 -1
  84. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hr.json +1 -1
  85. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_hu.json +1 -1
  86. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_id.json +1 -1
  87. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_it.json +1 -1
  88. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ja.json +1 -1
  89. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ko.json +1 -1
  90. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lt.json +1 -1
  91. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_lv.json +1 -1
  92. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_nb.json +1 -1
  93. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_nl.json +1 -1
  94. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pl.json +1 -1
  95. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-BR.json +1 -1
  96. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_pt-PT.json +1 -1
  97. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ro.json +1 -1
  98. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_ru.json +1 -1
  99. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sk.json +1 -1
  100. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sl.json +1 -1
  101. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sr.json +1 -1
  102. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_sv.json +1 -1
  103. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_th.json +1 -1
  104. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_tr.json +1 -1
  105. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_uk.json +1 -1
  106. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_vi.json +1 -1
  107. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-CN.json +1 -1
  108. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-HK.json +1 -1
  109. package/assets/esri/views/interactive/tooltip/t9n/Tooltip_zh-TW.json +1 -1
  110. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ar.json +1 -1
  111. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bg.json +1 -1
  112. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_bs.json +1 -1
  113. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ca.json +1 -1
  114. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_cs.json +1 -1
  115. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_da.json +1 -1
  116. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_de.json +1 -1
  117. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_el.json +1 -1
  118. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_es.json +1 -1
  119. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_et.json +1 -1
  120. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fi.json +1 -1
  121. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_fr.json +1 -1
  122. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_he.json +1 -1
  123. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hr.json +1 -1
  124. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_hu.json +1 -1
  125. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_id.json +1 -1
  126. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_it.json +1 -1
  127. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ja.json +1 -1
  128. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ko.json +1 -1
  129. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lt.json +1 -1
  130. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_lv.json +1 -1
  131. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nb.json +1 -1
  132. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_nl.json +1 -1
  133. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pl.json +1 -1
  134. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-BR.json +1 -1
  135. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_pt-PT.json +1 -1
  136. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ro.json +1 -1
  137. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_ru.json +1 -1
  138. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sk.json +1 -1
  139. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sl.json +1 -1
  140. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sr.json +1 -1
  141. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_sv.json +1 -1
  142. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_th.json +1 -1
  143. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_tr.json +1 -1
  144. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_uk.json +1 -1
  145. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_vi.json +1 -1
  146. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-CN.json +1 -1
  147. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-HK.json +1 -1
  148. package/assets/esri/widgets/FeatureForm/t9n/FeatureForm_zh-TW.json +1 -1
  149. package/assets/esri/widgets/ScaleRangeSlider/t9n/ScaleRangeSlider_cs.json +1 -1
  150. package/chunks/LineSeries.js +1 -1
  151. package/chunks/ShadowCastAccumulate.glsl.js +4 -4
  152. package/chunks/ShadowCastVisualize.glsl.js +15 -15
  153. package/chunks/ShadowHighlight.glsl.js +1 -4
  154. package/chunks/Theme.js +1 -1
  155. package/chunks/lclayout.js +1 -1
  156. package/core/libs/gl-matrix-2/factories/mat2df64.js +1 -1
  157. package/core/promiseUtils.js +1 -1
  158. package/core/scheduling.js +1 -1
  159. package/core/workers/Connection.js +1 -1
  160. package/core/workers/InvokeHandler.js +1 -1
  161. package/core/workers/RemoteClient.js +1 -1
  162. package/interfaces.d.ts +484 -51
  163. package/layers/LinkChartLayer.js +1 -1
  164. package/layers/WFSLayer.js +1 -1
  165. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  166. package/layers/graphics/data/QueryEngine.js +1 -1
  167. package/layers/graphics/sources/WFSSource.js +1 -1
  168. package/layers/graphics/sources/WFSSourceWorker.js +1 -1
  169. package/layers/mixins/SceneService.js +1 -1
  170. package/layers/ogc/wfsUtils.js +1 -1
  171. package/layers/save/groupLayerUtils.js +1 -1
  172. package/layers/save/utils.js +1 -1
  173. package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
  174. package/libs/linkchartlayout/LinkChartLayout.js +1 -1
  175. package/package.json +3 -3
  176. package/rest/operations/identify.js +1 -1
  177. package/rest/support/IdentifyParameters.js +1 -1
  178. package/smartMapping/raster/support/colorRamps.d.ts +4 -0
  179. package/smartMapping/raster/support/colorRamps.js +5 -0
  180. package/smartMapping/symbology/support/colorRamps.d.ts +2 -2
  181. package/support/revision.js +1 -1
  182. package/symbols/cim/CIMSymbolHelper.js +1 -1
  183. package/symbols/cim/Rasterizer.js +1 -1
  184. package/symbols/cim/cimAnalyzer.js +1 -1
  185. package/views/2d/engine/Stage.js +1 -1
  186. package/views/2d/engine/webgl/DisplayRecord.js +1 -1
  187. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  188. package/views/2d/engine/webgl/PooledUint32Array.js +5 -0
  189. package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
  190. package/views/2d/engine/webgl/cpuMapped/MappedMesh.js +1 -1
  191. package/views/2d/engine/webgl/mesh/factories/ResourceProxy.js +1 -1
  192. package/views/2d/engine/webgl/mesh/meshDebugUtils.js +1 -1
  193. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  194. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  195. package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartMeshWriter.js +1 -1
  196. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  197. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  198. package/views/2d/layers/MediaLayerView2D.js +1 -1
  199. package/views/2d/layers/StreamLayerView2D.js +1 -1
  200. package/views/2d/layers/TileLayerView2D.js +1 -1
  201. package/views/2d/layers/features/FeatureContainer.js +1 -1
  202. package/views/2d/layers/features/FeaturePipelineWorkerProxy.js +1 -1
  203. package/views/2d/layers/features/PipelineConnectionHandlers.js +1 -1
  204. package/views/2d/layers/features/Processor.js +1 -1
  205. package/views/2d/layers/features/RenderState.js +1 -1
  206. package/views/2d/layers/features/processor/BinningStrategy.js +1 -1
  207. package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
  208. package/views/2d/layers/features/processor/FeatureUpdateStrategy.js +1 -1
  209. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  210. package/views/2d/layers/features/support/AttributeStore.js +1 -1
  211. package/views/2d/layers/features/support/DisplayIdGenerator.js +1 -1
  212. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  213. package/views/2d/layers/graphics/GraphicStore.js +1 -1
  214. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  215. package/views/3d/animation/pointToPoint/Animation.js +1 -1
  216. package/views/3d/animation/pointToPoint/Camera.js +1 -1
  217. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  218. package/views/3d/state/controllers/global/PinchAndPanController.js +1 -1
  219. package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +5 -6
  220. package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
  221. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  222. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  223. package/views/PopupView.js +1 -1
  224. package/views/draw/DrawScreenTool.js +5 -0
  225. package/views/draw/drawSurfaces.js +1 -1
  226. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  227. package/views/interactive/snapping/featureSources/GraphicsSnappingSource.js +1 -1
  228. package/views/interactive/tooltip/components/TooltipEditableField.js +1 -1
  229. package/views/interactive/tooltip/content/TooltipContent.js +1 -1
  230. package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
  231. package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
  232. package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
  233. package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
  234. package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
  235. package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
  236. package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
  237. package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
  238. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
  239. package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
  240. package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
  241. package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
  242. package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
  243. package/views/interactive/tooltip/fields/fields.js +1 -1
  244. package/views/magnifier/overlay-svg.js +1 -1
  245. package/views/overlay/OutlineOverlayItem.js +5 -0
  246. package/views/support/angularMeasurementUtils.js +1 -1
  247. package/views/support/waitForResources.js +1 -1
  248. package/webdoc/support/resourceUtils.js +5 -0
  249. package/webdoc/support/saveAPIKeyUtils.js +5 -0
  250. package/webdoc/support/saveUtils.js +1 -1
  251. package/webdoc/support/webdocLoadUtils.js +5 -0
  252. package/webdoc/support/webdocSaveUtils.js +5 -0
  253. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  254. package/widgets/BasemapGallery/support/PortalBasemapsSource.js +1 -1
  255. package/widgets/BasemapGallery.js +1 -1
  256. package/widgets/BasemapLayerList/BasemapLayerListVisibleElements.js +1 -1
  257. package/widgets/BasemapLayerList.js +1 -1
  258. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  259. package/widgets/Editor/CreateWorkflow.js +1 -1
  260. package/widgets/Editor/EditorViewModel.js +1 -1
  261. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  262. package/widgets/Editor/UpdateRecordWorkflowData.js +1 -1
  263. package/widgets/Editor/UpdateWorkflow.js +1 -1
  264. package/widgets/Editor/VisibleElements.js +1 -1
  265. package/widgets/Editor/components/PanelToolbar.js +1 -1
  266. package/widgets/Editor/components/Settings.js +1 -1
  267. package/widgets/Editor/workflowUtils.js +1 -1
  268. package/widgets/Editor.js +1 -1
  269. package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
  270. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  271. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  272. package/widgets/FeatureTable/FieldColumn.js +1 -1
  273. package/widgets/FeatureTable/Grid/Column.js +1 -1
  274. package/widgets/FeatureTable/Grid/Grid.js +1 -1
  275. package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
  276. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  277. package/widgets/Features/FeaturesViewModel.js +1 -1
  278. package/widgets/Features/FeaturesVisibleElements.js +1 -1
  279. package/widgets/Features.js +1 -1
  280. package/widgets/LayerList/LayerListVisibleElements.js +1 -1
  281. package/widgets/LayerList.js +1 -1
  282. package/widgets/Sketch/VisibleElements.js +1 -1
  283. package/widgets/Sketch.js +1 -1
  284. package/widgets/TableList/ListItemPanel.d.ts +4 -0
  285. package/widgets/TableList/TableListVisibleElements.js +1 -1
  286. package/widgets/TableList.js +1 -1
  287. package/widgets/support/ColorPicker.js +1 -1
  288. package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
  289. package/widgets/support/SelectionToolbar.js +1 -1
  290. package/widgets/support/Selector2D/SelectionOperation.js +5 -0
  291. package/widgets/support/Selector2D/selectorUtils.js +1 -1
  292. package/widgets/support/widget.js +1 -1
  293. package/widgets/support/widgetUtils.js +1 -1
  294. package/assets/esri/core/workers/chunks/037c7ab5e8075daca7bd.js +0 -1
  295. package/assets/esri/core/workers/chunks/153356e6e67f813610bc.js +0 -1
  296. package/assets/esri/core/workers/chunks/1ad4b5e65f38f64f581f.js +0 -1
  297. package/assets/esri/core/workers/chunks/2e2aa95487e4c2ebd8de.js +0 -1
  298. package/assets/esri/core/workers/chunks/35b3386c612d28bf6416.js +0 -1
  299. package/assets/esri/core/workers/chunks/4327084b9421e1ecd5e7.js +0 -1
  300. package/assets/esri/core/workers/chunks/8b0e6057f838820d4fde.js +0 -1
  301. package/assets/esri/core/workers/chunks/af00ce88766be6fbb371.js +0 -1
  302. package/assets/esri/core/workers/chunks/b128dfe14fbbd0585c6e.js +0 -1
  303. package/assets/esri/core/workers/chunks/bca687f501d97ce88ddd.js +0 -1
  304. package/assets/esri/core/workers/chunks/be1fd0ba249d7e9a77f2.js +0 -1
  305. package/assets/esri/core/workers/chunks/d534bf99a5698dd38ee9.js +0 -1
  306. package/assets/esri/core/workers/chunks/e4cbab70d5ba7a03fa0f.js +0 -1
  307. package/assets/esri/core/workers/chunks/e62e6b803d2abc8bf61b.js +0 -1
  308. package/assets/esri/core/workers/chunks/f3567590e033c8cae56f.js +0 -1
  309. package/assets/esri/core/workers/chunks/f96f82ad1194af3f9a24.js +0 -1
  310. package/views/2d/engine/webgl/BufferPool.js +0 -5
  311. package/webdoc/saveAPIKeyUtils.js +0 -5
  312. package/webdoc/webdocLoadUtils.js +0 -5
  313. package/webdoc/webdocSaveUtils.js +0 -5
  314. package/widgets/support/Selector2D/SelectionOperation2D.js +0 -5
  315. package/widgets/support/Selector2D.js +0 -5
package/LinkChart.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.29/esri/copyright.txt for details.
4
4
  */
5
- import{_ as r}from"./chunks/tslib.es6.js";import o from"./Map.js";import e from"./core/Loadable.js";import{loadAll as t}from"./core/loadAll.js";import i from"./core/Logger.js";import{MultiOriginJSONMixin as s}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as a}from"./core/Promise.js";import{Version as n}from"./core/Version.js";import{property as p}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import"./core/RandomLCG.js";import{reader as l}from"./core/accessorSupport/decorators/reader.js";import{subclass as c}from"./core/accessorSupport/decorators/subclass.js";import{writer as m}from"./core/accessorSupport/decorators/writer.js";import{readLoadable as d}from"./core/accessorSupport/read.js";import u from"./linkchart/InitialViewProperties.js";import h from"./portal/PortalItem.js";import{loadFromSource as j}from"./webdoc/webdocLoadUtils.js";const f=new n(2,28),v="Link Chart",y="linkchart",g="link-chart",w={currentVersion:f,createInitialViewProperties:()=>new u,parseVersion:n.parse,itemType:v,name:y,origin:g};let V=class extends(s(e.LoadableMixin(a(o)))){constructor(r){super(r),this.resourceReferences={portalItem:null,paths:[]},this.initialViewProperties=new u,this.portalItem=null,this.sourceVersion=null}load(r){return this.addResolvingPromise(j(w,this)),Promise.resolve(this)}destroy(){const r=this.portalItem;this.portalItem=null,r?.destroy()}initialize(){if(this.when().catch((r=>{i.getLogger(this).error("#load()","Failed to load link chart",r)})),this.resourceInfo){let o;try{o=this._validateJSON(this.resourceInfo)}catch(r){return void this.addResolvingPromise(Promise.reject(r))}this.read(o)}}readSourceVersion(r,o){return n.parse(o.version,y)}writeSourceVersion(r,o,e){o[e]=`${f.major}.${f.minor}`}loadAll(){return t(this,(r=>{r(this.ground,this.basemap,this.layers,this.tables)}))}read(r,o){o={...o,origin:g},d(this,r,(o=>super.read(r,o)),o)}_validateJSON(r){const o=n.parse(r.version||"","link-chart");return f.validate(o),r.version=`${o.major}.${o.minor}`,r}};r([p({type:u,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]}}})],V.prototype,"initialViewProperties",void 0),r([p({json:{read:!1}})],V.prototype,"layers",void 0),r([p()],V.prototype,"linkChartProperties",void 0),r([p({type:h})],V.prototype,"portalItem",void 0),r([p()],V.prototype,"resourceInfo",void 0),r([p({readOnly:!0,type:n,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],V.prototype,"sourceVersion",void 0),r([l("sourceVersion")],V.prototype,"readSourceVersion",null),r([m("sourceVersion")],V.prototype,"writeSourceVersion",null),r([p({json:{read:!1}})],V.prototype,"tables",void 0),V=r([c("esri.LinkChart")],V);const S=V;export{S as default};
5
+ import{_ as r}from"./chunks/tslib.es6.js";import o from"./Map.js";import e from"./core/Loadable.js";import{loadAll as t}from"./core/loadAll.js";import i from"./core/Logger.js";import{MultiOriginJSONMixin as s}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as a}from"./core/Promise.js";import{Version as n}from"./core/Version.js";import{property as p}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import"./core/RandomLCG.js";import{reader as l}from"./core/accessorSupport/decorators/reader.js";import{subclass as c}from"./core/accessorSupport/decorators/subclass.js";import{writer as m}from"./core/accessorSupport/decorators/writer.js";import{readLoadable as d}from"./core/accessorSupport/read.js";import u from"./linkchart/InitialViewProperties.js";import h from"./portal/PortalItem.js";import{loadFromSource as j}from"./webdoc/support/webdocLoadUtils.js";const f=new n(2,28),v="Link Chart",y="linkchart",g="link-chart",w={currentVersion:f,createInitialViewProperties:()=>new u,parseVersion:n.parse,itemType:v,name:y,origin:g};let V=class extends(s(e.LoadableMixin(a(o)))){constructor(r){super(r),this.resourceReferences={portalItem:null,paths:[]},this.initialViewProperties=new u,this.portalItem=null,this.sourceVersion=null}load(r){return this.addResolvingPromise(j(w,this)),Promise.resolve(this)}destroy(){const r=this.portalItem;this.portalItem=null,r?.destroy()}initialize(){if(this.when().catch((r=>{i.getLogger(this).error("#load()","Failed to load link chart",r)})),this.resourceInfo){let o;try{o=this._validateJSON(this.resourceInfo)}catch(r){return void this.addResolvingPromise(Promise.reject(r))}this.read(o)}}readSourceVersion(r,o){return n.parse(o.version,y)}writeSourceVersion(r,o,e){o[e]=`${f.major}.${f.minor}`}loadAll(){return t(this,(r=>{r(this.ground,this.basemap,this.layers,this.tables)}))}read(r,o){o={...o,origin:g},d(this,r,(o=>super.read(r,o)),o)}_validateJSON(r){const o=n.parse(r.version||"","link-chart");return f.validate(o),r.version=`${o.major}.${o.minor}`,r}};r([p({type:u,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference"]}}})],V.prototype,"initialViewProperties",void 0),r([p({json:{read:!1}})],V.prototype,"layers",void 0),r([p()],V.prototype,"linkChartProperties",void 0),r([p({type:h})],V.prototype,"portalItem",void 0),r([p()],V.prototype,"resourceInfo",void 0),r([p({readOnly:!0,type:n,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],V.prototype,"sourceVersion",void 0),r([l("sourceVersion")],V.prototype,"readSourceVersion",null),r([m("sourceVersion")],V.prototype,"writeSourceVersion",null),r([p({json:{read:!1}})],V.prototype,"tables",void 0),V=r([c("esri.LinkChart")],V);const S=V;export{S as default};
package/WebMap.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.29/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{isSome as o}from"./core/arrayUtils.js";import s from"./core/Collection.js";import n from"./core/Error.js";import a from"./core/Loadable.js";import{loadAll as p}from"./core/loadAll.js";import l from"./core/Logger.js";import{destroyMaybe as u}from"./core/maybe.js";import{MultiOriginJSONMixin as m}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as h}from"./core/Promise.js";import{debounce as c}from"./core/promiseUtils.js";import{whenOnce as d}from"./core/reactiveUtils.js";import{addQueryParameter as g,isDataProtocol as f,dataComponents as w}from"./core/urlUtils.js";import{property as y}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import{reader as b}from"./core/accessorSupport/decorators/reader.js";import{subclass as A}from"./core/accessorSupport/decorators/subclass.js";import{writer as S}from"./core/accessorSupport/decorators/writer.js";import{readLoadable as v}from"./core/accessorSupport/read.js";import _ from"./geometry/SpatialReference.js";import j from"./networks/UtilityNetwork.js";import V from"./portal/PortalItem.js";import{TypeKeyword as I}from"./portal/support/portalItemUtils.js";import U from"./support/MapFloorInfo.js";import P from"./webdoc/GeotriggersInfo.js";import{SaveOperationType as O}from"./webdoc/interfaces.js";import k from"./webdoc/RangeInfo.js";import{loadFromSource as L}from"./webdoc/webdocLoadUtils.js";import F from"./webdoc/Widgets.js";import{getOptimalThumbnailSize as N}from"./webdoc/support/thumbnailUtils.js";import{getLayerJSON as R}from"./webdoc/support/writeUtils.js";import T from"./webmap/ApplicationProperties.js";import E from"./webmap/Bookmark.js";import B from"./webmap/InitialViewProperties.js";import{Version as J}from"./webmap/Version.js";import x from"./webmap/background/ColorBackground.js";const M=new J(2,29),Z="Web Map",W="webmap",$="web-map",C=s.ofType(E),G=s.ofType(j),z=new Map([["image/jpeg","jpeg"],["image/jpg","jpg"],["image/png","png"],["image/gif","gif"]]),D="ArcGIS Pro",q=I.JSAPI,H={currentVersion:M,createInitialViewProperties:()=>new B,parseVersion:J.parse,itemType:Z,name:W,origin:$};let K=class extends(m(a.LoadableMixin(h(r)))){constructor(e){super(e),this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1,this._thumbnailFilename=null,this._updateFromPromise=null,this.resourceReferences={portalItem:null,paths:[]},this.applicationProperties=null,this.bookmarks=new C,this.floorInfo=null,this.geotriggersInfo=null,this.initialViewProperties=new B,this.portalItem=null,this.presentation=null,this.sourceVersion=null,this.widgets=null,this.utilityNetworks=null,this._debouncedSaveOperations=c((async(e,t,r)=>{const{save:i,saveAs:o}=await import("./webdoc/webdocSaveUtils.js");switch(e){case O.SAVE:return i(H,this,t);case O.SAVE_AS:return o(H,this,r,t)}})),this.authoringApp=this.authoringAppVersion=null,this._isAuthoringAppSetByUser=this._isAuthoringAppVersionSetByUser=!1}destroy(){if(this.portalItem=u(this.portalItem),this.utilityNetworks){const e=this.utilityNetworks.removeAll();for(const t of e)t.destroy();this.utilityNetworks.destroy()}}initialize(){if(this.when().catch((e=>{l.getLogger(this).error("#load()","Failed to load web map",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t)}}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp=q}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}readInitialViewProperties(e,t){const r=new B;t.background&&(r.background=x.fromJSON(t.background));const o=t.initialState?.viewpoint;if(o){if(o.rotation){J.parse(t.version||"","webmap").lessThan(2,20)&&t.authoringApp===D&&(o.rotation*=-1)}r.viewpoint=i.fromJSON(o)}return t.mapRangeInfo&&(r.rangeInfo=k.fromJSON(t.mapRangeInfo)),t.spatialReference&&(r.spatialReference=_.fromJSON(t.spatialReference)),t.timeZone&&(r.timeZone=t.timeZone),r}writeInitialViewProperties(e,t,r,i){e&&(e.background?.color&&(t.background=e.background.write({},i)),e.viewpoint&&(t.initialState={viewpoint:e.viewpoint.write({},i)}),e.rangeInfo&&(t.mapRangeInfo=e.rangeInfo.toJSON(i)),e.spatialReference&&(t.spatialReference=e.spatialReference.write({},i)),t.timeZone=e.timeZone)}writeLayers(e,t,r,i){t[r]=this._writeLayers(e,i,"operational-layers")}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new J(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${M.major}.${M.minor}`}writeTables(e,t,r,i){const o=this._writeLayers(e,i,"tables");o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem?.thumbnailUrl||null}set thumbnailUrl(e){e?(this._override("thumbnailUrl",e),this._thumbnailFilename=this._generateCustomThumbnailFilename(e)):this._clearThumbnailOverride()}get updatingFromView(){return!!this._updateFromPromise}load(e){return this.addResolvingPromise(L(H,this)),Promise.resolve(this)}loadAll(){return p(this,(e=>{e(this.ground,this.basemap,this.layers,this.tables)}))}read(e,t){t={...t,origin:$};const r=this._getAuthoringPropsState();v(this,e,(t=>super.read(e,t)),t),this._restoreAuthoringPropsFromState(r)}write(e,t){if("loaded"!==this.loadStatus){const e=new n("webmap:not-loaded","Web map must be loaded before it can be serialized");throw l.getLogger(this).error("#toJSON()","Web map must be loaded before it can be serialized",this.loadError||this.loadStatus),e}return this._removeDanglingLayerRefs(),t={...t,origin:$,restrictedWebMapWriting:!0,webmap:this},super.write(e,t)}async save(e){return this._debouncedSaveOperations(O.SAVE,e)}async saveAs(e,t){return this._debouncedSaveOperations(O.SAVE_AS,t,e)}async updateFrom(e,t){const r=this._updateFromInternal(e,t);this._updateFromPromise=r,await r;r===this._updateFromPromise&&(this._updateFromPromise=null)}getLayerJSONFromResourceInfo(e){const t=this.resourceInfo;return this._collectAllLayersJSON([...t?.baseMap?.baseMapLayers||[],...t?.operationalLayers||[],...this.basemap?.resourceInfo?.data?.baseMapLayers||[]]).find((t=>t.id===e.id))}async updateItemThumbnail(){this.thumbnailUrl&&this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl,filename:this._thumbnailFilename})),this._clearThumbnailOverride())}getThumbnailState(){let e=this.thumbnailUrl;return e&&(e=this._isOverridden("thumbnailUrl")?e:g(e,"w","8192")),{thumbnailUrl:e,filename:this._thumbnailFilename}}restoreThumbnailFromState(e){this.thumbnailUrl=e.thumbnailUrl,this._thumbnailFilename=e.filename}_collectAllLayersJSON(e){return e.reduce(((e,t)=>(e.push(t),"GroupLayer"===t.layerType&&(e=e.concat(this._collectAllLayersJSON(t.layers||[]))),e)),[])}_writeLayers(e,t,r){t={...t,layerContainerType:r};return e.map((e=>R(e,"tables"===r?null:this.getLayerJSONFromResourceInfo(e),t))).filter(o).toArray()}_validateJSON(e){const t=J.parse(e.version||"","webmap");return M.validate(t),e.version=`${t.major}.${t.minor}`,e}_removeDanglingLayerRefs(){const e=this.applicationProperties,t=e?.viewing?.search,r=e=>this.allLayers.some((t=>t.id===e));if(t&&t.layers&&(t.layers=t.layers.filter((e=>r(e.id)))),t&&t.tables&&(t.tables=t.tables.filter((e=>this.tables.some((t=>t.id===e.id))))),e){const t=e.editing?.locationTracking;t?.info&&!r(t.info.layerId)&&(e.editing=null)}const i=this.presentation?.slides;i&&i.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>r(e.id))))}))}async _updateFromInternal(e,t){if(t??={},await d((()=>e.ready)),this._updateInitialViewProperties(e,t),e.map===this)for(const r of e.allLayerViews)"visible"in r&&"visible"in r.layer&&r._isOverridden("visible")&&(r.layer.visible=r.visible),"featureEffect"in r&&"featureEffect"in r.layer&&r._isOverridden("featureEffect")&&(r.layer.featureEffect=r.featureEffect);await this._updateThumbnailUrl(e,t)}_updateInitialViewProperties(e,t){if(t.backgroundExcluded||(this.initialViewProperties.background=e.background?.clone()),this.initialViewProperties.spatialReference=e.spatialReference?.clone(),this.initialViewProperties.timeZone=e.timeZone,t.viewpointExcluded||(this.initialViewProperties.viewpoint=new i({rotation:e.rotation,scale:t.scalePreserved?e.scale:null,targetGeometry:this._getViewExtent(e)})),!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this)}_getViewExtent(e){const t=e.center.clone().normalize(),r=e.extent.clone(),i=r.width/2;return r.xmin=t.x-i,r.xmax=t.x+i,r}async _updateThumbnailUrl(e,t){if(t.thumbnailExcluded)return;const r=N(e,t.thumbnailSize),i=await e.takeScreenshot({format:"png",width:r.width,height:r.height});this._setAutoGeneratedThumbnail(i.dataUrl)}_setAutoGeneratedThumbnail(e){this.thumbnailUrl=e,this._thumbnailFilename=null}_clearThumbnailOverride(){this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"),this._thumbnailFilename=null}_generateCustomThumbnailFilename(e){if(f(e)){const t=w(e),r=t?.mediaType,i=r&&z.get(r.toLowerCase())||null,o=`thumbnail${Date.now()}`;return i?`${o}.${i}`:o}return null}_getAuthoringPropsState(){return{authoringApp:this.authoringApp,authoringAppVersion:this.authoringAppVersion,isAuthoringAppSetByUser:this._isAuthoringAppSetByUser,isAuthoringAppVersionSetByUser:this._isAuthoringAppVersionSetByUser}}_restoreAuthoringPropsFromState(e){e.isAuthoringAppSetByUser?this.authoringApp=e.authoringApp:this._isAuthoringAppSetByUser=!1,e.isAuthoringAppVersionSetByUser?this.authoringAppVersion=e.authoringAppVersion:this._isAuthoringAppVersionSetByUser=!1}static fromJSON(e){const t=e;if(!t)throw new n("webmap:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:t})}};K.VERSION=M,e([y()],K.prototype,"_updateFromPromise",void 0),e([y({type:T,json:{write:!0}})],K.prototype,"applicationProperties",void 0),e([y({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],K.prototype,"authoringApp",null),e([S("authoringApp")],K.prototype,"writeAuthoringApp",null),e([y({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],K.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],K.prototype,"writeAuthoringAppVersion",null),e([y({type:C,json:{write:{overridePolicy:e=>({enabled:!!(e&&e.length>0),ignoreOrigin:!0})}}})],K.prototype,"bookmarks",void 0),e([y({type:U,json:{name:"mapFloorInfo",write:!0}})],K.prototype,"floorInfo",void 0),e([y({type:P,json:{write:!0}})],K.prototype,"geotriggersInfo",void 0),e([y({type:B,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference","timeZone"]},write:{ignoreOrigin:!0,target:{background:{type:x},"initialState.viewpoint":{type:i},mapRangeInfo:{type:k},spatialReference:{type:_},"timeZone:":{type:String}}}}})],K.prototype,"initialViewProperties",void 0),e([b("initialViewProperties")],K.prototype,"readInitialViewProperties",null),e([S("initialViewProperties")],K.prototype,"writeInitialViewProperties",null),e([y({json:{read:!1,write:{target:"operationalLayers",ignoreOrigin:!0}}})],K.prototype,"layers",void 0),e([S("layers")],K.prototype,"writeLayers",null),e([y({type:V})],K.prototype,"portalItem",void 0),e([y({json:{write:!0}})],K.prototype,"presentation",void 0),e([y()],K.prototype,"resourceInfo",void 0),e([y({readOnly:!0,type:J,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],K.prototype,"sourceVersion",void 0),e([b("sourceVersion")],K.prototype,"readSourceVersion",null),e([S("sourceVersion")],K.prototype,"writeSourceVersion",null),e([y({json:{read:!1,write:{ignoreOrigin:!0}}})],K.prototype,"tables",void 0),e([S("tables")],K.prototype,"writeTables",null),e([y()],K.prototype,"thumbnailUrl",null),e([y()],K.prototype,"updatingFromView",null),e([y({type:F,json:{write:!0}})],K.prototype,"widgets",void 0),e([y({type:G,json:{read:!0,write:!0}})],K.prototype,"utilityNetworks",void 0),K=e([A("esri.WebMap")],K);const Q=K;export{Q 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{isSome as o}from"./core/arrayUtils.js";import s from"./core/Collection.js";import n from"./core/Error.js";import a from"./core/Loadable.js";import{loadAll as p}from"./core/loadAll.js";import l from"./core/Logger.js";import{destroyMaybe as u}from"./core/maybe.js";import{MultiOriginJSONMixin as m}from"./core/MultiOriginJSONSupport.js";import{EsriPromiseMixin as h}from"./core/Promise.js";import{debounce as c}from"./core/promiseUtils.js";import{whenOnce as d}from"./core/reactiveUtils.js";import{addQueryParameter as g,isDataProtocol as f,dataComponents as w}from"./core/urlUtils.js";import{property as y}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import{reader as b}from"./core/accessorSupport/decorators/reader.js";import{subclass as A}from"./core/accessorSupport/decorators/subclass.js";import{writer as S}from"./core/accessorSupport/decorators/writer.js";import{readLoadable as v}from"./core/accessorSupport/read.js";import _ from"./geometry/SpatialReference.js";import j from"./networks/UtilityNetwork.js";import V from"./portal/PortalItem.js";import{TypeKeyword as I}from"./portal/support/portalItemUtils.js";import U from"./support/MapFloorInfo.js";import P from"./webdoc/GeotriggersInfo.js";import{SaveOperationType as O}from"./webdoc/interfaces.js";import k from"./webdoc/RangeInfo.js";import L from"./webdoc/Widgets.js";import{getOptimalThumbnailSize as F}from"./webdoc/support/thumbnailUtils.js";import{loadFromSource as N}from"./webdoc/support/webdocLoadUtils.js";import{getLayerJSON as R}from"./webdoc/support/writeUtils.js";import T from"./webmap/ApplicationProperties.js";import E from"./webmap/Bookmark.js";import B from"./webmap/InitialViewProperties.js";import{Version as J}from"./webmap/Version.js";import x from"./webmap/background/ColorBackground.js";const M=new J(2,29),Z="Web Map",W="webmap",$="web-map",C=s.ofType(E),G=s.ofType(j),z=new Map([["image/jpeg","jpeg"],["image/jpg","jpg"],["image/png","png"],["image/gif","gif"]]),D="ArcGIS Pro",q=I.JSAPI,H={currentVersion:M,createInitialViewProperties:()=>new B,parseVersion:J.parse,itemType:Z,name:W,origin:$};let K=class extends(m(a.LoadableMixin(h(r)))){constructor(e){super(e),this._isAuthoringAppSetByUser=!1,this._isAuthoringAppVersionSetByUser=!1,this._thumbnailFilename=null,this._updateFromPromise=null,this.resourceReferences={portalItem:null,paths:[]},this.applicationProperties=null,this.bookmarks=new C,this.floorInfo=null,this.geotriggersInfo=null,this.initialViewProperties=new B,this.portalItem=null,this.presentation=null,this.sourceVersion=null,this.widgets=null,this.utilityNetworks=null,this._debouncedSaveOperations=c((async(e,t,r)=>{const{save:i,saveAs:o}=await import("./webdoc/support/webdocSaveUtils.js");switch(e){case O.SAVE:return i(H,this,t);case O.SAVE_AS:return o(H,this,r,t)}})),this.authoringApp=this.authoringAppVersion=null,this._isAuthoringAppSetByUser=this._isAuthoringAppVersionSetByUser=!1}destroy(){if(this.portalItem=u(this.portalItem),this.utilityNetworks){const e=this.utilityNetworks.removeAll();for(const t of e)t.destroy();this.utilityNetworks.destroy()}}initialize(){if(this.when().catch((e=>{l.getLogger(this).error("#load()","Failed to load web map",e)})),this.resourceInfo){let t;try{t=this._validateJSON(this.resourceInfo)}catch(e){return void this.addResolvingPromise(Promise.reject(e))}this.read(t)}}set authoringApp(e){this._isAuthoringAppSetByUser=!0,this._set("authoringApp",e)}writeAuthoringApp(e,t){e&&this._isAuthoringAppSetByUser?t.authoringApp=e:t.authoringApp=q}set authoringAppVersion(e){this._isAuthoringAppVersionSetByUser=!0,this._set("authoringAppVersion",e)}writeAuthoringAppVersion(e,r){e&&this._isAuthoringAppVersionSetByUser?r.authoringAppVersion=e:r.authoringAppVersion=t}readInitialViewProperties(e,t){const r=new B;t.background&&(r.background=x.fromJSON(t.background));const o=t.initialState?.viewpoint;if(o){if(o.rotation){J.parse(t.version||"","webmap").lessThan(2,20)&&t.authoringApp===D&&(o.rotation*=-1)}r.viewpoint=i.fromJSON(o)}return t.mapRangeInfo&&(r.rangeInfo=k.fromJSON(t.mapRangeInfo)),t.spatialReference&&(r.spatialReference=_.fromJSON(t.spatialReference)),t.timeZone&&(r.timeZone=t.timeZone),r}writeInitialViewProperties(e,t,r,i){e&&(e.background?.color&&(t.background=e.background.write({},i)),e.viewpoint&&(t.initialState={viewpoint:e.viewpoint.write({},i)}),e.rangeInfo&&(t.mapRangeInfo=e.rangeInfo.toJSON(i)),e.spatialReference&&(t.spatialReference=e.spatialReference.write({},i)),t.timeZone=e.timeZone)}writeLayers(e,t,r,i){t[r]=this._writeLayers(e,i,"operational-layers")}readSourceVersion(e,t){const[r,i]=t.version.split(".");return new J(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${M.major}.${M.minor}`}writeTables(e,t,r,i){const o=this._writeLayers(e,i,"tables");o.length&&(t[r]=o)}get thumbnailUrl(){return this.portalItem?.thumbnailUrl||null}set thumbnailUrl(e){e?(this._override("thumbnailUrl",e),this._thumbnailFilename=this._generateCustomThumbnailFilename(e)):this._clearThumbnailOverride()}get updatingFromView(){return!!this._updateFromPromise}load(e){return this.addResolvingPromise(N(H,this)),Promise.resolve(this)}loadAll(){return p(this,(e=>{e(this.ground,this.basemap,this.layers,this.tables)}))}read(e,t){t={...t,origin:$};const r=this._getAuthoringPropsState();v(this,e,(t=>super.read(e,t)),t),this._restoreAuthoringPropsFromState(r)}write(e,t){if("loaded"!==this.loadStatus){const e=new n("webmap:not-loaded","Web map must be loaded before it can be serialized");throw l.getLogger(this).error("#toJSON()","Web map must be loaded before it can be serialized",this.loadError||this.loadStatus),e}return this._removeDanglingLayerRefs(),t={...t,origin:$,restrictedWebMapWriting:!0,webmap:this},super.write(e,t)}async save(e){return this._debouncedSaveOperations(O.SAVE,e)}async saveAs(e,t){return this._debouncedSaveOperations(O.SAVE_AS,t,e)}async updateFrom(e,t){const r=this._updateFromInternal(e,t);this._updateFromPromise=r,await r;r===this._updateFromPromise&&(this._updateFromPromise=null)}getLayerJSONFromResourceInfo(e){const t=this.resourceInfo;return this._collectAllLayersJSON([...t?.baseMap?.baseMapLayers||[],...t?.operationalLayers||[],...this.basemap?.resourceInfo?.data?.baseMapLayers||[]]).find((t=>t.id===e.id))}async updateItemThumbnail(){this.thumbnailUrl&&this._isOverridden("thumbnailUrl")&&(await(this.portalItem?.updateThumbnail({thumbnail:this.thumbnailUrl,filename:this._thumbnailFilename})),this._clearThumbnailOverride())}getThumbnailState(){let e=this.thumbnailUrl;return e&&(e=this._isOverridden("thumbnailUrl")?e:g(e,"w","8192")),{thumbnailUrl:e,filename:this._thumbnailFilename}}restoreThumbnailFromState(e){this.thumbnailUrl=e.thumbnailUrl,this._thumbnailFilename=e.filename}_collectAllLayersJSON(e){return e.reduce(((e,t)=>(e.push(t),"GroupLayer"===t.layerType&&(e=e.concat(this._collectAllLayersJSON(t.layers||[]))),e)),[])}_writeLayers(e,t,r){t={...t,layerContainerType:r};return e.map((e=>R(e,"tables"===r?null:this.getLayerJSONFromResourceInfo(e),t))).filter(o).toArray()}_validateJSON(e){const t=J.parse(e.version||"","webmap");return M.validate(t),e.version=`${t.major}.${t.minor}`,e}_removeDanglingLayerRefs(){const e=this.applicationProperties,t=e?.viewing?.search,r=e=>this.allLayers.some((t=>t.id===e));if(t&&t.layers&&(t.layers=t.layers.filter((e=>r(e.id)))),t&&t.tables&&(t.tables=t.tables.filter((e=>this.tables.some((t=>t.id===e.id))))),e){const t=e.editing?.locationTracking;t?.info&&!r(t.info.layerId)&&(e.editing=null)}const i=this.presentation?.slides;i&&i.forEach((e=>{e.visibleLayers&&(e.visibleLayers=e.visibleLayers.filter((e=>r(e.id))))}))}async _updateFromInternal(e,t){if(t??={},await d((()=>e.ready)),this._updateInitialViewProperties(e,t),e.map===this)for(const r of e.allLayerViews)"visible"in r&&"visible"in r.layer&&r._isOverridden("visible")&&(r.layer.visible=r.visible),"featureEffect"in r&&"featureEffect"in r.layer&&r._isOverridden("featureEffect")&&(r.layer.featureEffect=r.featureEffect);await this._updateThumbnailUrl(e,t)}_updateInitialViewProperties(e,t){if(t.backgroundExcluded||(this.initialViewProperties.background=e.background?.clone()),this.initialViewProperties.spatialReference=e.spatialReference?.clone(),this.initialViewProperties.timeZone=e.timeZone,t.viewpointExcluded||(this.initialViewProperties.viewpoint=new i({rotation:e.rotation,scale:t.scalePreserved?e.scale:null,targetGeometry:this._getViewExtent(e)})),!t.widgetsExcluded)for(const r of e.persistableViewModels)r.updateWebDocument(this)}_getViewExtent(e){const t=e.center.clone().normalize(),r=e.extent.clone(),i=r.width/2;return r.xmin=t.x-i,r.xmax=t.x+i,r}async _updateThumbnailUrl(e,t){if(t.thumbnailExcluded)return;const r=F(e,t.thumbnailSize),i=await e.takeScreenshot({format:"png",width:r.width,height:r.height});this._setAutoGeneratedThumbnail(i.dataUrl)}_setAutoGeneratedThumbnail(e){this.thumbnailUrl=e,this._thumbnailFilename=null}_clearThumbnailOverride(){this._clearOverride("thumbnailUrl"),this.clear("thumbnailUrl","user"),this._thumbnailFilename=null}_generateCustomThumbnailFilename(e){if(f(e)){const t=w(e),r=t?.mediaType,i=r&&z.get(r.toLowerCase())||null,o=`thumbnail${Date.now()}`;return i?`${o}.${i}`:o}return null}_getAuthoringPropsState(){return{authoringApp:this.authoringApp,authoringAppVersion:this.authoringAppVersion,isAuthoringAppSetByUser:this._isAuthoringAppSetByUser,isAuthoringAppVersionSetByUser:this._isAuthoringAppVersionSetByUser}}_restoreAuthoringPropsFromState(e){e.isAuthoringAppSetByUser?this.authoringApp=e.authoringApp:this._isAuthoringAppSetByUser=!1,e.isAuthoringAppVersionSetByUser?this.authoringAppVersion=e.authoringAppVersion:this._isAuthoringAppVersionSetByUser=!1}static fromJSON(e){const t=e;if(!t)throw new n("webmap:empty-resource","Expected a JSON resource but got nothing");return new this({resourceInfo:t})}};K.VERSION=M,e([y()],K.prototype,"_updateFromPromise",void 0),e([y({type:T,json:{write:!0}})],K.prototype,"applicationProperties",void 0),e([y({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],K.prototype,"authoringApp",null),e([S("authoringApp")],K.prototype,"writeAuthoringApp",null),e([y({type:String,json:{write:{allowNull:!0,ignoreOrigin:!0}}})],K.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],K.prototype,"writeAuthoringAppVersion",null),e([y({type:C,json:{write:{overridePolicy:e=>({enabled:!!(e&&e.length>0),ignoreOrigin:!0})}}})],K.prototype,"bookmarks",void 0),e([y({type:U,json:{name:"mapFloorInfo",write:!0}})],K.prototype,"floorInfo",void 0),e([y({type:P,json:{write:!0}})],K.prototype,"geotriggersInfo",void 0),e([y({type:B,nonNullable:!0,json:{read:{source:["background","initialState.viewpoint","mapRangeInfo","spatialReference","timeZone"]},write:{ignoreOrigin:!0,target:{background:{type:x},"initialState.viewpoint":{type:i},mapRangeInfo:{type:k},spatialReference:{type:_},"timeZone:":{type:String}}}}})],K.prototype,"initialViewProperties",void 0),e([b("initialViewProperties")],K.prototype,"readInitialViewProperties",null),e([S("initialViewProperties")],K.prototype,"writeInitialViewProperties",null),e([y({json:{read:!1,write:{target:"operationalLayers",ignoreOrigin:!0}}})],K.prototype,"layers",void 0),e([S("layers")],K.prototype,"writeLayers",null),e([y({type:V})],K.prototype,"portalItem",void 0),e([y({json:{write:!0}})],K.prototype,"presentation",void 0),e([y()],K.prototype,"resourceInfo",void 0),e([y({readOnly:!0,type:J,json:{read:{source:"version"},write:{allowNull:!0,ignoreOrigin:!0,target:"version",isRequired:!0}}})],K.prototype,"sourceVersion",void 0),e([b("sourceVersion")],K.prototype,"readSourceVersion",null),e([S("sourceVersion")],K.prototype,"writeSourceVersion",null),e([y({json:{read:!1,write:{ignoreOrigin:!0}}})],K.prototype,"tables",void 0),e([S("tables")],K.prototype,"writeTables",null),e([y()],K.prototype,"thumbnailUrl",null),e([y()],K.prototype,"updatingFromView",null),e([y({type:L,json:{write:!0}})],K.prototype,"widgets",void 0),e([y({type:G,json:{read:!0,write:!0}})],K.prototype,"utilityNetworks",void 0),K=e([A("esri.WebMap")],K);const Q=K;export{Q as default};
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.29/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 u}from"./core/Promise.js";import{debounce as m}from"./core/promiseUtils.js";import{on as y}from"./core/reactiveUtils.js";import{urlToObject as w,addQueryParameter as f}from"./core/urlUtils.js";import{property as g}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import{reader as b}from"./core/accessorSupport/decorators/reader.js";import{subclass as v}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 R from"./geometry/SpatialReference.js";import{validateWebSceneError as P}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as V}from"./geometry/support/jsonUtils.js";import{isEarth as O}from"./geometry/support/spatialReferenceUtils.js";import U from"./portal/Portal.js";import M from"./portal/PortalItem.js";import{createForItemWrite as E}from"./portal/support/jsonContext.js";import{toggleTypeKeword as C,TypeKeyword as N}from"./portal/support/portalItemUtils.js";import{hasDeveloperBasemapLayer as T}from"./support/basemapUtils.js";import G from"./support/MapFloorInfo.js";import{WebSceneTag as F}from"./support/tagSymbols.js";import{createSchemaValidationError as J,createCopyError as x}from"./support/webSceneUtils.js";import{ViewingMode as $}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as W}from"./views/support/spatialReferenceSupport.js";import{SaveOperationType as B}from"./webdoc/interfaces.js";import{validateSaveAPIKey as k}from"./webdoc/saveAPIKeyUtils.js";import{updateItemWithResources as q,saveResources as D}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as K}from"./webdoc/support/thumbnailUtils.js";import H from"./webscene/ApplicationProperties.js";import z from"./webscene/Environment.js";import Q from"./webscene/InitialViewProperties.js";import X from"./webscene/Presentation.js";import Y from"./webscene/TransportationNetwork.js";import{Version as Z}from"./webscene/Version.js";import{getLoader as ee}from"./webscene/support/schemaValidatorLoader.js";var te;const re=new Z(1,33),ie=()=>{const e=8,t=[],r=re.major;for(let i=e;i<=re.minor;i++)t.push(`${r}.${i}`);return t},oe="Web Scene";let se=class extends(n.LoadableMixin(u(d(r)))){constructor(e){super(e),this[te]=!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 X,this.initialViewProperties=new Q,this.portalItem=null,this.resourceInfo=null,this._debouncedSaveOperations=m((async(e,t,r)=>{switch(e){case B.SAVE:return this._saveImpl(t);case B.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 Z(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${re.major}.${re.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=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)),new Q(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()}))),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?.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(B.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(k(this.portalItem),this.portalItem?.type!==oe)throw new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${oe}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls(E(this.portalItem,"web-scene",!0)),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,e),this._updateTypeKeywords(this.portalItem),await q(this.portalItem,i,this._resourceReferences,r,null),_(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(B.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=M.from(e);if(!r)throw new s("webscene:portal-item-required","saveAs requires a portal item to save to");k(r),r.id&&(r=r.clone(),r.id=null);const i=r.portal||U.getDefault();await this._ensureLoadBeforeSave(),r.type=oe,r.portal=i;const o=this._enableVerifyItemRelativeUrls(E(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");return await i.user.addItem({item:r,folder:t?.folder,data:a}),await D(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?f(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=ee();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 J(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(x()):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=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,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=K(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||U.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||U.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(!W(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(!W(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()}_validateJSON(e){const t=Z.parse(e.version||"","webscene");return re.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=R.WebMercator.toJSON()),e}_updateTypeKeywords(e){C(e,N.LOCAL_SCENE,"local"===this.initialViewProperties.viewingMode),C(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||R.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?.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})}};te=F,se.version=`${re.major}.${re.minor}`,e([g({type:H,json:{write:!0}})],se.prototype,"applicationProperties",void 0),e([g({type:I,json:{read:{source:"clippingArea.geometry",reader:V},write:{target:"clippingArea.geometry"}}})],se.prototype,"clippingArea",void 0),e([S("clippingArea")],se.prototype,"writeClippingArea",null),e([g({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],se.prototype,"clippingEnabled",void 0),e([b("clippingEnabled",["clippingArea"])],se.prototype,"readClippingEnabled",null),e([S("clippingEnabled")],se.prototype,"writeClippingEnabled",null),e([g({type:G,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],se.prototype,"floorInfo",void 0),e([g({type:j,json:{write:!0}})],se.prototype,"heightModelInfo",void 0),e([g({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],se.prototype,"layers",void 0),e([S("layers")],se.prototype,"writeLayers",null),e([g({readOnly:!0,type:Z,json:{type:ie(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],se.prototype,"sourceVersion",void 0),e([b("sourceVersion",["version"])],se.prototype,"readSourceVersion",null),e([S("sourceVersion")],se.prototype,"writeSourceVersion",null),e([g({json:{read:!1,write:{enabled:!0,ignoreOrigin:!0}}})],se.prototype,"tables",void 0),e([S("tables")],se.prototype,"writeTables",null),e([g()],se.prototype,"thumbnailUrl",null),e([g({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],se.prototype,"authoringApp",null),e([S("authoringApp")],se.prototype,"writeAuthoringApp",null),e([g({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],se.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],se.prototype,"writeAuthoringAppVersion",null),e([g({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],se.prototype,"ground",void 0),e([S("ground")],se.prototype,"writeGround",null),e([g({type:o.ofType(Y),json:{write:!0}})],se.prototype,"transportationNetworks",void 0),e([g({type:X,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)}}}}})],se.prototype,"presentation",void 0),e([g({type:Q,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new Q({viewingMode:"global",spatialReference:R.WebMercator})}})],se.prototype,"initialViewProperties",void 0),e([b("initialViewProperties",["initialState.environment","initialState.viewpoint","spatialReference","viewingMode"])],se.prototype,"readInitialViewProperties",null),e([g({type:R,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],se.prototype,"spatialReference",null),e([g({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],se.prototype,"viewingMode",null),e([g({type:M})],se.prototype,"portalItem",void 0),e([g()],se.prototype,"resourceInfo",void 0),se=e([v("esri.WebScene")],se);const ae=se;export{ae 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 f}from"./core/urlUtils.js";import{property as g}from"./core/accessorSupport/decorators/property.js";import"./core/has.js";import{reader as b}from"./core/accessorSupport/decorators/reader.js";import{subclass as v}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 R from"./geometry/SpatialReference.js";import{validateWebSceneError as P}from"./geometry/support/heightModelInfoUtils.js";import{fromJSON as U}from"./geometry/support/jsonUtils.js";import{isEarth as V}from"./geometry/support/spatialReferenceUtils.js";import O from"./portal/Portal.js";import M from"./portal/PortalItem.js";import{createForItemWrite as E}from"./portal/support/jsonContext.js";import{toggleTypeKeword as C,TypeKeyword as N}from"./portal/support/portalItemUtils.js";import{hasDeveloperBasemapLayer as T}from"./support/basemapUtils.js";import G from"./support/MapFloorInfo.js";import{WebSceneTag as F}from"./support/tagSymbols.js";import{createSchemaValidationError as J,createCopyError as x}from"./support/webSceneUtils.js";import{ViewingMode as $}from"./views/ViewingMode.js";import{isSpatialReferenceSupported as W}from"./views/support/spatialReferenceSupport.js";import{SaveOperationType as B}from"./webdoc/interfaces.js";import{updateItemWithResources as q,saveResources as k}from"./webdoc/support/resourceUtils.js";import{validateSaveAPIKey as D}from"./webdoc/support/saveAPIKeyUtils.js";import{evaluateWriteErrors as K}from"./webdoc/support/saveUtils.js";import{getOptimalThumbnailSize as H}from"./webdoc/support/thumbnailUtils.js";import z from"./webscene/ApplicationProperties.js";import Q from"./webscene/Environment.js";import X from"./webscene/InitialViewProperties.js";import Y from"./webscene/Presentation.js";import Z from"./webscene/TransportationNetwork.js";import{Version as ee}from"./webscene/Version.js";import{getLoader as te}from"./webscene/support/schemaValidatorLoader.js";var re;const ie=new ee(1,33),oe=()=>{const e=8,t=[],r=ie.major;for(let i=e;i<=ie.minor;i++)t.push(`${r}.${i}`);return t},se="Web Scene";let ae=class extends(n.LoadableMixin(m(d(r)))){constructor(e){super(e),this[re]=!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 Y,this.initialViewProperties=new X,this.portalItem=null,this.resourceInfo=null,this._debouncedSaveOperations=u((async(e,t,r)=>{switch(e){case B.SAVE:return this._saveImpl(t);case B.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 ee(parseInt(r,10),parseInt(i,10))}writeSourceVersion(e,t,r){t[r]=`${ie.major}.${ie.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=Q.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)),new X(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()}))),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?.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(B.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(D(this.portalItem),this.portalItem?.type!==se)throw new s("webscene:portal-item-wrong-type",`Portal item needs to have type "${se}"`);const t=this._updateFromPromise;await this._ensureLoadBeforeSave();const r=this._enableVerifyItemRelativeUrls(E(this.portalItem,"web-scene",!0)),i=this.write({},r);return await Promise.all(r.resources.pendingOperations),await this._verifySave(i,r,e),this._updateTypeKeywords(this.portalItem),await q(this.portalItem,i,this._resourceReferences,r,null),_(r),t&&await t,await this._saveThumbnail(),this.portalItem}async saveAs(e,t){return this._debouncedSaveOperations(B.SAVE_AS,t,e)}async _saveAsImpl(e,t){let r=M.from(e);if(!r)throw new s("webscene:portal-item-required","saveAs requires a portal item to save to");D(r),r.id&&(r=r.clone(),r.id=null);const i=r.portal||O.getDefault();await this._ensureLoadBeforeSave(),r.type=se,r.portal=i;const o=this._enableVerifyItemRelativeUrls(E(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");return await i.user.addItem({item:r,folder: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?f(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=!1){if(!V(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}=r||{};K(t,{errorName:"webscene:save"},{ignoreUnsupported:o,supplementalUnsupportedErrors:["scenemodification:unsupported"],requiredPropertyChecksDisabled:a});const l=te();if(n&&l){const t=(await l()).validate(e);if(!t.length)return;const r=`webscene did not validate:\n${t.join("\n")}`;p.getLogger(this).error(`${i?"saveAs":"save"}(): ${r}`);const o=t.map((e=>new s("webscene:schema-validation",e)));throw J(o)}}_verifySaveAs(e,t,r){return this.canNotSaveAs(t)?Promise.reject(x()):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=Q.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=H(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||O.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||O.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(!W(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(!W(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()}_validateJSON(e){const t=ee.parse(e.version||"","webscene");return ie.validate(t),e.version=`${t.major}.${t.minor}`,1===t.major&&t.minor<=2&&(e.spatialReference=R.WebMercator.toJSON()),e}_updateTypeKeywords(e){C(e,N.LOCAL_SCENE,"local"===this.initialViewProperties.viewingMode),C(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||R.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?.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})}};re=F,ae.version=`${ie.major}.${ie.minor}`,e([g({type:z,json:{write:!0}})],ae.prototype,"applicationProperties",void 0),e([g({type:I,json:{read:{source:"clippingArea.geometry",reader:U},write:{target:"clippingArea.geometry"}}})],ae.prototype,"clippingArea",void 0),e([S("clippingArea")],ae.prototype,"writeClippingArea",null),e([g({type:Boolean,json:{write:{target:"clippingArea.clip"}}})],ae.prototype,"clippingEnabled",void 0),e([b("clippingEnabled",["clippingArea"])],ae.prototype,"readClippingEnabled",null),e([S("clippingEnabled")],ae.prototype,"writeClippingEnabled",null),e([g({type:G,json:{read:{source:"mapFloorInfo"},write:{target:"mapFloorInfo"}}})],ae.prototype,"floorInfo",void 0),e([g({type:j,json:{write:!0}})],ae.prototype,"heightModelInfo",void 0),e([g({json:{write:{target:"operationalLayers",ignoreOrigin:!0}}})],ae.prototype,"layers",void 0),e([S("layers")],ae.prototype,"writeLayers",null),e([g({readOnly:!0,type:ee,json:{type:oe(),write:{ignoreOrigin:!0,target:"version",isRequired:!0,overridePolicy:()=>({enabled:!0,allowNull:!0,ignoreOrigin:!0})}}})],ae.prototype,"sourceVersion",void 0),e([b("sourceVersion",["version"])],ae.prototype,"readSourceVersion",null),e([S("sourceVersion")],ae.prototype,"writeSourceVersion",null),e([g({json:{read:!1,write:{enabled:!0,ignoreOrigin:!0}}})],ae.prototype,"tables",void 0),e([S("tables")],ae.prototype,"writeTables",null),e([g()],ae.prototype,"thumbnailUrl",null),e([g({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ae.prototype,"authoringApp",null),e([S("authoringApp")],ae.prototype,"writeAuthoringApp",null),e([g({type:String,json:{write:{writerEnsuresNonNull:!0,ignoreOrigin:!0}}})],ae.prototype,"authoringAppVersion",null),e([S("authoringAppVersion")],ae.prototype,"writeAuthoringAppVersion",null),e([g({json:{write:{isRequired:!0,allowNull:!0,ignoreOrigin:!0,enabled:!0}}})],ae.prototype,"ground",void 0),e([S("ground")],ae.prototype,"writeGround",null),e([g({type:o.ofType(Z),json:{write:!0}})],ae.prototype,"transportationNetworks",void 0),e([g({type:Y,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)}}}}})],ae.prototype,"presentation",void 0),e([g({type:X,nonNullable:!0,json:{write:{target:"initialState",isRequired:!0,ignoreOrigin:!0},default:()=>new X({viewingMode:"global",spatialReference:R.WebMercator})}})],ae.prototype,"initialViewProperties",void 0),e([b("initialViewProperties",["initialState.environment","initialState.viewpoint","spatialReference","viewingMode"])],ae.prototype,"readInitialViewProperties",null),e([g({type:R,json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ae.prototype,"spatialReference",null),e([g({type:["local","global"],json:{read:!1,write:{isRequired:!0,ignoreOrigin:!0}}})],ae.prototype,"viewingMode",null),e([g({type:M})],ae.prototype,"portalItem",void 0),e([g()],ae.prototype,"resourceInfo",void 0),ae=e([v("esri.WebScene")],ae);const ne=ae;export{ne as default};