@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 3.88 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{_ as e}from"../chunks/tslib.es6.js";import{deprecateWidget as o}from"../core/deprecate.js";import t from"../core/Logger.js";import{property as r}from"../core/accessorSupport/decorators/property.js";import"../core/has.js";import"../core/RandomLCG.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import s from"./Widget.js";import{loadCalciteComponents as a}from"./support/componentsUtils.js";import{globalCss as n}from"./support/globalCss.js";import"./support/widgetUtils.js";import{messageBundle as l}from"./support/decorators/messageBundle.js";import{vmEvent as c}from"./support/decorators/vmEvent.js";import{tsx as p}from"./support/jsxFactory.js";import d from"./Track/TrackViewModel.js";const g={base:"esri-track"};let u=class extends s{constructor(e,r){super(e,r),this.messages=null,this.viewModel=new d,this._toggleTracking=()=>{const e=this.viewModel;e&&"feature-unsupported"!==e.state&&"disabled"!==e.state&&("tracking"!==e.state&&"waiting"!==e.state?this.viewModel.start():this.viewModel.stop())},o(t.getLogger(this),"Track","arcgis-track",{version:"4.32"})}loadDependencies(){return a({button:()=>import("@esri/calcite-components/dist/components/calcite-button"),tooltip:()=>import("@esri/calcite-components/dist/components/calcite-tooltip")})}get geolocationOptions(){return this.viewModel.geolocationOptions}set geolocationOptions(e){this.viewModel.geolocationOptions=e}get goToLocationEnabled(){return this.viewModel.goToLocationEnabled}set goToLocationEnabled(e){this.viewModel.goToLocationEnabled=e}get goToOverride(){return this.viewModel.goToOverride}set goToOverride(e){this.viewModel.goToOverride=e}get graphic(){return this.viewModel.graphic}set graphic(e){this.viewModel.graphic=e}get icon(){return"compass-north-circle"}set icon(e){this._overrideIfSome("icon",e)}get label(){return this.messages?.widgetLabel??""}set label(e){this._overrideIfSome("label",e)}get rotationEnabled(){return this.viewModel.rotationEnabled}set rotationEnabled(e){this.viewModel.rotationEnabled=e}get scale(){return this.viewModel.scale}set scale(e){this.viewModel.scale=e}get tracking(){return this.viewModel.tracking}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}start(){this.viewModel.start()}stop(){this.viewModel.stop()}render(){const{viewModel:e,messages:o,icon:t}=this,r=e?.state,i="tracking"===r,s=this._localizeError(this.viewModel?.error),a=(i?o?.stopTracking:o?.startTracking)??"",l="feature-unsupported"===r,c=("tracking"===r?"pause":void 0)??t;return p("div",{class:this.classes(g.base,n.widget)},!l&&p("calcite-button",{class:n.widgetButton,disabled:"disabled"===r,iconStart:c,kind:"neutral",label:a,loading:"waiting"===r,onclick:this._toggleTracking,title:a}),s?p("calcite-tooltip",{open:!0,overlayPositioning:"fixed",referenceElement:this.container},s):null)}_localizeError(e){return e instanceof GeolocationPositionError?e.code===GeolocationPositionError.PERMISSION_DENIED?this.messages?.permissionError:e.code===GeolocationPositionError.TIMEOUT?this.messages?.timeoutError:this.messages?.positionUnavailable:e instanceof Error?e.message:void 0}};e([r()],u.prototype,"geolocationOptions",null),e([r()],u.prototype,"goToLocationEnabled",null),e([r()],u.prototype,"goToOverride",null),e([r()],u.prototype,"graphic",null),e([r()],u.prototype,"icon",null),e([r()],u.prototype,"label",null),e([r(),l("esri/widgets/Track/t9n/Track")],u.prototype,"messages",void 0),e([r()],u.prototype,"rotationEnabled",null),e([r()],u.prototype,"scale",null),e([r({readOnly:!0})],u.prototype,"tracking",null),e([r()],u.prototype,"view",null),e([r({type:d}),c(["track","track-error"])],u.prototype,"viewModel",void 0),u=e([i("esri.widgets.Track")],u);const m=u;export{m as default};