DefaultUI.js 2.4 KB

12345
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.24/esri/copyright.txt for details.
  4. */
  5. import{_ as t}from"../../chunks/tslib.es6.js";import"../../core/has.js";import o from"../../core/Logger.js";import{watch as e,initial as i}from"../../core/reactiveUtils.js";import{property as s}from"../../core/accessorSupport/decorators/property.js";import"../../core/arrayUtils.js";import"../../core/accessorSupport/ensureType.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import n from"./Component.js";import a from"./UI.js";import p from"../../widgets/Attribution.js";import d from"../../widgets/Compass.js";import c from"../../widgets/NavigationToggle.js";import m from"../../widgets/Zoom.js";const h="esri.views.ui.DefaultUI";function u(t){return t&&void 0!==t.view}o.getLogger(h);let g=class extends a{constructor(t){super(t),this._defaultPositionLookup={attribution:"manual",compass:"top-left","navigation-toggle":"top-left",zoom:"top-left"},this.components=[]}initialize(){this._handles.add([e((()=>this.components),this._componentsWatcher.bind(this),i),e((()=>this.view),this._updateViewAwareWidgets.bind(this),i)])}_add(t,o,e,i){if("string"==typeof t&&this._defaultPositionLookup[t]){if(this._find(t))return;t=this._createComponent(t)}super._add(t,o,e,i)}_removeComponents(t){t.forEach((t=>{const o=this._find(t);o&&(this.remove(o),o.destroy())}))}_updateViewAwareWidgets(t){this.components.forEach((o=>{const e=this._find(o),i=e&&e.widget;u(i)&&(i.view=t)}))}_componentsWatcher(t,o){this._removeComponents(o),this._addComponents(t),this._adjustPadding(t)}_adjustPadding(t){if(!t.includes("attribution")&&!this._isOverridden("padding")){const{top:t}=this.padding;this.padding=t}}_addComponents(t){this.initialized&&t.forEach((t=>this.add(this._createComponent(t),this._defaultPositionLookup[t])))}_createComponent(t){const o=this._createWidget(t);if(o)return new n({id:t,node:o})}_createWidget(t){return"attribution"===t?this._createAttribution():"compass"===t?this._createCompass():"navigation-toggle"===t?this._createNavigationToggle():"zoom"===t?this._createZoom():void 0}_createAttribution(){return new p({view:this.view})}_createCompass(){return new d({view:this.view})}_createNavigationToggle(){return new c({view:this.view})}_createZoom(){return new m({view:this.view})}};t([s()],g.prototype,"components",void 0),g=t([r(h)],g);const _=g;export{_ as default};