@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.02 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{_ as o}from"../../chunks/tslib.es6.js";import{clamp as i}from"../../core/mathUtils.js";import{watch as t,syncAndInitial as s,sync as r}from"../../core/reactiveUtils.js";import{property as n}from"../../core/accessorSupport/decorators/property.js";import"../../core/has.js";import"../../core/Logger.js";import"../../core/RandomLCG.js";import{subclass as e}from"../../core/accessorSupport/decorators/subclass.js";import a from"./PanoramicZoomConditions.js";import m from"../Zoom/ZoomViewModel.js";let c=class extends m{constructor(o){super(o),this.panoramicZoomConditions=new a,this.zoomTo=o=>{this.view.camera.fov=this.constrainFOV(o),this.view.camera=this.view.camera.clone()}}initialize(){this.addHandles([t((()=>[this.view?.ready,this.panoramicZoomConditions]),(()=>{this.view?.ready&&(this.panoramicZoomConditions.view=this.view,this.zoomTo(this.view.camera.fov))}),s),t((()=>[this.panoramicZoomConditions.maxFOV,this.panoramicZoomConditions.minFOV]),(([o,i])=>{null!=o&&null!=i&&this.zoomTo(this.view.camera.fov)}),r)])}get canZoomIn(){return this.panoramicZoomConditions.canZoomIn}get canZoomOut(){return this.panoramicZoomConditions.canZoomOut}get state(){return this.view?.ready?"ready":"disabled"}set view(o){this._set("view",o)}constrainFOV(o){const{maxFOV:t,minFOV:s}=this.panoramicZoomConditions;return i(o,s,t)}zoomIn(){if(!this.canZoomIn)return;const o=this.view.camera.fov-this.panoramicZoomConditions.zoomFactor;this.zoomTo(o)}zoomOut(){if(!this.canZoomOut)return;const o=this.view.camera.fov+this.panoramicZoomConditions.zoomFactor;this.zoomTo(o)}};o([n()],c.prototype,"canZoomIn",null),o([n()],c.prototype,"canZoomOut",null),o([n({type:a})],c.prototype,"panoramicZoomConditions",void 0),o([n()],c.prototype,"state",null),o([n()],c.prototype,"view",null),c=o([e("esri.widgets.PanoramicViewer.PanoramicZoomViewModel")],c);const p=c;export{p as default};