@arcgis/core 4.33.0-next.20250319 → 4.33.0-next.20250321

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 (111) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/1034155c525d2b7baaa1.js +1 -0
  3. package/assets/esri/core/workers/chunks/2b9ce6648823f6962f58.js +1 -0
  4. package/assets/esri/core/workers/chunks/{6a97bdd46715fc12e1b4.js → 9cfce9414b874878d761.js} +4 -4
  5. package/assets/esri/core/workers/chunks/b23d16745674486ddd6c.js +1 -0
  6. package/assets/esri/core/workers/chunks/bfbb118ae3b4a4ce1c74.js +319 -0
  7. package/assets/esri/themes/base/_mixins.scss +4 -0
  8. package/assets/esri/themes/dark/main.css +1 -1
  9. package/assets/esri/themes/light/main.css +1 -1
  10. package/assets/esri/themes/light/view.css +1 -1
  11. package/chunks/BloomBlur.glsl.js +7 -7
  12. package/chunks/BloomComposition.glsl.js +2 -2
  13. package/geometry/support/buffer/BufferView.js +1 -1
  14. package/interfaces.d.ts +8 -7
  15. package/layers/VoxelWasmPerSceneView.js +1 -1
  16. package/package.json +2 -2
  17. package/support/basemapUtils.js +1 -1
  18. package/support/revision.js +1 -1
  19. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  20. package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
  21. package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
  22. package/views/3d/layers/BuildingSublayerView3D.js +1 -1
  23. package/views/3d/layers/I3SMeshView3D.js +1 -1
  24. package/views/3d/layers/I3SMeshViewLabeler.js +1 -1
  25. package/views/3d/layers/MediaLayerView3D.js +1 -1
  26. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  27. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  28. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  29. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  30. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  31. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  32. package/views/3d/layers/graphics/Graphics3DGraphicsPipeline.js +1 -1
  33. package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
  34. package/views/3d/layers/graphics/Graphics3DLineCalloutSymbolLayer.js +1 -1
  35. package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
  36. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  37. package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
  38. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  39. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  40. package/views/3d/layers/graphics/Graphics3DSymbolCreationContext.js +1 -1
  41. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  42. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  43. package/views/3d/layers/graphics/Labeler.js +1 -1
  44. package/views/3d/layers/graphics/deconflictorDebug.js +1 -1
  45. package/views/3d/layers/graphics/pipeline/Feature3DPipeline.js +1 -1
  46. package/views/3d/layers/graphics/pipeline/rendering/DirectRenderer.js +1 -1
  47. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  48. package/views/3d/layers/graphics/pipeline/rendering/LodRenderer.js +1 -1
  49. package/views/3d/layers/graphics/pointUtils.js +1 -1
  50. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  51. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  52. package/views/3d/layers/i3s/Intersector.js +1 -1
  53. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  54. package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
  55. package/views/3d/layers/support/Tiles3DIntersectionHandler.js +1 -1
  56. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  57. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  58. package/views/3d/support/hitTest.js +1 -1
  59. package/views/3d/terrain/OverlayRenderTargets.js +1 -1
  60. package/views/3d/terrain/TerrainRenderer.js +1 -1
  61. package/views/3d/webgl/ManagedColorAttachment.js +1 -1
  62. package/views/3d/webgl/ManagedDepthAttachment.js +1 -1
  63. package/views/3d/webgl/ManagedFBO.js +1 -1
  64. package/views/3d/webgl/ManagedFBOAttachment.js +1 -1
  65. package/views/3d/webgl/{ManagedFBObject.js → ManagedFBOResource.js} +1 -1
  66. package/views/3d/webgl/formats.js +1 -1
  67. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  68. package/views/3d/webgl-engine/effects/bloom/BloomBlur.glsl.js +1 -1
  69. package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
  70. package/views/3d/webgl-engine/effects/bloom/BloomPresets.glsl.js +5 -0
  71. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  72. package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
  73. package/views/3d/webgl-engine/effects/focusArea/FocusAreaColorNode.js +1 -1
  74. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  75. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  76. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  77. package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
  78. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  79. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  80. package/views/3d/webgl-engine/lib/IntersectorInterfaces.js +1 -1
  81. package/views/3d/webgl-engine/lib/IntersectorTarget.js +1 -1
  82. package/views/3d/webgl-engine/lib/MainFramebuffer.js +1 -1
  83. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  84. package/views/3d/webgl-engine/lib/ObjectAndLayerIdRenderHelper.js +1 -1
  85. package/views/3d/webgl-engine/lib/RenderGeometry.js +1 -1
  86. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  87. package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
  88. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  89. package/views/3d/webgl-engine/lib/ViewshedShadowMap.js +1 -1
  90. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  91. package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
  92. package/views/3d/webgl-engine/lib/lodRendering/Intersector.js +1 -1
  93. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  94. package/views/3d/webgl-engine/lib/lodRendering/LodResources.js +1 -1
  95. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  96. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  97. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  98. package/views/3d/webgl.js +1 -1
  99. package/views/SceneView.js +1 -1
  100. package/views/webgl/FramebufferObject.js +1 -1
  101. package/views/webgl/GLObjectType.js +1 -1
  102. package/views/webgl/Renderbuffer.js +1 -1
  103. package/widgets/Daylight.js +1 -1
  104. package/widgets/ElevationProfile/support/visualizationUtils.js +1 -1
  105. package/widgets/ShadowCast.js +1 -1
  106. package/widgets/support/globalCss.js +1 -1
  107. package/widgets/support/timeWidgetUtils.js +1 -1
  108. package/assets/esri/core/workers/chunks/534f3d7e4300b662191a.js +0 -1
  109. package/assets/esri/core/workers/chunks/657ae4a0461d45044b28.js +0 -1
  110. package/assets/esri/core/workers/chunks/8e20ec4e8e2cfc582fe7.js +0 -319
  111. package/assets/esri/core/workers/chunks/c528a2ca3b1b73df5a5d.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../Camera.js";import i from"../Viewpoint.js";import r from"../core/Collection.js";import{byId as s}from"../core/domUtils.js";import n from"../core/Error.js";import{on as a}from"../core/events.js";import{makeHandle as o}from"../core/handleUtils.js";import has from"../core/has.js";import l from"../core/Logger.js";import{destroyMaybe as p,maybeProperty as h}from"../core/maybe.js";import{ObservableChangesType as d}from"../core/ObservableChangesType.js";import{throwIfAborted as c}from"../core/promiseUtils.js";import{on as u,watch as g,initial as m,syncAndInitial as y,whenOnce as f,sync as w}from"../core/reactiveUtils.js";import{setFrameDuration as v}from"../core/scheduling.js";import{createScreenPoint as _,createScreenPointArray as b}from"../core/screenUtils.js";import{getMetersPerUnitForSR as M}from"../core/unitUtils.js";import{initialize as S}from"../core/workers/workers.js";import{property as V}from"../core/accessorSupport/decorators/property.js";import{cast as j}from"../core/accessorSupport/decorators/cast.js";import"../core/RandomLCG.js";import{subclass as R}from"../core/accessorSupport/decorators/subclass.js";import{ensureType as C,ensureClass as O}from"../core/accessorSupport/ensureType.js";import{overrideDefaultsFrom as T}from"../core/accessorSupport/overrideDefaultsFrom.js";import{create as x}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{owningCollectionProperty as E}from"../core/support/OwningCollection.js";import L from"../geometry/Extent.js";import H from"../geometry/HeightModelInfo.js";import P from"../geometry/Point.js";import{canProjectWithoutEngine as A,project as I}from"../geometry/projection.js";import G from"../geometry/SpatialReference.js";import{projectBoundingRect as D}from"../geometry/projection/projectBoundingRect.js";import{projectPointToVector as F}from"../geometry/projection/projectPointToVector.js";import{create as U,toExtent as W}from"../geometry/support/aaBoundingRect.js";import{B as q,a as k}from"../chunks/boundedPlane.js";import{renderSRFromViewSR as z}from"../geometry/support/coordinateSystem.js";import{getResolutionForScale as B}from"../geometry/support/scaleUtils.js";import{isImageryTileLayer as N,isTiledLayer as Q,isVoxelLayer as Y,isIntegratedMeshLayer as Z}from"../layers/support/layerUtils.js";import{AnalysesCollection as $}from"../support/AnalysesCollection.js";import{BreakpointsOwner as J}from"./BreakpointsOwner.js";import{DOMContainer as K}from"./DOMContainer.js";import{FocusAreas as X}from"./FocusAreas.js";import ee from"./GroundView.js";import{PopupView as te}from"./PopupView.js";import ie from"./View.js";import re from"./ViewAnimation.js";import{ViewingMode as se,stringFromViewingMode as ne,viewingModeFromString as ae}from"./ViewingMode.js";import{layerView3DImporter as oe}from"./3d/layerViewModuleImportUtils.js";import le from"./3d/analysis/AnalysisViewManager3D.js";import{Constraints as pe}from"./3d/constraints/Constraints.js";import{EnvironmentManager as he}from"./3d/environment/EnvironmentManager.js";import de from"./3d/environment/SceneViewEnvironment.js";import ce from"./3d/input/SceneInputManager.js";import{GraphicsDeconflictor as ue}from"./3d/layers/graphics/GraphicsDeconflictor.js";import{Labeler as ge}from"./3d/layers/graphics/Labeler.js";import{FeatureTileTree3D as me}from"./3d/layers/support/FeatureTileTree3D.js";import ye from"./3d/state/ViewState.js";import{ViewStateManager as fe}from"./3d/state/ViewStateManager.js";import{SceneIntersectionHelper as we}from"./3d/state/helpers/SceneIntersectionHelper.js";import{CombinedElevationProvider as ve}from"./3d/support/CombinedElevationProvider.js";import{debugFlags as _e}from"./3d/support/debugFlags.js";import be from"./3d/support/DisplayQualityProfile.js";import{getElevationAtPoint as Me}from"./3d/support/ElevationProvider.js";import{toMap as Se,hitTest as Ve}from"./3d/support/hitTest.js";import{popupHitTest as je}from"./3d/support/popupHitTest.js";import Re from"./3d/support/QualitySettings.js";import{RenderCoordsHelper as Ce}from"./3d/support/RenderCoordsHelper.js";import{newResourceController as Oe}from"./3d/support/ResourceController.js";import Te from"./3d/support/SceneViewPerformanceInfo.js";import{SharedSymbolResources as xe}from"./3d/support/SharedSymbolResources.js";import{PointsOfInterest as Ee}from"./3d/support/pointsOfInterest/PointsOfInterest.js";import Le from"./3d/terrain/TerrainSurface.js";import{isSurfaceLayerView as He,getTiledLayerInfo as Pe,checkIfTileInfoSupportedForView as Ae}from"./3d/terrain/terrainUtils.js";import{Stage as Ie}from"./3d/webgl-engine/Stage.js";import{olidEnabled as Ge}from"./3d/webgl-engine/effects/geometry/olidUtils.js";import{defaultTolerance as De}from"./3d/webgl-engine/lib/Intersector.js";import{terrainId as Fe}from"./3d/webgl-engine/lib/verticalOffsetUtils.js";import{defaultHighlightName as Ue}from"./support/HighlightDefaults.js";import We from"./support/HighlightOptions.js";import{occludeesSupported as qe}from"./support/layerViewUtils.js";import{PropertiesPool as ke}from"./support/PropertiesPool.js";import{isSupportedScreenPointEvent as ze,createScreenPointFromSupportedEvent as Be}from"./support/screenUtils.js";import{isSpatialReferenceSupported as Ne}from"./support/spatialReferenceSupport.js";import{initializeTextureCompressionWorker as Qe,destroyTextureCompressionWorker as Ye}from"./support/TextureCompressionHelper.js";import{check as Ze}from"./support/WebGLRequirements.js";import $e from"./ui/DefaultUI.js";import Je from"./ui/3d/DefaultUI3D.js";import Ke from"../webscene/Environment.js";let Xe=class extends(J(te(K(ie)))){constructor(e){super(e),this._userClippingArea=null,this._clippingArea=null,this._initialDefaultSpatialReference=null,this._overrideDefaultEnvironmentOnly=!0,this._createGraphicsViewController=null,this._resolveWhenReady=[],this._propertiesPool=new ke({slicePlane:q},this),this._resourceController=Oe(this),this._defaultToMapOptions={include:new Set},this._defaultHitTestOptions={exclude:new Set},this.deconflictor=new ue({view:this}),this.labeler=new ge({view:this,deconflictor:this.deconflictor.labels}),this.sharedSymbolResources=null,this.analyses=new $,this.basemapTerrain=null,this.elevationProvider=null,this.canvas=null,this.constraints=new pe,this.environment=new de,this.environmentManager=new he,this.floors=new r,this.fullOpacity=1,this.graphicsView=null,this.analysisViewManager=new le({view:this}),this.groundView=null,this.map=null,this.screenSizePerspectiveEnabled=!0,this.state=new ye({view:this}),this.spatialReference=null,this.alphaCompositingEnabled=!1,this.preserveDrawingBufferEnabled=!1,this.supersampleScreenshotsEnabled=!0,this.type="3d",this.ui=new Je,this._numUpdating=0,this._lastUpdateTime=0,this.updatingProgress=.5,this.focusAreas=new X({view:this}),S();const t=(e=null)=>{null!=e&&e.type===d.MOVE||(this._updatingChanged(),this.map&&this.map.allLayers.forEach((async e=>{try{await e.when()}catch{}this._updatingChanged()})))};this.addHandles([u((()=>this.map?.allLayers),"after-changes",(e=>t(e)),{onListenerAdd:()=>t(),onListenerRemove:()=>t(),sync:!0}),this.allLayerViews.on("after-changes",(e=>this._updateUpdatingMonitors(e))),g((()=>this.map),(e=>{e&&"load"in e&&e.load&&e.load().catch((()=>{}))}))]),this.inputManager=new ce({view:this}),this.stateManager=new fe({view:this})}initialize(){if(has("enable-feature:esri-compress-textures")){const e=Qe(this,this.resourceController);this.addResolvingPromise(e.promise)}this.groundView=new ee({view:this}),this._updateUpdatingMonitors();const e=()=>this._updateDefaultToMapOptions();this.addHandles(u((()=>this.map?.allLayers),"after-changes",e,{onListenerAdd:e,onListenerRemove:e})),this.updatingHandles.add((()=>this.qualitySettings.memoryLimit),(e=>{this.resourceController&&(this.resourceController.memoryController.maxMemory=e)}),m),this.updatingHandles.add((()=>this.qualitySettings.additionalCacheMemory),(e=>{this.resourceController&&(this.resourceController.memoryController.additionalCacheMemory=e)}),m),this.updatingHandles.add((()=>this.qualitySettings.frameRate??0),(e=>v(e>0?1e3/Math.ceil(e):0)),m),this.updatingHandles.add((()=>this.map?.ground),e,y),this.updatingHandles.add((()=>this.map?.ground?.opacity),(()=>this._updateDefaultHitTestOptions()),y),this.addHandles(g((()=>this.spatialReference),(()=>this.notifyChange("clippingArea")),w))}destroy(){this.destroyed||(Ye(this),this.updatingHandles.removeAll(),this.invalidate(),this.activeTool=null,this.layerViewManager.clear(),this._set("analysisViewManager",p(this.analysisViewManager)),this._exitSurface(),this._disposeGraphicsView(),this.sharedSymbolResources=p(this.sharedSymbolResources),this._set("labeler",p(this.labeler)),this._set("deconflictor",p(this.deconflictor)),this._resourceController=p(this._resourceController),this._set("stateManager",p(this.stateManager)),this._set("inputManager",p(this.inputManager)),this.state.destroy(),this.highlights.destroy(),this._propertiesPool.destroy(),this.removeHandles("updatingMonitors"),this._set("environmentManager",p(this.environmentManager)),this._set("environment",p(this.environment)),this.groundView=p(this.groundView),this._exitBasemapTerrain(),this.stage?.destroy())}get stage(){return this._stage}get renderSpatialReference(){return this.renderCoordsHelper?.spatialReference}get basemapSpatialReference(){return this.basemapTerrain?.spatialReference}get animation(){return this.state?.animation}get camera(){return this.stateManager?.camera}set camera(e){this.stateManager&&(this.stateManager.camera=e)}get contentCamera(){return this.stateManager?.contentCamera}set contentCamera(e){this.stateManager&&(this.stateManager.contentCamera=e)}installContentCameraReset(e={sticky:!1}){return this.stateManager.installContentCameraReset(e)}get center(){return this.stateManager?.center}set center(e){this.stateManager&&(this.stateManager.center=e)}get clippingArea(){if("global"===this.viewingMode)return null;const e=this.map;let t=this._userClippingArea||h(e,"clippingArea");return!this._userClippingArea&&!h(e,"clippingEnabled")||null==t?(this._clippingArea=null,null):t instanceof L?this.spatialReference&&(t=et(t,this.spatialReference),null==t)?(l.getLogger(this).error("#clippingArea","setting clippingArea with incompatible SpatialReference"),this._clippingArea):(t=t.clone(),null==t.intersection(this._groundAndLayersExtent)&&(t.xmin=t.xmax,t.ymin=t.ymax),t.zmin=void 0,t.zmax=void 0,t.equals(this._clippingArea)||(this._clippingArea=t),this._clippingArea):(l.getLogger(this).error("#clippingArea","only clippingArea geometries of type Extent are supported"),this._clippingArea)}set clippingArea(e){this.ready&&"global"===this.viewingMode&&null!=e?l.getLogger(this).error("#clippingArea=","Clipping area is only supported in local viewingMode"):this._userClippingArea=e}get renderDataExtent(){if(this.state.viewingMode===se.Global)return null;const e=this.renderSpatialReference,t=this.dataExtent;return null==t||null==e||t.spatialReference.equals(e)?t:et(t,e)}get tileInfo(){return this.basemapTerrain?.tilingScheme?.toTileInfo()}get dataExtent(){let e=this._groundAndLayersExtent;const t=this.spatialReference||G.WGS84,i=et(this.clippingArea,t);null!=i&&(e=null!=e?e.intersection(i):i);const r=this._get("dataExtent");return null!=e&&e.equals(r)?r:e}get _groundAndLayersExtent(){const e=this.spatialReference||G.WGS84;let t;const i=i=>{const r=et(i,e);null!=r&&(null!=t?t.union(r):t=r.clone())},r=this.basemapTerrain;if(r?.spatialReference){const e=r.groundExtent;i(new L({xmin:e[0],ymin:e[1],zmin:0,xmax:e[2],ymax:e[3],zmax:0,spatialReference:r.spatialReference}))}if(this.map){const e=e=>{null==e.fullExtent||"graphics"===e.type&&e.internal||i(e.fullExtent)};this.map.allLayers.forEach((t=>e(t)))}if(null==t)return null;t.hasZ?(t.zmin=Math.min(0,t.zmin??0),t.zmax=Math.max(0,t.zmax??0)):(t.zmin=0,t.zmax=0);const s=this._get("_groundAndLayersExtent");return t.equals(s)?s:t}castEnvironment(e){return e?e instanceof de?e:e instanceof Ke?this.environment?.cloneWithWebsceneEnvironment(e)??de.fromWebsceneEnvironment(e):C(de,e):new de}get extent(){return this.stateManager?.extent}set extent(e){this.stateManager&&(this.stateManager.extent=e)}get screenCenter(){return this.stateManager?.screenCenter}get frustum(){return this.stateManager?.frustum}get initialExtentRequired(){return this.stateManager&&!this.stateManager.hasInitialView}get defaultsFromMapSettings(){return{required:{tileInfo:!1,heightModelInfo:!0,extent:!1}}}get interacting(){return this.navigating||(this.toolViewManager?.interacting??!1)}get stationary(){return!this.animation&&!this.resizing&&(this.state?.stationary??!0)}get navigating(){return this.state?.navigating??!1}get padding(){return this.stateManager?.padding}set padding(e){this.stateManager&&(this.stateManager.padding=e)}set qualityProfile(e){be.isValidProfile(e)&&(be.apply(e,this.qualitySettings),this.stage?.renderView.updateQualitySettings(this.qualitySettings),this._set("qualityProfile",e))}get qualityProfile(){return this._get("qualityProfile")||be.getDefaultProfile()}set slicePlane(e){if(null!=this.stage&&(this.stage.renderer.slicePlane=e),null==e)return void this._set("slicePlane",null);const t=this._propertiesPool.get("slicePlane");k(e,t),this._set("slicePlane",t)}get typeSpecificPreconditionsReady(){return!!this.viewingMode&&!!this.stateManager?.preinit(this.spatialReference)}get resolution(){return null!=this.spatialReference?B(this.scale,this.spatialReference):0}get scale(){return this.stateManager?.scale}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get heightModelInfo(){const e=this.getDefaultHeightModelInfo();return null!=e?H.deriveUnitFromSR(e,this.spatialReference):null}get updating(){if(this.destroyed)return!1;let e=0,t=this.layerViewManager.updating,i=t?this.layerViewManager.updatingRemaining:0;this.allLayerViews.forEach((r=>{if(r.isFulfilled()){if(r.updating){if(t=!0,r.suspended||He(r))return;++i,e+=r.updatingProgress}}else++i}));for(const s of this._updatingObjects)if(null!=s&&s.updating){const t=.1;i+=t,e+=.5*t}for(const s of this._updatingObjectsWithProgress)null!=s&&s.updating&&(++i,e+=s.updatingProgress);const r=!this.stateManager.test.updatingIgnoreRenderState&&this.state.updating;if(t=!!(t||i>0||this.updatingHandles.updating||!this.ready||!this.stationary||r||this._createGraphicsViewController||this.inputManager?.updating||this.map?.allLayers?.some((e=>!e.isFulfilled()))),t?(this._numUpdating=Math.max(i,this._numUpdating),e+=this._numUpdating-i):this._numUpdating=0,this._numUpdating>0?e/=this._numUpdating:e=t?0:1,this._get("updatingProgress")!==e){const i=performance.now();if(e<1){const t=Math.min((i-this._lastUpdateTime)/2e3,1);e=this.updatingProgress*(1-t)+e*t}this._set("updatingProgress",e),this._lastUpdateTime=t&&e<1?i:0}return t}get _updatingObjects(){return[this.graphicsView,this.basemapView,this._resourceController,this.stage,this.featureTiles,this.pointsOfInterest,this.environmentManager,this.overlay,this._featureTreeDebugger,this.toolViewManager,this.analysisViewManager]}get _updatingObjectsWithProgress(){return[this.deconflictor,this.labeler,this.basemapTerrain]}get viewingMode(){const e=this._predeterminedViewingMode;if(null!=e)return ne(e);const t=this.spatialReference;return t?null!=this.defaultsFromMap?.viewingMode&&t.equals(this.defaultsFromMap.spatialReference)?ne(this.defaultsFromMap.viewingMode):Ne(t,se.Global)?"global":"local":"global"}set viewingMode(e){this.ready?l.getLogger(this).error("#viewingMode","viewingMode cannot be set once view is ready"):this._overrideIfSome("viewingMode",e)}get viewpoint(){return this.stateManager?.viewpoint}set viewpoint(e){this.stateManager&&(this.stateManager.viewpoint=e)}get visibleArea(){return this.stateManager?.visibleArea}get zoom(){return this.stateManager.zoom}set zoom(e){this.stateManager&&(this.stateManager.zoom=e)}get highlightOptions(){return this.highlights.find((({name:e})=>e===Ue))??new We}set highlightOptions(e){for(let t=0;t<this.highlights.length;++t){if(this.highlights.at(t).name===Ue)return void this.highlights.items[t].assignFrom(e)}}get resourceController(){return this._resourceController}get quality(){return this._resourceController?.memoryController?.memoryFactor??1}get resolutionScale(){return Math.sqrt(Math.min(1,this.quality/.75))}get performanceInfo(){return new Te(this)}on(e,t,i,r){const s=this.viewEvents.on(e,t,i,r);return s||super.on(e,t)}hasEventListener(e){return super.hasEventListener(e)||this.viewEvents.hasHandler(e)}toMap(e,t){if(!this.ready)return l.getLogger(this).error("#toMap()","Scene view cannot be used before it is ready"),null;const i=ze(e)?Be(this,e):e;return Se(this,i,t,this._defaultToMapOptions)}toScreen(e){if(!this.ready)return l.getLogger(this).error("#toScreen()","Scene view cannot be used before it is ready"),null;const t=(null==e.z?Me(this.elevationProvider,e):null)??0;return F(e,tt,this.renderSpatialReference,t),this.state.camera.projectToScreen(tt,it),_(it[0],it[1])}pixelSizeAt(e,t){if(!this.ready)return l.getLogger(this).error("#pixelSizeAt()","Scene view cannot be used before it is ready"),null;if(!e)return 0;const i=this.renderSpatialReference;F(e,tt,i);const r=this.state.camera.computeScreenPixelSizeAt(tt);return t&&i!==t?r*M(i)/M(t):r}overlayPixelSizeInMapUnits(e){const t=this.basemapTerrain.overlayManager;return t?t.overlayPixelSizeInMapUnits(e,(()=>this.pixelSizeAt(e))):1}hitTest(e,t){if(!this.ready)return l.getLogger(this).error("#hitTest()","Scene view cannot be used before it is ready"),null;const i=ze(e)?Be(this,e):e;return Ve(this,i,t,this._defaultHitTestOptions)}async popupHitTest(e){return je(this,e)}goTo(e,t){return this.updatingHandles.addPromise(this.stateManager.goTo(e,t))}async whenAnalysisView(e){if(null==e.parent)throw new n("view:no-analysisview-for-analysis","The analysis has not been added to view.analyses",{analysis:e});switch(e.parent.type){case"line-of-sight":case"dimension":case"viewshed":return(await this.whenLayerView(e.parent)).whenAnalysisView();default:return this.analysisViewManager.whenAnalysisView(e)}}whenLayerView(e){return super.whenLayerView(e)}async takeScreenshot(e){const t=await this._completeSettings(e);await this.whenReady();const i=await this.stage.renderView.takeScreenshot(t);return(await import("./support/screenshotUtils.js")).encode(i,t,this._pixelFormat())}async _takeScreenshot(e){const t=await this._completeSettings(e);await this.whenReady();const i=await this.stage.renderView.takeScreenshot(t);return(await import("./support/screenshotUtils.js")).encodeData(i,this._pixelFormat())}async _takeScreenshotWithObjectAndLayerId(e){const t=await this._completeSettings(e);await this.whenReady();const i=await this.stage.renderView.takeScreenshotWithOID(t),{encodeData:r}=await import("./support/screenshotUtils.js");return[r(i[0],this._pixelFormat()),r(i[1],this._pixelFormat())]}async _completeSettings(e){const{toRenderSettings:t,screenshotSuperSampleSettings:i}=await import("./support/screenshotUtils.js"),r=t(e,this);return r.pixelRatio/=this.state.pixelRatio,i(r,this.supersampleScreenshotsEnabled,this.padding)}_pixelFormat(){return{flipY:!0,premultipliedAlpha:this.stage?.renderView.getAlpha()??!1}}get test(){}async takeScreenshotWithObjectAndLayerId(e){if(!Ge())throw new n("360vr:objectAndLayerId-rendering-disabled","has enable-feature:objectAndLayerId-rendering must be true");const{encode:t}=await import("./support/screenshotUtils.js"),i=await this._completeSettings(e);await this.whenReady();const r=await this.stage.renderView.takeScreenshotWithOID(i),s=t(r[0],i,this._pixelFormat()),a=await this._completeSettings(e);a.format="png";return[s,t(r[1],a,this._pixelFormat())]}getColorToObjectAndLayerIdMapping(){const e=this.stage.renderView.olidRenderHelper;if(e)return e.getColorToObjectAndLayerIdMapping();throw new n("360vr:objectAndLayerId-rendering-disabled","has enable-feature:objectAndLayerId-rendering must be true")}addUpdatingPromise(e){return this.updatingHandles.addPromise(e)}importLayerView(e){return oe.importLayerView(e)}hasLayerViewModule(e){return oe.hasLayerViewModule(e)}forceDOMReadyCycle(){this.forceReadyCycle()}getDefaultSpatialReference(){return this.map&&"initialViewProperties"in this.map&&this.map.initialViewProperties?.spatialReference||this.defaultsFromMap?.spatialReference||this.defaultsFromMap?.ready&&this._initialDefaultSpatialReference||null}async validate(){let e=Ze(this.type);const t=has("safari");if(t&&t<9&&(e=new n("sceneview:browser-not-supported","This browser is not supported by SceneView (Safari < 9)",{type:"safari",requiredVersion:9,detectedVersion:t})),null!=e)throw l.getLogger(this).warn("#validate()",e.message),e}get _predeterminedViewingMode(){const e=this._isOverridden("viewingMode")?this._get("viewingMode"):(this.map&&"initialViewProperties"in this.map?this.map.initialViewProperties?.viewingMode:null)??null;return null!=e?ae(e):null}getSpatialReferenceSupport(e,t){const i=this._predeterminedViewingMode;if(null!=i)return this._validateSpatialReferenceForViewingMode(e,t,i)?{constraints:this._makeSpatialReferenceConstraints(e,t,i)}:null;const r=this._validateSpatialReferenceForViewingMode(e,t,se.Local),s=this._validateSpatialReferenceForViewingMode(e,t,se.Global);return r||s?r&&s?{constraints:this._makeSpatialReferenceConstraints(e,t,null)}:r?{constraints:this._makeSpatialReferenceConstraints(e,t,se.Local)}:{constraints:this._makeSpatialReferenceConstraints(e,t,se.Global)}:null}_validateSpatialReferenceForViewingMode(e,t,i){return!!Ne(e,i)&&(null==t||(!!N(t)||(!Q(t)||null!=Pe(t,e,i))&&(!Y(t)||i!==se.Global)))}_makeSpatialReferenceConstraints(e,t,i){if(null==t)return[{spatialReference:e,viewingMode:i}];const{isWebMercator:r,isWGS84:s}=e;if(N(t)&&(r||s)){return!s||i===se.Local||null===Ae(t.tileInfo,t.fullExtent,e,se.Global)?[{spatialReference:e,viewingMode:i},{spatialReference:G.WebMercator,viewingMode:i}]:[{spatialReference:r?G.WGS84:G.WebMercator,viewingMode:i}]}return Q(t)||Y(t)||!r&&!s?Q(t)&&r&&i!==se.Global?[{spatialReference:e,viewingMode:i},{spatialReference:G.WGS84,viewingMode:se.Local}]:[{spatialReference:e,viewingMode:i}]:[{spatialReference:e,viewingMode:i},{spatialReference:r?G.WGS84:G.WebMercator,viewingMode:i}]}_validateSpatialReference(e){const t=null!=this.getSpatialReferenceSupport(e),i=this._predeterminedViewingMode;return t||(null!=i?l.getLogger(this).warnOnce(`Spatial reference defined on view not supported in ${ne(i)} viewing mode.`):e.isGeographic&&l.getLogger(this).warnOnce("Spatial reference is geographic but not supported.")),t}whenReady(){return new Promise((e=>{this.ready?e(this):this._resolveWhenReady.push(e)}))}trackGraphicState(e){if(!e.graphic)return l.getLogger(this).error("trackGraphicState","GraphicState.graphic must not be null or undefined to start tracking"),null;const t=this.getViewForGraphic(e.graphic);let i=null,r=!1;const s=t=>{!r&&null!=t&&"processor"in t&&"graphics-3d"===t.processor?.type&&t.processor.graphicsCore&&(i=t.processor.graphicsCore.trackGraphicState(e))};return null!=t?s(t):this.whenViewForGraphic(e.graphic,{waitForLayer:!0}).then((e=>s(e)),(()=>{})).catch((()=>{})),o((()=>{r=!0,null!=i&&(i.remove(),i=null)}))}maskOccludee(e){if(!e)return l.getLogger(this).error("maskOccludee","GraphicState.graphic must not be null or undefined to mask an occludee"),null;const t=this.getViewForGraphic(e);let i=null,r=!1;const s=t=>{!r&&null!=t&&qe(t)&&(i=t.maskOccludee(e))};return null!=t?s(t):this.whenViewForGraphic(e,{waitForLayer:!0}).then((e=>s(e)),(()=>{})).catch((()=>{})),o((()=>{r=!0,null!=i&&(i.remove(),i=null)}))}getViewForGraphic(e){return e.layer===this.graphics?this.graphicsView:e.layer?this.allLayerViews.filter((e=>"media-3d"!==e.type)).find((t=>t.layer===e.layer)):null}graphicChanged(e){null!=this.graphicsView&&this.graphicsView.graphicChanged(e)}async whenViewForGraphic(e,t){if(e.layer===this)return await f((()=>this.graphicsView)),this.graphicsView;if(!e.layer||!this.map)throw new n("no-view-for-graphic");return t&&t.waitForLayer&&!this.map.allLayers.includes(e.layer)?new Promise(((t,i)=>{const r=this.map.allLayers.on("change",(s=>{s.added.includes(e.layer)&&(r.remove(),this.whenLayerView(e.layer).then(t,i))}))})):this.whenLayerView(e.layer)}_initBasemapTerrain(){this._set("basemapTerrain",new Le({view:this})),this._set("elevationProvider",new ve({view:this})),this.elevationProvider.register("ground",this.basemapTerrain)}_exitBasemapTerrain(){this.basemapTerrain&&(this.elevationProvider.unregister(this.basemapTerrain),this.elevationProvider.destroy(),this._set("elevationProvider",null),this.basemapTerrain.destroy(),this._set("basemapTerrain",null))}_initGlobe(){this._initCoordinateSystem(),this.state.createInitialCamera(),this._initBasemapTerrain(),this._set("pointsOfInterest",new Ee({view:this})),this._set("featureTiles",new me({renderCoordsHelper:this.renderCoordsHelper,cameraOnSurface:this.pointsOfInterest.cameraOnSurface,focus:this.pointsOfInterest.focus,tilingSchemeOwner:this.basemapTerrain,viewState:this.state,scheduler:this._resourceController.scheduler,terrain:this.basemapTerrain}));const e=()=>{const e=this.basemapTerrain?.extent;if(this.clippingArea||e)if(e&&this.basemapTerrain.spatialReference){const e=null!=this.basemapTerrain.extent&&null!=this.basemapTerrain.spatialReference?I(W(this.basemapTerrain.extent,this.basemapTerrain.spatialReference),this.spatialReference):null;this.clippingArea?this.featureTiles.filterExtent=this.clippingArea.intersection(e):this.featureTiles.filterExtent=e}else this.featureTiles.filterExtent=this.clippingArea;else this.featureTiles.filterExtent=null};this.addHandles([this.updatingHandles.add((()=>_e.FEATURE_TILE_TREE_SHOW_TILES),(e=>{e&&this.featureTiles&&!this._featureTreeDebugger?this.updatingHandles.addPromise(import("./3d/layers/support/FeatureTileTree3DDebugger.js")).then((({FeatureTileTree3DDebugger:e})=>{!this._featureTreeDebugger&&_e.FEATURE_TILE_TREE_SHOW_TILES&&(this._featureTreeDebugger=new e({view:this}))})):e||!this._featureTreeDebugger||_e.FEATURE_TILE_TREE_SHOW_TILES||(this._featureTreeDebugger.destroy(),this._featureTreeDebugger=null)}),y),this.updatingHandles.add((()=>this.clippingArea),e,y),this.updatingHandles.add((()=>this.basemapTerrain.extent),e,y)],"feature-tiles"),this.stateManager.init()}_exitGlobe(){this.featureTiles&&(this.stateManager.exit(),this.removeHandles("render-coords-helper"),this.removeHandles("feature-tiles"),this._set("featureTiles",p(this.featureTiles)),this._set("pointsOfInterest",p(this.pointsOfInterest)),this._exitBasemapTerrain(),this.state.reset(),this._exitCoordinateSystem())}_initCoordinateSystem(){if(this.spatialReference){const e=this.spatialReference,t=this.state.isGlobal,i=z(t,e);i!==this.renderSpatialReference&&(this._set("renderCoordsHelper",Ce.create(this.state.viewingMode,i)),t||this.addHandles(g((()=>this.basemapTerrain?.extent),(e=>{const t=this.renderCoordsHelper.spatialReference;null==e||0===e[0]&&0===e[1]&&0===e[2]&&0===e[3]||!D(e,this.basemapTerrain.spatialReference,rt,t)||(this.renderCoordsHelper.extent=rt)}),w),"render-coords-helper"),this.sceneIntersectionHelper&&this.sceneIntersectionHelper.setTolerance(De/this.renderCoordsHelper.unitInMeters))}else this._set("renderCoordsHelper",null)}_exitCoordinateSystem(){this.removeHandles("render-coords-helper"),this._set("renderCoordsHelper",null)}_updatingChanged(){this.notifyChange("updating")}_updateUpdatingMonitors(e=null){null!=e&&e.type===d.MOVE||(this.removeHandles("updatingMonitors"),this.allLayerViews.forEach((e=>{e.destroyed||(this.addHandles(g((()=>[e.updating,e.updatingProgress]),(()=>this._updatingChanged()),w),"updatingMonitors"),e.when((()=>this._updatingChanged()),(()=>this._updatingChanged())))})),this._updatingChanged())}async _prepareScreenshotOverlay(){this.overlay&&await this.overlay.prepare()}_renderScreenshotOverlay(e,t,i){if(!this.overlay||!this.overlay.hasVisibleItems)return i;const r=e.getContext("2d");return r.putImageData(i,0,0),this.overlay.renderCanvas(e,{disableDecorations:t}),r.getImageData(0,0,i.width,i.height)}_initStage(){const e={deactivatedWebGLExtensions:this.deactivatedWebGLExtensions,debugWebGLExtensions:this.debugWebGLExtensions,alpha:this.alphaCompositingEnabled,preserveDrawingBuffer:this.preserveDrawingBufferEnabled,canvas:this.renderCanvas,screenshot:{prepareOverlay:()=>this._prepareScreenshotOverlay(),renderOverlay:(e,t,i)=>this._renderScreenshotOverlay(e,t,i)}},t=new we(this.state.viewingMode,(e=>this.stage.layers.forAll(e)),this);this._set("sceneIntersectionHelper",t);const i=s(this.surface);this._stage=new Ie({view:this,options:e,container:i}),this._stage.renderer.slicePlane=this.slicePlane,this.addHandles([this.updatingHandles.add((()=>this.qualitySettings.highQualityTransparency),(e=>this.stage.renderer.setParameters({highQualityTransparency:e})),m),this.on("pointer-move",(()=>this.stage?.renderer.resetAnimation())),a(this.stage.renderView.canvas,"webglcontextlost",(e=>{this.fatalError=new n("webgl-context-lost",e.statusMessage)}))],"stage"),this.renderCoordsHelper&&this.sceneIntersectionHelper.setTolerance(De/this.renderCoordsHelper.unitInMeters),this._set("canvas",this.stage.renderView.canvas)}_exitStage(){this._set("sceneIntersectionHelper",null),this._stage=p(this.stage),this.removeHandles("stage"),this._set("canvas",null)}_initSurface(e){this._exitSurface(),this._initStage(),this._initGlobe(),this.sharedSymbolResources=new xe({view:this,viewingMode:e,resourceController:this._resourceController,pointsOfInterest:this.pointsOfInterest,viewState:this.state})}_exitSurface(){this.sharedSymbolResources&&(this.sharedSymbolResources.objectResourceCache.destroy(),this.sharedSymbolResources.destroy(),this.sharedSymbolResources=null,this._exitGlobe(),this._exitStage())}_createGraphicsViewIfNeeded(){if(this.graphicsView||this._createGraphicsViewController)return;if(0===this.graphics.length)return;this.removeHandles("graphics-view"),this._createGraphicsViewController=new AbortController;const e=()=>{this._createGraphicsViewController=null,this._updatingChanged()};this._createGraphicsViewAsync(this._createGraphicsViewController.signal).then(e,e),this._updatingChanged()}async _createGraphicsViewAsync(e){const t=(await import("./3d/layers/GraphicsView3D.js")).default;c(e),await f((()=>this.basemapTerrain?.ready),e),this._set("graphicsView",new t({view:this}))}_disposeGraphicsView(){this._createGraphicsViewController&&(this._createGraphicsViewController.abort(),this._createGraphicsViewController=null),this.removeHandles("graphics-view"),null!=this.graphicsView&&(this.removeHandles(this.graphicsView.processor.layer.id),this.graphicsView.destroy(),this._set("graphicsView",null))}_startup(){const e=ae(this.viewingMode);e===se.Global&&(this._clippingArea=null),this._initSurface(e),this._set("ready",!0),this.addHandles(u((()=>this.graphics),"after-changes",(()=>this._createGraphicsViewIfNeeded())),"graphics-view"),this._createGraphicsViewIfNeeded();const t=this.map&&"initialViewProperties"in this.map?this.map.initialViewProperties:null,i=t?.environment;i&&(this._overrideDefaultEnvironmentOnly?T(this.environment,i):this.environment=this.environment.cloneWithWebsceneEnvironment(i)),this.timeExtent=t?.timeExtent,this.labeler.setup(),this.environmentManager.connectView(this),this.inputManager.connect();const r=this._resolveWhenReady;this._resolveWhenReady=[],r.forEach((e=>e(this)))}_teardown(){this._initialDefaultSpatialReference=null,this.inputManager.disconnect(),this.environmentManager.disconnectView(),this._overrideDefaultEnvironmentOnly=!1,this.labeler.dispose(),this._disposeGraphicsView(),this.removeHandles("graphics-view"),this._exitSurface(),this._set("ready",!1)}_updateDefaultToMapOptions(){if(this._defaultToMapOptions.include.clear(),this.map){this.map.ground&&this._defaultToMapOptions.include.add(Fe);for(const e of this.map.allLayers.items)Z(e.type)&&this._defaultToMapOptions.include.add(e.uid)}}_updateDefaultHitTestOptions(){if(this._defaultHitTestOptions.exclude.clear(),this.map){this.map.ground&&this.map.ground.opacity<1&&this._defaultHitTestOptions.exclude.add(Fe);for(const e of this.map.allLayers.items)Z(e.type)&&e.opacity<1&&this._defaultHitTestOptions.exclude.add(e.uid)}}static{this.type="3d"}};function et(e,t){return null!=e&&A(e.spatialReference,t)?I(e,t):null}e([V()],Xe.prototype,"_userClippingArea",void 0),e([V()],Xe.prototype,"_resourceController",void 0),e([V()],Xe.prototype,"_stage",void 0),e([V({readOnly:!0})],Xe.prototype,"deconflictor",void 0),e([V({readOnly:!0})],Xe.prototype,"labeler",void 0),e([V(E($,"analyses"))],Xe.prototype,"analyses",void 0),e([V({type:re,readOnly:!0})],Xe.prototype,"animation",null),e([V({readOnly:!0})],Xe.prototype,"basemapTerrain",void 0),e([V({readOnly:!0})],Xe.prototype,"elevationProvider",void 0),e([V()],Xe.prototype,"camera",null),e([V({type:t})],Xe.prototype,"contentCamera",null),e([V({readOnly:!0})],Xe.prototype,"canvas",void 0),e([V({type:P})],Xe.prototype,"center",null),e([V({type:L})],Xe.prototype,"clippingArea",null),e([V({type:pe})],Xe.prototype,"constraints",void 0),e([V({type:L,readOnly:!0})],Xe.prototype,"renderDataExtent",null),e([V({readOnly:!0})],Xe.prototype,"tileInfo",null),e([V({type:L,readOnly:!0})],Xe.prototype,"dataExtent",null),e([V({type:L,readOnly:!0})],Xe.prototype,"_groundAndLayersExtent",null),e([V({type:de})],Xe.prototype,"environment",void 0),e([j("environment")],Xe.prototype,"castEnvironment",null),e([V({readOnly:!0})],Xe.prototype,"environmentManager",void 0),e([V({type:L})],Xe.prototype,"extent",null),e([V({type:r})],Xe.prototype,"floors",void 0),e([V()],Xe.prototype,"screenCenter",null),e([V()],Xe.prototype,"frustum",null),e([V({type:Number,readOnly:!0})],Xe.prototype,"fullOpacity",void 0),e([V({readOnly:!0})],Xe.prototype,"graphicsView",void 0),e([V({readOnly:!0})],Xe.prototype,"analysisViewManager",void 0),e([V()],Xe.prototype,"groundView",void 0),e([V({type:Boolean})],Xe.prototype,"initialExtentRequired",null),e([V()],Xe.prototype,"defaultsFromMapSettings",null),e([V()],Xe.prototype,"interacting",null),e([V()],Xe.prototype,"stationary",null),e([V()],Xe.prototype,"navigating",null),e([V()],Xe.prototype,"map",void 0),e([V()],Xe.prototype,"padding",null),e([V({type:Ee,readOnly:!0})],Xe.prototype,"pointsOfInterest",void 0),e([V({type:me,readOnly:!0})],Xe.prototype,"featureTiles",void 0),e([V()],Xe.prototype,"_featureTreeDebugger",void 0),e([V({type:Boolean})],Xe.prototype,"screenSizePerspectiveEnabled",void 0),e([V({constructOnly:!0})],Xe.prototype,"deactivatedWebGLExtensions",void 0),e([V({constructOnly:!0})],Xe.prototype,"debugWebGLExtensions",void 0),e([V({constructOnly:!0})],Xe.prototype,"renderCanvas",void 0),e([V({constructOnly:!0})],Xe.prototype,"state",void 0),e([V({readOnly:!0})],Xe.prototype,"inputManager",void 0),e([V({readOnly:!0})],Xe.prototype,"stateManager",void 0),e([V({type:["low","medium","high"]})],Xe.prototype,"qualityProfile",null),e([V({type:Re,get(){let e=this._get("qualitySettings");return e||(e=new Re,be.apply(this.qualityProfile,e)),e}})],Xe.prototype,"qualitySettings",void 0),e([V()],Xe.prototype,"slicePlane",null),e([V({readOnly:!0})],Xe.prototype,"typeSpecificPreconditionsReady",null),e([V({readOnly:!0})],Xe.prototype,"renderCoordsHelper",void 0),e([V({readOnly:!0})],Xe.prototype,"sceneIntersectionHelper",void 0),e([V({type:Number,dependsOn:["scale","spatialReference"],readOnly:!0})],Xe.prototype,"resolution",null),e([V({type:Number})],Xe.prototype,"scale",null),e([V()],Xe.prototype,"heightModelInfo",null),e([V()],Xe.prototype,"spatialReference",void 0),e([V({type:Boolean,constructOnly:!0})],Xe.prototype,"alphaCompositingEnabled",void 0),e([V({constructOnly:!0})],Xe.prototype,"preserveDrawingBufferEnabled",void 0),e([V({type:Boolean})],Xe.prototype,"supersampleScreenshotsEnabled",void 0),e([V({readOnly:!0})],Xe.prototype,"type",void 0),e([V(),j((e=>e instanceof $e?e:O(Je,e)))],Xe.prototype,"ui",void 0),e([V({type:Boolean,readOnly:!0,dependsOn:["graphicsView.updating","basemapView.updating","basemapTerrain.updating","layerViewManager.updating","layerViewManager.updatingRemaining","_resourceController.updating","stage.updating","featureTiles.updating","pointsOfInterest.updating","environmentManager.updating","overlay.updating","updatingHandles.updating","featureTreeDebugger.updating","labeler.updating","deconflictor.updating","ready","stationary","inputManager.updating","toolViewManager.updating","analysisViewManager.updating","state.updating","textures.updating"]})],Xe.prototype,"updating",null),e([V()],Xe.prototype,"_updatingObjects",null),e([V()],Xe.prototype,"_updatingObjectsWithProgress",null),e([V({type:Number,readOnly:!0,dependsOn:["updating"]})],Xe.prototype,"updatingProgress",void 0),e([V({type:["global","local"]})],Xe.prototype,"viewingMode",null),e([V({type:i})],Xe.prototype,"viewpoint",null),e([V({readOnly:!0})],Xe.prototype,"visibleArea",null),e([V({type:Number})],Xe.prototype,"zoom",null),e([V({type:We})],Xe.prototype,"highlightOptions",null),e([V({readOnly:!0})],Xe.prototype,"quality",null),e([V({readOnly:!0})],Xe.prototype,"resolutionScale",null),Xe=e([R("esri.views.SceneView")],Xe);const tt=x(),it=b(),rt=U(),st=Xe;export{st as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../Camera.js";import i from"../Viewpoint.js";import r from"../core/Collection.js";import{byId as s}from"../core/domUtils.js";import n from"../core/Error.js";import{on as a}from"../core/events.js";import{makeHandle as o}from"../core/handleUtils.js";import has from"../core/has.js";import l from"../core/Logger.js";import{destroyMaybe as p,maybeProperty as h}from"../core/maybe.js";import{ObservableChangesType as d}from"../core/ObservableChangesType.js";import{throwIfAborted as c}from"../core/promiseUtils.js";import{on as u,watch as g,initial as m,whenOnce as y,syncAndInitial as f,sync as w}from"../core/reactiveUtils.js";import{setFrameDuration as v}from"../core/scheduling.js";import{createScreenPoint as _,createScreenPointArray as b}from"../core/screenUtils.js";import{getMetersPerUnitForSR as M}from"../core/unitUtils.js";import{initialize as S}from"../core/workers/workers.js";import{property as V}from"../core/accessorSupport/decorators/property.js";import{cast as j}from"../core/accessorSupport/decorators/cast.js";import"../core/RandomLCG.js";import{subclass as R}from"../core/accessorSupport/decorators/subclass.js";import{ensureType as C,ensureClass as O}from"../core/accessorSupport/ensureType.js";import{overrideDefaultsFrom as T}from"../core/accessorSupport/overrideDefaultsFrom.js";import{create as x}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{owningCollectionProperty as E}from"../core/support/OwningCollection.js";import L from"../geometry/Extent.js";import P from"../geometry/HeightModelInfo.js";import A from"../geometry/Point.js";import{canProjectWithoutEngine as I,project as H}from"../geometry/projection.js";import G from"../geometry/SpatialReference.js";import{projectBoundingRect as D}from"../geometry/projection/projectBoundingRect.js";import{projectPointToVector as F}from"../geometry/projection/projectPointToVector.js";import{create as U,toExtent as W}from"../geometry/support/aaBoundingRect.js";import{B as q,a as k}from"../chunks/boundedPlane.js";import{renderSRFromViewSR as z}from"../geometry/support/coordinateSystem.js";import{getResolutionForScale as B}from"../geometry/support/scaleUtils.js";import{isImageryTileLayer as N,isTiledLayer as Q,isVoxelLayer as Y,isIntegratedMeshLayer as Z}from"../layers/support/layerUtils.js";import{AnalysesCollection as $}from"../support/AnalysesCollection.js";import{BreakpointsOwner as J}from"./BreakpointsOwner.js";import{DOMContainer as K}from"./DOMContainer.js";import{FocusAreas as X}from"./FocusAreas.js";import ee from"./GroundView.js";import{PopupView as te}from"./PopupView.js";import ie from"./View.js";import re from"./ViewAnimation.js";import{ViewingMode as se,stringFromViewingMode as ne,viewingModeFromString as ae}from"./ViewingMode.js";import{layerView3DImporter as oe}from"./3d/layerViewModuleImportUtils.js";import le from"./3d/analysis/AnalysisViewManager3D.js";import{Constraints as pe}from"./3d/constraints/Constraints.js";import{EnvironmentManager as he}from"./3d/environment/EnvironmentManager.js";import de from"./3d/environment/SceneViewEnvironment.js";import ce from"./3d/input/SceneInputManager.js";import{GraphicsDeconflictor as ue}from"./3d/layers/graphics/GraphicsDeconflictor.js";import{Labeler as ge}from"./3d/layers/graphics/Labeler.js";import{FeatureTileTree3D as me}from"./3d/layers/support/FeatureTileTree3D.js";import ye from"./3d/state/ViewState.js";import{ViewStateManager as fe}from"./3d/state/ViewStateManager.js";import{SceneIntersectionHelper as we}from"./3d/state/helpers/SceneIntersectionHelper.js";import{CombinedElevationProvider as ve}from"./3d/support/CombinedElevationProvider.js";import{debugFlags as _e}from"./3d/support/debugFlags.js";import be from"./3d/support/DisplayQualityProfile.js";import{getElevationAtPoint as Me}from"./3d/support/ElevationProvider.js";import{toMap as Se,hitTest as Ve}from"./3d/support/hitTest.js";import{popupHitTest as je}from"./3d/support/popupHitTest.js";import Re from"./3d/support/QualitySettings.js";import{RenderCoordsHelper as Ce}from"./3d/support/RenderCoordsHelper.js";import{newResourceController as Oe}from"./3d/support/ResourceController.js";import Te from"./3d/support/SceneViewPerformanceInfo.js";import{SharedSymbolResources as xe}from"./3d/support/SharedSymbolResources.js";import{PointsOfInterest as Ee}from"./3d/support/pointsOfInterest/PointsOfInterest.js";import Le from"./3d/terrain/TerrainSurface.js";import{isSurfaceLayerView as Pe,getTiledLayerInfo as Ae,checkIfTileInfoSupportedForView as Ie}from"./3d/terrain/terrainUtils.js";import{Stage as He}from"./3d/webgl-engine/Stage.js";import{olidEnabled as Ge}from"./3d/webgl-engine/effects/geometry/olidUtils.js";import{defaultTolerance as De}from"./3d/webgl-engine/lib/Intersector.js";import{terrainId as Fe}from"./3d/webgl-engine/lib/verticalOffsetUtils.js";import{defaultHighlightName as Ue}from"./support/HighlightDefaults.js";import We from"./support/HighlightOptions.js";import{occludeesSupported as qe}from"./support/layerViewUtils.js";import{PropertiesPool as ke}from"./support/PropertiesPool.js";import{isSupportedScreenPointEvent as ze,createScreenPointFromSupportedEvent as Be}from"./support/screenUtils.js";import{isSpatialReferenceSupported as Ne}from"./support/spatialReferenceSupport.js";import{initializeTextureCompressionWorker as Qe,destroyTextureCompressionWorker as Ye}from"./support/TextureCompressionHelper.js";import{check as Ze}from"./support/WebGLRequirements.js";import $e from"./ui/DefaultUI.js";import Je from"./ui/3d/DefaultUI3D.js";import Ke from"../webscene/Environment.js";let Xe=class extends(J(te(K(ie)))){constructor(e){super(e),this._userClippingArea=null,this._clippingArea=null,this._initialDefaultSpatialReference=null,this._overrideDefaultEnvironmentOnly=!0,this._createGraphicsViewController=null,this._resolveWhenReady=[],this._propertiesPool=new ke({slicePlane:q},this),this._resourceController=Oe(this),this.deconflictor=new ue({view:this}),this.labeler=new ge({view:this,deconflictor:this.deconflictor.labels}),this.sharedSymbolResources=null,this.analyses=new $,this.basemapTerrain=null,this.elevationProvider=null,this.canvas=null,this.constraints=new pe,this.environment=new de,this.environmentManager=new he,this.floors=new r,this.fullOpacity=1,this.graphicsView=null,this.analysisViewManager=new le({view:this}),this.groundView=null,this.map=null,this.screenSizePerspectiveEnabled=!0,this.state=new ye({view:this}),this.spatialReference=null,this.alphaCompositingEnabled=!1,this.preserveDrawingBufferEnabled=!1,this.supersampleScreenshotsEnabled=!0,this.type="3d",this.ui=new Je,this._numUpdating=0,this._lastUpdateTime=0,this.updatingProgress=.5,this.focusAreas=new X({view:this}),S();const t=(e=null)=>{null!=e&&e.type===d.MOVE||(this._updatingChanged(),this.map&&this.map.allLayers.forEach((async e=>{try{await e.when()}catch{}this._updatingChanged()})))};this.addHandles([u((()=>this.map?.allLayers),"after-changes",(e=>t(e)),{onListenerAdd:()=>t(),onListenerRemove:()=>t(),sync:!0}),this.allLayerViews.on("after-changes",(e=>this._updateUpdatingMonitors(e))),g((()=>this.map),(e=>{e&&"load"in e&&e.load&&e.load().catch((()=>{}))}))]),this.inputManager=new ce({view:this}),this.stateManager=new fe({view:this})}initialize(){if(has("enable-feature:esri-compress-textures")){const e=Qe(this,this.resourceController);this.addResolvingPromise(e.promise)}this.groundView=new ee({view:this}),this._updateUpdatingMonitors(),this.updatingHandles.add((()=>this.qualitySettings.memoryLimit),(e=>{this.resourceController&&(this.resourceController.memoryController.maxMemory=e)}),m),this.updatingHandles.add((()=>this.qualitySettings.additionalCacheMemory),(e=>{this.resourceController&&(this.resourceController.memoryController.additionalCacheMemory=e)}),m),this.updatingHandles.add((()=>this.qualitySettings.frameRate??0),(e=>v(e>0?1e3/Math.ceil(e):0)),m),this.addHandles(g((()=>this.spatialReference),(()=>this.notifyChange("clippingArea")),w))}destroy(){this.destroyed||(Ye(this),this.updatingHandles.removeAll(),this.invalidate(),this.activeTool=null,this.layerViewManager.clear(),this._set("analysisViewManager",p(this.analysisViewManager)),this._exitSurface(),this._disposeGraphicsView(),this.sharedSymbolResources=p(this.sharedSymbolResources),this._set("labeler",p(this.labeler)),this._set("deconflictor",p(this.deconflictor)),this._resourceController=p(this._resourceController),this._set("stateManager",p(this.stateManager)),this._set("inputManager",p(this.inputManager)),this.state.destroy(),this.highlights.destroy(),this._propertiesPool.destroy(),this.removeHandles("updatingMonitors"),this._set("environmentManager",p(this.environmentManager)),this._set("environment",p(this.environment)),this.groundView=p(this.groundView),this._exitBasemapTerrain(),this.stage?.destroy())}get stage(){return this._stage}get renderSpatialReference(){return this.renderCoordsHelper?.spatialReference}get basemapSpatialReference(){return this.basemapTerrain?.spatialReference}get animation(){return this.state?.animation}get camera(){return this.stateManager?.camera}set camera(e){this.stateManager&&(this.stateManager.camera=e)}get contentCamera(){return this.stateManager?.contentCamera}set contentCamera(e){this.stateManager&&(this.stateManager.contentCamera=e)}installContentCameraReset(e={sticky:!1}){return this.stateManager.installContentCameraReset(e)}get center(){return this.stateManager?.center}set center(e){this.stateManager&&(this.stateManager.center=e)}get clippingArea(){if("global"===this.viewingMode)return null;const e=this.map;let t=this._userClippingArea||h(e,"clippingArea");return!this._userClippingArea&&!h(e,"clippingEnabled")||null==t?(this._clippingArea=null,null):t instanceof L?this.spatialReference&&(t=et(t,this.spatialReference),null==t)?(l.getLogger(this).error("#clippingArea","setting clippingArea with incompatible SpatialReference"),this._clippingArea):(t=t.clone(),null==t.intersection(this._groundAndLayersExtent)&&(t.xmin=t.xmax,t.ymin=t.ymax),t.zmin=void 0,t.zmax=void 0,t.equals(this._clippingArea)||(this._clippingArea=t),this._clippingArea):(l.getLogger(this).error("#clippingArea","only clippingArea geometries of type Extent are supported"),this._clippingArea)}set clippingArea(e){this.ready&&"global"===this.viewingMode&&null!=e?l.getLogger(this).error("#clippingArea=","Clipping area is only supported in local viewingMode"):this._userClippingArea=e}get renderDataExtent(){if(this.state.viewingMode===se.Global)return null;const e=this.renderSpatialReference,t=this.dataExtent;return null==t||null==e||t.spatialReference.equals(e)?t:et(t,e)}get tileInfo(){return this.basemapTerrain?.tilingScheme?.toTileInfo()}get dataExtent(){let e=this._groundAndLayersExtent;const t=this.spatialReference||G.WGS84,i=et(this.clippingArea,t);null!=i&&(e=null!=e?e.intersection(i):i);const r=this._get("dataExtent");return null!=e&&e.equals(r)?r:e}get _groundAndLayersExtent(){const e=this.spatialReference||G.WGS84;let t;const i=i=>{const r=et(i,e);null!=r&&(null!=t?t.union(r):t=r.clone())},r=this.basemapTerrain;if(r?.spatialReference){const e=r.groundExtent;i(new L({xmin:e[0],ymin:e[1],zmin:0,xmax:e[2],ymax:e[3],zmax:0,spatialReference:r.spatialReference}))}if(this.map){const e=e=>{null==e.fullExtent||"graphics"===e.type&&e.internal||i(e.fullExtent)};this.map.allLayers.forEach((t=>e(t)))}if(null==t)return null;t.hasZ?(t.zmin=Math.min(0,t.zmin??0),t.zmax=Math.max(0,t.zmax??0)):(t.zmin=0,t.zmax=0);const s=this._get("_groundAndLayersExtent");return t.equals(s)?s:t}castEnvironment(e){return e?e instanceof de?e:e instanceof Ke?this.environment?.cloneWithWebsceneEnvironment(e)??de.fromWebsceneEnvironment(e):C(de,e):new de}get extent(){return this.stateManager?.extent}set extent(e){this.stateManager&&(this.stateManager.extent=e)}get screenCenter(){return this.stateManager?.screenCenter}get frustum(){return this.stateManager?.frustum}get initialExtentRequired(){return this.stateManager&&!this.stateManager.hasInitialView}get defaultsFromMapSettings(){return{required:{tileInfo:!1,heightModelInfo:!0,extent:!1}}}get interacting(){return this.navigating||(this.toolViewManager?.interacting??!1)}get stationary(){return!this.animation&&!this.resizing&&(this.state?.stationary??!0)}get navigating(){return this.state?.navigating??!1}get padding(){return this.stateManager?.padding}set padding(e){this.stateManager&&(this.stateManager.padding=e)}set qualityProfile(e){be.isValidProfile(e)&&(be.apply(e,this.qualitySettings),this.stage?.renderView.updateQualitySettings(this.qualitySettings),this._set("qualityProfile",e))}get qualityProfile(){return this._get("qualityProfile")||be.getDefaultProfile()}set slicePlane(e){if(null!=this.stage&&(this.stage.renderer.slicePlane=e),null==e)return void this._set("slicePlane",null);const t=this._propertiesPool.get("slicePlane");k(e,t),this._set("slicePlane",t)}get typeSpecificPreconditionsReady(){return!!this.viewingMode&&!!this.stateManager?.preinit(this.spatialReference)}get resolution(){return null!=this.spatialReference?B(this.scale,this.spatialReference):0}get scale(){return this.stateManager?.scale}set scale(e){this.stateManager&&(this.stateManager.scale=e)}get heightModelInfo(){const e=this.getDefaultHeightModelInfo();return null!=e?P.deriveUnitFromSR(e,this.spatialReference):null}get updating(){if(this.destroyed)return!1;let e=0,t=this.layerViewManager.updating,i=t?this.layerViewManager.updatingRemaining:0;this.allLayerViews.forEach((r=>{if(r.isFulfilled()){if(r.updating){if(t=!0,r.suspended||Pe(r))return;++i,e+=r.updatingProgress}}else++i}));for(const s of this._updatingObjects)if(null!=s&&s.updating){const t=.1;i+=t,e+=.5*t}for(const s of this._updatingObjectsWithProgress)null!=s&&s.updating&&(++i,e+=s.updatingProgress);const r=!this.stateManager.test.updatingIgnoreRenderState&&this.state.updating;if(t=!!(t||i>0||this.updatingHandles.updating||!this.ready||!this.stationary||r||this._createGraphicsViewController||this.inputManager?.updating||this.map?.allLayers?.some((e=>!e.isFulfilled()))),t?(this._numUpdating=Math.max(i,this._numUpdating),e+=this._numUpdating-i):this._numUpdating=0,this._numUpdating>0?e/=this._numUpdating:e=t?0:1,this._get("updatingProgress")!==e){const i=performance.now();if(e<1){const t=Math.min((i-this._lastUpdateTime)/2e3,1);e=this.updatingProgress*(1-t)+e*t}this._set("updatingProgress",e),this._lastUpdateTime=t&&e<1?i:0}return t}get _updatingObjects(){return[this.graphicsView,this.basemapView,this._resourceController,this.stage,this.featureTiles,this.pointsOfInterest,this.environmentManager,this.overlay,this._featureTreeDebugger,this.toolViewManager,this.analysisViewManager]}get _updatingObjectsWithProgress(){return[this.deconflictor,this.labeler,this.basemapTerrain]}get viewingMode(){const e=this._predeterminedViewingMode;if(null!=e)return ne(e);const t=this.spatialReference;return t?null!=this.defaultsFromMap?.viewingMode&&t.equals(this.defaultsFromMap.spatialReference)?ne(this.defaultsFromMap.viewingMode):Ne(t,se.Global)?"global":"local":"global"}set viewingMode(e){this.ready?l.getLogger(this).error("#viewingMode","viewingMode cannot be set once view is ready"):this._overrideIfSome("viewingMode",e)}get viewpoint(){return this.stateManager?.viewpoint}set viewpoint(e){this.stateManager&&(this.stateManager.viewpoint=e)}get visibleArea(){return this.stateManager?.visibleArea}get zoom(){return this.stateManager.zoom}set zoom(e){this.stateManager&&(this.stateManager.zoom=e)}get highlightOptions(){return this.highlights.find((({name:e})=>e===Ue))??new We}set highlightOptions(e){for(let t=0;t<this.highlights.length;++t){if(this.highlights.at(t).name===Ue)return void this.highlights.items[t].assignFrom(e)}}get resourceController(){return this._resourceController}get quality(){return this._resourceController?.memoryController?.memoryFactor??1}get resolutionScale(){return Math.sqrt(Math.min(1,this.quality/.75))}get performanceInfo(){return new Te(this)}on(e,t,i,r){const s=this.viewEvents.on(e,t,i,r);return s||super.on(e,t)}hasEventListener(e){return super.hasEventListener(e)||this.viewEvents.hasHandler(e)}toMap(e,t){if(!this.ready)return l.getLogger(this).error("#toMap()","Scene view cannot be used before it is ready"),null;const i=ze(e)?Be(this,e):e;return Se(this,i,t,this._defaultToMapOptions)}toScreen(e){if(!this.ready)return l.getLogger(this).error("#toScreen()","Scene view cannot be used before it is ready"),null;const t=(null==e.z?Me(this.elevationProvider,e):null)??0;return F(e,tt,this.renderSpatialReference,t),this.state.camera.projectToScreen(tt,it),_(it[0],it[1])}pixelSizeAt(e,t){if(!this.ready)return l.getLogger(this).error("#pixelSizeAt()","Scene view cannot be used before it is ready"),null;if(!e)return 0;const i=this.renderSpatialReference;F(e,tt,i);const r=this.state.camera.computeScreenPixelSizeAt(tt);return t&&i!==t?r*M(i)/M(t):r}overlayPixelSizeInMapUnits(e){const t=this.basemapTerrain.overlayManager;return t?t.overlayPixelSizeInMapUnits(e,(()=>this.pixelSizeAt(e))):1}hitTest(e,t){if(!this.ready)return l.getLogger(this).error("#hitTest()","Scene view cannot be used before it is ready"),null;const i=ze(e)?Be(this,e):e;return Ve(this,i,t,this._defaultHitTestOptions)}async popupHitTest(e){return je(this,e)}goTo(e,t){return this.updatingHandles.addPromise(this.stateManager.goTo(e,t))}async whenAnalysisView(e){if(null==e.parent)throw new n("view:no-analysisview-for-analysis","The analysis has not been added to view.analyses",{analysis:e});switch(e.parent.type){case"line-of-sight":case"dimension":case"viewshed":return(await this.whenLayerView(e.parent)).whenAnalysisView();default:return this.analysisViewManager.whenAnalysisView(e)}}whenLayerView(e){return super.whenLayerView(e)}async takeScreenshot(e){const t=await this._completeSettings(e);await this.whenReady();const i=await this.stage.renderView.takeScreenshot(t);return(await import("./support/screenshotUtils.js")).encode(i,t,this._pixelFormat())}async _takeScreenshot(e){const t=await this._completeSettings(e);await this.whenReady();const i=await this.stage.renderView.takeScreenshot(t);return(await import("./support/screenshotUtils.js")).encodeData(i,this._pixelFormat())}async _takeScreenshotWithObjectAndLayerId(e){const t=await this._completeSettings(e);await this.whenReady();const i=await this.stage.renderView.takeScreenshotWithOID(t),{encodeData:r}=await import("./support/screenshotUtils.js");return[r(i[0],this._pixelFormat()),r(i[1],this._pixelFormat())]}async _completeSettings(e){const{toRenderSettings:t,screenshotSuperSampleSettings:i}=await import("./support/screenshotUtils.js"),r=t(e,this);return r.pixelRatio/=this.state.pixelRatio,i(r,this.supersampleScreenshotsEnabled,this.padding)}_pixelFormat(){return{flipY:!0,premultipliedAlpha:this.stage?.renderView.getAlpha()??!1}}get test(){}async takeScreenshotWithObjectAndLayerId(e){if(!Ge())throw new n("360vr:objectAndLayerId-rendering-disabled","has enable-feature:objectAndLayerId-rendering must be true");const{encode:t}=await import("./support/screenshotUtils.js"),i=await this._completeSettings(e);await this.whenReady();const r=await this.stage.renderView.takeScreenshotWithOID(i),s=t(r[0],i,this._pixelFormat()),a=await this._completeSettings(e);a.format="png";return[s,t(r[1],a,this._pixelFormat())]}getColorToObjectAndLayerIdMapping(){const e=this.stage.renderView.olidRenderHelper;if(e)return e.getColorToObjectAndLayerIdMapping();throw new n("360vr:objectAndLayerId-rendering-disabled","has enable-feature:objectAndLayerId-rendering must be true")}addUpdatingPromise(e){return this.updatingHandles.addPromise(e)}importLayerView(e){return oe.importLayerView(e)}hasLayerViewModule(e){return oe.hasLayerViewModule(e)}forceDOMReadyCycle(){this.forceReadyCycle()}getDefaultSpatialReference(){return this.map&&"initialViewProperties"in this.map&&this.map.initialViewProperties?.spatialReference||this.defaultsFromMap?.spatialReference||this.defaultsFromMap?.ready&&this._initialDefaultSpatialReference||null}async validate(){let e=Ze(this.type);const t=has("safari");if(t&&t<9&&(e=new n("sceneview:browser-not-supported","This browser is not supported by SceneView (Safari < 9)",{type:"safari",requiredVersion:9,detectedVersion:t})),null!=e)throw l.getLogger(this).warn("#validate()",e.message),e}get _predeterminedViewingMode(){const e=this._isOverridden("viewingMode")?this._get("viewingMode"):(this.map&&"initialViewProperties"in this.map?this.map.initialViewProperties?.viewingMode:null)??null;return null!=e?ae(e):null}getSpatialReferenceSupport(e,t){const i=this._predeterminedViewingMode;if(null!=i)return this._validateSpatialReferenceForViewingMode(e,t,i)?{constraints:this._makeSpatialReferenceConstraints(e,t,i)}:null;const r=this._validateSpatialReferenceForViewingMode(e,t,se.Local),s=this._validateSpatialReferenceForViewingMode(e,t,se.Global);return r||s?r&&s?{constraints:this._makeSpatialReferenceConstraints(e,t,null)}:r?{constraints:this._makeSpatialReferenceConstraints(e,t,se.Local)}:{constraints:this._makeSpatialReferenceConstraints(e,t,se.Global)}:null}_validateSpatialReferenceForViewingMode(e,t,i){return!!Ne(e,i)&&(null==t||(!!N(t)||(!Q(t)||null!=Ae(t,e,i))&&(!Y(t)||i!==se.Global)))}_makeSpatialReferenceConstraints(e,t,i){if(null==t)return[{spatialReference:e,viewingMode:i}];const{isWebMercator:r,isWGS84:s}=e;if(N(t)&&(r||s)){return!s||i===se.Local||null===Ie(t.tileInfo,t.fullExtent,e,se.Global)?[{spatialReference:e,viewingMode:i},{spatialReference:G.WebMercator,viewingMode:i}]:[{spatialReference:r?G.WGS84:G.WebMercator,viewingMode:i}]}return Q(t)||Y(t)||!r&&!s?Q(t)&&r&&i!==se.Global?[{spatialReference:e,viewingMode:i},{spatialReference:G.WGS84,viewingMode:se.Local}]:[{spatialReference:e,viewingMode:i}]:[{spatialReference:e,viewingMode:i},{spatialReference:r?G.WGS84:G.WebMercator,viewingMode:i}]}_validateSpatialReference(e){const t=null!=this.getSpatialReferenceSupport(e),i=this._predeterminedViewingMode;return t||(null!=i?l.getLogger(this).warnOnce(`Spatial reference defined on view not supported in ${ne(i)} viewing mode.`):e.isGeographic&&l.getLogger(this).warnOnce("Spatial reference is geographic but not supported.")),t}whenReady(){return new Promise((e=>{this.ready?e(this):this._resolveWhenReady.push(e)}))}trackGraphicState(e){if(!e.graphic)return l.getLogger(this).error("trackGraphicState","GraphicState.graphic must not be null or undefined to start tracking"),null;const t=this.getViewForGraphic(e.graphic);let i=null,r=!1;const s=t=>{!r&&null!=t&&"processor"in t&&"graphics-3d"===t.processor?.type&&t.processor.graphicsCore&&(i=t.processor.graphicsCore.trackGraphicState(e))};return null!=t?s(t):this.whenViewForGraphic(e.graphic,{waitForLayer:!0}).then((e=>s(e)),(()=>{})).catch((()=>{})),o((()=>{r=!0,null!=i&&(i.remove(),i=null)}))}maskOccludee(e){if(!e)return l.getLogger(this).error("maskOccludee","GraphicState.graphic must not be null or undefined to mask an occludee"),null;const t=this.getViewForGraphic(e);let i=null,r=!1;const s=t=>{!r&&null!=t&&qe(t)&&(i=t.maskOccludee(e))};return null!=t?s(t):this.whenViewForGraphic(e,{waitForLayer:!0}).then((e=>s(e)),(()=>{})).catch((()=>{})),o((()=>{r=!0,null!=i&&(i.remove(),i=null)}))}getViewForGraphic(e){return e.layer===this.graphics?this.graphicsView:e.layer?this.allLayerViews.filter((e=>"media-3d"!==e.type)).find((t=>t.layer===e.layer)):null}graphicChanged(e){null!=this.graphicsView&&this.graphicsView.graphicChanged(e)}async whenViewForGraphic(e,t){if(e.layer===this)return await y((()=>this.graphicsView)),this.graphicsView;if(!e.layer||!this.map)throw new n("no-view-for-graphic");return t&&t.waitForLayer&&!this.map.allLayers.includes(e.layer)?new Promise(((t,i)=>{const r=this.map.allLayers.on("change",(s=>{s.added.includes(e.layer)&&(r.remove(),this.whenLayerView(e.layer).then(t,i))}))})):this.whenLayerView(e.layer)}_initBasemapTerrain(){this._set("basemapTerrain",new Le({view:this})),this._set("elevationProvider",new ve({view:this})),this.elevationProvider.register("ground",this.basemapTerrain)}_exitBasemapTerrain(){this.basemapTerrain&&(this.elevationProvider.unregister(this.basemapTerrain),this.elevationProvider.destroy(),this._set("elevationProvider",null),this.basemapTerrain.destroy(),this._set("basemapTerrain",null))}_initGlobe(){this._initCoordinateSystem(),this.state.createInitialCamera(),this._initBasemapTerrain(),this._set("pointsOfInterest",new Ee({view:this})),this._set("featureTiles",new me({renderCoordsHelper:this.renderCoordsHelper,cameraOnSurface:this.pointsOfInterest.cameraOnSurface,focus:this.pointsOfInterest.focus,tilingSchemeOwner:this.basemapTerrain,viewState:this.state,scheduler:this._resourceController.scheduler,terrain:this.basemapTerrain}));const e=()=>{const e=this.basemapTerrain?.extent;if(this.clippingArea||e)if(e&&this.basemapTerrain.spatialReference){const e=null!=this.basemapTerrain.extent&&null!=this.basemapTerrain.spatialReference?H(W(this.basemapTerrain.extent,this.basemapTerrain.spatialReference),this.spatialReference):null;this.clippingArea?this.featureTiles.filterExtent=this.clippingArea.intersection(e):this.featureTiles.filterExtent=e}else this.featureTiles.filterExtent=this.clippingArea;else this.featureTiles.filterExtent=null};this.addHandles([this.updatingHandles.add((()=>_e.FEATURE_TILE_TREE_SHOW_TILES),(e=>{e&&this.featureTiles&&!this._featureTreeDebugger?this.updatingHandles.addPromise(import("./3d/layers/support/FeatureTileTree3DDebugger.js")).then((({FeatureTileTree3DDebugger:e})=>{!this._featureTreeDebugger&&_e.FEATURE_TILE_TREE_SHOW_TILES&&(this._featureTreeDebugger=new e({view:this}))})):e||!this._featureTreeDebugger||_e.FEATURE_TILE_TREE_SHOW_TILES||(this._featureTreeDebugger.destroy(),this._featureTreeDebugger=null)}),f),this.updatingHandles.add((()=>this.clippingArea),e,f),this.updatingHandles.add((()=>this.basemapTerrain.extent),e,f)],"feature-tiles"),this.stateManager.init()}_exitGlobe(){this.featureTiles&&(this.stateManager.exit(),this.removeHandles("render-coords-helper"),this.removeHandles("feature-tiles"),this._set("featureTiles",p(this.featureTiles)),this._set("pointsOfInterest",p(this.pointsOfInterest)),this._exitBasemapTerrain(),this.state.reset(),this._exitCoordinateSystem())}_initCoordinateSystem(){if(this.spatialReference){const e=this.spatialReference,t=this.state.isGlobal,i=z(t,e);i!==this.renderSpatialReference&&(this._set("renderCoordsHelper",Ce.create(this.state.viewingMode,i)),t||this.addHandles(g((()=>this.basemapTerrain?.extent),(e=>{const t=this.renderCoordsHelper.spatialReference;null==e||0===e[0]&&0===e[1]&&0===e[2]&&0===e[3]||!D(e,this.basemapTerrain.spatialReference,rt,t)||(this.renderCoordsHelper.extent=rt)}),w),"render-coords-helper"),this.sceneIntersectionHelper&&this.sceneIntersectionHelper.setTolerance(De/this.renderCoordsHelper.unitInMeters))}else this._set("renderCoordsHelper",null)}_exitCoordinateSystem(){this.removeHandles("render-coords-helper"),this._set("renderCoordsHelper",null)}_updatingChanged(){this.notifyChange("updating")}_updateUpdatingMonitors(e=null){null!=e&&e.type===d.MOVE||(this.removeHandles("updatingMonitors"),this.allLayerViews.forEach((e=>{e.destroyed||(this.addHandles(g((()=>[e.updating,e.updatingProgress]),(()=>this._updatingChanged()),w),"updatingMonitors"),e.when((()=>this._updatingChanged()),(()=>this._updatingChanged())))})),this._updatingChanged())}async _prepareScreenshotOverlay(){this.overlay&&await this.overlay.prepare()}_renderScreenshotOverlay(e,t,i){if(!this.overlay||!this.overlay.hasVisibleItems)return i;const r=e.getContext("2d");return r.putImageData(i,0,0),this.overlay.renderCanvas(e,{disableDecorations:t}),r.getImageData(0,0,i.width,i.height)}_initStage(){const e={deactivatedWebGLExtensions:this.deactivatedWebGLExtensions,debugWebGLExtensions:this.debugWebGLExtensions,alpha:this.alphaCompositingEnabled,preserveDrawingBuffer:this.preserveDrawingBufferEnabled,canvas:this.renderCanvas,screenshot:{prepareOverlay:()=>this._prepareScreenshotOverlay(),renderOverlay:(e,t,i)=>this._renderScreenshotOverlay(e,t,i)}},t=new we(this.state.viewingMode,(e=>this.stage.layers.forAll(e)),this);this._set("sceneIntersectionHelper",t);const i=s(this.surface);this._stage=new He({view:this,options:e,container:i}),this._stage.renderer.slicePlane=this.slicePlane,this.addHandles([this.updatingHandles.add((()=>this.qualitySettings.highQualityTransparency),(e=>this.stage.renderer.setParameters({highQualityTransparency:e})),m),this.on("pointer-move",(()=>this.stage?.renderer.resetAnimation())),a(this.stage.renderView.canvas,"webglcontextlost",(e=>{this.fatalError=new n("webgl-context-lost",e.statusMessage)}))],"stage"),this.renderCoordsHelper&&this.sceneIntersectionHelper.setTolerance(De/this.renderCoordsHelper.unitInMeters),this._set("canvas",this.stage.renderView.canvas)}_exitStage(){this._set("sceneIntersectionHelper",null),this._stage=p(this.stage),this.removeHandles("stage"),this._set("canvas",null)}_initSurface(e){this._exitSurface(),this._initStage(),this._initGlobe(),this.sharedSymbolResources=new xe({view:this,viewingMode:e,resourceController:this._resourceController,pointsOfInterest:this.pointsOfInterest,viewState:this.state})}_exitSurface(){this.sharedSymbolResources&&(this.sharedSymbolResources.objectResourceCache.destroy(),this.sharedSymbolResources.destroy(),this.sharedSymbolResources=null,this._exitGlobe(),this._exitStage())}_createGraphicsViewIfNeeded(){if(this.graphicsView||this._createGraphicsViewController)return;if(0===this.graphics.length)return;this.removeHandles("graphics-view"),this._createGraphicsViewController=new AbortController;const e=()=>{this._createGraphicsViewController=null,this._updatingChanged()};this._createGraphicsViewAsync(this._createGraphicsViewController.signal).then(e,e),this._updatingChanged()}async _createGraphicsViewAsync(e){const t=(await import("./3d/layers/GraphicsView3D.js")).default;c(e),await y((()=>this.basemapTerrain?.ready),e),this._set("graphicsView",new t({view:this}))}_disposeGraphicsView(){this._createGraphicsViewController&&(this._createGraphicsViewController.abort(),this._createGraphicsViewController=null),this.removeHandles("graphics-view"),null!=this.graphicsView&&(this.removeHandles(this.graphicsView.processor.layer.id),this.graphicsView.destroy(),this._set("graphicsView",null))}_startup(){const e=ae(this.viewingMode);e===se.Global&&(this._clippingArea=null),this._initSurface(e),this._set("ready",!0),this.addHandles(u((()=>this.graphics),"after-changes",(()=>this._createGraphicsViewIfNeeded())),"graphics-view"),this._createGraphicsViewIfNeeded();const t=this.map&&"initialViewProperties"in this.map?this.map.initialViewProperties:null,i=t?.environment;i&&(this._overrideDefaultEnvironmentOnly?T(this.environment,i):this.environment=this.environment.cloneWithWebsceneEnvironment(i)),this.timeExtent=t?.timeExtent,this.labeler.setup(),this.environmentManager.connectView(this),this.inputManager.connect();const r=this._resolveWhenReady;this._resolveWhenReady=[],r.forEach((e=>e(this)))}_teardown(){this._initialDefaultSpatialReference=null,this.inputManager.disconnect(),this.environmentManager.disconnectView(),this._overrideDefaultEnvironmentOnly=!1,this.labeler.dispose(),this._disposeGraphicsView(),this.removeHandles("graphics-view"),this._exitSurface(),this._set("ready",!1)}get _defaultToMapOptions(){const e={include:new Set};if(!this.map)return e;this.map.ground&&e.include.add(Fe);for(const t of this.allLayerViews)Z(t.layer.type)&&e.include.add(t.uid);return e}get _defaultHitTestOptions(){const e={exclude:new Set};if(!this.map)return e;this.map.ground&&this.map.ground.opacity<1&&e.exclude.add(Fe);for(const t of this.allLayerViews)Z(t.layer.type)&&t.layer.opacity<1&&e.exclude.add(t.uid);return e}static{this.type="3d"}};function et(e,t){return null!=e&&I(e.spatialReference,t)?H(e,t):null}e([V()],Xe.prototype,"_userClippingArea",void 0),e([V()],Xe.prototype,"_resourceController",void 0),e([V()],Xe.prototype,"_stage",void 0),e([V({readOnly:!0})],Xe.prototype,"deconflictor",void 0),e([V({readOnly:!0})],Xe.prototype,"labeler",void 0),e([V(E($,"analyses"))],Xe.prototype,"analyses",void 0),e([V({type:re,readOnly:!0})],Xe.prototype,"animation",null),e([V({readOnly:!0})],Xe.prototype,"basemapTerrain",void 0),e([V({readOnly:!0})],Xe.prototype,"elevationProvider",void 0),e([V()],Xe.prototype,"camera",null),e([V({type:t})],Xe.prototype,"contentCamera",null),e([V({readOnly:!0})],Xe.prototype,"canvas",void 0),e([V({type:A})],Xe.prototype,"center",null),e([V({type:L})],Xe.prototype,"clippingArea",null),e([V({type:pe})],Xe.prototype,"constraints",void 0),e([V({type:L,readOnly:!0})],Xe.prototype,"renderDataExtent",null),e([V({readOnly:!0})],Xe.prototype,"tileInfo",null),e([V({type:L,readOnly:!0})],Xe.prototype,"dataExtent",null),e([V({type:L,readOnly:!0})],Xe.prototype,"_groundAndLayersExtent",null),e([V({type:de})],Xe.prototype,"environment",void 0),e([j("environment")],Xe.prototype,"castEnvironment",null),e([V({readOnly:!0})],Xe.prototype,"environmentManager",void 0),e([V({type:L})],Xe.prototype,"extent",null),e([V({type:r})],Xe.prototype,"floors",void 0),e([V()],Xe.prototype,"screenCenter",null),e([V()],Xe.prototype,"frustum",null),e([V({type:Number,readOnly:!0})],Xe.prototype,"fullOpacity",void 0),e([V({readOnly:!0})],Xe.prototype,"graphicsView",void 0),e([V({readOnly:!0})],Xe.prototype,"analysisViewManager",void 0),e([V()],Xe.prototype,"groundView",void 0),e([V({type:Boolean})],Xe.prototype,"initialExtentRequired",null),e([V()],Xe.prototype,"defaultsFromMapSettings",null),e([V()],Xe.prototype,"interacting",null),e([V()],Xe.prototype,"stationary",null),e([V()],Xe.prototype,"navigating",null),e([V()],Xe.prototype,"map",void 0),e([V()],Xe.prototype,"padding",null),e([V({type:Ee,readOnly:!0})],Xe.prototype,"pointsOfInterest",void 0),e([V({type:me,readOnly:!0})],Xe.prototype,"featureTiles",void 0),e([V()],Xe.prototype,"_featureTreeDebugger",void 0),e([V({type:Boolean})],Xe.prototype,"screenSizePerspectiveEnabled",void 0),e([V({constructOnly:!0})],Xe.prototype,"deactivatedWebGLExtensions",void 0),e([V({constructOnly:!0})],Xe.prototype,"debugWebGLExtensions",void 0),e([V({constructOnly:!0})],Xe.prototype,"renderCanvas",void 0),e([V({constructOnly:!0})],Xe.prototype,"state",void 0),e([V({readOnly:!0})],Xe.prototype,"inputManager",void 0),e([V({readOnly:!0})],Xe.prototype,"stateManager",void 0),e([V({type:["low","medium","high"]})],Xe.prototype,"qualityProfile",null),e([V({type:Re,get(){let e=this._get("qualitySettings");return e||(e=new Re,be.apply(this.qualityProfile,e)),e}})],Xe.prototype,"qualitySettings",void 0),e([V()],Xe.prototype,"slicePlane",null),e([V({readOnly:!0})],Xe.prototype,"typeSpecificPreconditionsReady",null),e([V({readOnly:!0})],Xe.prototype,"renderCoordsHelper",void 0),e([V({readOnly:!0})],Xe.prototype,"sceneIntersectionHelper",void 0),e([V({type:Number,dependsOn:["scale","spatialReference"],readOnly:!0})],Xe.prototype,"resolution",null),e([V({type:Number})],Xe.prototype,"scale",null),e([V()],Xe.prototype,"heightModelInfo",null),e([V()],Xe.prototype,"spatialReference",void 0),e([V({type:Boolean,constructOnly:!0})],Xe.prototype,"alphaCompositingEnabled",void 0),e([V({constructOnly:!0})],Xe.prototype,"preserveDrawingBufferEnabled",void 0),e([V({type:Boolean})],Xe.prototype,"supersampleScreenshotsEnabled",void 0),e([V({readOnly:!0})],Xe.prototype,"type",void 0),e([V(),j((e=>e instanceof $e?e:O(Je,e)))],Xe.prototype,"ui",void 0),e([V({type:Boolean,readOnly:!0,dependsOn:["graphicsView.updating","basemapView.updating","basemapTerrain.updating","layerViewManager.updating","layerViewManager.updatingRemaining","_resourceController.updating","stage.updating","featureTiles.updating","pointsOfInterest.updating","environmentManager.updating","overlay.updating","updatingHandles.updating","featureTreeDebugger.updating","labeler.updating","deconflictor.updating","ready","stationary","inputManager.updating","toolViewManager.updating","analysisViewManager.updating","state.updating","textures.updating"]})],Xe.prototype,"updating",null),e([V()],Xe.prototype,"_updatingObjects",null),e([V()],Xe.prototype,"_updatingObjectsWithProgress",null),e([V({type:Number,readOnly:!0,dependsOn:["updating"]})],Xe.prototype,"updatingProgress",void 0),e([V({type:["global","local"]})],Xe.prototype,"viewingMode",null),e([V({type:i})],Xe.prototype,"viewpoint",null),e([V({readOnly:!0})],Xe.prototype,"visibleArea",null),e([V({type:Number})],Xe.prototype,"zoom",null),e([V({type:We})],Xe.prototype,"highlightOptions",null),e([V({readOnly:!0})],Xe.prototype,"quality",null),e([V({readOnly:!0})],Xe.prototype,"resolutionScale",null),e([V()],Xe.prototype,"_defaultToMapOptions",null),e([V()],Xe.prototype,"_defaultHitTestOptions",null),Xe=e([R("esri.views.SceneView")],Xe);const tt=x(),it=b(),rt=U(),st=Xe;export{st as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/has.js";import t from"../../core/Logger.js";import{disposeMaybe as e}from"../../core/maybe.js";import{BufferObject as i}from"./BufferObject.js";import{webglDebugEnabled as r}from"./checkWebGLError.js";import{ResourceType as s,ColorAttachment0 as n,TextureType as h,FramebufferTarget as o,PixelFormat as c,PixelType as a,DepthStencilAttachment as f,Usage as u,BufferType as _,RenderbufferFormat as l,StencilAttachment as d,DepthAttachment as m}from"./enums.js";import{GLObjectType as T}from"./GLObjectType.js";import{Renderbuffer as x}from"./Renderbuffer.js";import{Texture as p}from"./Texture.js";const E=()=>t.getLogger("esri.views.webgl.FramebufferObject");class b{constructor(t,e,i=null){this._context=t,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,this._initialized=!1,t.instanceCounter.increment(s.FramebufferObject,this);const r=g(e)?e:new p(this._context,e);if(this._colorAttachments.set(n,r),this._validateTextureDescriptor(r.descriptor),this._validateColorAttachmentPoint(n),null!=i)if(R(i))this._depthStencilTexture=g(i)?i:new p(this._context,i),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{const t=F(i)?i:new x(this._context,i);this._depthStencilBuffer=t,this._validateRenderBufferDescriptor(t.descriptor)}}dispose(){if(0===this._colorAttachments.size&&!this._glName)return;const t=this._context.getBoundFramebufferObject();if(this._colorAttachments.forEach(((t,e)=>this.detachColorTexture(e)?.dispose())),this.detachDepthStencilBuffer()?.dispose(),this.detachDepthStencilTexture()?.dispose(),this._glName){this._context.gl.deleteFramebuffer(this._glName),this._glName=null}this._context.bindFramebuffer(t),this._context.instanceCounter.decrement(s.FramebufferObject,this)}get glName(){return this._glName}get colorTexture(){return this._colorAttachments.get(n)}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){const t=this._colorAttachments.get(n);return t?.descriptor?.width??0}get height(){const t=this._colorAttachments.get(n);return t?.descriptor?.height??0}get usedMemory(){return[...this._colorAttachments].reduce(((t,[e,i])=>t+i.usedMemory),this.depthStencil?.usedMemory??0)}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(t){const e=this._colorAttachments.get(t);return e&&g(e)?e:null}get colorAttachments(){return[...this._colorAttachments.keys()]}attachColorTexture(t,e=n){if(!t)return;this._validateColorAttachmentPoint(e);const i=t.descriptor;this._validateTextureDescriptor(i),this.detachColorTexture(e)?.dispose(),this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(t.glName,e)),this._colorAttachments.set(e,t)}detachColorTexture(t=n){const e=this._colorAttachments.get(t);if(e){if(this._initialized){const e=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),this._framebufferTexture2D(null,t),this._context.bindFramebuffer(e)}return this._colorAttachments.delete(t),e}}setColorTextureTarget(t,e=n,i=0){const r=this._colorAttachments.get(e);r&&(t===h.TEXTURE_2D_ARRAY?this._framebufferTextureLayer(r.glName,e,o.FRAMEBUFFER,0,i):this._framebufferTexture2D(r.glName,e,t,o.FRAMEBUFFER,0))}attachDepthStencil(t){if(t)switch(t.type){case T.Texture:return this._attachDepthStencilTexture(t);case T.RenderBuffer:return this._attachDepthStencilBuffer(t)}}_attachDepthStencilTexture(t){if(null==t)return;const e=t.descriptor;e.pixelFormat!==c.DEPTH_STENCIL&&e.pixelFormat!==c.DEPTH24_STENCIL8&&console.error("Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!"),e.dataType!==a.UNSIGNED_INT_24_8&&console.error("Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!"),this._validateTextureDescriptor(e),this._disposeDepthStencilAttachments(),this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(t.glName,f)),this._depthStencilTexture?.dispose(),this._depthStencilTexture=t}detachDepthStencilTexture(){const t=this._depthStencilTexture;if(t&&this._initialized){const t=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),this._framebufferTexture2D(null,f),this._context.bindFramebuffer(t)}return this._depthStencilTexture=null,t}_attachDepthStencilBuffer(t){if(null==t)return;const e=t.descriptor;if(this._validateRenderBufferDescriptor(e),this._disposeDepthStencilAttachments(),this._initialized){this._context.bindFramebuffer(this);const i=this._context.gl,r=this._getGLAttachmentPoint(e);i.framebufferRenderbuffer(o.FRAMEBUFFER,r,i.RENDERBUFFER,t.glName)}this._depthStencilBuffer=t}detachDepthStencilBuffer(){const t=this._depthStencilBuffer;if(t&&this._initialized){const e=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this);const i=this._context.gl,r=this._getGLAttachmentPoint(t.descriptor);i.framebufferRenderbuffer(o.FRAMEBUFFER,r,i.RENDERBUFFER,null),this._context.bindFramebuffer(e)}return this._depthStencilBuffer=null,t}invalidateAttachments(t,e=!1){const i=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this,e),this._context.gl.invalidateFramebuffer(o.FRAMEBUFFER,t),this._context.bindFramebuffer(i)}copyToTexture(t,e,i,r,s,n,o){(t<0||e<0||s<0||n<0)&&console.error("Offsets cannot be negative!"),(i<=0||r<=0)&&console.error("Copy width and height must be greater than zero!");const c=o.descriptor;o.descriptor.target!==h.TEXTURE_2D&&console.error("Texture target must be TEXTURE_2D!"),(null==c?.width||null==c?.height||t+i>this.width||e+r>this.height||s+i>c.width||n+r>c.height)&&console.error("Bad dimensions, the current input values will attempt to read or copy out of bounds!");const a=this._context,f=a.bindTexture(o,p.TEXTURE_UNIT_FOR_UPDATES);a.setActiveTexture(p.TEXTURE_UNIT_FOR_UPDATES),a.bindFramebuffer(this),a.gl.copyTexSubImage2D(h.TEXTURE_2D,0,s,n,t,e,i,r),a.bindTexture(f,p.TEXTURE_UNIT_FOR_UPDATES)}readPixels(t,e,i,r,s,n,h){(i<=0||r<=0)&&console.error("Copy width and height must be greater than zero!"),h||console.error("Target memory is not initialized!"),this._context.bindFramebuffer(this),this._context.gl.readPixels(t,e,i,r,s,n,h)}async readPixelsAsync(t,e,r,s,n,h,o){const{gl:c}=this._context,a=i.createPixelPack(this._context,u.STREAM_READ,o.byteLength);this._context.bindBuffer(a);const f=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),c.readPixels(t,e,r,s,n,h,0),this._context.unbindBuffer(_.PIXEL_PACK_BUFFER),this._context.bindFramebuffer(f),await a.getSubDataAsync(o),a.dispose()}resize(t,e){if(this.width===t&&this.height===e)return;const i={width:t,height:e};A(i,this._context.parameters.maxTextureSize),this._colorAttachments.forEach((t=>t.resize(i.width,i.height))),this._depthStencilTexture?.resize(i.width,i.height),this._initialized&&(A(i,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(i.width,i.height),this._context.getBoundFramebufferObject()===this&&this._context.bindFramebuffer(null),this._initialized=!1)}initializeAndBind(t=o.FRAMEBUFFER){const e=this._context.gl;if(this._initialized)return void e.bindFramebuffer(t,this.glName);this._glName&&e.deleteFramebuffer(this._glName);const i=e.createFramebuffer();if(e.bindFramebuffer(t,i),this._colorAttachments.forEach(((e,i)=>{const r=S(e);r===h.TEXTURE_2D_ARRAY?this._framebufferTextureLayer(e.glName,i,t,0,0):this._framebufferTexture2D(e.glName,i,r,t)})),this._depthStencilBuffer){const i=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(t,i,e.RENDERBUFFER,this._depthStencilBuffer.glName)}else this._depthStencilTexture&&this._framebufferTexture2D(this._depthStencilTexture.glName,f,S(this._depthStencilTexture),t);if(r()){e.checkFramebufferStatus(t)!==e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}this._glName=i,this._initialized=!0}_framebufferTexture2D(t,e=n,i=h.TEXTURE_2D,r=o.FRAMEBUFFER,s=0){this._context.gl.framebufferTexture2D(r,e,i,t,s)}_framebufferTextureLayer(t,e=n,i=o.FRAMEBUFFER,r=0,s=0){this._context.gl.framebufferTextureLayer(i,e,t,r,s)}_disposeDepthStencilAttachments(){const t=this._context.gl;if(this._depthStencilBuffer){if(this._initialized){this._context.bindFramebuffer(this);const e=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(o.FRAMEBUFFER,e,t.RENDERBUFFER,null)}this._depthStencilBuffer=e(this._depthStencilBuffer)}this._depthStencilTexture&&(this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,f)),this._depthStencilTexture=e(this._depthStencilTexture))}_validateTextureDescriptor(t){t.target!==h.TEXTURE_2D&&t.target!==h.TEXTURE_CUBE_MAP&&t.target!==h.TEXTURE_2D_ARRAY&&console.error("Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!"),A(t,this._context.parameters.maxTextureSize),this._validateBufferDimensions(t)}_validateRenderBufferDescriptor(t){A(t,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(t)}_validateBufferDimensions(t){t.width<=0&&(t.width=this.width),t.height<=0&&(t.height=this.height),this.width>0&&this.height>0&&(this.width===t.width&&this.height===t.height||console.error("Attachment size must match framebuffer size!"))}_getGLAttachmentPoint(t){switch(t.internalFormat){case l.DEPTH_COMPONENT16:case l.DEPTH_COMPONENT24:case l.DEPTH_COMPONENT32F:return m;case l.DEPTH24_STENCIL8:case l.DEPTH32F_STENCIL8:case l.DEPTH_STENCIL:return f;case l.STENCIL_INDEX8:return d}}_validateColorAttachmentPoint(e){if(-1===b._MAX_COLOR_ATTACHMENTS){const{gl:t}=this._context;b._MAX_COLOR_ATTACHMENTS=t.getParameter(t.MAX_COLOR_ATTACHMENTS)}const i=e-n;i+1>b._MAX_COLOR_ATTACHMENTS&&t.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${i+1}. Implementation supports up to ${b._MAX_COLOR_ATTACHMENTS} color attachments`)}}function g(t){return null!=t&&"type"in t&&t.type===T.Texture}function F(t){return null!=t&&"type"in t&&t.type===T.RenderBuffer}function R(t){return g(t)||null!=t&&"pixelFormat"in t}function A(t,e){const i=Math.max(t.width,t.height);if(i>e){E().warn(`Resizing FBO attachment size ${t.width}x${t.height} to device limit ${e}`);const r=e/i;return t.width=Math.round(t.width*r),t.height=Math.round(t.height*r),!1}return!0}function S(t){return t.descriptor.target===h.TEXTURE_CUBE_MAP?h.TEXTURE_CUBE_MAP_POSITIVE_X:t.descriptor.target===h.TEXTURE_2D_ARRAY?h.TEXTURE_2D_ARRAY:h.TEXTURE_2D}export{b as FramebufferObject,A as ensureAttachmentMaxSize};
