!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("leaflet")):"function"==typeof define&&define.amd?define(["leaflet"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).L)}(this,(function(t){"use strict";function e(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var s=e(t),n=s.default.TileLayer.extend({options:{maxZoom:20,offUrl:null},dtable:null,offtest:!1,createTile:function(t,e){var n=s.default.TileLayer.prototype.createTile.call(this,t,e),o=n.src;n.src="";var a=this;return this._setDataUrl(o).then((function(t){n.src=t})).catch((function(){a.offtest&&(o=a.options.offUrl),n.src=o})),n},_setDataUrl:function(t){var e=this;return new Promise((function(s,n){null==e.dtable?n():e.dtable.get(e._getStorageKey(t)).then((function(t){t&&"object"==typeof t?s(URL.createObjectURL(t)):n()})).catch((function(t){n(t)}))}))},_getStorageKey:function(t){var e,s=this._url.indexOf("{s}");return s>0&&(e=t.substring(0,s)+this.options.subdomains[0]+t.substring(s+1,t.length)),e||t},getTileUrls:function(t,e){var n=[],o=this._url;this.setUrl(this._url.replace("{z}",e),!0);for(var a,i=s.default.bounds(t.min.divideBy(this.getTileSize().x).floor(),t.max.divideBy(this.getTileSize().x).floor()),l=i.min.y;l<=i.max.y;l++)for(var r=i.min.x;r<=i.max.x;r++){var u=new s.default.Point(r,l);a=s.default.TileLayer.prototype.getTileUrl.call(this,u),n.push({key:this._getStorageKey(a),url:a})}return this.setUrl(o,!0),n}});s.default.tileLayer.offline=function(t,e){return new n(t,e)};var o=s.default.Control.extend({options:{maxZoom:20,minimalZoom:8,zoomlevels:null,bounds:null,confirmSave:null},status:{storagesize:null,lengthToBeSaved:null,lengthSaved:null,lengthLoaded:null,_tilesforSave:null,mapSize:null,currMinZoom:null,tnames:[]},baseLayer:null,dtable:null,_db:new Dexie("leaflet-maps"),_dbversion:1,_dterr:new Error("dtable not set"),initialize:function(t,e){this.baseLayer=t,s.default.setOptions(this,e)},onAdd:function(){var t=this.options;return t.visualUI?t.visualUI:s.default.DomUtil.create("div")},openDB:async function(){var t=this;await this._db.open().then((function(){return console.log("Found database: "+t._db.name+" version: "+t._db.verno),t._dbversion=t._db.verno,t.status.tnames=[],t._db.tables.forEach((function(e){t.status.tnames.push(e.name)})),console.log(t._db.name+" tables: "+t.status.tnames.join(" ")),t.baseLayer.fire("tblevent",t.status),!0})).catch("NoSuchDatabaseError",(function(t){return console.log("Database not found, will be created with first table."),!1})).catch((function(t){return console.log("Oh uh: "+t),!1}))},setLayer:function(t){this.baseLayer=t,this.baseLayer.dtable=this.dtable},setTable:function(t){this.dtable=this._db.table(t),this.baseLayer.dtable=this.dtable},deleteTable:function(t){var e=this;this._extendSchema(t).then((function(){console.log("dropped: "+t),e.baseLayer.fire("tblevent",t)})).catch((function(t){console.log(t)}))},putItem:function(t,e){if(null==this.dtable)throw this._dterr;this.dtable.put(e,t)},getItem:function(t){if(null==this.dtable)throw this._dterr;return this.dtable.get(t)},deleteItem:function(t){if(null==this.dtable)throw this._dterr;return this.dtable.delete(t)},setZoomlevels:function(t){this.options.zoomlevels=t},setBounds:function(t){this.options.bounds=t},setStorageSize:function(t){var e=this;if(null==this.dtable)throw this._dterr;this.dtable.count().then((function(s){e.status.storagesize=s,e.baseLayer.fire("storagesize",e.status),t&&t(s)}),(function(e){throw t(0),e}))},_resetStatus:function(t){this.status.lengthLoaded=0,this.status.lengthToBeSaved=t.length,this.status.lengthSaved=0,this.status._tilesforSave=t,this.status.mapSize=0},saveMap:function(){var t=this,e=[];if(this.options.zoomlevels)e=this.options.zoomlevels;else{var n=this._map.getZoom();if(n