UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.98 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{__decorate as t}from"tslib";import"../../core/has.js";import"../../core/Logger.js";import{watch as i,initial as e}from"../../core/reactiveUtils.js";import{property as o,subclass as s}from"../../core/accessorSupport/decorators.js";import n from"./Component.js";import r from"./UI.js";import a from"../../widgets/Compass.js";import d from"../../widgets/NavigationToggle.js";import p from"../../widgets/Zoom.js";function c(t){return void 0!==t?.view}let m=class extends r{constructor(t){super(t),this._defaultPositionLookup={compass:"top-left","navigation-toggle":"top-left",zoom:"top-left"},this.components=[],this._updateViewAwareWidgets=t=>{this.components.forEach(i=>{const e=this._find(i),o=e?.widget;c(o)&&(o.view=t)})},this._componentsWatcher=(t,i)=>{this._removeComponents(i),this._addComponents(t)},this._adjustPadding=({ready:t,attributionVisible:i})=>{if(t&&!i&&!this._isOverridden("padding")){const{top:t}=this.padding;this.padding=t}}}initialize(){this.addHandles([i(()=>this.components,this._componentsWatcher,e),i(()=>this.view,this._updateViewAwareWidgets,e),i(()=>({ready:this.view?.ready,attributionVisible:this.view?.attributionVisible}),this._adjustPadding,e)])}_add(t,i,e,o,s){let n=t;if("string"==typeof t&&this._defaultPositionLookup[t]){if(this._find(t))return;n=this._createComponent(t)}super._add(n,i,e,o,s)}_removeComponents(t){t.forEach(t=>{const i=this._find(t);i&&(this.remove(i),i.destroy())})}_addComponents(t){this.constructed&&t.forEach(t=>this.add(this._createComponent(t),this._defaultPositionLookup[t]))}_createComponent(t){const i=this._createWidget(t);return new n({id:t,node:i})}_createWidget(t){const i=this.view;switch(t){case"compass":return new a({view:i});case"navigation-toggle":return new d({view:i,isDefaultUI:!0});case"zoom":return new p({view:i})}}};t([o()],m.prototype,"components",void 0),m=t([s("esri.views.ui.DefaultUI")],m);const h=m;export{h as default};