/*! All material copyright Esri, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.34/esri/copyright.txt for details.
v4.34.7 */
import{a as p}from"./B7UYEEQJ.js";import a from"./K2TY4WFO.js";import{g as f}from"./SRDD32D4.js";import"./EPSDPGVP.js";import{b as r}from"./IMJMO6DB.js";import{J as h,K as i,M as s,P as g,a as m,b as u,s as d}from"./RNRMSLW5.js";import"./G6QKOIC3.js";export default $arcgis.t(([{ignoreAbortErrors:b},{when:$},{a:z}])=>{var a={base:"arcgis-zoom",button:"arcgis-button",horizontalLayout:"arcgis-zoom--horizontal",zoomIn:"arcgis-zoom__zoom-in",zoomOut:"arcgis-zoom__zoom-out"};function v(t){if(!t)return!1;if(t.type==="3d")return t.ready;if(!t?.ready)return!1;let o=x(t),e=t.constraints?.effectiveMaxScale;return e===0||o>e}function y(t){if(!t)return!1;if(t.type==="3d")return t.ready;if(!t?.ready)return!1;let o=x(t),e=t.constraints?.effectiveMinScale;return e===0||o<e}function x(t){let o=t?.animation?.target;return(o&&"then"in o?void 0:o?.scale)??t?.scale??0}var k=m`.arcgis-button{--calcite-icon-color: var(--calcite-color-text-3);--calcite-button-background-color: var(--calcite-color-foreground-1);color:var(--calcite-color-text-3);line-height:var(--calcite-font-line-height-relative-tight);display:flex;flex-flow:column;cursor:pointer;background-color:var(--calcite-color-foreground-1);font-size:var(--calcite-font-size);:hover{--calcite-icon-color: var(--calcite-color-text-1);--calcite-button-background-color: var(--calcite-color-transparent-hover)}calcite-button{width:var(--calcite-spacing-xxxl);height:var(--calcite-spacing-xxxl)}}:host{display:flex;max-width:fit-content}.arcgis-zoom__zoom-out{border-block-start:solid 1px var(--calcite-color-border-1)}.arcgis-zoom--horizontal{flex-flow:row-reverse nowrap}.arcgis-zoom--horizontal .arcgis-zoom__zoom-out{border-block-start:none;border-inline-end:solid 1px var(--calcite-color-border-1)}`,c=class extends h{constructor(){super(...arguments),this.messages=p({}),this.view=z(this),this.autoDestroyDisabled=!1,this.icon="magnifying-glass-plus",this.layout="vertical",this.state="disabled",this.arcgisPropertyChange=f()("state"),this.arcgisReady=d()}static{this.properties={view:0,autoDestroyDisabled:5,icon:1,label:1,layout:3,messageOverrides:0,position:1,referenceElement:1,state:3}}static{this.styles=k}async destroy(){await this.manager.destroy()}async zoomIn(){let{view:o}=this;!v(o)||!o||(o.type==="2d"?o.mapViewNavigation.zoomIn():b(o.goTo({zoomFactor:2})))}async zoomOut(){let{view:o}=this;!y(o)||!o||(o.type==="2d"?o.mapViewNavigation.zoomOut():b(o.goTo({zoomFactor:.5})))}loaded(){this.manager.onLifecycle(()=>[$(()=>this.view?.ready?"ready":"disabled",o=>{this.state=o},{sync:!0,initial:!0})])}render(){let o={[a.horizontalLayout]:this.layout==="horizontal"},e=v(this.view),w=y(this.view),{zoomIn:n,zoomOut:l}=this.messages;return u`<div class=${i(r(a.base,a.button,o))}><calcite-button class=${i(r(a.zoomIn))} .disabled=${!e} icon-start=plus kind=neutral .label=${n} @click=${this.zoomIn} title=${n??s}></calcite-button><calcite-button class=${i(r(a.zoomOut))} .disabled=${!w} icon-start=minus kind=neutral .label=${l} @click=${this.zoomOut} title=${l??s}></calcite-button></div>`}};g("arcgis-zoom",c);return c},"core/promiseUtils","core/reactiveUtils",a)