importbuildModuleUrlfrom"../../Core/buildModuleUrl.js";importcreateWorldTerrainfrom"../../Core/createWorldTerrain.js";importEllipsoidTerrainProviderfrom"../../Core/EllipsoidTerrainProvider.js";importProviderViewModelfrom"../BaseLayerPicker/ProviderViewModel.js";functioncreateDefaultTerrainProviderViewModels(){constr=[];returnr.push(newProviderViewModel({name:"WGS84 Ellipsoid",iconUrl:buildModuleUrl("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){returnnewEllipsoidTerrainProvider}})),r.push(newProviderViewModel({name:"Cesium World Terrain",iconUrl:buildModuleUrl("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){returncreateWorldTerrain({requestWaterMask:!0,requestVertexNormals:!0})}})),r}exportdefaultcreateDefaultTerrainProviderViewModels;
importCartesian3from"../../Core/Cartesian3.js";importdefinedfrom"../../Core/defined.js";importdestroyObjectfrom"../../Core/destroyObject.js";importDeveloperErrorfrom"../../Core/DeveloperError.js";importRayfrom"../../Core/Ray.js";importRectanglefrom"../../Core/Rectangle.js";importScreenSpaceEventHandlerfrom"../../Core/ScreenSpaceEventHandler.js";importScreenSpaceEventTypefrom"../../Core/ScreenSpaceEventType.js";importDebugModelMatrixPrimitivefrom"../../Scene/DebugModelMatrixPrimitive.js";importPerformanceDisplayfrom"../../Scene/PerformanceDisplay.js";importTileCoordinatesImageryProviderfrom"../../Scene/TileCoordinatesImageryProvider.js";importknockoutfrom"../../ThirdParty/knockout.js";importcreateCommandfrom"../createCommand.js";functionfrustumStatisticsToString(e){leti;if(defined(e)){i="Command Statistics";constt=e.commandsInFrustums;for(consteint)if(t.hasOwnProperty(e)){letr,n=parseInt(e,10);if(7===n)r="1, 2 and 3";else{conste=[];for(leti=2;i>=0;i--){constt=Math.pow(2,i);n>=t&&(e.push(i+1),n-=t)}r=e.reverse().join(" and ")}i+=`<br> ${t[e]} in frustum ${r}`}i+=`<br>Total: ${e.totalCommands}`}returni}functionboundDepthFrustum(e,i,t){letr=Math.min(t,i);returnr=Math.max(r,e),r}constscratchPickRay=newRay,scratchPickCartesian=newCartesian3;functionCesiumInspectorViewModel(e,i){if(!defined(e))thrownewDeveloperError("scene is required");if(!defined(i))thrownewDeveloperError("performanceContainer is required");constt=this,r=e.canvas,n=newScreenSpaceEventHandler(r);this._eventHandler=n,this._scene=e,this._canvas=r,this._primitive=void0,this._tile=void0,this._modelMatrixPrimitive=void0,this._performanceDisplay=void0,this._performanceContainer=i;consts=this._scene.globe;leto;functionc(e){consti=t._scene.pick({x:e.position.x,y:e.position.y});defined(i)&&(t.primitive=defined(i.collection)?i.collection:i.primitive),t._scene.requestRender(),t.pickPrimitiveActive=!1}functionu(e){leti;constr=s.ellipsoid,n=t._scene.camera.getPickRay(e.position,scratchPickRay),o=s.pick(n,t._scene,scratchPickCartesian);if(defined(o)){conste=r.cartesianToCartographic(o),t=s._surface.tileProvider._tilesToRenderByTextureCount;for(letr=0;!i&&r<t.length;++r){constn=t[r];if(defined(n))for(lett=0;!i&&t<n.length;++t){constr=n[t];Rectangle.contains(r.rectangle,e)&&(i=r)}}}t.tile=i,t.pickTileActive=!1}s.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",knockout.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=createCommand((function(){t.dropDownVisible=!t.dropDownVisible})),this._toggleGeneral=createCommand((function(){t.generalVisible=!t.generalVisible})),this._togglePrimitives=createCommand((function(){t.primitivesVisible=!t.primitivesVisible})),this._toggleTerrain=createCommand((function(){t.terrainVisible=!t.terrainVisible})),this._frustumsSubscription=knockout.getObservable(this,"frustums").subscribe((function(e){t._scene.debugShowFrustums=e,t._scene.requestRender()})),this._frustumPlanesSubscription=knockout.getObservable(this,"frustumPlanes").subscribe((function(e){t._scene.debugShowFrustumPlanes=e,t._scene.requestRender()})),this._performanceSubscription=knockout.getObservable(this,"performance").subscribe((function(e){e?t._performanceDisplay=newPerformanceDisplay({container:t._performanceContainer}):t._performanceContainer.innerHTML=""})),this._showPrimitiveBoundingSphere=createCommand((function(){returnt._primitive.debugShowBoundingVolume=t.primitiveBoundingSphere,t._scene.requestRender(),!0})),this._primitiveBoundingSphereSubscription=knockout.getObservable(this,"primitiveBoundingSphere").subscribe((function(){t._showPrimitiveBoundingSphere()})),this._showPrimitiveReferenceFrame=createCommand((function(){if(t.primitiveReferenceFrame){conste=t._primitive.modelMatrix;t._modelMatrixPrimitive=newDebugModelMatrixPrimitive({modelMatrix:e}),t._scene.primitives.add(t._modelMatrixPrimitive)}elsedefined(t._modelMatrixPrimitive)&&(t._scene.primitives.remove(t._modelMatrixPrimitive),t._modelMatrixPrimitive=void0);returnt._scene.requestRender(),!0})),this._primitiveReferenceFrameSubscription=knockout.getObservable(this,"primitiveReferenceFrame").subscribe((function(){t._showPrimitiveReferenceFrame()})),this._doFilterPrimitive=createCommand((function(){returnt.filterPrimitive?t._scene.debugCommandFilter=function(e){return!(!defined(t._modelMatrixPrimitive)||e.owner!==t._modelMatrixPrimitive._primitive)||!!defined(t._primitive)&&(e.owner===t._primitive||e.owner===t._primitive._billboardCollection||e.owner.primitive===t._primitive)}:t._scene.debugCommandFilter=void0,!0})),this._filterPrimitiveSubscription=knockout.getObservable(this,"filterPrimitive").subscribe((function(){t._doFilterPrimitive(),t._scene.requestRender()})),this._wireframeSubscription=knockout.getObservable(this,"wireframe").subscribe((function(e){s._surface.tileProvider._debug.wireframe=e,t._scene.requestRender()})),this._depthFrustumSubscription=knockout.getObservable(this,"depthFrustum").subscribe((function(e){t._scene.debugShowDepthFrustum=e,t._scene.requestRender()})),this._incrementDepthFrustum=createCommand((function(){conste=t.depthFrustum+1;returnt.depthFrustum=boundDepthFrustum(1,t._numberOfFrustums,e),t._scene.requestRender(),!0})),this._decrementDepthFrustum=createCommand((function(){conste=t.depthFrustum-1;returnt.depthFrustum=boundDepthFrustum(1,t._numberOfFrustums,e),t._scene.requestRender(),!0})),this._suspendUpdatesSubscription=knockout.getObservable(this,"suspendUpdates").subscribe((function(e){s._surface._debug.suspendLodUpdate=e,e||(t.filterTile=!1)})),this._showTileCoordinates=createCommand((function(){returnt.tileCoordinates&&!defined(o)?o=e.imageryLayers.addImageryProvider(newTileCoordinatesImageryProvider({tilingScheme:e.terrainProvider.tilingScheme})):!t.tileCoordinates&&defined(o)&&(e.imageryLayers.remove(o),o=void0),!0})),this._tileCoordinatesSubscription=knockout.getObservable(this,"tileCoordinates").subscribe((function(){t._showTileCoordinates(),t._scene.requestRender()})),this._tileBoundingSphereSubscription=knockout.getObservable(this,"tileBoundingSphere").subscribe((function(){t._showTileBoundingSphere(),t._scene.requestRender()})),this._showTileBoundingSphere=createCommand((function(){returnt.tileBoundingSphere?s._surface.tileProvider._debug.boundingSphereTile=t._tile:s._surface.tileProvider._debug.boundingSphereTile=void0,t._scene.requestRender(),!0})),this._doFilterTile=createCommand((function(){returnt.filterTile?(t.suspendUpdates=!0,s._surface._tilesToRender=[],defined(t._tile)&&t._tile.renderable&&s._surface._tilesToRender.push(t._tile)):t.suspendUpdates=!1,!0})),this._filterTileSubscription=knockout.getObservable(this,"filterTile").subscribe((function(){t.doFilterTile(),t._scene.requestRender()})),this._pickPrimitive=createCommand((function(){t.pickPrimitiveActive=!t.pickPrimitiveActive})),this._pickPrimitiveActiveSubscription=knockout.getObservable(this,"pickPrimitiveActive").subscribe((function(e){e?n.setInputAction(c,ScreenSpaceEventType.LEFT_CLICK):n.removeInputAction(ScreenSpaceEventType.LEFT_CLICK)})),this._pickTile=createCommand((function(){t.pickTileActive=!t.pickTileActive})),this._pickTileActiveSubscription=knockout.getObservable(this,"pickTileActive").subscribe((function(e){e?n.setInputAction(u,ScreenSpaceEventType.LEFT_CLICK):n.removeInputAction(ScreenSpaceEventType.LEFT_CLICK)})),this._removePostRenderEvent=e.postRender.addEventListener((function(){t._update()}))}Object.defineProperties(CesiumInspectorViewModel.prototype,{scene:{get:function(){returnthis._scene}},performanceContainer:{get:function(){returnthis._performanceContainer}},toggleDropDown:{get:function(){returnthis._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){returnthis._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){returnthis._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){returnthis._doFilterPrimitive}},incrementDepthFrustum:{get:function(){returnthis._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){returnthis._decrementDepthFrustum}},showTileCoordinates:{get:function(){returnthis._showTileCoordinates}},showTileBoundingSphere:{get:function(){returnthis._showTileBoundingSphere}},doFilterTile:{get:function(){returnthis._doFilterTile}},toggleGeneral:{get:function(){returnthis._toggleGeneral}},togglePrimitives:{get:function(){returnthis._togglePrimitives}},toggleTerrain:{get:function(){returnthis._toggleTerrain}},pickPrimitive:{get:function(){returnthis._pickPrimitive}},pickTile:{get:function(){returnthis._pickTile}},selectParent:{get:function(){conste=this;returncreateCommand((function(){e.tile=e.tile.parent}))}},selectNW:{get:function(){conste=this;returncreateCommand((function(){e.tile=e.tile.northwestChild}))}},selectNE:{get:function(){conste=this;returncreateCommand((function(){e.tile=e.tile.northeastChild}))}},selectSW:{get:function(){conste=this;returncreateCommand((function(){e.tile=e.tile.southwestChild}))}},selectSE:{get:function(){conste=this;returncreateCommand((function(){e.tile=e.tile.southeastChild}))}},primitive:{get:function(){returnthis._primitive},set:function(e){consti=this._primitive;e!==i&&(this.hasPickedPrimitive=!0,defined(i)&&(i.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void0,defined(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void0),this._primitive=e,e.show=!1,setTimeout((function(){e.show=!0}),50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){returnthis._tile},set:function(e){if(defined(e)){this.hasPickedTile=!0;consti=this._tile;if(e!==i){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;consti=e.data;defined(i)&&defined(i.tileBoundingRegion)?this.tileText+=`<br>Min: ${i.tileBoundingRegion.minimumHeight} Max: ${i.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}elsethis.hasPickedTile=!1,this._tile=void0}}}),CesiumInspectorViewModel.prototype._update=function(){this.frustums&&(this.frustumStatisticText=frustumStatisticsToString(this._scene.debugFrustumStatistics));conste=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=boundDepthFrustum(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`},CesiumInspectorViewModel.prototype.isDestroyed=function(){return!1},CesiumInspectorViewModel.prototype.destroy=function(){returnthis._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),destroyObject(this)};exportdefaultCesiumInspectorViewModel;
importbuildModuleUrlfrom"../../Core/buildModuleUrl.js";importCartesian3from"../../Core/Cartesian3.js";importClockfrom"../../Core/Clock.js";importdefaultValuefrom"../../Core/defaultValue.js";importdefinedfrom"../../Core/defined.js";importdestroyObjectfrom"../../Core/destroyObject.js";importDeveloperErrorfrom"../../Core/DeveloperError.js";importEllipsoidfrom"../../Core/Ellipsoid.js";importFeatureDetectionfrom"../../Core/FeatureDetection.js";importformatErrorfrom"../../Core/formatError.js";importrequestAnimationFramefrom"../../Core/requestAnimationFrame.js";importScreenSpaceEventHandlerfrom"../../Core/ScreenSpaceEventHandler.js";importcreateWorldImageryfrom"../../Scene/createWorldImagery.js";importGlobefrom"../../Scene/Globe.js";importMoonfrom"../../Scene/Moon.js";importScenefrom"../../Scene/Scene.js";importSceneModefrom"../../Scene/SceneMode.js";importShadowModefrom"../../Scene/ShadowMode.js";importSkyAtmospherefrom"../../Scene/SkyAtmosphere.js";importSkyBoxfrom"../../Scene/SkyBox.js";importSunfrom"../../Scene/Sun.js";importgetElementfrom"../getElement.js";functiongetDefaultSkyBoxUrl(e){returnbuildModuleUrl(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}functionstartRenderLoop(e){e._renderLoopRunning=!0;lett=0;functionr(n){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{consto=e._targetFrameRate;if(defined(o)){consti=1e3/o,s=n-t;s>i&&(e.resize(),e.render(),t=n-s%i),requestAnimationFrame(r)}elsee.resize(),e.render(),requestAnimationFrame(r)}catch(o){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){constt="An error occurred while rendering. Rendering has stopped.";e.showErrorPanel(t,void0,o)}}elsee._renderLoopRunning=!1}requestAnimationFrame(r)}functionconfigurePixelRatio(e){lett=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;returnt*=e._resolutionScale,defined(e._scene)&&(e._scene.pixelRatio=t),t}functionconfigureCanvasSize(e){constt=e._canvas;letr=t.clientWidth,n=t.clientHeight;consto=configurePixelRatio(e);e._canvasClientWidth=r,e._canvasClientHeight=n,r*=o,n*=o,t.width=r,t.height=n,e._canRender=0!==r&&0!==n,e._lastDevicePixelRatio=window.devicePixelRatio}functionconfigureCameraFrustum(e){constt=e._canvas,r=t.width,n=t.height;if(0!==r&&0!==n){constt=e._scene.camera.frustum;defined(t.aspectRatio)?t.aspectRatio=r/n:(t.top=t.right*(n/r),t.bottom=-t.top)}}functionCesiumWidget(e,t){if(!defined(e))thrownewDeveloperError("container is required.");e=getElement(e),t=defaultValue(t,defaultValue.EMPTY_OBJECT);constr=document.createElement("div");r.className="cesium-widget",e.appendChild(r);constn=document.createElement("canvas"),o=FeatureDetection.supportsImageRenderingPixelated();functioni(){n!==n.ownerDocument.activeElement&&n.ownerDocument.activeElement.blur()}this._supportsImageRenderingPixelated=o,o&&(n.style.imageRendering=FeatureDetection.imageRenderingValue()),n.oncontextmenu=function(){return!1},n.onselectstart=function(){return!1},n.addEventListener("mousedown",i),n.addEventListener("pointerdown",i),r.appendChild(n);consts=document.createElement("div");s.className="cesium-widget-credits";consta=defined(t.creditContainer)?getElement(t.creditContainer):r;a.appendChild(s);constd=defined(t.creditViewport)?getElement(t.creditViewport):r,c=defaultValue(t.showRenderLoopErrors,!0),l=defaultValue(t.useBrowserRecommendedResolution,!0);this._element=r,this._container=e,this._canvas=n,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=d,this._creditContainer=a,this._innerCreditContainer=s,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=c,this._resolutionScale=1,this._useBrowserRecommendedResolution=l,this._forceResize=!1,this._clock=defined(t.clock)?t.clock:newClock,configureCanvasSize(this);try{conste=newScene({canvas:n,contextOptions:t.contextOptions,creditContainer:s,creditViewport:d,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:defaultValue(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=e,e.camera.constrainedAxis=Cartesian3.UNIT_Z,configurePixelRatio(this),configureCameraFrustum(this);constr=defaultValue(e.mapProjection.ellipsoid,Ellipsoid.WGS84);leto=t.globe;defined(o)||(o=newGlobe(r)),!1!==o&&(e.globe=o,e.globe.shadows=defaultValue(t.terrainShadows,ShadowMode.RECEIVE_ONLY));leti=t.skyBox;defined(i)||(i=newSkyBox({sources:{positiveX:getDefaultSkyBoxUrl("px"),negativeX:getDefaultSkyBoxUrl("mx"),positiveY:getDefaultSkyBoxUrl("py"),negativeY:getDefaultSkyBoxUrl("my"),positiveZ:getDefaultSkyBoxUrl("pz"),negativeZ:getDefaultSkyBoxUrl("mz")}})),!1!==i&&(e.skyBox=i,e.sun=newSun,e.moon=newMoon);leta=t.skyAtmosphere;defined(a)||(a=newSkyAtmosphere(r)),!1!==a&&(e.skyAtmosphere=a);letc=!1!==t.globe&&t.imageryProvider;defined(c)||(c=createWorldImagery()),!1!==c&&e.imageryLayers.addImageryProvider(c),defined(t.terrainProvider)&&!1!==t.globe&&(e.terrainProvider=t.terrainProvider),this._screenSpaceEventHandler=newScreenSpaceEventHandler(n),defined(t.sceneMode)&&(t.sceneMode===SceneMode.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===SceneMode.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void0,this.useDefaultRenderLoop=defaultValue(t.useDefaultRenderLoop,!0),this._targetFrameRate=void0,this.targetFrameRate=t.targetFrameRate;constl=this;this._onRenderError=function(e,t){if(l._useDefaultRenderLoop=!1,l._renderLoopRunning=!1,l._showRenderLoopErrors){conste="An error occurred while rendering. Rendering has stopped.";l.showErrorPanel(e,void0,t)}},e.renderError.addEventListener(this._onRenderError)}catch(u){if(c){conste="Error constructing CesiumWidget.",t='Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:';this.showErrorPanel(e,t,u)}throwu}}Object.defineProperties(CesiumWidget.prototype,{container:{get:function(){returnthis._container}},canvas:{get:function(){returnthis._canvas}},creditContainer:{get:function(){returnthis._creditContainer}},creditViewport:{get:function(){returnthis._creditViewport}},scene:{get:function(){returnthis._scene}},imageryLayers:{get:function(){returnthis._scene.imageryLayers}},terrainProvider:{get:function(){returnthis._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},camera:{get:function(){returnthis._scene.camera}},clock:{get:function(){returnthis._clock}},screenSpaceEventHandler:{get:function(){returnthis._screenSpaceEventHandler}},targetFrameRate:{get:function(){returnthis._targetFrameRate},set:function(e){if(e<=0)thrownewDeveloperError("targetFrameRate must be greater than 0, or undefined.");this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){returnthis._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&startRenderLoop(this))}},resolutionScale:{get:function(){returnthis._resolutionScale},set:function(e){if(e<=0)thrownewDeveloperError("resolutionScale must be greater than 0.");this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){returnthis._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}}}),CesiumWidget.prototype.showErrorPanel=function(e,t,r){constn=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";consti=document.createElement("div");i.className="cesium-widget-errorPanel-content",o.appendChild(i);consts=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),i.appendChild(s);consta=document.createElement("div");functiond(){a.style.maxHeight=`${Math.max(Math.round(.9*n.clientHeight-100),30)}px`}a.className="cesium-widget-errorPanel-scroll",i.appendChild(a),d(),defined(window.addEventListener)&&window.addEventListener("resize",d,!1);constc=defined(t),l=defined(r);if(c||l){constn=document.createElement("div");if(n.className="cesium-widget-errorPanel-message",a.appendChild(n),l){letn=formatError(r);c||("string"===typeofr&&(r=newError(r)),t=formatError({name:r.name,message:r.message}),n=r.stack),"undefined"!==typeofconsole&&console.error(`${e}\n${t}\n${n}`);consto=document.createElement("div");o.className="cesium-widget-errorPanel-message-details collapsed";consts=document.createElement("span");s.className="cesium-widget-errorPanel-more-details",s.appendChild(document.createTextNode("See more...")),o.appendChild(s),o.onclick=function(e){o.removeChild(s),o.appendChild(document.createTextNode(n)),o.className="cesium-widget-errorPanel-message-details",i.className="cesium-widget-errorPanel-content expanded",o.onclick=void0},a.appendChild(o)}n.innerHTML=`<p>${t}</p>`}constu=document.createElement("div");u.className="cesium-widget-errorPanel-buttonPanel",i.appendChild(u);constm=document.createElement("button");m.setAttribute("type","button"),m.className="cesium-button",m.appendChild(document.createTextNode("OK")),m.onclick=function(){defined(d)&&defined(window.removeEventListener)&&window.removeEventListener("resize",d,!1),n.removeChild(o)},u.appendChild(m),n.appendChild(o)},CesiumWidget.prototype.isDestroyed=function(){return!1},CesiumWidget.prototype.destroy=function(){defined(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),destroyObject(this)},CesiumWidget.prototype.resize=function(){conste=this._canvas;(this._forceResize||this._canvasClientWidth!==e.clientWidth||this._canvasClientHeight!==e.clientHeight||this._lastDevicePixelRatio!==window.devicePixelRatio)&&(this._forceResize=!1,configureCanvasSize(this),configureCameraFrustum(this),this._scene.requestRender())},CesiumWidget.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();conste=this._clock.tick();this._scene.render(e)}elsethis._clock.tick()};exportdefaultCesiumWidget;
importdefinedfrom"../../Core/defined.js";importdestroyObjectfrom"../../Core/destroyObject.js";importDeveloperErrorfrom"../../Core/DeveloperError.js";importknockoutfrom"../../ThirdParty/knockout.js";importgetElementfrom"../getElement.js";importFullscreenButtonViewModelfrom"./FullscreenButtonViewModel.js";constenterFullScreenPath="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",exitFullScreenPath="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";functionFullscreenButton(e,t){if(!defined(e))thrownewDeveloperError("container is required.");e=getElement(e);constn=newFullscreenButtonViewModel(t,e);n._exitFullScreenPath=exitFullScreenPath,n._enterFullScreenPath=enterFullScreenPath;constr=document.createElement("button");r.type="button",r.className="cesium-button cesium-fullscreenButton",r.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(r),knockout.applyBindings(n,r),this._container=e,this._viewModel=n,this._element=r}Object.defineProperties(FullscreenButton.prototype,{container:{get:function(){returnthis._container}},viewModel:{get:function(){returnthis._viewModel}}}),FullscreenButton.prototype.isDestroyed=function(){return!1},FullscreenButton.prototype.destroy=function(){returnthis._viewModel.destroy(),knockout.cleanNode(this._element),this._container.removeChild(this._element),destroyObject(this)};exportdefaultFullscreenButton;
importdefinedfrom"../../Core/defined.js";importdefaultValuefrom"../../Core/defaultValue.js";importdestroyObjectfrom"../../Core/destroyObject.js";importDeveloperErrorfrom"../../Core/DeveloperError.js";importFullscreenfrom"../../Core/Fullscreen.js";importknockoutfrom"../../ThirdParty/knockout.js";importcreateCommandfrom"../createCommand.js";importgetElementfrom"../getElement.js";functionFullscreenButtonViewModel(e,t){defined(t)||(t=document.body),t=getElement(t);constn=this,l=knockout.observable(Fullscreen.fullscreen),r=knockout.observable(Fullscreen.enabled),o=t.ownerDocument;this.isFullscreen=void0,knockout.defineProperty(this,"isFullscreen",{get:function(){returnl()}}),this.isFullscreenEnabled=void0,knockout.defineProperty(this,"isFullscreenEnabled",{get:function(){returnr()},set:function(e){r(e&&Fullscreen.enabled)}}),this.tooltip=void0,knockout.defineProperty(this,"tooltip",(function(){returnthis.isFullscreenEnabled?l()?"Exit full screen":"Full screen":"Full screen unavailable"})),this._command=createCommand((function(){Fullscreen.fullscreen?Fullscreen.exitFullscreen():Fullscreen.requestFullscreen(n._fullscreenElement)}),knockout.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=defaultValue(getElement(e),o.body),this._callback=function(){l(Fullscreen.fullscreen)},o.addEventListener(Fullscreen.changeEventName,this._callback)}Object.defineProperties(FullscreenButtonViewModel.prototype,{fullscreenElement:{get:function(){returnthis._fullscreenElement},set:function(e){if(!(einstanceofElement))thrownewDeveloperError("value must be a valid Element.");this._fullscreenElement=e}},command:{get:function(){returnthis._command}}}),FullscreenButtonViewModel.prototype.isDestroyed=function(){return!1},FullscreenButtonViewModel.prototype.destroy=function(){document.removeEventListener(Fullscreen.changeEventName,this._callback),destroyObject(this)};exportdefaultFullscreenButtonViewModel;
importCartographicGeocoderServicefrom"../../Core/CartographicGeocoderService.js";importdefaultValuefrom"../../Core/defaultValue.js";importdefinedfrom"../../Core/defined.js";importDeveloperErrorfrom"../../Core/DeveloperError.js";importEventfrom"../../Core/Event.js";importGeocodeTypefrom"../../Core/GeocodeType.js";importIonGeocoderServicefrom"../../Core/IonGeocoderService.js";importCesiumMathfrom"../../Core/Math.js";importMatrix4from"../../Core/Matrix4.js";importRectanglefrom"../../Core/Rectangle.js";importsampleTerrainMostDetailedfrom"../../Core/sampleTerrainMostDetailed.js";importcomputeFlyToLocationForRectanglefrom"../../Scene/computeFlyToLocationForRectangle.js";importknockoutfrom"../../ThirdParty/knockout.js";importcreateCommandfrom"../createCommand.js";importgetElementfrom"../getElement.js";constDEFAULT_HEIGHT=1e3;functionGeocoderViewModel(e){if(!defined(e)||!defined(e.scene))thrownewDeveloperError("options.scene is required.");defined(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[newCartographicGeocoderService,newIonGeocoderService({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._geocodePromise=void0,this._complete=newEvent,this._suggestions=[],this._selectedSuggestion=void0,this._showSuggestions=!0,this._handleArrowDown=handleArrowDown,this._handleArrowUp=handleArrowUp;consto=this;this._suggestionsVisible=knockout.pureComputed((function(){conste=knockout.getObservable(o,"_suggestions"),t=e().length>0,n=knockout.getObservable(o,"_showSuggestions")();returnt&&n})),this._searchCommand=createCommand((function(e){if(e=defaultValue(e,GeocodeType.SEARCH),o._focusTextbox=!1,defined(o._selectedSuggestion))returno.activateSuggestion(o._selectedSuggestion),!1;o.hideSuggestions(),o.isSearchInProgress?cancelGeocode(o):geocode(o,o._geocoderServices,e)})),this.deselectSuggestion=function(){o._selectedSuggestion=void0},this.handleKeyDown=function(e,o){constt="ArrowDown"===o.key||"Down"===o.key||40===o.keyCode,n="ArrowUp"===o.key||"Up"===o.key||38===o.keyCode;return(t||n)&&o.preventDefault(),!0},this.handleKeyUp=function(e,t){constn="ArrowDown"===t.key||"Down"===t.key||40===t.keyCode,i="ArrowUp"===t.key||"Up"===t.key||38===t.keyCode,s="Enter"===t.key||13===t.keyCode;returni?handleArrowUp(o):n?handleArrowDown(o):s&&o._searchCommand(),!0},this.activateSuggestion=function(e){o.hideSuggestions(),o._searchText=e.displayName;constt=e.destination;clearSuggestions(o),o.destinationFound(o,t)},this.hideSuggestions=function(){o._showSuggestions=!1,o._selectedSuggestion=void0},this.showSuggestions=function(){o._showSuggestions=!0},this.handleMouseover=function(e,t){e!==o._selectedSuggestion&&(o._selectedSuggestion=e)},this.keepExpanded=!1,this.autoComplete=defaultValue(e.autocomplete,!0),this.destinationFound=defaultValue(e.destinationFound,GeocoderViewModel.flyToDestination),this._focusTextbox=!1,knockout.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);constt=knockout.getObservable(this,"_searchText");t.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=t.subscribe((function(){GeocoderViewModel._updateSearchSuggestions(o)})),this.isSearchInProgress=void0,knockout.defineProperty(this,"isSearchInProgress",{get:function(){returnthis._isSearchInProgress}}),this.searchText=void0,knockout.defineProperty(this,"searchText",{get:function(){returnthis.isSearchInProgress?"Searching...":this._searchText},set:function(e){if("string"!==typeofe)thrownewDeveloperError("value must be a valid string.");this._searchText=e}}),this.flightDuration=void0,knockout.defineProperty(this,"flightDuration",{get:function(){returnthis._flightDuration},set:function(e){if(defined(e)&&e<0)thrownewDeveloperError("value must be positive.");this._flightDuration=e}})}functionhandleArrowUp(e){if(0===e._suggestions.length)return;consto=e._suggestions.indexOf(e._selectedSuggestion);if(-1===o||0===o)returnvoid(e._selectedSuggestion=void0);constt=o-1;e._selectedSuggestion=e._suggestions[t],GeocoderViewModel._adjustSuggestionsScroll(e,t)}functionhandleArrowDown(e){if(0===e._suggestions.length)return;consto=e._suggestions.length,t=e._suggestions.indexOf(e._selectedSuggestion),n=(t+1)%o;e._selectedSuggestion=e._suggestions[n],GeocoderViewModel._adjustSuggestionsScroll(e,n)}functioncomputeFlyToLocationForCartographic(e,o){constt=defined(o)?o.availability:void0;returndefined(t)?sampleTerrainMostDetailed(o,[e]).then((function(o){returne=o[0],e.height+=DEFAULT_HEIGHT,e})):(e.height+=DEFAULT_HEIGHT,Promise.resolve(e))}functionflyToDestination(e,o){constt=e._scene,n=t.mapProjection,i=n.ellipsoid,s=t.camera,r=t.terrainProvider;letc,u=o;returnoinstanceofRectangle?CesiumMath.equalsEpsilon(o.south,o.north,CesiumMath.EPSILON7)&&CesiumMath.equalsEpsilon(o.east,o.west,CesiumMath.EPSILON7)?o=Rectangle.center(o):c=computeFlyToLocationForRectangle(o,t):o=i.cartesianToCartographic(o),defined(c)||(c=computeFlyToLocationForCartographic(o,r)),c.then((function(e){u=i.cartographicToCartesian(e)})).finally((function(){s.flyTo({destination:u,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:Matrix4.IDENTITY})}))}functionchainPromise(e,o,t,n){returne.then((function(e){if(defined(e)&&"fulfilled"===e.state&&e.value.length>0)returne;consti=o.geocode(t,n).then((function(e){return{state:"fulfilled",value:e}})).catch((function(e){return{state:"rejected",reason:e}}));returni}))}functiongeocode(e,o,t){constn=e._searchText;if(hasOnlyWhitespace(n))returnvoide.showSuggestions();e._isSearchInProgress=!0;leti=Promise.resolve();for(lets=0;s<o.length;s++)i=chainPromise(i,o[s],n,t);e._geocodePromise=i,i.then((function(o){if(i.cancel)return;e._isSearchInProgress=!1;constt=o.value;if("fulfilled"===o.state&&defined(t)&&t.length>0)returne._searchText=t[0].displayName,voide.destinationFound(e,t[0].destination);e._searchText=`${n} (not found)`}))}functionadjustSuggestionsScroll(e,o){constt=getElement(e._viewContainer),n=t.getElementsByClassName("search-results")[0],i=t.getElementsByTagName("li"),s=i[o];if(0===o)returnvoid(n.scrollTop=0);constr=s.offsetTop;r+s.clientHeight>n.clientHeight?n.scrollTop=r+s.clientHeight:r<n.scrollTop&&(n.scrollTop=r)}functioncancelGeocode(e){e._isSearchInProgress=!1,defined(e._geocodePromise)&&(e._geocodePromise.cancel=!0,e._geocodePromise=void0)}functionhasOnlyWhitespace(e){return/^\s*$/.test(e)}functionclearSuggestions(e){knockout.getObservable(e,"_suggestions").removeAll()}functionupdateSearchSuggestions(e){if(!e.autoComplete)return;consto=e._searchText;if(clearSuggestions(e),hasOnlyWhitespace(o))return;lett=Promise.resolve([]);returne._geocoderServices.forEach((function(e){t=t.then((function(t){returnt.length>=5?t:e.geocode(o,GeocodeType.AUTOCOMPLETE).then((function(e){returnt=t.concat(e),t}))}))})),t.then((function(o){constt=e._suggestions;for(lete=0;e<o.length;e++)t.push(o[e])}))}Object.defineProperties(GeocoderViewModel.prototype,{complete:{get:function(){returnthis._complete}},scene:{get:function(){returnthis._scene}},search:{get:function(){returnthis._searchCommand}},selectedSuggestion:{get:function(){returnthis._selectedSuggestion}},suggestions:{get:function(){returnthis._suggestions}}}),GeocoderViewModel.prototype.destroy=function(){this._suggestionSubscription.dispose()},GeocoderViewModel.flyToDestination=flyToDestination,GeocoderViewModel._updateSearchSuggestions=updateSearchSuggestions,GeocoderViewModel._adjustSuggestionsScroll=adjustSuggestionsScroll;exportdefaultGeocoderViewModel;