import EventType from"../events/EventType.js";import{fromExtent as polygonFromExtent}from"../geom/Polygon.js";import Control from"./Control.js";import{CLASS_CONTROL,CLASS_UNSELECTABLE}from"../css.js";class ZoomToExtent extends Control{constructor(t){var t=t||{},e=(super({element:document.createElement("div"),target:t.target}),this.extent=t.extent||null,void 0!==t.className?t.className:"ol-zoom-extent"),o=void 0!==t.label?t.label:"E",t=void 0!==t.tipLabel?t.tipLabel:"Fit to extent";const n=document.createElement("button"),l=(n.setAttribute("type","button"),n.title=t,n.appendChild("string"==typeof o?document.createTextNode(o):o),n.addEventListener(EventType.CLICK,this.handleClick_.bind(this),!1),this.element);l.className=e+" "+CLASS_UNSELECTABLE+" "+CLASS_CONTROL,l.appendChild(n)}handleClick_(t){t.preventDefault(),this.handleZoomToExtent()}handleZoomToExtent(){const t=this.getMap(),e=t.getView();var o=this.extent||e.getProjection().getExtent();e.fitInternal(polygonFromExtent(o))}}export default ZoomToExtent;