text: 
  (function(root, factory) {
    if (typeof define === 'function' && define.amd) {
      define(["leaflet"], factory);
    } else if (typeof exports === 'object') {
      module.exports = factory(require('leaflet'));
    } else {
      root.L.Control.DefaultExtent = factory(root.L);
    }
  }(this, function(L) {
  
  return (function () {
    /* global L */
    'use strict';
    L.Control.DefaultExtent = L.Control.extend({
      options: {
        position: 'topleft',
        text: 'Default Extent',
        title: 'Zoom to default extent',
        className: 'leaflet-control-defaultextent'
      },
      onAdd: function (map) {
        this._map = map;
        return this._initLayout();
      },
      setCenter: function (center) {
        this._center = center;
        return this;
      },
      setZoom: function (zoom) {
        this._zoom = zoom;
        return this;
      },
      _initLayout: function () {
        var container = L.DomUtil.create('div', 'leaflet-bar ' +
          this.options.className);
        this._container = container;
        this._fullExtentButton = this._createExtentButton(container);
  
        L.DomEvent.disableClickPropagation(container);
  
        this._map.whenReady(this._whenReady, this);
  
        return this._container;
      },
      _createExtentButton: function () {
        var link = L.DomUtil.create('a', this.options.className + '-toggle',
          this._container);
        link.href = '#';
        link.innerHTML = this.options.text;
        link.title = this.options.title;
  
        L.DomEvent
          .on(link, 'mousedown dblclick', L.DomEvent.stopPropagation)
          .on(link, 'click', L.DomEvent.stop)
          .on(link, 'click', this._zoomToDefault, this);
        return link;
      },
      _whenReady: function () {
        if (!this._center) {
          this._center = this._map.getCenter();
        }
        if (!this._zoom) {
          this._zoom = this._map.getZoom();
        }
        return this;
      },
      _zoomToDefault: function () {
        this._map.setView(this._center, this._zoom);
      }
    });
  
    L.Map.addInitHook(function () {
      if (this.options.defaultExtentControl) {
        this.addControl(new L.Control.DefaultExtent());
      }
    });
  
    L.control.defaultExtent = function (options) {
      return new L.Control.DefaultExtent(options);
    };
  
    return L.Control.DefaultExtent;
  
  }());
  ;
  
  }));
  