5
+ import"../../core/has.js";import t from"../../core/Logger.js";import{disposeMaybe as e}from"../../core/maybe.js";import{BufferObject as i}from"./BufferObject.js";import{webglDebugEnabled as r}from"./checkWebGLError.js";import{ResourceType as s,ColorAttachment0 as n,TextureType as h,FramebufferTarget as o,PixelFormat as c,PixelType as a,DepthStencilAttachment as f,Usage as u,BufferType as _,RenderbufferFormat as l,StencilAttachment as d,DepthAttachment as m}from"./enums.js";import{GLObjectType as T}from"./GLObjectType.js";import{Renderbuffer as x}from"./Renderbuffer.js";import{Texture as p}from"./Texture.js";const b=()=>t.getLogger("esri.views.webgl.FramebufferObject");class E{constructor(t,e,i=null){this._context=t,this._glName=null,this._colorAttachments=new Map,this._depthStencilBuffer=null,this._depthStencilTexture=null,this._initialized=!1,t.instanceCounter.increment(s.FramebufferObject,this);const r=g(e)?e:new p(this._context,e);if(this._colorAttachments.set(n,r),this._validateTextureDescriptor(r.descriptor),this._validateColorAttachmentPoint(n),null!=i)if(R(i))this._depthStencilTexture=g(i)?i:new p(this._context,i),this._validateTextureDescriptor(this._depthStencilTexture.descriptor);else{const t=F(i)?i:new x(this._context,i);this._depthStencilBuffer=t,this._validateRenderbufferDescriptor(t.descriptor)}}dispose(){if(0===this._colorAttachments.size&&!this._glName)return;const t=this._context.getBoundFramebufferObject();if(this._colorAttachments.forEach(((t,e)=>this.detachColorTexture(e)?.dispose())),this.detachDepthStencilBuffer()?.dispose(),this.detachDepthStencilTexture()?.dispose(),this._glName){this._context.gl.deleteFramebuffer(this._glName),this._glName=null}this._context.bindFramebuffer(t),this._context.instanceCounter.decrement(s.FramebufferObject,this)}get glName(){return this._glName}get colorTexture(){return this._colorAttachments.get(n)}get depthStencil(){return this._depthStencilTexture||this._depthStencilBuffer}get depthStencilTexture(){return this._depthStencilTexture}get width(){const t=this._colorAttachments.get(n);return t?.descriptor?.width??0}get height(){const t=this._colorAttachments.get(n);return t?.descriptor?.height??0}get usedMemory(){return[...this._colorAttachments].reduce(((t,[e,i])=>t+i.usedMemory),this.depthStencil?.usedMemory??0)}static{this._MAX_COLOR_ATTACHMENTS=-1}getColorTexture(t){const e=this._colorAttachments.get(t);return e&&g(e)?e:null}get colorAttachments(){return[...this._colorAttachments.keys()]}attachColorTexture(t,e=n){if(!t)return;this._validateColorAttachmentPoint(e);const i=t.descriptor;this._validateTextureDescriptor(i),this.detachColorTexture(e)?.dispose(),this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(t.glName,e)),this._colorAttachments.set(e,t)}detachColorTexture(t=n){const e=this._colorAttachments.get(t);if(e){if(this._initialized){const e=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),this._framebufferTexture2D(null,t),this._context.bindFramebuffer(e)}return this._colorAttachments.delete(t),e}}setColorTextureTarget(t,e=n,i=0){const r=this._colorAttachments.get(e);r&&(t===h.TEXTURE_2D_ARRAY?this._framebufferTextureLayer(r.glName,e,o.FRAMEBUFFER,0,i):this._framebufferTexture2D(r.glName,e,t,o.FRAMEBUFFER,0))}attachDepthStencil(t){if(t)switch(t.type){case T.Texture:return this._attachDepthStencilTexture(t);case T.Renderbuffer:return this._attachDepthStencilBuffer(t)}}_attachDepthStencilTexture(t){if(null==t)return;const e=t.descriptor;e.pixelFormat!==c.DEPTH_STENCIL&&e.pixelFormat!==c.DEPTH24_STENCIL8&&console.error("Depth/Stencil texture must have a pixel type of DEPTH_STENCIL!"),e.dataType!==a.UNSIGNED_INT_24_8&&console.error("Depth/Stencil texture must have data type of UNSIGNED_INT_24_8!"),this._validateTextureDescriptor(e),this._disposeDepthStencilAttachments(),this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(t.glName,f)),this._depthStencilTexture?.dispose(),this._depthStencilTexture=t}detachDepthStencilTexture(){const t=this._depthStencilTexture;if(t&&this._initialized){const t=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),this._framebufferTexture2D(null,f),this._context.bindFramebuffer(t)}return this._depthStencilTexture=null,t}_attachDepthStencilBuffer(t){if(null==t)return;const e=t.descriptor;if(this._validateRenderbufferDescriptor(e),this._disposeDepthStencilAttachments(),this._initialized){this._context.bindFramebuffer(this);const i=this._context.gl,r=this._getGLAttachmentPoint(e);i.framebufferRenderbuffer(o.FRAMEBUFFER,r,i.RENDERBUFFER,t.glName)}this._depthStencilBuffer=t}detachDepthStencilBuffer(){const t=this._depthStencilBuffer;if(t&&this._initialized){const e=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this);const i=this._context.gl,r=this._getGLAttachmentPoint(t.descriptor);i.framebufferRenderbuffer(o.FRAMEBUFFER,r,i.RENDERBUFFER,null),this._context.bindFramebuffer(e)}return this._depthStencilBuffer=null,t}invalidateAttachments(t,e=!1){const i=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this,e),this._context.gl.invalidateFramebuffer(o.FRAMEBUFFER,t),this._context.bindFramebuffer(i)}copyToTexture(t,e,i,r,s,n,o){(t<0||e<0||s<0||n<0)&&console.error("Offsets cannot be negative!"),(i<=0||r<=0)&&console.error("Copy width and height must be greater than zero!");const c=o.descriptor;o.descriptor.target!==h.TEXTURE_2D&&console.error("Texture target must be TEXTURE_2D!"),(null==c?.width||null==c?.height||t+i>this.width||e+r>this.height||s+i>c.width||n+r>c.height)&&console.error("Bad dimensions, the current input values will attempt to read or copy out of bounds!");const a=this._context,f=a.bindTexture(o,p.TEXTURE_UNIT_FOR_UPDATES);a.setActiveTexture(p.TEXTURE_UNIT_FOR_UPDATES),a.bindFramebuffer(this),a.gl.copyTexSubImage2D(h.TEXTURE_2D,0,s,n,t,e,i,r),a.bindTexture(f,p.TEXTURE_UNIT_FOR_UPDATES)}readPixels(t,e,i,r,s,n,h){(i<=0||r<=0)&&console.error("Copy width and height must be greater than zero!"),h||console.error("Target memory is not initialized!"),this._context.bindFramebuffer(this),this._context.gl.readPixels(t,e,i,r,s,n,h)}async readPixelsAsync(t,e,r,s,n,h,o){const{gl:c}=this._context,a=i.createPixelPack(this._context,u.STREAM_READ,o.byteLength);this._context.bindBuffer(a);const f=this._context.getBoundFramebufferObject();this._context.bindFramebuffer(this),c.readPixels(t,e,r,s,n,h,0),this._context.unbindBuffer(_.PIXEL_PACK_BUFFER),this._context.bindFramebuffer(f),await a.getSubDataAsync(o),a.dispose()}resize(t,e){if(this.width===t&&this.height===e)return;const i={width:t,height:e};A(i,this._context.parameters.maxTextureSize),this._colorAttachments.forEach((t=>t.resize(i.width,i.height))),this._depthStencilTexture?.resize(i.width,i.height),this._initialized&&(A(i,this._context.parameters.maxRenderbufferSize),this._depthStencilBuffer?.resize(i.width,i.height),this._context.getBoundFramebufferObject()===this&&this._context.bindFramebuffer(null),this._initialized=!1)}initializeAndBind(t=o.FRAMEBUFFER){const e=this._context.gl;if(this._initialized)return void e.bindFramebuffer(t,this.glName);this._glName&&e.deleteFramebuffer(this._glName);const i=e.createFramebuffer();if(e.bindFramebuffer(t,i),this._colorAttachments.forEach(((e,i)=>{const r=S(e);r===h.TEXTURE_2D_ARRAY?this._framebufferTextureLayer(e.glName,i,t,0,0):this._framebufferTexture2D(e.glName,i,r,t)})),this._depthStencilBuffer){const i=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);e.framebufferRenderbuffer(t,i,e.RENDERBUFFER,this._depthStencilBuffer.glName)}else this._depthStencilTexture&&this._framebufferTexture2D(this._depthStencilTexture.glName,f,S(this._depthStencilTexture),t);if(r()){e.checkFramebufferStatus(t)!==e.FRAMEBUFFER_COMPLETE&&console.error("Framebuffer is incomplete!")}this._glName=i,this._initialized=!0}_framebufferTexture2D(t,e=n,i=h.TEXTURE_2D,r=o.FRAMEBUFFER,s=0){this._context.gl.framebufferTexture2D(r,e,i,t,s)}_framebufferTextureLayer(t,e=n,i=o.FRAMEBUFFER,r=0,s=0){this._context.gl.framebufferTextureLayer(i,e,t,r,s)}_disposeDepthStencilAttachments(){const t=this._context.gl;if(this._depthStencilBuffer){if(this._initialized){this._context.bindFramebuffer(this);const e=this._getGLAttachmentPoint(this._depthStencilBuffer.descriptor);t.framebufferRenderbuffer(o.FRAMEBUFFER,e,t.RENDERBUFFER,null)}this._depthStencilBuffer=e(this._depthStencilBuffer)}this._depthStencilTexture&&(this._initialized&&(this._context.bindFramebuffer(this),this._framebufferTexture2D(null,f)),this._depthStencilTexture=e(this._depthStencilTexture))}_validateTextureDescriptor(t){t.target!==h.TEXTURE_2D&&t.target!==h.TEXTURE_CUBE_MAP&&t.target!==h.TEXTURE_2D_ARRAY&&console.error("Texture type must be TEXTURE_2D, TEXTURE_2D_ARRAY or TEXTURE_CUBE_MAP!"),A(t,this._context.parameters.maxTextureSize),this._validateBufferDimensions(t)}_validateRenderbufferDescriptor(t){A(t,this._context.parameters.maxRenderbufferSize),this._validateBufferDimensions(t)}_validateBufferDimensions(t){t.width<=0&&(t.width=this.width),t.height<=0&&(t.height=this.height),this.width>0&&this.height>0&&(this.width===t.width&&this.height===t.height||console.error("Attachment size must match framebuffer size!"))}_getGLAttachmentPoint(t){switch(t.internalFormat){case l.DEPTH_COMPONENT16:case l.DEPTH_COMPONENT24:case l.DEPTH_COMPONENT32F:return m;case l.DEPTH24_STENCIL8:case l.DEPTH32F_STENCIL8:case l.DEPTH_STENCIL:return f;case l.STENCIL_INDEX8:return d}}_validateColorAttachmentPoint(e){if(-1===E._MAX_COLOR_ATTACHMENTS){const{gl:t}=this._context;E._MAX_COLOR_ATTACHMENTS=t.getParameter(t.MAX_COLOR_ATTACHMENTS)}const i=e-n;i+1>E._MAX_COLOR_ATTACHMENTS&&t.getLogger("esri.views.webgl.FrameBufferObject").error("esri.FrameBufferObject",`illegal attachment point for color attachment: ${i+1}. Implementation supports up to ${E._MAX_COLOR_ATTACHMENTS} color attachments`)}}function g(t){return null!=t&&"type"in t&&t.type===T.Texture}function F(t){return null!=t&&"type"in t&&t.type===T.Renderbuffer}function R(t){return g(t)||null!=t&&"pixelFormat"in t}function A(t,e){const i=Math.max(t.width,t.height);if(i>e){b().warn(`Resizing FBO attachment size ${t.width}x${t.height} to device limit ${e}`);const r=e/i;return t.width=Math.round(t.width*r),t.height=Math.round(t.height*r),!1}return!0}function S(t){return t.descriptor.target===h.TEXTURE_CUBE_MAP?h.TEXTURE_CUBE_MAP_POSITIVE_X:t.descriptor.target===h.TEXTURE_2D_ARRAY?h.TEXTURE_2D_ARRAY:h.TEXTURE_2D}export{E as FramebufferObject,A as ensureAttachmentMaxSize};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- var e;!function(e){e[e.Texture=0]="Texture",e[e.RenderBuffer=1]="RenderBuffer"}(e||(e={}));export{e as GLObjectType};
5
+ var e;!function(e){e[e.Texture=0]="Texture",e[e.Renderbuffer=1]="Renderbuffer"}(e||(e={}));export{e as GLObjectType};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ResourceType as e}from"./enums.js";import{GLObjectType as t}from"./GLObjectType.js";import{estimateMemory as r}from"./RenderbufferDescriptor.js";class s{constructor(r,s){this._context=r,this._descriptor=s,this.type=t.RenderBuffer,this._context.instanceCounter.increment(e.Renderbuffer,this);const i=this._context.gl;this.glName=i.createRenderbuffer(),this._context.bindRenderbuffer(this);const{width:n,height:o,internalFormat:h,multisampled:d}=s;d?i.renderbufferStorageMultisample(i.RENDERBUFFER,this.samples,h,n,o):i.renderbufferStorage(i.RENDERBUFFER,h,n,o),this._context.bindRenderbuffer(null)}get descriptor(){return this._descriptor}get samples(){const e=this._descriptor.samples,t=this._context.parameters.maxSamples;return e?Math.min(e,t):t}get usedMemory(){return r(this._descriptor)}resize(e,t){const r=this._descriptor;if(r.width===e&&r.height===t)return;r.width=e,r.height=t;const s=this._context.gl;this._context.bindRenderbuffer(this),r.multisampled?s.renderbufferStorageMultisample(s.RENDERBUFFER,this.samples,r.internalFormat,r.width,r.height):s.renderbufferStorage(s.RENDERBUFFER,r.internalFormat,r.width,r.height),this._context.bindRenderbuffer(null)}dispose(){this._context&&(this._context.gl.deleteRenderbuffer(this.glName),this._context.instanceCounter.decrement(e.Renderbuffer,this),this._context=null)}}export{s as Renderbuffer};
5
+ import{ResourceType as e}from"./enums.js";import{GLObjectType as t}from"./GLObjectType.js";import{estimateMemory as r}from"./RenderbufferDescriptor.js";class s{constructor(r,s){this._context=r,this._descriptor=s,this.type=t.Renderbuffer,this._context.instanceCounter.increment(e.Renderbuffer,this);const i=this._context.gl;this.glName=i.createRenderbuffer(),this._context.bindRenderbuffer(this);const{width:n,height:o,internalFormat:h,multisampled:d}=s;d?i.renderbufferStorageMultisample(i.RENDERBUFFER,this.samples,h,n,o):i.renderbufferStorage(i.RENDERBUFFER,h,n,o),this._context.bindRenderbuffer(null)}get descriptor(){return this._descriptor}get samples(){const e=this._descriptor.samples,t=this._context.parameters.maxSamples;return e?Math.min(e,t):t}get usedMemory(){return r(this._descriptor)}resize(e,t){const r=this._descriptor;if(r.width===e&&r.height===t)return;r.width=e,r.height=t;const s=this._context.gl;this._context.bindRenderbuffer(this),r.multisampled?s.renderbufferStorageMultisample(s.RENDERBUFFER,this.samples,r.internalFormat,r.width,r.height):s.renderbufferStorage(s.RENDERBUFFER,r.internalFormat,r.width,r.height),this._context.bindRenderbuffer(null)}dispose(){this._context&&(this._context.gl.deleteRenderbuffer(this.glName),this._context.instanceCounter.decrement(e.Renderbuffer,this),this._context=null)}}export{s as Renderbuffer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{watch as i,syncAndInitial as s}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import a from"./Widget.js";import{css as n}from"./Daylight/css.js";import r from"./Daylight/DaylightViewModel.js";import d from"./Daylight/VisibleElements.js";import{orderedSeasons as c}from"./Daylight/support/daylightUtils.js";import p from"./Daylight/support/SliderWithDropdown.js";import{loadCalciteComponents as h}from"./support/componentsUtils.js";import{globalCss as g}from"./support/globalCss.js";import{Heading as m}from"./support/Heading.js";import{onPrimaryTickCreated as u,onSecondaryTickCreated as y,useAmPm as b}from"./support/timeWidgetUtils.js";import"./support/widgetUtils.js";import{messageBundle as v}from"./support/decorators/messageBundle.js";import{tsx as S,tsxFragment as w}from"./support/jsxFactory.js";const k="date";let C=class extends a{constructor(e,t){super(e,t),this.headingLevel=3,this.viewModel=new r,this.visibleElements=new d,this.dateOrSeason=k,this._timeSlider=new p({viewModel:this.viewModel.timeSliderViewModel,steps:this.timeSliderSteps,labelInputsEnabled:!1,visibleElements:{labels:!0},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:(e,t,i)=>u({tickElement:t,labelElement:i,tickClasses:_,onClick:this._makeGoToTime(e)})},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:(e,t)=>y({tickElement:t,tickClasses:_,onClick:this._makeGoToTime(e)})}]}),this._onPlayDayClick=()=>{this.viewModel.toggleDayPlaying()},this._onDateChange=e=>{const t=e.currentTarget.valueAsDate;this.viewModel.onDateChange(Array.isArray(t)?t[0]:t)},this._onYearPlayClick=()=>{this.viewModel.toggleYearPlaying()},this._onSeasonChange=e=>{this.viewModel.currentSeason=e.currentTarget.value},this._onSunLightingCheckboxChange=()=>{this.viewModel.toggleSunLightingEnabled()},this._onShadowCheckboxChange=()=>{this.viewModel.toggleDirectShadowsEnabled()}}get icon(){return"brightness"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.title??""}set label(e){this._overrideIfSome("label",e)}get playSpeedMultiplier(){return this.viewModel.playSpeedMultiplier}set playSpeedMultiplier(e){this.viewModel.playSpeedMultiplier=e}get timeSliderSteps(){return this._timeSlider?.steps??5}set timeSliderSteps(e){this._timeSlider.steps=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}postInitialize(){this.viewModel.isSupported&&this.addHandles([i((()=>this.viewModel.timeSliderViewModel),(e=>this._timeSlider.viewModel=e),s),i((()=>this.visibleElements?.timezone),(e=>this._timeSlider.showDropDown=e),s),i((()=>!this.viewModel.sunLightingEnabled),(e=>{this._timeSlider.disabled=e}),s)])}destroy(){this._timeSlider.destroy()}render(){const{messages:e,viewModel:t,visibleElements:i}=this,s=t.isSupported;return S("div",{class:this.classes(n.base,g.widget)},s?S(w,null,i.header?S(m,{level:this.headingLevel},e.title):null,this._renderTimeOptions(),i.datePicker?this._renderDateOrSeason():null,i.sunLightingToggle?this._renderSunLightingToggle():null,i.shadowsToggle?this._renderShadowsToggle():null):S("div",{class:n.panelError,key:"unsupported"},S("p",null,e.unsupported)))}loadDependencies(){return h({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}_renderTimeOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{directShadowsEnabled:s,dayPlaying:o}=e,l=!e.sunLightingEnabled;return S("div",{class:this.classes(n.dayContainer,{[n.sliderShadowOn]:s,[n.sliderShadowOff]:!s,[n.sliderDateOn]:t.datePicker,[n.sliderDateOff]:!t.datePicker,[n.sliderAmPmOn]:b(),[n.containerDisabled]:l}),key:"daylight-time-options"},this._timeSlider.render(),t.playButtons?this._renderPlayPauseButton({playing:o,disabled:l,label:i.playDay,onClick:this._onPlayDayClick}):null)}_renderDateOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{yearPlaying:s}=e,o=!e.sunLightingEnabled;return S("div",{class:this.classes(n.dateContainer,o&&n.containerDisabled),key:n.dateContainer},S("calcite-input-date-picker",{class:n.datePicker,"data-testid":"daylight-date-picker",disabled:o,key:n.datePicker,overlayPositioning:"fixed",placement:"bottom",valueAsDate:e.localDate,onCalciteInputDatePickerChange:this._onDateChange}),t.playButtons?this._renderPlayPauseButton({playing:s,disabled:o,label:i.playYear,onClick:this._onYearPlayClick}):null)}_renderPlayPauseButton({playing:e,disabled:t,label:i,onClick:s}){return S("calcite-button",{appearance:"solid",class:n.playPauseButton,disabled:t,iconStart:e?"pause-f":"play-f",label:i,onclick:s,round:!0,title:i,type:"button"})}_renderSeasonSelect(){const{messages:e,viewModel:t}=this,i=!t.sunLightingEnabled;return S("calcite-select",{class:this.classes(n.seasonPicker),disabled:i,label:e.season,onCalciteSelectChange:this._onSeasonChange},c.map((i=>S("calcite-option",{selected:t.currentSeason===i,value:i},e[i]))))}_renderDateOrSeason(){return"date"===this.dateOrSeason?this._renderDateOptions():this._renderSeasonSelect()}_renderSunLightingToggle(){const e=this.messages?.sunLightingToggle;return S("calcite-label",{key:"date-time-toggle",layout:"inline",scale:"s",title:e?.tooltip},S("calcite-checkbox",{checked:this.viewModel.sunLightingEnabled,class:n.sunLightingCheckbox,onCalciteCheckboxChange:this._onSunLightingCheckboxChange}),e?.label)}_renderShadowsToggle(){const e=this.messages.shadowsToggle;return S("calcite-label",{key:"shadow-toggle",layout:"inline",scale:"s",title:e?.tooltip},S("calcite-checkbox",{checked:this.viewModel.directShadowsEnabled,class:n.shadowsCheckbox,onCalciteCheckboxChange:this._onShadowCheckboxChange}),e.label)}_makeGoToTime(e){return()=>{this.viewModel.timeSliderPosition=e}}};e([o(),v("esri/widgets/Daylight/t9n/Daylight")],C.prototype,"messages",void 0),e([o(),v("esri/widgets/support/t9n/timezone")],C.prototype,"timezoneMessages",void 0),e([o()],C.prototype,"headingLevel",void 0),e([o()],C.prototype,"icon",null),e([o()],C.prototype,"label",null),e([o()],C.prototype,"playSpeedMultiplier",null),e([o()],C.prototype,"timeSliderSteps",null),e([o()],C.prototype,"view",null),e([o({type:r})],C.prototype,"viewModel",void 0),e([o({type:d,nonNullable:!0})],C.prototype,"visibleElements",void 0),e([o({cast(e){return"season"===e||"date"===e?e:(t.getLogger(this).warn(`"${e}" is not a valid option. Acceptable values are only "date" or "season". Defaulting to "${k}".`),k)}})],C.prototype,"dateOrSeason",void 0),e([o()],C.prototype,"_timeSlider",void 0),C=e([l("esri.widgets.Daylight")],C);const _=[g.interactive,g.anchor],D=C;export{D as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"../core/Logger.js";import{watch as i,syncAndInitial as s}from"../core/reactiveUtils.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import{onLocaleChange as a}from"../intl/locale.js";import n from"./Widget.js";import{css as r}from"./Daylight/css.js";import d from"./Daylight/DaylightViewModel.js";import c from"./Daylight/VisibleElements.js";import{orderedSeasons as p}from"./Daylight/support/daylightUtils.js";import h from"./Daylight/support/SliderWithDropdown.js";import{css as g}from"./Slider/css.js";import{loadCalciteComponents as m}from"./support/componentsUtils.js";import{globalCss as u}from"./support/globalCss.js";import{Heading as y}from"./support/Heading.js";import{onPrimaryTickCreated as b,onSecondaryTickCreated as S,adjustTimeSliderForLocale as v,useAmPm as w}from"./support/timeWidgetUtils.js";import"./support/widgetUtils.js";import{messageBundle as k}from"./support/decorators/messageBundle.js";import{tsx as _,tsxFragment as C}from"./support/jsxFactory.js";const D="date";let M=class extends n{constructor(e,t){super(e,t),this.headingLevel=3,this.viewModel=new d,this.visibleElements=new c,this.dateOrSeason=D,this._timeSlider=new h({viewModel:this.viewModel.timeSliderViewModel,steps:this.timeSliderSteps,labelInputsEnabled:!1,visibleElements:{labels:!0},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:(e,t,i)=>b({tickElement:t,labelElement:i,tickClasses:f,onClick:this._makeGoToTime(e)})},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:(e,t)=>S({tickElement:t,tickClasses:f,onClick:this._makeGoToTime(e)})}]}),this._onPlayDayClick=()=>{this.viewModel.toggleDayPlaying()},this._onDateChange=e=>{const t=e.currentTarget.valueAsDate;this.viewModel.onDateChange(Array.isArray(t)?t[0]:t)},this._onYearPlayClick=()=>{this.viewModel.toggleYearPlaying()},this._onSeasonChange=e=>{this.viewModel.currentSeason=e.currentTarget.value},this._onSunLightingCheckboxChange=()=>{this.viewModel.toggleSunLightingEnabled()},this._onShadowCheckboxChange=()=>{this.viewModel.toggleDirectShadowsEnabled()}}get icon(){return"brightness"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.title??""}set label(e){this._overrideIfSome("label",e)}get playSpeedMultiplier(){return this.viewModel.playSpeedMultiplier}set playSpeedMultiplier(e){this.viewModel.playSpeedMultiplier=e}get timeSliderSteps(){return this._timeSlider?.steps??5}set timeSliderSteps(e){this._timeSlider.steps=e}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}postInitialize(){this.viewModel.isSupported&&(this.addHandles([i((()=>this.viewModel.timeSliderViewModel),(e=>this._timeSlider.viewModel=e),s),i((()=>this.visibleElements?.timezone),(e=>this._timeSlider.showDropDown=e),s),i((()=>!this.viewModel.sunLightingEnabled),(e=>{this._timeSlider.disabled=e}),s),a((()=>this._adjustTimeSliderPadding()))]),this._adjustTimeSliderPadding())}destroy(){this._timeSlider.destroy()}render(){const{messages:e,viewModel:t,visibleElements:i}=this,s=t.isSupported;return _("div",{class:this.classes(r.base,u.widget)},s?_(C,null,i.header?_(y,{level:this.headingLevel},e.title):null,this._renderTimeOptions(),i.datePicker?this._renderDateOrSeason():null,i.sunLightingToggle?this._renderSunLightingToggle():null,i.shadowsToggle?this._renderShadowsToggle():null):_("div",{class:r.panelError,key:"unsupported"},_("p",null,e.unsupported)))}loadDependencies(){return m({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),checkbox:()=>import("@esri/calcite-components/dist/components/calcite-checkbox"),label:()=>import("@esri/calcite-components/dist/components/calcite-label"),"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}_adjustTimeSliderPadding(){v(this.domNode?.querySelector(`.${g.base}`))}_renderTimeOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{directShadowsEnabled:s,dayPlaying:o}=e,l=!e.sunLightingEnabled;return _("div",{class:this.classes(r.dayContainer,{[r.sliderShadowOn]:s,[r.sliderShadowOff]:!s,[r.sliderDateOn]:t.datePicker,[r.sliderDateOff]:!t.datePicker,[r.sliderAmPmOn]:w(),[r.containerDisabled]:l}),key:"daylight-time-options"},this._timeSlider.render(),t.playButtons?this._renderPlayPauseButton({playing:o,disabled:l,label:i.playDay,onClick:this._onPlayDayClick}):null)}_renderDateOptions(){const{viewModel:e,visibleElements:t,messages:i}=this,{yearPlaying:s}=e,o=!e.sunLightingEnabled;return _("div",{class:this.classes(r.dateContainer,o&&r.containerDisabled),key:r.dateContainer},_("calcite-input-date-picker",{class:r.datePicker,"data-testid":"daylight-date-picker",disabled:o,key:r.datePicker,overlayPositioning:"fixed",placement:"bottom",valueAsDate:e.localDate,onCalciteInputDatePickerChange:this._onDateChange}),t.playButtons?this._renderPlayPauseButton({playing:s,disabled:o,label:i.playYear,onClick:this._onYearPlayClick}):null)}_renderPlayPauseButton({playing:e,disabled:t,label:i,onClick:s}){return _("calcite-button",{appearance:"solid",class:r.playPauseButton,disabled:t,iconStart:e?"pause-f":"play-f",label:i,onclick:s,round:!0,title:i,type:"button"})}_renderSeasonSelect(){const{messages:e,viewModel:t}=this,i=!t.sunLightingEnabled;return _("calcite-select",{class:this.classes(r.seasonPicker),disabled:i,label:e.season,onCalciteSelectChange:this._onSeasonChange},p.map((i=>_("calcite-option",{selected:t.currentSeason===i,value:i},e[i]))))}_renderDateOrSeason(){return"date"===this.dateOrSeason?this._renderDateOptions():this._renderSeasonSelect()}_renderSunLightingToggle(){const e=this.messages?.sunLightingToggle;return _("calcite-label",{key:"date-time-toggle",layout:"inline",scale:"s",title:e?.tooltip},_("calcite-checkbox",{checked:this.viewModel.sunLightingEnabled,class:r.sunLightingCheckbox,onCalciteCheckboxChange:this._onSunLightingCheckboxChange}),e?.label)}_renderShadowsToggle(){const e=this.messages.shadowsToggle;return _("calcite-label",{key:"shadow-toggle",layout:"inline",scale:"s",title:e?.tooltip},_("calcite-checkbox",{checked:this.viewModel.directShadowsEnabled,class:r.shadowsCheckbox,onCalciteCheckboxChange:this._onShadowCheckboxChange}),e.label)}_makeGoToTime(e){return()=>{this.viewModel.timeSliderPosition=e}}};e([o(),k("esri/widgets/Daylight/t9n/Daylight")],M.prototype,"messages",void 0),e([o(),k("esri/widgets/support/t9n/timezone")],M.prototype,"timezoneMessages",void 0),e([o()],M.prototype,"headingLevel",void 0),e([o()],M.prototype,"icon",null),e([o()],M.prototype,"label",null),e([o()],M.prototype,"playSpeedMultiplier",null),e([o()],M.prototype,"timeSliderSteps",null),e([o()],M.prototype,"view",null),e([o({type:d})],M.prototype,"viewModel",void 0),e([o({type:c,nonNullable:!0})],M.prototype,"visibleElements",void 0),e([o({cast(e){return"season"===e||"date"===e?e:(t.getLogger(this).warn(`"${e}" is not a valid option. Acceptable values are only "date" or "season". Defaulting to "${D}".`),D)}})],M.prototype,"dateOrSeason",void 0),e([o()],M.prototype,"_timeSlider",void 0),M=e([l("esri.widgets.Daylight")],M);const f=[u.interactive,u.anchor],P=M;export{P as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../../geometry/Polyline.js";function t(t,l){const n=t.samples??[],s=n.length-1,o=[];let r=[];for(let e=0;e<=s;e++){const{x:t,y:l,z:p}=n[e];null!=p&&r.push([t,l,p]),e!==s&&null!=p||!r.length||(o.push(r),r=[])}return new e({paths:o,hasZ:!0,spatialReference:l})}export{t as createLineGeometry};
5
+ import{createPolyline as t}from"../../../views/draw/support/createUtils.js";function e(e,l){const s=e.samples??[],n=s.length-1,r=[];let o=[];for(let t=0;t<=n;t++){const{x:e,y:l,z:p}=s[t];null!=p&&o.push([e,l,p]),t!==n&&null!=p||!o.length||(r.push(o),o=[])}return t(r,l,!0)}export{e as createLineGeometry};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import"../core/has.js";import{destroyMaybe as i}from"../core/maybe.js";import{watch as t,syncAndInitial as o}from"../core/reactiveUtils.js";import{convertTime as s}from"../core/timeUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{substitute as a}from"../intl/substitute.js";import n from"./Slider.js";import d from"./Widget.js";import{css as c}from"./ShadowCast/css.js";import{ShadowCastState as m}from"./ShadowCast/ShadowCastState.js";import p from"./ShadowCast/ShadowCastViewModel.js";import h from"./ShadowCast/ShadowCastVisibleElements.js";import{ShadowVisualizationType as u}from"./ShadowCast/ShadowVisualizationType.js";import{DiscreteConfigurator as v}from"./ShadowCast/components/DiscreteConfigurator.js";import{DurationConfigurator as w}from"./ShadowCast/components/DurationConfigurator.js";import{ShadowTooltip as g}from"./ShadowCast/components/ShadowTooltip.js";import{ThresholdConfigurator as f}from"./ShadowCast/components/ThresholdConfigurator.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as S}from"./support/globalCss.js";import{Heading as y}from"./support/Heading.js";import{timeStringFormattingOptions as _,formatSliderLabel as C,onPrimaryTickCreated as k,onSecondaryTickCreated as M}from"./support/timeWidgetUtils.js";import{TimezonePicker as j}from"./support/TimezonePicker.js";import"./support/widgetUtils.js";import{messageBundle as T}from"./support/decorators/messageBundle.js";import{tsx as D}from"./support/jsxFactory.js";import{formatDate as z}from"../intl/date.js";var V;!function(e){e.Slider="slider"}(V||(V={}));const O={labelFormatFunction:C,min:0,max:1439,steps:15,rangeLabelInputsEnabled:!1,visibleElements:{labels:!1,rangeLabels:!1},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:(e,i,t)=>k({tickElement:i,labelElement:t})},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:(e,i)=>M({tickElement:i})}]};let P=class extends d{constructor(e,i){super(e,i),this.viewModel=null,this.headingLevel=4,this.visibleElements=new h,this._defaultViewModel=null,this._timeSlider=new n({...O,container:document.createElement("div")}),this._tooltip=null,this._onTimezoneChange=e=>{this.viewModel.utcOffset=e},this._onDateChange=e=>{const i=e.currentTarget.valueAsDate;this.viewModel.date=Array.isArray(i)?i[0]:i},e?.viewModel||(this._defaultViewModel=new p({view:e?.view}),this.viewModel=this._defaultViewModel)}initialize(){this.addHandles([t((()=>({viewModel:this.viewModel,slider:this._timeSlider})),(e=>this._connectTimeSlider(e)),o),t((()=>({container:this.view?.surface,viewModel:this.viewModel,tooltipVisible:this.visibleElements.tooltip})),(({container:e,viewModel:t,tooltipVisible:o})=>{this._tooltip=i(this._tooltip),null!=e&&o&&(this._tooltip=new g({viewModel:t,container:e}))}),o),t((()=>({viewModel:this.viewModel,visible:this.visible})),(({viewModel:e,visible:i})=>e.setRunning(i)),o)])}destroy(){this._timeSlider=i(this._timeSlider),this._tooltip=i(this._tooltip),null!=this._defaultViewModel&&this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}loadDependencies(){return b({"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}render(){const{visibleElements:e,viewModel:i}=this,t=i.state===m.Disabled;return D("div",{class:this.classes(c.base,S.widget,S.panel,{[S.widgetDisabled]:t}),key:this},this._renderTimeRangeSection(),e.visualizationOptions?this._renderVisualizationOptionsSection():null)}get view(){return this.viewModel?.view}set view(e){this.viewModel&&(this.viewModel.view=e)}get icon(){return"measure-building-height-shadow"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get testData(){}_connectTimeSlider({viewModel:e,slider:i}){if(this.removeHandles(V.Slider),null==i)return;const l=e=>s(e,"milliseconds","minutes"),r=e=>s(e,"minutes","milliseconds"),a=({index:i,value:t})=>{0===i?e.startTimeOfDay=r(t):e.endTimeOfDay=r(t)};this.addHandles([t((()=>[e.startTimeOfDay,e.endTimeOfDay]),(e=>{i.values=e.map(l)}),o),i.on("thumb-change",a),i.on("thumb-drag",a),i.on("segment-drag",(()=>{[e.startTimeOfDay,e.endTimeOfDay]=i.values.map(r)}))],V.Slider)}_renderTimeRangeSection(){const{visibleElements:e}=this;return e.timeRangeSlider||e.datePicker?D("section",{class:c.timeRange,key:"time-range"},D(y,{level:this.headingLevel},this.messages.timeLabel),e.timeRangeSlider?this._renderTimeRange():null,e.datePicker?this._renderDatePicker():null):null}_renderTimeRange(){const{messages:e,viewModel:i,visibleElements:t}=this,{startTimeOfDay:o,endTimeOfDay:s}=i,[l,r]=[o,s].map((e=>z(new Date(e),_)));return[D("div",{class:c.timeRangeIndicator,key:"time-range-indicator"},a(e.timeRange,{start:l,end:r}),t.timezone?D(j,{disabled:this._timeSlider?.disabled,value:i.utcOffset,onChange:this._onTimezoneChange}):null),D("div",{afterCreate:this._timeSliderContainerAfterCreate,afterRemoved:this._timeSliderContainerAfterRemoved,bind:this,key:"time-slider-container"})]}_timeSliderContainerAfterCreate(e){const i=this._timeSlider?.container;i&&e.appendChild(i)}_timeSliderContainerAfterRemoved(e){const i=this._timeSlider?.container;i&&e.removeChild(i)}_renderDatePicker(){return D("div",{class:c.datePickerContainer,key:c.datePickerContainer},D("calcite-input-date-picker",{class:c.datePicker,"data-testid":"date-picker",key:c.datePicker,overlayPositioning:"fixed",placement:"bottom",valueAsDate:this.viewModel.date,onCalciteInputDatePickerChange:this._onDateChange}))}_renderVisualizationOptionsSection(){const{headingLevel:e,messages:i,viewModel:t,visibleElements:o}=this,s=o.colorPicker,l=e=>this.classes(t.visualizationType===e?null:c.visualizationConfigHidden);return D("section",{class:c.visualization,key:"visualization"},D(y,{level:e},i.visualizationLabel),this._renderVisualizationSelect(),D("div",{class:l(u.Threshold),key:"threshold-configurator"},D(f,{colorPickerVisible:s,options:t.thresholdOptions})),D("div",{class:l(u.Duration),key:"duration-configurator"},D(w,{colorPickerVisible:s,options:t.durationOptions})),D("div",{class:l(u.Discrete),key:"discrete-configurator"},D(v,{colorPickerVisible:s,options:t.discreteOptions})))}_renderVisualizationSelect(){const e=this.messages,i=this.viewModel.visualizationType;return D("calcite-select",{bind:this,class:c.visualizationSelect,key:"visualization-select",label:e.visualizationLabel,onCalciteSelectChange:this._onVisualizationTypeChange},[{type:u.Threshold,label:e.threshold.label},{type:u.Duration,label:e.duration.label},{type:u.Discrete,label:e.discrete.label}].map((({type:e,label:t})=>D("calcite-option",{selected:e===i,value:e},t))))}_onVisualizationTypeChange(e){const i=e.currentTarget.selectedOption?.value;this.viewModel.visualizationType=i??u.Threshold}};e([l()],P.prototype,"viewModel",void 0),e([l()],P.prototype,"view",null),e([l()],P.prototype,"headingLevel",void 0),e([l()],P.prototype,"icon",null),e([l()],P.prototype,"label",null),e([l({type:h,nonNullable:!0})],P.prototype,"visibleElements",void 0),e([l(),T("esri/widgets/ShadowCast/t9n/ShadowCast")],P.prototype,"messages",void 0),e([l()],P.prototype,"_defaultViewModel",void 0),e([l()],P.prototype,"_timeSlider",void 0),e([l()],P.prototype,"_tooltip",void 0),P=e([r("esri.widgets.ShadowCast")],P);const E=P;export{E as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import"../intl.js";import"../core/has.js";import{destroyMaybe as i}from"../core/maybe.js";import{watch as t,syncAndInitial as o}from"../core/reactiveUtils.js";import{convertTime as s}from"../core/timeUtils.js";import{property as l}from"../core/accessorSupport/decorators/property.js";import"../core/Logger.js";import"../core/RandomLCG.js";import{subclass as r}from"../core/accessorSupport/decorators/subclass.js";import{substitute as a}from"../intl/substitute.js";import n from"./Slider.js";import d from"./Widget.js";import{css as c}from"./ShadowCast/css.js";import{ShadowCastState as m}from"./ShadowCast/ShadowCastState.js";import p from"./ShadowCast/ShadowCastViewModel.js";import h from"./ShadowCast/ShadowCastVisibleElements.js";import{ShadowVisualizationType as u}from"./ShadowCast/ShadowVisualizationType.js";import{DiscreteConfigurator as v}from"./ShadowCast/components/DiscreteConfigurator.js";import{DurationConfigurator as w}from"./ShadowCast/components/DurationConfigurator.js";import{ShadowTooltip as f}from"./ShadowCast/components/ShadowTooltip.js";import{ThresholdConfigurator as g}from"./ShadowCast/components/ThresholdConfigurator.js";import{loadCalciteComponents as b}from"./support/componentsUtils.js";import{globalCss as S}from"./support/globalCss.js";import{Heading as y}from"./support/Heading.js";import{timeStringFormattingOptions as _,formatSliderLabel as C,onPrimaryTickCreated as k,onSecondaryTickCreated as M,adjustTimeSliderForLocale as j}from"./support/timeWidgetUtils.js";import{TimezonePicker as T}from"./support/TimezonePicker.js";import"./support/widgetUtils.js";import{messageBundle as D}from"./support/decorators/messageBundle.js";import{tsx as z}from"./support/jsxFactory.js";import{onLocaleChange as V}from"../intl/locale.js";import{formatDate as O}from"../intl/date.js";var P;!function(e){e.Slider="slider"}(P||(P={}));const E={labelFormatFunction:C,min:0,max:1439,steps:15,rangeLabelInputsEnabled:!1,visibleElements:{labels:!1,rangeLabels:!1},tickConfigs:[{mode:"position",values:[0,360,720,1080,1439],labelsVisible:!0,tickCreatedFunction:(e,i,t)=>k({tickElement:i,labelElement:t})},{mode:"position",values:[120,240,480,600,840,960,1200,1320],tickCreatedFunction:(e,i)=>M({tickElement:i})}]};let R=class extends d{constructor(e,i){super(e,i),this.viewModel=null,this.headingLevel=4,this.visibleElements=new h,this._defaultViewModel=null,this._timeSlider=new n({...E,container:document.createElement("div")}),this._tooltip=null,this._onTimezoneChange=e=>{this.viewModel.utcOffset=e},this._onDateChange=e=>{const i=e.currentTarget.valueAsDate;this.viewModel.date=Array.isArray(i)?i[0]:i},e?.viewModel||(this._defaultViewModel=new p({view:e?.view}),this.viewModel=this._defaultViewModel)}initialize(){this.addHandles([t((()=>({viewModel:this.viewModel,slider:this._timeSlider})),(e=>this._connectTimeSlider(e)),o),t((()=>({container:this.view?.surface,viewModel:this.viewModel,tooltipVisible:this.visibleElements.tooltip})),(({container:e,viewModel:t,tooltipVisible:o})=>{this._tooltip=i(this._tooltip),null!=e&&o&&(this._tooltip=new f({viewModel:t,container:e}))}),o),t((()=>({viewModel:this.viewModel,visible:this.visible})),(({viewModel:e,visible:i})=>e.setRunning(i)),o)])}destroy(){this._timeSlider=i(this._timeSlider),this._tooltip=i(this._tooltip),null!=this._defaultViewModel&&this.viewModel!==this._defaultViewModel&&this._defaultViewModel.destroy()}loadDependencies(){return b({"input-date-picker":()=>import("@esri/calcite-components/dist/components/calcite-input-date-picker"),option:()=>import("@esri/calcite-components/dist/components/calcite-option"),select:()=>import("@esri/calcite-components/dist/components/calcite-select")})}render(){const{visibleElements:e,viewModel:i}=this,t=i.state===m.Disabled;return z("div",{class:this.classes(c.base,S.widget,S.panel,{[S.widgetDisabled]:t}),key:this},this._renderTimeRangeSection(),e.visualizationOptions?this._renderVisualizationOptionsSection():null)}get view(){return this.viewModel?.view}set view(e){this.viewModel&&(this.viewModel.view=e)}get icon(){return"measure-building-height-shadow"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get testData(){}_connectTimeSlider({viewModel:e,slider:i}){if(this.removeHandles(P.Slider),null==i)return;const l=e=>s(e,"milliseconds","minutes"),r=e=>s(e,"minutes","milliseconds"),a=({index:i,value:t})=>{0===i?e.startTimeOfDay=r(t):e.endTimeOfDay=r(t)},n=()=>j(i.domNode);n(),this.addHandles([t((()=>[e.startTimeOfDay,e.endTimeOfDay]),(e=>{i.values=e.map(l)}),o),i.on("thumb-change",a),i.on("thumb-drag",a),i.on("segment-drag",(()=>{[e.startTimeOfDay,e.endTimeOfDay]=i.values.map(r)})),V(n)],P.Slider)}_renderTimeRangeSection(){const{visibleElements:e}=this;return e.timeRangeSlider||e.datePicker?z("section",{class:c.timeRange,key:"time-range"},z(y,{level:this.headingLevel},this.messages.timeLabel),e.timeRangeSlider?this._renderTimeRange():null,e.datePicker?this._renderDatePicker():null):null}_renderTimeRange(){const{messages:e,viewModel:i,visibleElements:t}=this,{startTimeOfDay:o,endTimeOfDay:s}=i,[l,r]=[o,s].map((e=>O(new Date(e),_)));return[z("div",{class:c.timeRangeIndicator,key:"time-range-indicator"},a(e.timeRange,{start:l,end:r}),t.timezone?z(T,{disabled:this._timeSlider?.disabled,value:i.utcOffset,onChange:this._onTimezoneChange}):null),z("div",{afterCreate:this._timeSliderContainerAfterCreate,afterRemoved:this._timeSliderContainerAfterRemoved,bind:this,key:"time-slider-container"})]}_timeSliderContainerAfterCreate(e){const i=this._timeSlider?.container;i&&e.appendChild(i)}_timeSliderContainerAfterRemoved(e){const i=this._timeSlider?.container;i&&e.removeChild(i)}_renderDatePicker(){return z("div",{class:c.datePickerContainer,key:c.datePickerContainer},z("calcite-input-date-picker",{class:c.datePicker,"data-testid":"date-picker",key:c.datePicker,overlayPositioning:"fixed",placement:"bottom",valueAsDate:this.viewModel.date,onCalciteInputDatePickerChange:this._onDateChange}))}_renderVisualizationOptionsSection(){const{headingLevel:e,messages:i,viewModel:t,visibleElements:o}=this,s=o.colorPicker,l=e=>this.classes(t.visualizationType===e?null:c.visualizationConfigHidden);return z("section",{class:c.visualization,key:"visualization"},z(y,{level:e},i.visualizationLabel),this._renderVisualizationSelect(),z("div",{class:l(u.Threshold),key:"threshold-configurator"},z(g,{colorPickerVisible:s,options:t.thresholdOptions})),z("div",{class:l(u.Duration),key:"duration-configurator"},z(w,{colorPickerVisible:s,options:t.durationOptions})),z("div",{class:l(u.Discrete),key:"discrete-configurator"},z(v,{colorPickerVisible:s,options:t.discreteOptions})))}_renderVisualizationSelect(){const e=this.messages,i=this.viewModel.visualizationType;return z("calcite-select",{bind:this,class:c.visualizationSelect,key:"visualization-select",label:e.visualizationLabel,onCalciteSelectChange:this._onVisualizationTypeChange},[{type:u.Threshold,label:e.threshold.label},{type:u.Duration,label:e.duration.label},{type:u.Discrete,label:e.discrete.label}].map((({type:e,label:t})=>z("calcite-option",{selected:e===i,value:e},t))))}_onVisualizationTypeChange(e){const i=e.currentTarget.selectedOption?.value;this.viewModel.visualizationType=i??u.Threshold}};e([l()],R.prototype,"viewModel",void 0),e([l()],R.prototype,"view",null),e([l()],R.prototype,"headingLevel",void 0),e([l()],R.prototype,"icon",null),e([l()],R.prototype,"label",null),e([l({type:h,nonNullable:!0})],R.prototype,"visibleElements",void 0),e([l(),D("esri/widgets/ShadowCast/t9n/ShadowCast")],R.prototype,"messages",void 0),e([l()],R.prototype,"_defaultViewModel",void 0),e([l()],R.prototype,"_timeSlider",void 0),e([l()],R.prototype,"_tooltip",void 0),R=e([r("esri.widgets.ShadowCast")],R);const L=R;export{L as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- const e={anchor:"esri-widget__anchor",anchorDisabled:"esri-widget__anchor--disabled",button:"esri-button",buttonDisabled:"esri-button--disabled",buttonHalf:"esri-button--half",buttonSecondary:"esri-button--secondary",buttonSmall:"esri-button--small",buttonTertiary:"esri-button--tertiary",buttonThird:"esri-button--third",disabled:"esri-disabled",empty:"esri-widget__content--empty",emptyIllustration:"esri-widget__content-illustration--empty",heading:"esri-widget__heading",hidden:"esri-hidden",input:"esri-input",interactive:"esri-interactive",loader:"esri-widget__loader",loaderAnimation:"esri-widget__loader-animation",loaderText:"esri-widget__loader-text",menu:"esri-menu",menuHeader:"esri-menu__header",menuItem:"esri-menu__list-item",menuItemActive:"esri-menu__list-item--active",menuItemFocus:"esri-menu__list-item--focus",menuList:"esri-menu__list",panel:"esri-widget--panel",panelHeightOnly:"esri-widget--panel-height-only",primaryTick:"primary-tick",primaryTickAmPm:"primary-tick__ampm",primaryTickLabel:"primary-tick__label",rotating:"esri-rotating",secondaryTick:"secondary-tick",select:"esri-select",table:"esri-widget__table",widget:"esri-widget",widgetButton:"esri-widget--button",widgetButtonActive:"esri-widget--button-active",widgetDisabled:"esri-widget--disabled"};export{e as globalCss};
5
+ const e={anchor:"esri-widget__anchor",anchorDisabled:"esri-widget__anchor--disabled",button:"esri-button",buttonDisabled:"esri-button--disabled",buttonHalf:"esri-button--half",buttonSecondary:"esri-button--secondary",buttonSmall:"esri-button--small",buttonTertiary:"esri-button--tertiary",buttonThird:"esri-button--third",disabled:"esri-disabled",empty:"esri-widget__content--empty",emptyIllustration:"esri-widget__content-illustration--empty",heading:"esri-widget__heading",hidden:"esri-hidden",input:"esri-input",interactive:"esri-interactive",loader:"esri-widget__loader",loaderAnimation:"esri-widget__loader-animation",loaderText:"esri-widget__loader-text",menu:"esri-menu",menuHeader:"esri-menu__header",menuItem:"esri-menu__list-item",menuItemActive:"esri-menu__list-item--active",menuItemFocus:"esri-menu__list-item--focus",menuList:"esri-menu__list",panel:"esri-widget--panel",panelHeightOnly:"esri-widget--panel-height-only",primaryTick:"primary-tick",primaryTickAmPm:"primary-tick__ampm",primaryTickLabel:"primary-tick__label",primaryTickLabelKeepAll:"primary-tick__label--keep-all",rotating:"esri-rotating",secondaryTick:"secondary-tick",select:"esri-select",table:"esri-widget__table",widget:"esri-widget",widgetButton:"esri-widget--button",widgetButtonActive:"esri-widget--button-active",widgetDisabled:"esri-widget--disabled"};export{e as globalCss};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{convertTime as t,offsetDate as e}from"../../core/timeUtils.js";import{formatDate as o,getDateTimeFormatter as n}from"../../intl/date.js";import{S as s}from"../../chunks/SunCalc.js";import{globalCss as i}from"./globalCss.js";const f={hour:"numeric",minute:"numeric",timeZone:"UTC"},l={hour:"numeric",timeZone:"UTC"};function m(t,e){const n=c(t,e);let s=o(n,f);return 0!==t&&"00:00"===s&&(s="24:00"),"tick"===e&&s.includes(" ")&&(s=o(n,l),s=s.replace(":00","")),s}function r({tickElement:t,labelElement:e,tickClasses:o=[],onClick:n}){t&&e&&(t.classList.add(...o,i.primaryTick),e.classList.add(...o,i.primaryTickLabel),n&&(e.onclick=t.onclick=()=>n()))}function u({tickElement:t,tickClasses:e=[],onClick:o}){t&&(t.classList.add(...e,i.secondaryTick),o&&(t.onclick=()=>o()))}function z(){return n(l).formatToParts(c(0,"value")).some((({type:t})=>"dayPeriod"===t))}function c(e,o){if("tick"===o){const o=Math.round(t(e,"minutes","hours"));return new Date(t(o,"hours","milliseconds"))}return new Date(6e4*e)}function a(t,o,n,i){if(null==o||null==n)return null;const f=s.getTimes(t,o,n),l=f.sunrise,m=f.sunset,r=e(t,i,"hours"),u=e(l,i,"hours"),z=e(m,i,"hours");if(r.getUTCDate()!==u.getUTCDate()||r.getUTCDate()!==z.getUTCDate()){const t=r.getTime()-u.getTime()>0?1:-1;l.setUTCDate(l.getUTCDate()+t),m.setUTCDate(m.getUTCDate()+t)}return{sunrise:l,sunset:m}}function h(t){return[{utcOffset:-12,short:"UTC-12",long:t.timezoneDateline},{utcOffset:-11,short:"UTC-11",long:t.timezoneSamoa},{utcOffset:-10,short:t.timezoneHAST,long:t.timezoneHawaii},{utcOffset:-9,short:t.timezoneAKST,long:t.timezoneAlaska},{utcOffset:-8,short:t.timezonePST,long:t.timezoneBaja},{utcOffset:-7,short:t.timezoneMST,long:t.timezoneMountain},{utcOffset:-7,short:t.timezoneMST,long:t.timezoneLaPaz},{utcOffset:-7,short:t.timezoneMST,long:t.timezoneArizona},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneSaskatchewan},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneCentralAmerica},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneCentralTime},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneMexico},{utcOffset:-5,short:t.timezoneEST,long:t.timezoneEasternUS},{utcOffset:-5,short:t.timezoneEST,long:t.timezoneLima},{utcOffset:-5,short:t.timezoneEST,long:t.timezoneIndiana},{utcOffset:-4,short:null,long:t.timezoneAtlantic},{utcOffset:-4,short:null,long:t.timezoneCuiaba},{utcOffset:-4,short:null,long:t.timezoneSantiago},{utcOffset:-4,short:null,long:t.timezoneManaus},{utcOffset:-4,short:null,long:t.timezoneAsuncion},{utcOffset:-3,short:null,long:t.timezoneBrasilia},{utcOffset:-3,short:null,long:t.timezoneGreenland},{utcOffset:-3,short:null,long:t.timezoneMontevideo},{utcOffset:-3,short:null,long:t.timezoneCayenne},{utcOffset:-3,short:null,long:t.timezoneBuenosAires},{utcOffset:-2,short:null,long:t.timezoneMidAtlantic},{utcOffset:-1,short:null,long:t.timezoneAzores},{utcOffset:-1,short:null,long:t.timezoneCaboVerde},{utcOffset:0,short:null,long:t.timezoneDublin},{utcOffset:0,short:null,long:t.timezoneReykjavik},{utcOffset:0,short:null,long:t.timezoneCasablanca},{utcOffset:1,short:t.timezoneCET,long:t.timezoneBelgrade},{utcOffset:1,short:t.timezoneCET,long:t.timezoneSarajevo},{utcOffset:1,short:t.timezoneCET,long:t.timezoneBrussels},{utcOffset:1,short:t.timezoneCET,long:t.timezoneWCAfrica},{utcOffset:1,short:t.timezoneCET,long:t.timezoneAmsterdam},{utcOffset:1,short:t.timezoneCET,long:t.timezoneWindhoek},{utcOffset:2,short:t.timezoneEET,long:t.timezoneMinsk},{utcOffset:2,short:t.timezoneEET,long:t.timezoneCairo},{utcOffset:2,short:t.timezoneEET,long:t.timezoneHelsinki},{utcOffset:2,short:t.timezoneEET,long:t.timezoneAthens},{utcOffset:2,short:t.timezoneEET,long:t.timezoneJerusalem},{utcOffset:2,short:t.timezoneEET,long:t.timezoneAmman},{utcOffset:2,short:t.timezoneEET,long:t.timezoneBeirut},{utcOffset:2,short:t.timezoneEET,long:t.timezoneHarare},{utcOffset:2,short:t.timezoneEET,long:t.timezoneDamascus},{utcOffset:2,short:t.timezoneEET,long:t.timezoneIstanbul},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneKuwait},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneBaghdad},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneNairobi},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneKaliningrad},{utcOffset:4,short:t.timezoneGST,long:t.timezoneMoscow},{utcOffset:4,short:t.timezoneGST,long:t.timezoneMuscat},{utcOffset:4,short:t.timezoneGST,long:t.timezoneBaku},{utcOffset:4,short:t.timezoneGST,long:t.timezoneYerevan},{utcOffset:4,short:t.timezoneGST,long:t.timezoneTbilisi},{utcOffset:4,short:t.timezoneGST,long:t.timezonePortLouis},{utcOffset:5,short:null,long:t.timezoneTashkent},{utcOffset:5,short:null,long:t.timezoneIslamabad},{utcOffset:6,short:null,long:t.timezoneEkaterinburg},{utcOffset:6,short:null,long:t.timezoneAstana},{utcOffset:6,short:null,long:t.timezoneDhaka},{utcOffset:7,short:t.timezoneICT,long:t.timezoneNovosibirsk},{utcOffset:7,short:t.timezoneICT,long:t.timezoneBangkok},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneKrasnoyarsk},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneBeijing},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneSingapore},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneTaipei},{utcOffset:8,short:t.timezoneCCT,long:t.timezonePerth},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneUlaanbaatar},{utcOffset:9,short:t.timezoneJST,long:t.timezoneIrkutsk},{utcOffset:9,short:t.timezoneJST,long:t.timezoneSeoul},{utcOffset:9,short:t.timezoneJST,long:t.timezoneOsaka},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneYakutsk},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneCanberra},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneBrisbane},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneHobart},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneGuam},{utcOffset:11,short:null,long:t.timezoneVladivostok},{utcOffset:11,short:null,long:t.timezoneSolomon},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneMagadan},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneFiji},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneAuckland},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneNukualofa}].map((({utcOffset:t,short:e,long:o})=>{const n=t>0?`UTC+${t}`:t<0?`UTC${t}`:"GMT";return e?{utcOffset:t,short:e,shortWithUTC:`${n} (${e})`,long:o}:{utcOffset:t,short:n,shortWithUTC:n,long:o}}))}export{m as formatSliderLabel,a as getSunriseAndSunsetTimes,h as getTimezoneInfos,r as onPrimaryTickCreated,u as onSecondaryTickCreated,f as timeStringFormattingOptions,z as useAmPm};
5
+ import{convertTime as t,offsetDate as e}from"../../core/timeUtils.js";import{formatDate as o,getDateTimeFormatter as n}from"../../intl/date.js";import{getLocaleParts as s}from"../../intl/locale.js";import{S as i}from"../../chunks/SunCalc.js";import{css as l}from"../Slider/css.js";import{globalCss as f}from"./globalCss.js";const m={hour:"numeric",minute:"numeric",timeZone:"UTC"},r={hour:"numeric",timeZone:"UTC"};function u(t,e){const n=O(t,e);let s=o(n,m);return 0!==t&&"00:00"===s&&(s="24:00"),"tick"===e&&s.includes(" ")&&(s=o(n,r),s=s.replace(":00","")),s}function c({tickElement:t,labelElement:e,tickClasses:o=[],onClick:n}){t&&e&&(t.classList.add(...o,f.primaryTick),e.classList.add(...o,f.primaryTickLabel),a(e),n&&(e.onclick=t.onclick=()=>n()))}function z(t){if(!t)return;const e=s(),o=e?.language??"",n=e?.region??"";t.querySelectorAll(`.${l.tickLabelElement}`).forEach((t=>{a(t)}));const i=["ar","bg","el","en","ko"].includes(o)||"zh"===o&&["HK","TW"].includes(n);t.style.paddingBlockEnd=i?"42px":"28px"}function a(t){t.classList.toggle(f.primaryTickLabelKeepAll,"ko"===s()?.language)}function g({tickElement:t,tickClasses:e=[],onClick:o}){t&&(t.classList.add(...e,f.secondaryTick),o&&(t.onclick=()=>o()))}function h(){return n(r).formatToParts(O(0,"value")).some((({type:t})=>"dayPeriod"===t))}function O(e,o){if("tick"===o){const o=Math.round(t(e,"minutes","hours"));return new Date(t(o,"hours","milliseconds"))}return new Date(6e4*e)}function T(t,o,n,s){if(null==o||null==n)return null;const l=i.getTimes(t,o,n),f=l.sunrise,m=l.sunset,r=e(t,s,"hours"),u=e(f,s,"hours"),c=e(m,s,"hours");if(r.getUTCDate()!==u.getUTCDate()||r.getUTCDate()!==c.getUTCDate()){const t=r.getTime()-u.getTime()>0?1:-1;f.setUTCDate(f.getUTCDate()+t),m.setUTCDate(m.getUTCDate()+t)}return{sunrise:f,sunset:m}}function C(t){return[{utcOffset:-12,short:"UTC-12",long:t.timezoneDateline},{utcOffset:-11,short:"UTC-11",long:t.timezoneSamoa},{utcOffset:-10,short:t.timezoneHAST,long:t.timezoneHawaii},{utcOffset:-9,short:t.timezoneAKST,long:t.timezoneAlaska},{utcOffset:-8,short:t.timezonePST,long:t.timezoneBaja},{utcOffset:-7,short:t.timezoneMST,long:t.timezoneMountain},{utcOffset:-7,short:t.timezoneMST,long:t.timezoneLaPaz},{utcOffset:-7,short:t.timezoneMST,long:t.timezoneArizona},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneSaskatchewan},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneCentralAmerica},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneCentralTime},{utcOffset:-6,short:t.timezoneCST,long:t.timezoneMexico},{utcOffset:-5,short:t.timezoneEST,long:t.timezoneEasternUS},{utcOffset:-5,short:t.timezoneEST,long:t.timezoneLima},{utcOffset:-5,short:t.timezoneEST,long:t.timezoneIndiana},{utcOffset:-4,short:null,long:t.timezoneAtlantic},{utcOffset:-4,short:null,long:t.timezoneCuiaba},{utcOffset:-4,short:null,long:t.timezoneSantiago},{utcOffset:-4,short:null,long:t.timezoneManaus},{utcOffset:-4,short:null,long:t.timezoneAsuncion},{utcOffset:-3,short:null,long:t.timezoneBrasilia},{utcOffset:-3,short:null,long:t.timezoneGreenland},{utcOffset:-3,short:null,long:t.timezoneMontevideo},{utcOffset:-3,short:null,long:t.timezoneCayenne},{utcOffset:-3,short:null,long:t.timezoneBuenosAires},{utcOffset:-2,short:null,long:t.timezoneMidAtlantic},{utcOffset:-1,short:null,long:t.timezoneAzores},{utcOffset:-1,short:null,long:t.timezoneCaboVerde},{utcOffset:0,short:null,long:t.timezoneDublin},{utcOffset:0,short:null,long:t.timezoneReykjavik},{utcOffset:0,short:null,long:t.timezoneCasablanca},{utcOffset:1,short:t.timezoneCET,long:t.timezoneBelgrade},{utcOffset:1,short:t.timezoneCET,long:t.timezoneSarajevo},{utcOffset:1,short:t.timezoneCET,long:t.timezoneBrussels},{utcOffset:1,short:t.timezoneCET,long:t.timezoneWCAfrica},{utcOffset:1,short:t.timezoneCET,long:t.timezoneAmsterdam},{utcOffset:1,short:t.timezoneCET,long:t.timezoneWindhoek},{utcOffset:2,short:t.timezoneEET,long:t.timezoneMinsk},{utcOffset:2,short:t.timezoneEET,long:t.timezoneCairo},{utcOffset:2,short:t.timezoneEET,long:t.timezoneHelsinki},{utcOffset:2,short:t.timezoneEET,long:t.timezoneAthens},{utcOffset:2,short:t.timezoneEET,long:t.timezoneJerusalem},{utcOffset:2,short:t.timezoneEET,long:t.timezoneAmman},{utcOffset:2,short:t.timezoneEET,long:t.timezoneBeirut},{utcOffset:2,short:t.timezoneEET,long:t.timezoneHarare},{utcOffset:2,short:t.timezoneEET,long:t.timezoneDamascus},{utcOffset:2,short:t.timezoneEET,long:t.timezoneIstanbul},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneKuwait},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneBaghdad},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneNairobi},{utcOffset:3,short:t.timezoneMSK,long:t.timezoneKaliningrad},{utcOffset:4,short:t.timezoneGST,long:t.timezoneMoscow},{utcOffset:4,short:t.timezoneGST,long:t.timezoneMuscat},{utcOffset:4,short:t.timezoneGST,long:t.timezoneBaku},{utcOffset:4,short:t.timezoneGST,long:t.timezoneYerevan},{utcOffset:4,short:t.timezoneGST,long:t.timezoneTbilisi},{utcOffset:4,short:t.timezoneGST,long:t.timezonePortLouis},{utcOffset:5,short:null,long:t.timezoneTashkent},{utcOffset:5,short:null,long:t.timezoneIslamabad},{utcOffset:6,short:null,long:t.timezoneEkaterinburg},{utcOffset:6,short:null,long:t.timezoneAstana},{utcOffset:6,short:null,long:t.timezoneDhaka},{utcOffset:7,short:t.timezoneICT,long:t.timezoneNovosibirsk},{utcOffset:7,short:t.timezoneICT,long:t.timezoneBangkok},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneKrasnoyarsk},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneBeijing},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneSingapore},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneTaipei},{utcOffset:8,short:t.timezoneCCT,long:t.timezonePerth},{utcOffset:8,short:t.timezoneCCT,long:t.timezoneUlaanbaatar},{utcOffset:9,short:t.timezoneJST,long:t.timezoneIrkutsk},{utcOffset:9,short:t.timezoneJST,long:t.timezoneSeoul},{utcOffset:9,short:t.timezoneJST,long:t.timezoneOsaka},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneYakutsk},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneCanberra},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneBrisbane},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneHobart},{utcOffset:10,short:t.timezoneAEST,long:t.timezoneGuam},{utcOffset:11,short:null,long:t.timezoneVladivostok},{utcOffset:11,short:null,long:t.timezoneSolomon},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneMagadan},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneFiji},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneAuckland},{utcOffset:12,short:t.timezoneNZST,long:t.timezoneNukualofa}].map((({utcOffset:t,short:e,long:o})=>{const n=t>0?`UTC+${t}`:t<0?`UTC${t}`:"GMT";return e?{utcOffset:t,short:e,shortWithUTC:`${n} (${e})`,long:o}:{utcOffset:t,short:n,shortWithUTC:n,long:o}}))}export{z as adjustTimeSliderForLocale,u as formatSliderLabel,T as getSunriseAndSunsetTimes,C as getTimezoneInfos,c as onPrimaryTickCreated,g as onSecondaryTickCreated,m as timeStringFormattingOptions,h as useAmPm};
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[1056,8256],{4146:(t,e,n)=>{n.d(e,{A:()=>_});var r=n(90237),i=n(78888),s=n(49186),o=n(65529),a=n(4902),l=n(92474),u=n(53966),c=n(74887),d=n(84952),h=n(10107),g=(n(44208),n(87811),n(40608)),f=n(5443),p=n(16930),b=n(92602),y=n(79677);let v=0,m=class extends(o.A.EventedMixin(a.A.IdentifiableMixin(l.A))){constructor(){super(...arguments),this.attributionDataUrl=null,this.fullExtent=new f.A(-180,-90,180,90,p.A.WGS84),this.id=Date.now().toString(16)+"-layer-"+v++,this.legendEnabled=!0,this.listMode="show",this.opacity=1,this.parent=null,this.persistenceEnabled=!1,this.popupEnabled=!0,this.attributionVisible=!0,this.spatialReference=p.A.WGS84,this.title=null,this.type=null,this.url=null,this.visibilityTimeExtent=null,this.visible=!0}static async fromArcGISServerUrl(t){const e="string"==typeof t?{url:t}:t;return(await n.e(7982).then(n.bind(n,27982))).fromUrl(e)}static fromPortalItem(t){return async function(t){const e="portalItem"in t?t:{portalItem:t},{fromItem:r}=await n.e(5613).then(n.bind(n,45613));try{return await r(e)}catch(t){const n=e?.portalItem,r=n?.id||"unset",i=n?.portal?.url||b.A.portalUrl;throw u.A.getLogger("esri.layers.support.fromPortalItem").error("#fromPortalItem()","Failed to create layer from portal item (portal: '"+i+"', id: '"+r+"')",t),t}}(t)}initialize(){this.when().catch((t=>{(0,c.zf)(t)||u.A.getLogger(this).error("#load()",`Failed to load layer (title: '${this.title??"no title"}', id: '${this.id??"no id"}')`,{error:t})}))}destroy(){const t=this.parent;if(t){const e=this;"layers"in t&&t.layers.includes(e)?t.layers.remove(e):"tables"in t&&t.tables.includes(e)?t.tables.remove(e):"baseLayers"in t&&t.baseLayers.includes(e)?t.baseLayers.remove(e):"referenceLayers"in t&&t.referenceLayers.includes(e)&&t.referenceLayers.remove(e),this._set("parent",null)}}get effectiveVisible(){let t=this.visible;const e=this.parent;return t&&e&&"effectiveVisible"in e&&(t&&=e.effectiveVisible),t}get hasAttributionData(){return null!=this.attributionDataUrl}get parsedUrl(){return(0,d.An)(this.url)}createLayerView(t,e){return Promise.reject(new s.A("layer:create-layer-view","Layer does not support creating a layer view"))}async fetchAttributionData(){const t=this.attributionDataUrl;if(this.hasAttributionData&&t)return(await(0,i.A)(t,{query:{f:"json"},responseType:"json"})).data;throw new s.A("layer:no-attribution-data","Layer does not have attribution data")}};(0,r._)([(0,h.MZ)({type:String})],m.prototype,"attributionDataUrl",void 0),(0,r._)([(0,h.MZ)({readOnly:!0})],m.prototype,"effectiveVisible",null),(0,r._)([(0,h.MZ)({type:f.A})],m.prototype,"fullExtent",void 0),(0,r._)([(0,h.MZ)({readOnly:!0})],m.prototype,"hasAttributionData",null),(0,r._)([(0,h.MZ)({type:String,clonable:!1})],m.prototype,"id",void 0),(0,r._)([(0,h.MZ)({type:Boolean,nonNullable:!0})],m.prototype,"legendEnabled",void 0),(0,r._)([(0,h.MZ)({type:["show","hide","hide-children"]})],m.prototype,"listMode",void 0),(0,r._)([(0,h.MZ)({type:Number,range:{min:0,max:1},nonNullable:!0})],m.prototype,"opacity",void 0),(0,r._)([(0,h.MZ)({clonable:!1})],m.prototype,"parent",void 0),(0,r._)([(0,h.MZ)({readOnly:!0})],m.prototype,"parsedUrl",null),(0,r._)([(0,h.MZ)({type:Boolean,readOnly:!0})],m.prototype,"persistenceEnabled",void 0),(0,r._)([(0,h.MZ)({type:Boolean})],m.prototype,"popupEnabled",void 0),(0,r._)([(0,h.MZ)({type:Boolean})],m.prototype,"attributionVisible",void 0),(0,r._)([(0,h.MZ)({type:p.A})],m.prototype,"spatialReference",void 0),(0,r._)([(0,h.MZ)({type:String})],m.prototype,"title",void 0),(0,r._)([(0,h.MZ)({readOnly:!0,json:{read:!1}})],m.prototype,"type",void 0),(0,r._)([(0,h.MZ)()],m.prototype,"url",void 0),(0,r._)([(0,h.MZ)({type:y.A})],m.prototype,"visibilityTimeExtent",void 0),(0,r._)([(0,h.MZ)({type:Boolean,nonNullable:!0})],m.prototype,"visible",void 0),m=(0,r._)([(0,g.$)("esri.layers.Layer")],m);const _=m},4341:(t,e,n)=>{n.d(e,{I:()=>i});var r=n(26390);class i{constructor(t){this._allocator=t,this._items=[],this._itemsPtr=0,this._grow()}get(){return 0===this._itemsPtr&&(0,r.d)((()=>this._reset())),this._itemsPtr===this._items.length&&this._grow(),this._items[this._itemsPtr++]}_reset(){const t=Math.min(3*Math.max(8,this._itemsPtr),this._itemsPtr+3*s);this._items.length=Math.min(t,this._items.length),this._itemsPtr=0}_grow(){for(let t=0;t<Math.max(8,Math.min(this._items.length,s));t++)this._items.push(this._allocator())}}const s=1024},4902:(t,e,n)=>{n.d(e,{A:()=>c});var r=n(90237),i=n(40608);let s=0;const o=t=>{let e=class extends t{constructor(...t){super(...t),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:Date.now().toString(16)+"-object-"+s++})}};return e=(0,r._)([(0,i.$)("esri.core.Identifiable")],e),e},a=t=>{let e=class extends t{constructor(...t){super(...t),Object.defineProperty(this,"uid",{writable:!1,configurable:!1,value:s++})}};return e=(0,r._)([(0,i.$)("esri.core.Identifiable.NumericIdentifiable")],e),e};let l=class extends(o(class{})){};var u;l=(0,r._)([(0,i.$)("esri.core.Identifiable")],l),(u=l||(l={})).IdentifiableMixin=o,u.NumericIdentifiableMixin=a;const c=l},11964:(t,e,n)=>{n.d(e,{Cr:()=>u,H6:()=>h,_I:()=>d,kb:()=>c,vt:()=>l});var r=n(34727),i=n(4341),s=n(38954),o=n(51850),a=n(32114);function l(t){return t?{origin:(0,o.o8)(t.origin),vector:(0,o.o8)(t.vector)}:{origin:(0,o.vt)(),vector:(0,o.vt)()}}function u(t,e,n=l()){return(0,s.c)(n.origin,t),(0,s.d)(n.vector,e,t),n}function c(t,e){const n=(0,s.d)(a.rq.get(),e,t.origin),i=(0,s.f)(t.vector,n),o=(0,s.f)(t.vector,t.vector),l=(0,r.qE)(i/o,0,1),u=(0,s.d)(a.rq.get(),(0,s.h)(a.rq.get(),t.vector,l),n);return(0,s.f)(u,u)}function d(t,e,n){return h(t,e,0,1,n)}function h(t,e,n,i,o){const{vector:l,origin:u}=t,c=(0,s.d)(a.rq.get(),e,u),d=(0,s.f)(l,c)/(0,s.k)(l);return(0,s.h)(o,l,(0,r.qE)(d,n,i)),(0,s.g)(o,o,t.origin)}(0,o.vt)(),(0,o.vt)(),new i.I((()=>l()))},17352:(t,e,n)=>{n.d(e,{b:()=>$,f:()=>_}),n(44208);var r=n(53966),i=n(34727),s=n(4341),o=n(58083),a=n(9093),l=n(38954),u=n(51850),c=n(19419),d=n(88582),h=n(11964),g=n(27921),f=n(71351),p=n(44280),b=n(32114);const y=()=>r.A.getLogger("esri.views.3d.support.geometryUtils.boundedPlane");function v(t=D){return{plane:(0,g.vt)(t.plane),origin:(0,u.o8)(t.origin),basis1:(0,u.o8)(t.basis1),basis2:(0,u.o8)(t.basis2)}}function m(t,e=v()){return _(t.origin,t.basis1,t.basis2,e)}function _(t,e,n,r=v()){return(0,l.c)(r.origin,t),(0,l.c)(r.basis1,e),(0,l.c)(r.basis2,n),M(r),function(t,e){Math.abs((0,l.f)(t.basis1,t.basis2)/((0,l.l)(t.basis1)*(0,l.l)(t.basis2)))>1e-6&&y().warn(e,"Provided basis vectors are not perpendicular"),Math.abs((0,l.f)(t.basis1,x(t)))>1e-6&&y().warn(e,"Basis vectors and plane normal are not perpendicular"),Math.abs(-(0,l.f)(x(t),t.origin)-t.plane[3])>1e-6&&y().warn(e,"Plane offset is not consistent with plane origin")}(r,"fromValues()"),r}function M(t){(0,g.mR)(t.basis2,t.basis1,t.origin,t.plane)}function A(t,e,n){t!==n&&m(t,n);const r=(0,l.h)(b.rq.get(),x(t),e);return(0,l.g)(n.origin,n.origin,r),n.plane[3]-=e,n}function w(t,e=v()){const n=(t[2]-t[0])/2,r=(t[3]-t[1])/2;return(0,l.i)(e.origin,t[0]+n,t[1]+r,0),(0,l.i)(e.basis1,n,0,0),(0,l.i)(e.basis2,0,r,0),(0,g.fA)(0,0,1,0,e.plane),e}function S(t,e,n){return!!(0,g.Ui)(t.plane,e,n)&&L(t,n)}function E(t,e,n){const r=U.get();R(t,e,r,U.get());let s=Number.POSITIVE_INFINITY;for(const o of F){const a=P(t,o,C.get()),u=b.rq.get();if((0,g.T7)(r,a,u)){const t=(0,l.o)(b.rq.get(),e.origin,u),r=Math.abs((0,i.XM)((0,l.f)(e.direction,t)));r<s&&(s=r,(0,l.c)(n,u))}}return s===Number.POSITIVE_INFINITY?I(t,e,n):n}function I(t,e,n){if(S(t,e,n))return n;const r=U.get(),i=U.get();R(t,e,r,i);let s=Number.POSITIVE_INFINITY;for(const o of F){const a=P(t,o,C.get()),u=b.rq.get();if((0,g.gv)(r,a,u)){const t=(0,f.kb)(e,u);if(!(0,g.Tj)(i,u))continue;t<s&&(s=t,(0,l.c)(n,u))}}return q(t,e.origin)<s&&O(t,e.origin,n),n}function O(t,e,n){const r=(0,g._I)(t.plane,e,b.rq.get()),i=(0,h.H6)(j(t,t.basis1),r,-1,1,b.rq.get()),s=(0,h.H6)(j(t,t.basis2),r,-1,1,b.rq.get());return(0,l.d)(n,(0,l.g)(b.rq.get(),i,s),t.origin),n}function T(t,e,n){const{origin:r,basis1:i,basis2:s}=t,o=(0,l.d)(b.rq.get(),e,r),a=(0,p.gr)(i,o),u=(0,p.gr)(s,o),c=(0,p.gr)(x(t),o);return(0,l.i)(n,a,u,c)}function q(t,e){const n=T(t,e,b.rq.get()),{basis1:r,basis2:i}=t,s=(0,l.l)(r),o=(0,l.l)(i),a=Math.max(Math.abs(n[0])-s,0),u=Math.max(Math.abs(n[1])-o,0),c=n[2];return a*a+u*u+c*c}function N(t,e){const n=-t.plane[3];return(0,p.gr)(x(t),e)-n}function x(t){return(0,g.Qj)(t.plane)}function L(t,e){const n=(0,l.d)(b.rq.get(),e,t.origin),r=(0,l.k)(t.basis1),i=(0,l.k)(t.basis2),s=(0,l.f)(t.basis1,n),o=(0,l.f)(t.basis2,n);return-s-r<0&&s-r<0&&-o-i<0&&o-i<0}function j(t,e){const n=C.get();return(0,l.c)(n.origin,t.origin),(0,l.c)(n.vector,e),n}function P(t,e,n){const{basis1:r,basis2:i,origin:s}=t,o=(0,l.h)(b.rq.get(),r,e.origin[0]),a=(0,l.h)(b.rq.get(),i,e.origin[1]);(0,l.g)(n.origin,o,a),(0,l.g)(n.origin,n.origin,s);const u=(0,l.h)(b.rq.get(),r,e.direction[0]),c=(0,l.h)(b.rq.get(),i,e.direction[1]);return(0,l.h)(n.vector,(0,l.g)(u,u,c),2),n}function R(t,e,n,r){const i=x(t);(0,g.mR)(i,e.direction,e.origin,n),(0,g.mR)((0,g.Qj)(n),i,e.origin,r)}const D={plane:(0,g.vt)(),origin:(0,u.fA)(0,0,0),basis1:(0,u.fA)(1,0,0),basis2:(0,u.fA)(0,1,0)},U=new s.I(g.vt),C=new s.I(h.vt),Z=(0,u.vt)(),V=new s.I((()=>v())),F=[{origin:[-1,-1],direction:[1,0]},{origin:[1,-1],direction:[0,1]},{origin:[1,1],direction:[-1,0]},{origin:[-1,1],direction:[0,-1]}],k=(0,a.vt)(),B=(0,a.vt)(),$=Object.freeze(Object.defineProperty({__proto__:null,BoundedPlaneClass:class{constructor(){this.plane=(0,g.vt)(),this.origin=(0,u.vt)(),this.basis1=(0,u.vt)(),this.basis2=(0,u.vt)()}},altitudeAt:N,axisAt:function(t,e,n,r){return function(t,e,n){switch(e){case d._.X:(0,l.c)(n,t.basis1),(0,l.n)(n,n);break;case d._.Y:(0,l.c)(n,t.basis2),(0,l.n)(n,n);break;case d._.Z:(0,l.c)(n,x(t))}return n}(t,n,r)},cameraFrustumCoverage:function(t,e){return(e-t)/e},closestPoint:I,closestPointOnSilhouette:E,copy:m,copyWithoutVerify:function(t,e){(0,l.c)(e.origin,t.origin),(0,l.c)(e.basis1,t.basis1),(0,l.c)(e.basis2,t.basis2),(0,g.C)(e.plane,t.plane)},create:v,distance:function(t,e){return Math.sqrt(q(t,e))},distance2:q,distanceToSilhouette:function(t,e){let n=Number.NEGATIVE_INFINITY;for(const r of F){const i=P(t,r,C.get()),s=(0,h.kb)(i,e);s>n&&(n=s)}return Math.sqrt(n)},elevate:A,equals:function(t,e){return(0,l.p)(t.basis1,e.basis1)&&(0,l.p)(t.basis2,e.basis2)&&(0,l.p)(t.origin,e.origin)},extrusionContainsPoint:function(t,e){return(0,g.Tj)(t.plane,e)&&L(t,e)},fromAABoundingRect:w,fromValues:_,getExtent:function(t,e){const n=t.basis1[0],r=t.basis2[1],[i,s]=t.origin;return(0,c.fA)(i-n,s-r,i+n,s+r,e)},intersectRay:S,intersectRayClosestSilhouette:function(t,e,n){if(S(t,e,n))return n;const r=E(t,e,b.rq.get());return(0,l.g)(n,e.origin,(0,l.h)(b.rq.get(),e.direction,(0,l.j)(e.origin,r)/(0,l.l)(e.direction))),n},normal:x,projectPoint:O,projectPointLocal:T,rotate:function(t,e,n,r){return t!==r&&m(t,r),(0,o.$0)(B,e,n),(0,l.t)(r.basis1,t.basis1,B),(0,l.t)(r.basis2,t.basis2,B),M(r),r},setAltitudeAt:function(t,e,n,r){const i=N(t,e),s=(0,l.h)(Z,x(t),n-i);return(0,l.g)(r,e,s),r},setExtent:function(t,e,n){return w(e,n),A(n,N(t,t.origin),n),n},transform:function(t,e,n){return t!==n&&m(t,n),(0,o.B8)(k,e),(0,o.mg)(k,k),(0,l.t)(n.basis1,t.basis1,k),(0,l.t)(n.basis2,t.basis2,k),(0,l.t)((0,g.Qj)(n.plane),(0,g.Qj)(t.plane),k),(0,l.t)(n.origin,t.origin,e),(0,g.mP)(n.plane,n.plane,n.origin),n},up:D,updateUnboundedPlane:M,wrap:function(t,e,n){const r=V.get();return r.origin=t,r.basis1=e,r.basis2=n,r.plane=(0,g.LV)(0,0,0,0),M(r),r}},Symbol.toStringTag,{value:"Module"}))},36708:(t,e,n)=>{n.d(e,{C_:()=>h,OH:()=>p,Vh:()=>b,on:()=>d,pc:()=>y,wB:()=>l,z7:()=>u});var r=n(37955),i=n(36563),s=n(97768),o=n(74887),a=n(14012);function l(t,e,n={}){return c(t,e,n,g)}function u(t,e,n={}){return c(t,e,n,f)}function c(t,e,n={},r){let i=null;const o=n.once?(t,n)=>{r(t)&&((0,s.xt)(i),e(t,n))}:(t,n)=>{r(t)&&e(t,n)};if(i=(0,a.Cn)(t,o,n.sync,n.equals),n.initial){const e=t();o(e,e)}return i}function d(t,e,n,o={}){let a=null,u=null,c=null;function d(){a&&u&&(u.remove(),o.onListenerRemove?.(a),a=null,u=null)}function h(t){o.once&&o.once&&(0,s.xt)(c),n(t)}const g=l(t,((t,n)=>{d(),(0,r.wb)(t)&&(a=t,u=(0,r.on)(t,e,h),o.onListenerAdd?.(t))}),{sync:o.sync,initial:!0});return c=(0,i.hA)((()=>{g.remove(),d()})),c}function h(t,e){return function(t,e,n){if((0,o.G4)(n))return Promise.reject((0,o.NK)());const r=t();if(e?.(r))return Promise.resolve(r);let a=null;function l(){a=(0,s.xt)(a)}return new Promise(((r,s)=>{a=(0,i.vE)([(0,o.u7)(n,(()=>{l(),s((0,o.NK)())})),c(t,(t=>{l(),r(t)}),{sync:!1,once:!0},e??g)])}))}(t,f,e)}function g(t){return!0}function f(t){return!!t}n(80559);const p={sync:!0},b={initial:!0},y={sync:!0,initial:!0}},44612:(t,e,n)=>{n.d(e,{xH:()=>o,N1:()=>l}),n(38954);var r=n(51850),i=n(71351),s=(n(62258),n(58083),n(70328),n(97937),n(65215));function o(t,e){return a(t)===a(e)}function a(t){if(null==t)return null;const e=null!=t.layer?t.layer.id:"";let n=null;return n=null!=t.objectId?t.objectId:null!=t.layer&&"objectIdField"in t.layer&&null!=t.layer.objectIdField&&null!=t.attributes?t.attributes[t.layer.objectIdField]:t.uid,null==n?null:`o-${e}-${n}`}n(86305),s.R6,s.HE,s.R6,s.R6,s.R6,n(87582),(0,r.vt)();const l={json:{write:{writer:function(t,e){null!=t?.layer?.objectIdField&&null!=t.attributes&&(e.feature={layerId:t.layer.id,objectId:t.attributes[t.layer.objectIdField]})},target:{"feature.layerId":{type:[Number,String],isRequired:!0},"feature.objectId":{type:[Number,String],isRequired:!0}}},origins:{"web-scene":{read:function(t){if(null!=t.layerId&&null!=t.objectId)return{uid:null,layer:{id:t.layerId,objectIdField:"ObjectId"},attributes:{ObjectId:t.objectId}}}}}}};(0,i.vt)(),(0,r.vt)()},45475:(t,e,n)=>{n.d(e,{A:()=>g});var r=n(90237),i=n(69622),s=n(4576),o=n(69540),a=n(4902),l=n(25482),u=n(10107),c=(n(44208),n(53966),n(40608));let d=0,h=class extends(l.A.JSONSupportMixin(o.A.ClonableMixin(a.A.IdentifiableMixin(i.A)))){constructor(t){super(t),this.id=`${Date.now().toString(16)}-analysis-${d++}`,this.title=null}get parent(){return this._get("parent")}set parent(t){const e=this.parent;if(null!=e)switch(e.type){case"line-of-sight":case"dimension":case"viewshed":e.releaseAnalysis(this);break;case"2d":case"3d":e.analyses.includes(this)&&e.analyses.remove(this)}this._set("parent",t)}get isEditable(){return this.requiredPropertiesForEditing.every(s.Ru)}};(0,r._)([(0,u.MZ)({type:String,constructOnly:!0,clonable:!1})],h.prototype,"id",void 0),(0,r._)([(0,u.MZ)({type:String})],h.prototype,"title",void 0),(0,r._)([(0,u.MZ)({clonable:!1,value:null})],h.prototype,"parent",null),(0,r._)([(0,u.MZ)({readOnly:!0})],h.prototype,"isEditable",null),h=(0,r._)([(0,c.$)("esri.analysis.Analysis")],h);const g=h},62258:(t,e,n)=>{var r,i;n.d(e,{dz:()=>r,oH:()=>i}),function(t){t[t.OBJECT=0]="OBJECT",t[t.HUD=1]="HUD",t[t.TERRAIN=2]="TERRAIN",t[t.OVERLAY=3]="OVERLAY",t[t.I3S=4]="I3S",t[t.PCL=5]="PCL",t[t.LOD=6]="LOD",t[t.VOXEL=7]="VOXEL",t[t.TILES3D=8]="TILES3D"}(r||(r={})),function(t){t[t.MIN=0]="MIN",t[t.MINMAX=1]="MINMAX",t[t.ALL=2]="ALL"}(i||(i={}))},62885:(t,e,n)=>{n.d(e,{H:()=>s,V:()=>i});var r=n(5503);function i(t,e,n=r.A){return e||(e=new n),e===t||(e.removeAll(),(i=t)&&(Array.isArray(i)||"items"in i&&Array.isArray(i.items))?e.addMany(t):t&&e.add(t)),e;var i}function s(t){return t}},65215:(t,e,n)=>{n.d(e,{HE:()=>r,R6:()=>i}),n(51850);class r{constructor(t){this.layerUid=t}}class i extends r{constructor(t,e){super(t),this.graphicUid=e}}},69540:(t,e,n)=>{n.d(e,{A:()=>h});var r=n(90237),i=n(69622),s=(n(44208),n(4718)),o=(n(53966),n(97768)),a=n(35666),l=n(88620),u=n(40608);const c=t=>{let e=class extends t{clone(){const t=(0,l.oY)(this);(0,o.Lw)(t,"unable to clone instance of non-accessor class");const e=t.metadata,n=t.store,r={},i=new Map;for(const t in e){const o=e[t],l=n?.originOf(t),u=o.clonable;if(o.readOnly||!1===u||l!==a.Gr.USER&&l!==a.Gr.DEFAULTS&&l!==a.Gr.WEB_MAP&&l!==a.Gr.WEB_SCENE)continue;const c=this[t];let d=null;d="function"==typeof u?u(c):"reference"===u?c:(0,s.TU)(c),null!=c&&null==d||(l===a.Gr.DEFAULTS?i.set(t,d):r[t]=d)}const u=new(0,Object.getPrototypeOf(this).constructor)(r);if(i.size){const t=(0,l.oY)(u)?.store;if(t)for(const[e,n]of i)t.set(e,n,a.Gr.DEFAULTS)}return u}};return e=(0,r._)([(0,u.$)("esri.core.Clonable")],e),e};let d=class extends(c(i.A)){};d=(0,r._)([(0,u.$)("esri.core.Clonable")],d),(d||(d={})).ClonableMixin=c;const h=d},71351:(t,e,n)=>{n.d(e,{C:()=>d,Cr:()=>h,LV:()=>c,kb:()=>g,oC:()=>f,vt:()=>l}),n(4576);var r=n(4341),i=(n(77690),n(29242)),s=n(38954),o=n(51850),a=n(32114);function l(t){return t?u((0,o.o8)(t.origin),(0,o.o8)(t.direction)):u((0,o.vt)(),(0,o.vt)())}function u(t,e){return{origin:t,direction:e}}function c(t,e){const n=p.get();return n.origin=t,n.direction=e,n}function d(t,e=l()){return function(t,e,n=l()){return(0,s.c)(n.origin,t),(0,s.c)(n.direction,e),n}(t.origin,t.direction,e)}function h(t,e,n=l()){return(0,s.c)(n.origin,t),(0,s.d)(n.direction,e,t),n}function g(t,e){const n=(0,s.e)(a.rq.get(),(0,s.n)(a.rq.get(),t.direction),(0,s.d)(a.rq.get(),e,t.origin));return(0,s.f)(n,n)}function f(t,e,n){const r=(0,s.f)(t.direction,(0,s.d)(n,e,t.origin));return(0,s.g)(n,t.origin,(0,s.h)(n,t.direction,r)),n}const p=new r.I((()=>l()));(0,o.vt)(),(0,o.vt)(),(0,o.vt)(),(0,i.vt)()},78553:(t,e,n)=>{n.d(e,{D:()=>s,p:()=>i});var r=n(56507);function i(t){const e=(0,r.Vr)(100*(1-t));return Math.max(0,Math.min(e,100))}function s(t){const e=1-t/100;return Math.max(0,Math.min(e,1))}},79677:(t,e,n)=>{n.d(e,{A:()=>g});var r,i=n(90237),s=n(25482),o=n(88930),a=n(10107),l=(n(44208),n(53966),n(87811),n(36005)),u=n(40608),c=n(43937),d=n(98623);let h=class extends s.A{static{r=this}static get allTime(){return f}static get empty(){return p}static fromArray(t){return new r({start:null!=t[0]?new Date(t[0]):t[0],end:null!=t[1]?new Date(t[1]):t[1]})}constructor(t){super(t),this.end=null,this.start=null}readEnd(t,e){return null!=e.end?new Date(e.end):null}writeEnd(t,e){e.end=t?.getTime()??null}get isAllTime(){return this.equals(r.allTime)}get isEmpty(){return this.equals(r.empty)}readStart(t,e){return null!=e.start?new Date(e.start):null}writeStart(t,e){e.start=t?.getTime()??null}clone(){return new r({end:this.end,start:this.start})}equals(t){if(!t)return!1;const e=this.start?.getTime()??this.start,n=this.end?.getTime()??this.end,r=t.start?.getTime()??t.start,i=t.end?.getTime()??t.end;return e===r&&n===i}expandTo(t,e=d.qU){if(this.isEmpty||this.isAllTime)return this.clone();let n=this.start;n&&(n=(0,o.lL)(n,t,e));let i=this.end;if(i){const n=(0,o.lL)(i,t,e);i=i.getTime()===n.getTime()?n:(0,o.S1)(n,1,t,e)}return new r({start:n,end:i})}intersection(t){if(!t)return this.clone();if(this.isEmpty||t.isEmpty)return r.empty;if(this.isAllTime)return t.clone();if(t.isAllTime)return this.clone();const e=this.start?.getTime()??-1/0,n=this.end?.getTime()??1/0,i=t.start?.getTime()??-1/0,s=t.end?.getTime()??1/0;let o,a;return i>=e&&i<=n?o=i:e>=i&&e<=s&&(o=e),n>=i&&n<=s?a=n:s>=e&&s<=n&&(a=s),null==o||null==a||isNaN(o)||isNaN(a)?r.empty:new r({start:o===-1/0?null:new Date(o),end:a===1/0?null:new Date(a)})}offset(t,e,n=d.qU){if(this.isEmpty||this.isAllTime)return this.clone();const i=new r,{start:s,end:a}=this;return null!=s&&(i.start=(0,o.S1)(s,t,e,n)),null!=a&&(i.end=(0,o.S1)(a,t,e,n)),i}toArray(){return this.isEmpty?[void 0,void 0]:[this.start?.getTime()??null,this.end?.getTime()??null]}union(t){if(!t||t.isEmpty)return this.clone();if(this.isEmpty)return t.clone();if(this.isAllTime||t.isAllTime)return f.clone();const e=null!=this.start&&null!=t.start?new Date(Math.min(this.start.getTime(),t.start.getTime())):null,n=null!=this.end&&null!=t.end?new Date(Math.max(this.end.getTime(),t.end.getTime())):null;return new r({start:e,end:n})}};(0,i._)([(0,a.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"end",void 0),(0,i._)([(0,l.w)("end")],h.prototype,"readEnd",null),(0,i._)([(0,c.K)("end")],h.prototype,"writeEnd",null),(0,i._)([(0,a.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isAllTime",null),(0,i._)([(0,a.MZ)({readOnly:!0,json:{read:!1}})],h.prototype,"isEmpty",null),(0,i._)([(0,a.MZ)({type:Date,json:{write:{allowNull:!0}}})],h.prototype,"start",void 0),(0,i._)([(0,l.w)("start")],h.prototype,"readStart",null),(0,i._)([(0,c.K)("start")],h.prototype,"writeStart",null),h=r=(0,i._)([(0,u.$)("esri.time.TimeExtent")],h);const g=h,f=new h,p=new h({start:void 0,end:void 0})},86305:(t,e,n)=>{n.d(e,{i3:()=>i}),n(38954);var r=n(51850);function i(t){return null!=t?.dist}n(17352),n(62258),(0,r.vt)()},87582:(t,e,n)=>{n.d(e,{h:()=>i}),n(62258);var r=n(65215);n(86305);class i extends r.R6{constructor(t,e,n,r,i){super(t,e),this.layerUid=t,this.graphicUid=e,this.triangleNr=n,this.baseBoundingSphere=r,this.numLodLevels=i}}},92071:(t,e,n)=>{n.d(e,{P:()=>m,L:()=>_});var r=n(90237),i=n(69622),s=n(76953),o=n(4718),a=n(35666);class l{constructor(){this._propertyOriginMap=new Map,this._originStores=new Array(a.AU),this._values=new Map,this.multipleOriginsSupported=!0}clone(t){const e=new l,n=this._originStores[a.Gr.DEFAULTS];n&&n.forEach(((t,n)=>{e.set(n,(0,o.o8)(t),a.Gr.DEFAULTS)}));for(let n=a.Gr.SERVICE;n<a.AU;n++){const r=this._originStores[n];r&&r.forEach(((r,i)=>{t&&t.has(i)||e.set(i,(0,o.o8)(r),n)}))}return e}get(t,e){const n=void 0===e?this._values:this._originStores[e];return n?n.get(t):void 0}keys(t){const e=null==t?this._values:this._originStores[t];return e?[...e.keys()]:[]}set(t,e,n=a.Gr.USER){let r=this._originStores[n];if(r||(r=new Map,this._originStores[n]=r),r.set(t,e),!this._values.has(t)||this._propertyOriginMap.get(t)<=n){const r=this._values.get(t);return this._values.set(t,e),this._propertyOriginMap.set(t,n),r!==e}return!1}delete(t,e=a.Gr.USER){const n=this._originStores[e];if(!n)return;const r=n.get(t);if(n.delete(t),this._values.has(t)&&this._propertyOriginMap.get(t)===e){this._values.delete(t);for(let n=e-1;n>=0;n--){const e=this._originStores[n];if(e&&e.has(t)){this._values.set(t,e.get(t)),this._propertyOriginMap.set(t,n);break}}}return r}has(t,e){const n=void 0===e?this._values:this._originStores[e];return!!n&&n.has(t)}revert(t,e){for(;e>0&&!this.has(t,e);)--e;const n=this._originStores[e],r=n?.get(t),i=this._values.get(t);return this._values.set(t,r),this._propertyOriginMap.set(t,e),i!==r}originOf(t){return this._propertyOriginMap.get(t)||a.Gr.DEFAULTS}forEach(t){this._values.forEach(t)}}var u=n(45917),c=n(88620),d=n(40608);const h=t=>{let e=class extends t{constructor(...t){super(...t);const e=(0,c.oY)(this),n=e.store,r=new l;e.store=r,(0,s.k)(e,n,r)}read(t,e){(0,u.L)(this,t,e)}getAtOrigin(t,e){const n=g(this),r=(0,a.aB)(e);if("string"==typeof t)return n.get(t,r);const i={};return t.forEach((t=>{i[t]=n.get(t,r)})),i}originOf(t){return(0,a.OL)(this.originIdOf(t))}originIdOf(t){return g(this).originOf(t)}revert(t,e){const n=g(this),r=(0,a.aB)(e),i=(0,c.oY)(this);let s;s="string"==typeof t?"*"===t?n.keys(r):[t]:t,s.forEach((t=>{i.invalidate(t),n.revert(t,r),i.commit(t)}))}};return e=(0,r._)([(0,d.$)("esri.core.ReadOnlyMultiOriginJSONSupport")],e),e};function g(t){return(0,c.oY)(t).store}let f=class extends(h(i.A)){};f=(0,r._)([(0,d.$)("esri.core.ReadOnlyMultiOriginJSONSupport")],f);var p=n(16649),b=n(49422);const y=t=>{let e=class extends t{constructor(...t){super(...t)}clear(t,e="user"){return v(this).delete(t,(0,a.aB)(e))}write(t,e){return(0,b.M)(this,t=t||{},e),t}setAtOrigin(t,e,n){(0,c.oY)(this).setAtOrigin(t,e,(0,a.aB)(n))}removeOrigin(t){const e=v(this),n=(0,a.aB)(t),r=e.keys(n);for(const t of r)e.originOf(t)===n&&e.set(t,e.get(t,n),a.Gr.USER)}updateOrigin(t,e){const n=v(this),r=(0,a.aB)(e),i=(0,p.Jt)(this,t);for(let e=r+1;e<a.AU;++e)n.delete(t,e);n.set(t,i,r)}toJSON(t){return this.write({},t)}};return e=(0,r._)([(0,d.$)("esri.core.MultiOriginJSONSupport.WriteableMultiOriginJSONSupport")],e),e.prototype.toJSON.isDefaultToJSON=!0,e};function v(t){return(0,c.oY)(t).store}const m=t=>{let e=class extends(y(h(t))){constructor(...t){super(...t)}};return e=(0,r._)([(0,d.$)("esri.core.MultiOriginJSONSupport")],e),e};let _=class extends(m(i.A)){};_=(0,r._)([(0,d.$)("esri.core.MultiOriginJSONSupport")],_)},97937:(t,e,n)=>{n.d(e,{a:()=>A,c:()=>b,e:()=>m,f:()=>w,g:()=>M,i:()=>T,o:()=>R,s:()=>C,w:()=>_}),n(44208),n(53966);var r=n(34727),i=n(58083),s=n(38954),o=n(51850),a=n(87317),l=n(91829),u=n(34304),c=n(88582),d=n(71351);function h(t,e){const n=(0,s.l)(t),i=(0,r.YN)(t[2]/n),o=Math.atan2(t[1]/n,t[0]/n);return(0,s.i)(e,n,i,o),e}var g=n(44280),f=n(32114);const p=b();function b(){return(0,l.vt)()}const y=a.e,v=a.e;function m(t,e){return(0,a.c)(e,t)}function _(t){return t}function M(t){return t[3]}function A(t){return t}function w(t,e,n,r){return(0,l.fA)(t,e,n,r)}function S(t,e,n){if(null==e)return!1;if(!I(t,e,E))return!1;let{t0:r,t1:i}=E;if((r<0||i<r&&i>0)&&(r=i),r<0)return!1;if(n){const{origin:t,direction:i}=e;n[0]=t[0]+i[0]*r,n[1]=t[1]+i[1]*r,n[2]=t[2]+i[2]*r}return!0}const E={t0:0,t1:0};function I(t,e,n){const{origin:r,direction:i}=e,s=O;s[0]=r[0]-t[0],s[1]=r[1]-t[1],s[2]=r[2]-t[2];const o=i[0]*i[0]+i[1]*i[1]+i[2]*i[2];if(0===o)return!1;const a=2*(i[0]*s[0]+i[1]*s[1]+i[2]*s[2]),l=a*a-4*o*(s[0]*s[0]+s[1]*s[1]+s[2]*s[2]-t[3]*t[3]);if(l<0)return!1;const u=Math.sqrt(l);return n.t0=(-a-u)/(2*o),n.t1=(-a+u)/(2*o),!0}const O=(0,o.vt)();function T(t,e){return S(t,e,null)}function q(t,e,n){const r=f.rq.get(),o=f.Rc.get();(0,s.e)(r,e.origin,e.direction);const a=M(t);(0,s.e)(n,r,e.origin),(0,s.h)(n,n,1/(0,s.l)(n)*a);const l=x(t,e.origin),u=(0,g.g7)(e.origin,n);return(0,i.$0)(o,u+l,r),(0,s.t)(n,n,o),n}function N(t,e,n){const r=(0,s.d)(f.rq.get(),e,t),i=(0,s.h)(f.rq.get(),r,t[3]/(0,s.l)(r));return(0,s.g)(n,i,t)}function x(t,e){const n=(0,s.d)(f.rq.get(),e,t),i=(0,s.l)(n),o=M(t),a=o+Math.abs(o-i);return(0,r.XM)(o/a)}const L=(0,o.vt)();function j(t,e,n,r){const i=(0,s.d)(L,e,t);switch(n){case c._.X:{const t=h(i,L)[2];return(0,s.i)(r,-Math.sin(t),Math.cos(t),0)}case c._.Y:{const t=h(i,L),e=t[1],n=t[2],o=Math.sin(e);return(0,s.i)(r,-o*Math.cos(n),-o*Math.sin(n),Math.cos(e))}case c._.Z:return(0,s.n)(r,i);default:return}}function P(t,e){const n=(0,s.d)(D,e,t);return(0,s.l)(n)-t[3]}function R(t,e){const n=(0,s.s)(t,e),r=M(t);return n<=r*r}const D=(0,o.vt)(),U=b(),C=Object.freeze(Object.defineProperty({__proto__:null,NullSphere:p,altitudeAt:P,angleToSilhouette:x,axisAt:j,cameraFrustumCoverage:function(t,e,n,r){const i=M(t),s=i*i,o=e+.5*Math.PI,a=n*n+s-2*Math.cos(o)*n*i,l=Math.sqrt(a),u=a-s;if(u<=0)return.5;const c=Math.sqrt(u),d=Math.acos(c/l)-Math.asin(i/(l/Math.sin(o)));return Math.min(1,(d+.5*r)/r)},clear:function(t){t[0]=t[1]=t[2]=t[3]=0},closestPoint:function(t,e,n){return S(t,e,n)?n:((0,d.oC)(e,t,n),N(t,n,n))},closestPointOnSilhouette:q,containsPoint:R,copy:m,create:b,distanceToSilhouette:function(t,e){const n=(0,s.d)(f.rq.get(),e,t),r=(0,s.k)(n),i=t[3]*t[3];return Math.sqrt(Math.abs(r-i))},elevate:function(t,e,n){return t!==n&&(n[0]=t[0],n[1]=t[1],n[2]=t[2]),n[3]=t[3]+e,n},equals:v,exactEquals:y,fromCenterAndRadius:function(t,e){return(0,l.fA)(t[0],t[1],t[2],e)},fromRadius:function(t,e){return t[0]=t[1]=t[2]=0,t[3]=e,t},fromValues:w,getCenter:A,getExtent:function(t,e){return e},getRadius:M,intersectLine:function(t,e,n){const r=(0,d.Cr)(e,n);if(!I(t,r,E))return[];const{origin:i,direction:a}=r,{t0:l,t1:c}=E,h=e=>{const n=(0,o.vt)();return(0,s.b)(n,i,a,e),N(t,n,n)};return Math.abs(l-c)<(0,u.FD)()?[h(l)]:[h(l),h(c)]},intersectRay:S,intersectRayClosestSilhouette:function(t,e,n){if(S(t,e,n))return n;const r=q(t,e,f.rq.get());return(0,s.g)(n,e.origin,(0,s.h)(f.rq.get(),e.direction,(0,s.j)(e.origin,r)/(0,s.l)(e.direction))),n},intersectsRay:T,projectPoint:N,setAltitudeAt:function(t,e,n,r){const i=P(t,e),o=j(t,e,c._.Z,D),a=(0,s.h)(D,o,n-i);return(0,s.g)(r,e,a)},setExtent:function(t,e,n){return t!==n&&m(t,n),n},tmpSphere:U,union:function(t,e,n=(0,l.vt)()){const r=(0,s.j)(t,e),i=t[3],o=e[3];return r+o<i?((0,a.c)(n,t),n):r+i<o?((0,a.c)(n,e),n):((0,s.m)(n,t,e,(r+o-i)/(2*r)),n[3]=(r+i+o)/2,n)},wrap:_},Symbol.toStringTag,{value:"Module"}))}}]);
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3030],{13030:(t,e,r)=>{r.d(e,{Y$:()=>a,qB:()=>O,Qt:()=>D,My:()=>$,bf:()=>U,jZ:()=>T,j0:()=>E,Sx:()=>m,E$:()=>A,h:()=>C,P:()=>N,SL:()=>M,gH:()=>l,ZD:()=>p,si:()=>S,mJ:()=>k,UL:()=>X,D6:()=>q,Yi:()=>P,An:()=>F,LC:()=>w,xs:()=>B,Xm:()=>g,Vp:()=>z,zD:()=>H,m8:()=>V,nS:()=>Y,H$:()=>v,eI:()=>_,Eq:()=>b,Aj:()=>L,E7:()=>Z,Y4:()=>Q,TX:()=>j,Uz:()=>R,ml:()=>I,XP:()=>x});var s=r(26615);class f{static{this.ElementCount=9}constructor(t,e,r=0,s,f){this.TypedArrayConstructor=t,this.elementCount=9;const i=this.TypedArrayConstructor;void 0===s&&(s=9*i.BYTES_PER_ELEMENT);const n=0===e.byteLength?0:r;this.typedBuffer=null==f?new i(e,n):new i(e,n,(f-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=s/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const s=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,s,this.stride,s+r*this.stride)}getMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<9;t++)e[t]=this.typedBuffer[r++];return e}setMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<9;t++)this.typedBuffer[r++]=e[t]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}copyFrom(t,e,r){const s=this.typedBuffer,f=e.typedBuffer;let i=t*this.typedBufferStride,n=r*e.typedBufferStride;for(let t=0;t<9;++t)s[i++]=f[n++]}get buffer(){return this.typedBuffer.buffer}}class i{static{this.ElementCount=16}constructor(t,e,r=0,s,f){this.TypedArrayConstructor=t,this.elementCount=16;const i=this.TypedArrayConstructor;void 0===s&&(s=16*i.BYTES_PER_ELEMENT);const n=0===e.byteLength?0:r;this.typedBuffer=null==f?new i(e,n):new i(e,n,(f-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=s/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const s=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,s,this.stride,s+r*this.stride)}getMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<16;t++)e[t]=this.typedBuffer[r++];return e}setMat(t,e){let r=t*this.typedBufferStride;for(let t=0;t<16;t++)this.typedBuffer[r++]=e[t]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}copyFrom(t,e,r){this.copyFromTypedBuffer(t,e.typedBuffer,r*e.typedBufferStride)}copyFromTypedBuffer(t,e,r){const s=this.typedBuffer;let f=t*this.typedBufferStride;for(let t=0;t<16;++t)s[f++]=e[r++]}get buffer(){return this.typedBuffer.buffer}}class n{static{this.ElementCount=1}constructor(t,e,r=0,s,f){this.TypedArrayConstructor=t,this.elementCount=1;const i=this.TypedArrayConstructor;void 0===s&&(s=i.BYTES_PER_ELEMENT);const n=0===e.byteLength?0:r;this.typedBuffer=null==f?new i(e,n):new i(e,n,(f-r)/i.BYTES_PER_ELEMENT),this.stride=s,this.typedBufferStride=s/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride)}sliceBuffer(t,e,r=this.count-e){const s=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,s,this.stride,s+r*this.stride)}get(t){return this.typedBuffer[t*this.typedBufferStride]}set(t,e){this.typedBuffer[t*this.typedBufferStride]=e}get buffer(){return this.typedBuffer.buffer}}var u=r(37585);class y{static{this.ElementCount=2}constructor(t,e,r=0,s,f){this.TypedArrayConstructor=t,this.elementCount=2;const i=this.TypedArrayConstructor;void 0===s&&(s=2*i.BYTES_PER_ELEMENT);const n=0===e.byteLength?0:r;this.typedBuffer=null==f?new i(e,n):new i(e,n,(f-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=s/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const s=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,s,this.stride,s+r*this.stride)}getVec(t,e){return t*=this.typedBufferStride,(0,u.hZ)(e,this.typedBuffer[t],this.typedBuffer[t+1])}setVec(t,e){t*=this.typedBufferStride,this.typedBuffer[t++]=e[0],this.typedBuffer[t]=e[1]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}setValues(t,e,r){t*=this.typedBufferStride,this.typedBuffer[t++]=e,this.typedBuffer[t]=r}copyFrom(t,e,r){const s=this.typedBuffer,f=e.typedBuffer;let i=t*this.typedBufferStride,n=r*e.typedBufferStride;s[i++]=f[n++],s[i]=f[n]}get buffer(){return this.typedBuffer.buffer}}var c=r(38954);class h{static{this.ElementCount=3}constructor(t,e,r=0,s,f){this.TypedArrayConstructor=t,this.elementCount=3;const i=this.TypedArrayConstructor;void 0===s&&(s=3*i.BYTES_PER_ELEMENT);const n=0===e.byteLength?0:r;this.typedBuffer=null==f?new i(e,n):new i(e,n,(f-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=s/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const s=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,s,this.stride,s+r*this.stride)}getVec(t,e){return t*=this.typedBufferStride,(0,c.i)(e,this.typedBuffer[t],this.typedBuffer[t+1],this.typedBuffer[t+2])}setVec(t,e){t*=this.typedBufferStride,this.typedBuffer[t++]=e[0],this.typedBuffer[t++]=e[1],this.typedBuffer[t]=e[2]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}setValues(t,e,r,s){t*=this.typedBufferStride,this.typedBuffer[t++]=e,this.typedBuffer[t++]=r,this.typedBuffer[t]=s}copyFrom(t,e,r){const s=this.typedBuffer,f=e.typedBuffer;let i=t*this.typedBufferStride,n=r*e.typedBufferStride;s[i++]=f[n++],s[i++]=f[n++],s[i]=f[n]}get buffer(){return this.typedBuffer.buffer}}var d=r(87317);class o{static{this.ElementCount=4}constructor(t,e,r=0,s,f){this.TypedArrayConstructor=t,this.start=r,this.elementCount=4;const i=this.TypedArrayConstructor;void 0===s&&(s=4*i.BYTES_PER_ELEMENT);const n=0===e.byteLength?0:r;this.typedBuffer=null==f?new i(e,n):new i(e,n,(f-r)/i.BYTES_PER_ELEMENT),this.typedBufferStride=s/i.BYTES_PER_ELEMENT,this.count=Math.ceil(this.typedBuffer.length/this.typedBufferStride),this.stride=this.typedBufferStride*this.TypedArrayConstructor.BYTES_PER_ELEMENT}sliceBuffer(t,e,r=this.count-e){const s=this.typedBuffer.byteOffset+e*this.stride;return new t(this.buffer,s,this.stride,s+r*this.stride)}getVec(t,e){return t*=this.typedBufferStride,(0,d.s)(e,this.typedBuffer[t++],this.typedBuffer[t++],this.typedBuffer[t++],this.typedBuffer[t])}setVec(t,e){t*=this.typedBufferStride,this.typedBuffer[t++]=e[0],this.typedBuffer[t++]=e[1],this.typedBuffer[t++]=e[2],this.typedBuffer[t]=e[3]}get(t,e){return this.typedBuffer[t*this.typedBufferStride+e]}set(t,e,r){this.typedBuffer[t*this.typedBufferStride+e]=r}setValues(t,e,r,s,f){t*=this.typedBufferStride,this.typedBuffer[t++]=e,this.typedBuffer[t++]=r,this.typedBuffer[t++]=s,this.typedBuffer[t]=f}copyFrom(t,e,r){const s=this.typedBuffer,f=e.typedBuffer;let i=t*this.typedBufferStride,n=r*e.typedBufferStride;s[i++]=f[n++],s[i++]=f[n++],s[i++]=f[n++],s[i]=f[n]}get buffer(){return this.typedBuffer.buffer}}class a extends n{constructor(t,e=0,r,s){super(Float32Array,t,e,r,s),this.elementType="f32"}static fromTypedArray(t,e){return new a(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class p extends y{constructor(t,e=0,r,f){super(s.l,t,e,r,f),this.elementType="f16"}slice(t,e){return this.sliceBuffer(p,t,e)}static fromTypedArray(t,e){return new p(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f16"}}class l extends y{constructor(t,e=0,r,s){super(Float32Array,t,e,r,s),this.elementType="f32"}slice(t,e){return this.sliceBuffer(l,t,e)}static fromTypedArray(t,e){return new l(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class B extends h{constructor(t,e=0,r,s){super(Float32Array,t,e,r,s),this.elementType="f32"}slice(t,e){return this.sliceBuffer(B,t,e)}static fromTypedArray(t,e){return new B(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class b extends o{constructor(t,e=0,r,s){super(Float32Array,t,e,r,s),this.elementType="f32"}slice(t,e){return this.sliceBuffer(b,t,e)}static fromTypedArray(t,e){return new b(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class T extends f{constructor(t,e=0,r,s){super(Float32Array,t,e,r,s),this.elementType="f32"}slice(t,e){return this.sliceBuffer(T,t,e)}static fromTypedArray(t,e){return new T(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class E extends f{constructor(t,e=0,r,s){super(Float64Array,t,e,r,s),this.elementType="f64"}slice(t,e){return this.sliceBuffer(E,t,e)}static fromTypedArray(t,e){return new E(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class m extends i{constructor(t,e=0,r,s){super(Float32Array,t,e,r,s),this.elementType="f32"}slice(t,e){return this.sliceBuffer(m,t,e)}static fromTypedArray(t,e){return new m(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f32"}}class A extends i{constructor(t,e=0,r,s){super(Float64Array,t,e,r,s),this.elementType="f64"}slice(t,e){return this.sliceBuffer(A,t,e)}static fromTypedArray(t,e){return new A(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class O extends n{constructor(t,e=0,r,s){super(Float64Array,t,e,r,s),this.elementType="f64"}slice(t,e){return this.sliceBuffer(O,t,e)}static fromTypedArray(t,e){return new O(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class S extends y{constructor(t,e=0,r,s){super(Float64Array,t,e,r,s),this.elementType="f64"}slice(t,e){return this.sliceBuffer(S,t,e)}static fromTypedArray(t,e){return new S(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class g extends h{constructor(t,e=0,r,s){super(Float64Array,t,e,r,s),this.elementType="f64"}slice(t,e){return this.sliceBuffer(g,t,e)}static fromTypedArray(t,e){return new g(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class L extends o{constructor(t,e=0,r,s){super(Float64Array,t,e,r,s),this.elementType="f64"}slice(t,e){return this.sliceBuffer(L,t,e)}static fromTypedArray(t,e){return new L(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="f64"}}class M extends n{constructor(t,e=0,r,s){super(Uint8Array,t,e,r,s),this.elementType="u8"}slice(t,e){return this.sliceBuffer(M,t,e)}static fromTypedArray(t,e){return new M(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u8"}}class w extends y{constructor(t,e=0,r,s){super(Uint8Array,t,e,r,s),this.elementType="u8"}slice(t,e){return this.sliceBuffer(w,t,e)}static fromTypedArray(t,e){return new w(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u8"}}class _ extends h{constructor(t,e=0,r,s){super(Uint8Array,t,e,r,s),this.elementType="u8"}slice(t,e){return this.sliceBuffer(_,t,e)}static fromTypedArray(t,e){return new _(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u8"}}class x extends o{constructor(t,e=0,r,s){super(Uint8Array,t,e,r,s),this.elementType="u8"}slice(t,e){return this.sliceBuffer(x,t,e)}static fromTypedArray(t,e){return new x(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u8"}}class C extends n{constructor(t,e=0,r,s){super(Uint16Array,t,e,r,s),this.elementType="u16"}slice(t,e){return this.sliceBuffer(C,t,e)}static fromTypedArray(t,e){return new C(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u16"}}class P extends y{constructor(t,e=0,r,s){super(Uint16Array,t,e,r,s),this.elementType="u16"}slice(t,e){return this.sliceBuffer(P,t,e)}static fromTypedArray(t,e){return new P(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u16"}}class Y extends h{constructor(t,e=0,r,s){super(Uint16Array,t,e,r,s),this.elementType="u16"}slice(t,e){return this.sliceBuffer(Y,t,e)}static fromTypedArray(t,e){return new Y(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u16"}}class R extends o{constructor(t,e=0,r,s){super(Uint16Array,t,e,r,s),this.elementType="u16"}slice(t,e){return this.sliceBuffer(R,t,e)}static fromTypedArray(t,e){return new R(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u16"}}class N extends n{constructor(t,e=0,r,s){super(Uint32Array,t,e,r,s),this.elementType="u32"}slice(t,e){return this.sliceBuffer(N,t,e)}static fromTypedArray(t,e){return new N(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u32"}}class F extends y{constructor(t,e=0,r,s){super(Uint32Array,t,e,r,s),this.elementType="u32"}slice(t,e){return this.sliceBuffer(F,t,e)}static fromTypedArray(t,e){return new F(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u32"}}class v extends h{constructor(t,e=0,r,s){super(Uint32Array,t,e,r,s),this.elementType="u32"}slice(t,e){return this.sliceBuffer(v,t,e)}static fromTypedArray(t,e){return new v(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u32"}}class I extends o{constructor(t,e=0,r,s){super(Uint32Array,t,e,r,s),this.elementType="u32"}slice(t,e){return this.sliceBuffer(I,t,e)}static fromTypedArray(t,e){return new I(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="u32"}}class U extends n{constructor(t,e=0,r,s){super(Int8Array,t,e,r,s),this.elementType="i8"}slice(t,e){return this.sliceBuffer(U,t,e)}static fromTypedArray(t,e){return new U(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i8"}}class q extends y{constructor(t,e=0,r,s){super(Int8Array,t,e,r,s),this.elementType="i8"}slice(t,e){return this.sliceBuffer(q,t,e)}static fromTypedArray(t,e){return new q(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i8"}}class V extends h{constructor(t,e=0,r,s){super(Int8Array,t,e,r,s),this.elementType="i8"}slice(t,e){return this.sliceBuffer(V,t,e)}static fromTypedArray(t,e){return new V(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i8"}}class j extends o{constructor(t,e=0,r,s){super(Int8Array,t,e,r,s),this.elementType="i8"}slice(t,e){return this.sliceBuffer(j,t,e)}static fromTypedArray(t,e){return new j(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i8"}}class D extends n{constructor(t,e=0,r,s){super(Int16Array,t,e,r,s),this.elementType="i16"}slice(t,e){return this.sliceBuffer(D,t,e)}static fromTypedArray(t,e){return new D(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i16"}}class k extends y{constructor(t,e=0,r,s){super(Int16Array,t,e,r,s),this.elementType="i16"}slice(t,e){return this.sliceBuffer(k,t,e)}static fromTypedArray(t,e){return new k(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i16"}}class z extends h{constructor(t,e=0,r,s){super(Int16Array,t,e,r,s),this.elementType="i16"}slice(t,e){return this.sliceBuffer(z,t,e)}static fromTypedArray(t,e){return new z(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i16"}}class Z extends o{constructor(t,e=0,r,s){super(Int16Array,t,e,r,s),this.elementType="i16"}slice(t,e){return this.sliceBuffer(Z,t,e)}static fromTypedArray(t,e){return new Z(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i16"}}class $ extends n{constructor(t,e=0,r,s){super(Int32Array,t,e,r,s),this.elementType="i32"}slice(t,e){return this.sliceBuffer($,t,e)}static fromTypedArray(t,e){return new $(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i32"}}class X extends y{constructor(t,e=0,r,s){super(Int32Array,t,e,r,s),this.elementType="i32"}slice(t,e){return this.sliceBuffer(X,t,e)}static fromTypedArray(t,e){return new X(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i32"}}class H extends h{constructor(t,e=0,r,s){super(Int32Array,t,e,r,s),this.elementType="i32"}slice(t,e){return this.sliceBuffer(H,t,e)}static fromTypedArray(t,e){return new H(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i32"}}class Q extends o{constructor(t,e=0,r,s){super(Int32Array,t,e,r,s),this.elementType="i32"}slice(t,e){return this.sliceBuffer(Q,t,e)}static fromTypedArray(t,e){return new Q(t.buffer,t.byteOffset,e,t.byteOffset+t.byteLength)}static{this.ElementType="i32"}}},37585:(t,e,r)=>{r.d(e,{C:()=>f,Cc:()=>B,Io:()=>d,S8:()=>l,WQ:()=>n,e$:()=>T,hZ:()=>i,hs:()=>h,jb:()=>A,l0:()=>b,t2:()=>E});var s=r(34304);function f(t,e){return t[0]=e[0],t[1]=e[1],t}function i(t,e,r){return t[0]=e,t[1]=r,t}function n(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function u(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function y(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function c(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function h(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function d(t,e){const r=e[0]-t[0],s=e[1]-t[1];return Math.sqrt(r*r+s*s)}function o(t,e){const r=e[0]-t[0],s=e[1]-t[1];return r*r+s*s}function a(t){const e=t[0],r=t[1];return Math.sqrt(e*e+r*r)}function p(t){const e=t[0],r=t[1];return e*e+r*r}function l(t,e){const r=e[0],s=e[1];let f=r*r+s*s;return f>0&&(f=1/Math.sqrt(f),t[0]=e[0]*f,t[1]=e[1]*f),t}function B(t,e,r,s){const f=e[0],i=e[1];return t[0]=f+s*(r[0]-f),t[1]=i+s*(r[1]-i),t}function b(t,e,r){const s=e[0],f=e[1];return t[0]=r[0]*s+r[2]*f+r[4],t[1]=r[1]*s+r[3]*f+r[5],t}function T(t,e,r,s){const f=e[0]-r[0],i=e[1]-r[1],n=Math.sin(s),u=Math.cos(s);return t[0]=f*u-i*n+r[0],t[1]=f*n+i*u+r[1],t}function E(t,e){return t[0]===e[0]&&t[1]===e[1]}const m=a,A=u,O=y,S=c,g=d,L=o,M=p;Object.freeze(Object.defineProperty({__proto__:null,add:n,angle:function(t,e){const r=t[0],s=t[1],f=e[0],i=e[1];let n=r*r+s*s;n>0&&(n=1/Math.sqrt(n));let u=f*f+i*i;u>0&&(u=1/Math.sqrt(u));const y=(r*f+s*i)*n*u;return y>1?0:y<-1?Math.PI:Math.acos(y)},ceil:function(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t},copy:f,cross:function(t,e,r){const s=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=s,t},dist:g,distance:d,div:S,divide:c,dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},equals:function(t,e){const r=t[0],f=t[1],i=e[0],n=e[1],u=(0,s.FD)();return Math.abs(r-i)<=u*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(f-n)<=u*Math.max(1,Math.abs(f),Math.abs(n))},exactEquals:E,floor:function(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t},inverse:function(t,e){return t[0]=1/e[0],t[1]=1/e[1],t},len:m,length:a,lerp:B,max:function(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t},min:function(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t},mul:O,multiply:y,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},normalize:l,projectAndScale:function(t,e,r,s,f){let i=e[0]-r[0],n=e[1]-r[1];const u=(s[0]*i+s[1]*n)*(f-1);return i=s[0]*u,n=s[1]*u,t[0]=e[0]+i,t[1]=e[1]+n,t},random:function(t,e=1){const r=2*(0,s.Ov)()*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t},rotate:T,round:function(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t},scale:h,scaleAndAdd:function(t,e,r,s){return t[0]=e[0]+r[0]*s,t[1]=e[1]+r[1]*s,t},set:i,sqrDist:L,sqrLen:M,squaredDistance:o,squaredLength:p,str:function(t){return"vec2("+t[0]+", "+t[1]+")"},sub:A,subtract:u,transformMat2:function(t,e,r){const s=e[0],f=e[1];return t[0]=r[0]*s+r[2]*f,t[1]=r[1]*s+r[3]*f,t},transformMat2d:b,transformMat3:function(t,e,r){const s=e[0],f=e[1];return t[0]=r[0]*s+r[3]*f+r[6],t[1]=r[1]*s+r[4]*f+r[7],t},transformMat4:function(t,e,r){const s=e[0],f=e[1];return t[0]=r[0]*s+r[4]*f+r[12],t[1]=r[1]*s+r[5]*f+r[13],t}},Symbol.toStringTag,{value:"Module"}))}}]);