/*! All material copyright GeoScene, All Rights Reserved, unless otherwise specified.
See https://js.geoscene.cn/4.33/geoscene/copyright.txt for details.
v4.33.18 */
import c from"./OSA3KXKL.js";import b from"./Y4DAIYBP.js";import a from"./DTE4O2DP.js";import{e as l}from"./LYMDZ73M.js";import"./MG6XDMQJ.js";import{c as w}from"./HITJFSBP.js";import{B as r,E as h,P as d,U as n,j as o}from"./3VKC6PRK.js";export default $geoscene.t(([{watch:c},m,g,,,y])=>{var u=o`@layer{geoscene-directions{display:block}}`,p=y(g),i="map-components:geoscene-directions",s=class extends d{constructor(){super(...arguments),this.widget=p(this),this.viewModel=this.widget.viewModel,this.apiKey=this.widget.apiKey,this.autoDestroyDisabled=!1,this.goToOverride=this.widget.goToOverride,this.headingLevel=this.widget.headingLevel,this.hideLayerDetails=this.widget.visibleElements.layerDetails,this.hideSaveAsButton=this.widget.visibleElements.saveAsButton,this.hideSaveButton=this.widget.visibleElements.saveButton,this.icon=this.widget.icon,this.label=this.widget.label,this.lastRoute=this.widget.lastRoute,this.layer=this.widget.layer,this.maxStops=this.widget.maxStops,this.position="bottom-left",this.searchProperties=this.widget.searchProperties,this.state=this.viewModel.state,this.unit=this.widget.unit,this.useDefaultRouteLayer=!1,this.geoscenePropertyChange=l()("lastRoute","state"),this.geosceneReady=r()}static{this.properties={apiKey:1,autoDestroyDisabled:5,goToOverride:0,headingLevel:9,hideLayerDetails:5,hideSaveAsButton:5,hideSaveButton:5,icon:1,label:1,lastRoute:0,layer:0,maxStops:9,position:1,referenceElement:1,routeLayerItemId:1,searchProperties:0,state:3,unit:1,useDefaultRouteLayer:5}}static{this.shadowRootOptions=h}static{this.styles=u}async destroy(){await this.manager.destroy()}async getDirections(){if(this.widget?.viewModel?.state!=="ready")throw new Error(`${i} - component not ready to get directions`);return await this.widget?.getDirections()}async save(){if(this.widget?.viewModel?.state!=="ready")throw new Error(`${i} - component not ready to save directions`);return await this.widget?.save()}async saveAs(e,t){if(this.widget?.viewModel?.state!=="ready")throw new Error(`${i} - component not ready to save directions as a Portal Item`);return await this.widget?.saveAs(e,t)}async zoomToRoute(){if(this.widget?.viewModel?.state!=="ready")throw new Error(`${i} - component not ready to zoom to route`);this.widget?.zoomToRoute()}willUpdate(e){if(e.has("routeLayerItemId")){let t=this.routeLayerItemId;if(w(t)&&!this.useDefaultRouteLayer){let{layer:a}=this;a&&this.widget.view?.map?.remove(a),this._setDefaultLayer()}else t&&this.widget&&(this.layer=new m({portalItem:{id:t}}),this.widget.view?.map?.add(this.layer))}e.has("useDefaultRouteLayer")&&this._setDefaultLayer()}_setDefaultLayer(){this.useDefaultRouteLayer&&!this.routeLayerItemId&&(this.layer=new m,c(()=>this.widget.view,()=>this.widget.view?.map?.add(this.layer),{once:!0}))}};n("geoscene-directions",s);return s},"core/reactiveUtils","layers/RouteLayer","widgets/Directions",a,b,c)