/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
import{b as y}from"./WQISNLF7.js";import{a as e}from"./4MJJOPAL.js";import{a as v}from"./H47NPYUM.js";import{a as w}from"./JD74LG7K.js";import f from"./ZUXQKICJ.js";import{h as p}from"./JCTU3MST.js";import"./BXKNMJRR.js";import b from"./FT7ETWDM.js";import{d as g}from"./IJQZON2Z.js";import{O as h,P as d,Q as u,R as a,U as m,a as n,b as c,x as l}from"./IXZEUVT2.js";import"./H6RQVSYM.js";export default $arcgis.t(([{getGoToDuration:x},{watch:o},,{a:f}])=>{var b=n`.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);calcite-button{--calcite-offset-invert-focus: 1}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)}}:host{calcite-button{width:var(--calcite-spacing-xxxl);height:var(--calcite-spacing-xxxl)}}:host([visual-scale="l"]){calcite-button{width:calc(var(--calcite-spacing-xxxl) + var(--calcite-spacing-md));height:calc(var(--calcite-spacing-xxxl) + var(--calcite-spacing-md))}}:host([visual-scale="s"]){calcite-button{width:var(--calcite-spacing-xxl);height:var(--calcite-spacing-xxl)}}.root{border-radius:50%;box-shadow:var(--arcgis-internal-box-shadow, none)}.icon-container{justify-content:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.icon-container:dir(rtl){transform:translate(50%,-50%)}`,s=class extends h{constructor(){super(...arguments),this._hasInitializedOrientation=!1,this._hasInitializedState=!1,this._lastState="disabled",this.messages=v(),this._orientation={x:0,y:0,z:0},this.view=f(this),this.autoDestroyDisabled=!1,this.visualScale="m",this.arcgisPropertyChange=p()("state","orientation"),this.arcgisReady=l()}static{this.properties={_orientation:16,view:0,autoDestroyDisabled:5,canShowNorth:32,goToOverride:0,icon:3,label:1,messageOverrides:0,orientation:32,referenceElement:1,state:32,visualScale:3}}static{this.styles=b}get canShowNorth(){return y(this.view)}get icon(){return this._icon??(this.state==="rotation"?"arrow-up":"compass-needle")}set icon(t){this._icon=t}get orientation(){return this._orientation}get state(){return!this.view?.ready||this.view.type==="2d"&&!this.view.constraints.rotationEnabled?"disabled":this.canShowNorth?"compass":"rotation"}async destroy(){await this.manager.destroy()}async reset(){let{view:t}=this;t?.ready&&(t?.type==="2d"?e({target:{rotation:0},options:{animationMode:"always",duration:x()}},t,this.goToOverride):e({target:{heading:0}},t,this.goToOverride))}updated(t){t.has("_orientation")&&(this._hasInitializedOrientation?this.arcgisPropertyChange.emit({name:"orientation"}):this._hasInitializedOrientation=!0);let i=this.state;this._hasInitializedState?i!==this._lastState&&this.arcgisPropertyChange.emit({name:"state"}):this._hasInitializedState=!0,this._lastState=i}loaded(){if(!this.view){this.manager.onLifecycle(()=>[o(()=>this.view?.ready,()=>{this._watchRotationOrCamera()},{once:!0})]);return}this._watchRotationOrCamera()}_watchRotationOrCamera(){if(!this.view)return;let t=[];this.view.type==="2d"?t.push(o(()=>this.view?.rotation,i=>this._updateForRotation(i),{initial:!0})):t.push(o(()=>this.view?.camera,i=>this._updateForCamera(i),{initial:!0})),this.manager.onLifecycle(()=>t)}_updateForRotation(t){t!=null&&(this._orientation={z:t})}_updateForCamera(t){if(!t)return;let i=-t.heading;this._orientation={x:0,y:0,z:i}}render(){let{messages:t,icon:i}=this;return c`<div class=${d(g("root",w.arcgisButton))}><calcite-button .disabled=${this.state==="disabled"} kind=neutral .label=${t.reset} @click=${this.reset} round .scale=${this.visualScale} title=${t.reset??a}><div aria-hidden=true class="icon-container" title=${t.reset??a}><calcite-icon .scale=${this.visualScale} .icon=${i} style=${u(_(this.orientation))}></calcite-icon></div></calcite-button></div>`}},_=r=>({transform:`rotateZ(${r.z}deg)`});m("arcgis-compass",s);return s},"applications/Components/navigationDuration","core/reactiveUtils",b,f)