@maptiler/sdk 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,16 @@
1
+ # Changelog
2
+
3
+ ## [v1.0.4](https://github.com/maptiler/maptiler-sdk-js/releases/tag/v1.0.4)
4
+ - Improved the geolocate control behavior by not zooming out
5
+
6
+ ## [v1.0.3](https://github.com/maptiler/maptiler-sdk-js/releases/tag/v1.0.3)
7
+ - Fixed the usage of relative path style JSON (in `Map` constructor and `.setStyle()`)
8
+
9
+ ## [v1.0.2](https://github.com/maptiler/maptiler-sdk-js/releases/tag/v1.0.2)
10
+ - Fixed the dependency scheme of MapLibre import.
11
+
12
+ ## [v1.0.1](https://github.com/maptiler/maptiler-sdk-js/releases/tag/v1.0.1)
13
+ - Reducing the NPM size by ignoring documentation images
14
+
15
+ ## [v1.0.0](https://github.com/maptiler/maptiler-sdk-js/releases/tag/v1.0.0)
16
+ - First public version!
@@ -2326,7 +2326,11 @@
2326
2326
  return MapStyle[mapStylePresetList[0].referenceStyleID].getDefaultVariant().getExpandedStyleURL();
2327
2327
  }
2328
2328
  if (typeof style === "string" || style instanceof String) {
2329
- return expandMapStyle(style);
2329
+ if (!style.startsWith("http") && style.toLowerCase().includes(".json")) {
2330
+ return style;
2331
+ } else {
2332
+ return expandMapStyle(style);
2333
+ }
2330
2334
  }
2331
2335
  if (style instanceof MapStyleVariant) {
2332
2336
  return style.getExpandedStyleURL();
@@ -2430,6 +2434,8 @@
2430
2434
  }
2431
2435
 
2432
2436
  var __defProp$1 = Object.defineProperty;
2437
+ var __defProps$1 = Object.defineProperties;
2438
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
2433
2439
  var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
2434
2440
  var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
2435
2441
  var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
@@ -2445,6 +2451,7 @@
2445
2451
  }
2446
2452
  return a;
2447
2453
  };
2454
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
2448
2455
  const GeolocateControl$1 = maplibregl.GeolocateControl;
2449
2456
  const Marker$1 = maplibregl.Marker;
2450
2457
  const LngLat$1 = maplibregl.LngLat;
@@ -2460,16 +2467,20 @@
2460
2467
  );
2461
2468
  const radius = position.coords.accuracy;
2462
2469
  const bearing = this._map.getBearing();
2463
- const options = __spreadValues$1({
2470
+ const options = __spreadProps$1(__spreadValues$1({
2464
2471
  bearing
2465
- }, this.options.fitBoundsOptions);
2466
- console.log("moving camera");
2472
+ }, this.options.fitBoundsOptions), {
2473
+ linear: true
2474
+ });
2475
+ const currentMapZoom = this._map.getZoom();
2476
+ if (currentMapZoom > this.options.fitBoundsOptions.maxZoom) {
2477
+ options.zoom = currentMapZoom;
2478
+ }
2467
2479
  this._map.fitBounds(center.toBounds(radius), options, {
2468
2480
  geolocateSource: true
2469
2481
  });
2470
2482
  let hasFittingBeenDisrupted = false;
2471
2483
  const flagFittingDisruption = () => {
2472
- console.log("DISRUPTED FITTING!");
2473
2484
  hasFittingBeenDisrupted = true;
2474
2485
  };
2475
2486
  this._map.once("click", flagFittingDisruption);
@@ -2479,7 +2490,6 @@
2479
2490
  this._map.once("touchstart", flagFittingDisruption);
2480
2491
  this._map.once("wheel", flagFittingDisruption);
2481
2492
  this._map.once("moveend", () => {
2482
- console.log("done moving, with disruption:", hasFittingBeenDisrupted);
2483
2493
  this._map.off("click", flagFittingDisruption);
2484
2494
  this._map.off("dblclick", flagFittingDisruption);
2485
2495
  this._map.off("dragstart", flagFittingDisruption);
@@ -2635,7 +2645,6 @@
2635
2645
  constructor(options) {
2636
2646
  var _a;
2637
2647
  const style = styleToStyle(options.style);
2638
- console.log(style);
2639
2648
  const hashPreConstructor = location.hash;
2640
2649
  if (!config.apiKey) {
2641
2650
  console.warn(
@@ -2646,7 +2655,15 @@
2646
2655
  style,
2647
2656
  maplibreLogo: false,
2648
2657
  transformRequest: (url) => {
2649
- const reqUrl = new URL(url);
2658
+ let reqUrl = null;
2659
+ try {
2660
+ reqUrl = new URL(url);
2661
+ } catch (e) {
2662
+ return {
2663
+ url,
2664
+ headers: {}
2665
+ };
2666
+ }
2650
2667
  if (reqUrl.host === defaults.maptilerApiHost) {
2651
2668
  if (!reqUrl.searchParams.has("key")) {
2652
2669
  reqUrl.searchParams.append("key", config.apiKey);
@@ -1 +1 @@
1
- import m from"maplibre-gl";export*from"maplibre-gl";import{Base64 as j}from"js-base64";import{v4 as G}from"uuid";import K from"events";import{config as b,expandMapStyle as D,MapStyleVariant as z,ReferenceMapStyle as F,MapStyle as V,mapStylePresetList as q,geolocation as I}from"@maptiler/client";import{LanguageGeocoding as re,MapStyle as ie,MapStyleVariant as ae,ReferenceMapStyle as oe,ServiceError as ne,coordinates as se,data as le,geocoding as ce,geolocation as he,staticMaps as ue}from"@maptiler/client";const S={AUTO:"auto",LATIN:"latin",NON_LATIN:"nonlatin",LOCAL:"",ALBANIAN:"sq",AMHARIC:"am",ARABIC:"ar",ARMENIAN:"hy",AZERBAIJANI:"az",BASQUE:"eu",BELORUSSIAN:"be",BOSNIAN:"bs",BRETON:"br",BULGARIAN:"bg",CATALAN:"ca",CHINESE:"zh",CORSICAN:"co",CROATIAN:"hr",CZECH:"cs",DANISH:"da",DUTCH:"nl",ENGLISH:"en",ESPERANTO:"eo",ESTONIAN:"et",FINNISH:"fi",FRENCH:"fr",FRISIAN:"fy",GEORGIAN:"ka",GERMAN:"de",GREEK:"el",HEBREW:"he",HINDI:"hi",HUNGARIAN:"hu",ICELANDIC:"is",INDONESIAN:"id",IRISH:"ga",ITALIAN:"it",JAPANESE:"ja",JAPANESE_HIRAGANA:"ja-Hira",JAPANESE_KANA:"ja_kana",JAPANESE_LATIN:"ja_rm",JAPANESE_2018:"ja-Latn",KANNADA:"kn",KAZAKH:"kk",KOREAN:"ko",KOREAN_LATIN:"ko-Latn",KURDISH:"ku",ROMAN_LATIN:"la",LATVIAN:"lv",LITHUANIAN:"lt",LUXEMBOURGISH:"lb",MACEDONIAN:"mk",MALAYALAM:"ml",MALTESE:"mt",NORWEGIAN:"no",OCCITAN:"oc",POLISH:"pl",PORTUGUESE:"pt",ROMANIAN:"ro",ROMANSH:"rm",RUSSIAN:"ru",SCOTTISH_GAELIC:"gd",SERBIAN_CYRILLIC:"sr",SERBIAN_LATIN:"sr-Latn",SLOVAK:"sk",SLOVENE:"sl",SPANISH:"es",SWEDISH:"sv",TAMIL:"ta",TELUGU:"te",THAI:"th",TURKISH:"tr",UKRAINIAN:"uk",WELSH:"cy"},J=new Set(Object.values(S));function v(r){return J.has(r)}const Z=new Set(Object.values(S));function T(){if(typeof navigator>"u")return Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0];const r=Array.from(new Set(navigator.languages.map(t=>t.split("-")[0]))).filter(t=>Z.has(t));return r.length?r[0]:S.LATIN}class E extends K{constructor(){super(),this.primaryLanguage=S.AUTO,this.secondaryLanguage=null,this.session=!0,this._unit="metric",this._apiKey=""}set unit(t){this._unit=t,this.emit("unit",t)}get unit(){return this._unit}set apiKey(t){this._apiKey=t,b.apiKey=t,this.emit("apiKey",t)}get apiKey(){return this._apiKey}set fetch(t){b.fetch=t}get fetch(){return b.fetch}}const g=new E,d={maptilerLogoURL:"https://api.maptiler.com/resources/logo.svg",maptilerURL:"https://www.maptiler.com/",maptilerApiHost:"api.maptiler.com",rtlPluginURL:"https://cdn.maptiler.com/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.min.js",primaryLanguage:S.AUTO,secondaryLanguage:S.LOCAL,terrainSourceURL:"https://api.maptiler.com/tiles/terrain-rgb/tiles.json",terrainSourceId:"maptiler-terrain"};Object.freeze(d);class N extends m.LogoControl{constructor(t={}){var e,a;super(t),this.logoURL="",this.linkURL="",this.logoURL=(e=t.logoURL)!=null?e:d.maptilerLogoURL,this.linkURL=(a=t.linkURL)!=null?a:d.maptilerURL}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=window.document.createElement("div"),this._container.className="maplibregl-ctrl";const e=window.document.createElement("a");return e.style.backgroundRepeat="no-repeat",e.style.cursor="pointer",e.style.display="block",e.style.height="23px",e.style.margin="0 0 -4px -4px",e.style.overflow="hidden",e.style.width="88px",e.style.backgroundImage=`url(${this.logoURL})`,e.style.backgroundSize="100px 30px",e.style.width="100px",e.style.height="30px",e.target="_blank",e.rel="noopener nofollow",e.href=this.linkURL,e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}}function W(){m.getRTLTextPluginStatus()==="unavailable"&&m.setRTLTextPlugin(d.rtlPluginURL,null,!0)}function Y(r,t){r.forEach(e=>{!t[e]||(t[e]=t[e].bind(t))})}function A(r,t,e){const a=window.document.createElement(r);return t!==void 0&&(a.className=t),e&&e.appendChild(a),a}function X(r){r.parentNode&&r.parentNode.removeChild(r)}function w(r){return r?typeof r=="string"||r instanceof String?D(r):r instanceof z?r.getExpandedStyleURL():r instanceof F?r.getDefaultVariant().getExpandedStyleURL():r:V[q[0].referenceStyleID].getDefaultVariant().getExpandedStyleURL()}class Q{constructor(){Y(["_toggleTerrain","_updateTerrainIcon"],this)}onAdd(t){return this._map=t,this._container=A("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=A("button","maplibregl-ctrl-terrain",this._container),A("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){X(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}_toggleTerrain(){this._map.hasTerrain()?this._map.disableTerrain():this._map.enableTerrain(),this._updateTerrainIcon()}_updateTerrainIcon(){this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.hasTerrain()?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.disableTerrain")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.enableTerrain"))}}class tt extends m.NavigationControl{constructor(){super({showCompass:!0,showZoom:!0,visualizePitch:!0}),this._compass.removeEventListener("click",this._compass.clickFunction),this._compass.addEventListener("click",t=>{this._map.getPitch()===0?this._map.easeTo({pitch:Math.min(this._map.getMaxPitch(),80)}):this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t})})}_createButton(t,e){const a=super._createButton(t,e);return a.clickFunction=e,a}_rotateCompassArrow(){const t=this.options.visualizePitch?`scale(${Math.min(1.5,1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5))}) rotateX(${Math.min(70,this._map.transform.pitch)}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=t}}var et=Object.defineProperty,R=Object.getOwnPropertySymbols,rt=Object.prototype.hasOwnProperty,it=Object.prototype.propertyIsEnumerable,P=(r,t,e)=>t in r?et(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,at=(r,t)=>{for(var e in t||(t={}))rt.call(t,e)&&P(r,e,t[e]);if(R)for(var e of R(t))it.call(t,e)&&P(r,e,t[e]);return r};const ot=m.GeolocateControl,U=m.Marker,O=m.LngLat;class nt extends ot{constructor(){super(...arguments),this.lastUpdatedCenter=new O(0,0)}_updateCamera(t){const e=new O(t.coords.longitude,t.coords.latitude),a=t.coords.accuracy,h=this._map.getBearing(),c=at({bearing:h},this.options.fitBoundsOptions);console.log("moving camera"),this._map.fitBounds(e.toBounds(a),c,{geolocateSource:!0});let i=!1;const o=()=>{console.log("DISRUPTED FITTING!"),i=!0};this._map.once("click",o),this._map.once("dblclick",o),this._map.once("dragstart",o),this._map.once("mousedown",o),this._map.once("touchstart",o),this._map.once("wheel",o),this._map.once("moveend",()=>{console.log("done moving, with disruption:",i),this._map.off("click",o),this._map.off("dblclick",o),this._map.off("dragstart",o),this._map.off("mousedown",o),this._map.off("touchstart",o),this._map.off("wheel",o),!i&&(this.lastUpdatedCenter=this._map.getCenter())})}_setupUI(t){if(this.lastUpdatedCenter=this._map.getCenter(),this._container.addEventListener("contextmenu",e=>e.preventDefault()),this._geolocateButton=A("button","maplibregl-ctrl-geolocate",this._container),A("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",t===!1){const e=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=e,this._geolocateButton.setAttribute("aria-label",e)}else{const e=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=e,this._geolocateButton.setAttribute("aria-label",e)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=A("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new U(this._dotElement),this._circleElement=A("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new U({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("move",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("moveend",e=>{const a=e.originalEvent&&e.originalEvent.type==="resize",h=this.lastUpdatedCenter.distanceTo(this._map.getCenter());!e.geolocateSource&&this._watchState==="ACTIVE_LOCK"&&!a&&h>1&&(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new Event("trackuserlocationend")))})}_updateCircleRadius(){if(this._watchState!=="BACKGROUND"&&this._watchState!=="ACTIVE_LOCK")return;const t=[this._lastKnownPosition.coords.longitude,this._lastKnownPosition.coords.latitude],e=this._map.project(t),a=this._map.unproject([e.x,e.y]),h=this._map.unproject([e.x+20,e.y]),c=a.distanceTo(h)/20,i=Math.ceil(2*this._accuracy/c);this._circleElement.style.width=`${i}px`,this._circleElement.style.height=`${i}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}}var st=Object.defineProperty,lt=Object.defineProperties,ct=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,ht=Object.prototype.hasOwnProperty,ut=Object.prototype.propertyIsEnumerable,M=(r,t,e)=>t in r?st(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,B=(r,t)=>{for(var e in t||(t={}))ht.call(t,e)&&M(r,e,t[e]);if(k)for(var e of k(t))ut.call(t,e)&&M(r,e,t[e]);return r},$=(r,t)=>lt(r,ct(t)),C=(r,t,e)=>new Promise((a,h)=>{var c=s=>{try{o(e.next(s))}catch(y){h(y)}},i=s=>{try{o(e.throw(s))}catch(y){h(y)}},o=s=>s.done?a(s.value):Promise.resolve(s.value).then(c,i);o((e=e.apply(r,t)).next())});const gt=G(),H={POINT:"POINT",COUNTRY:"COUNTRY"};class dt extends m.Map{constructor(t){var e;const a=w(t.style);console.log(a);const h=location.hash;g.apiKey||console.warn("MapTiler Cloud API key is not set. Visit https://maptiler.com and try Cloud for free!"),super($(B({},t),{style:a,maplibreLogo:!1,transformRequest:c=>{const i=new URL(c);return i.host===d.maptilerApiHost&&(i.searchParams.has("key")||i.searchParams.append("key",g.apiKey),g.session&&i.searchParams.append("mtsid",gt)),{url:i.href,headers:{}}}})),this.languageShouldUpdate=!1,this.isStyleInitialized=!1,this.isTerrainEnabled=!1,this.terrainExaggeration=1,this.once("styledata",()=>C(this,null,function*(){if(t.geolocate===!1||t.center||t.hash&&!!h)return;try{if(t.geolocate===H.COUNTRY){yield this.fitToIpBounds();return}}catch(i){console.warn(i.message)}let c=null;try{yield this.centerOnIpPoint(t.zoom),c=this.getCameraHash()}catch(i){console.warn(i.message)}(yield navigator.permissions.query({name:"geolocation"})).state==="granted"&&navigator.geolocation.getCurrentPosition(i=>{c===this.getCameraHash()&&this.easeTo({center:[i.coords.longitude,i.coords.latitude],zoom:t.zoom||12,duration:2e3})},null,{maximumAge:24*3600*1e3,timeout:5e3,enableHighAccuracy:!1})})),this.on("styledataloading",()=>{this.languageShouldUpdate=!!g.primaryLanguage||!!g.secondaryLanguage}),this.on("styledata",()=>{g.primaryLanguage&&(this.languageShouldUpdate||!this.isStyleInitialized)&&this.setPrimaryLanguage(g.primaryLanguage),g.secondaryLanguage&&(this.languageShouldUpdate||!this.isStyleInitialized)&&this.setSecondaryLanguage(g.secondaryLanguage),this.languageShouldUpdate=!1,this.isStyleInitialized=!0}),this.on("styledata",()=>{this.getTerrain()===null&&this.isTerrainEnabled&&this.enableTerrain(this.terrainExaggeration)}),this.once("load",()=>C(this,null,function*(){W()})),this.once("load",()=>C(this,null,function*(){let c={logo:null};try{const i=Object.keys(this.style.sourceCaches).map(s=>this.getSource(s)).filter(s=>typeof s.url=="string"&&s.url.includes("tiles.json")),o=new URL(i[0].url);o.searchParams.has("key")||o.searchParams.append("key",g.apiKey),c=yield(yield fetch(o.href)).json()}catch{}if("logo"in c&&c.logo){const i=c.logo;this.addControl(new N({logoURL:i}),t.logoPosition),t.attributionControl===!1&&this.addControl(new m.AttributionControl(t))}else t.maptilerLogo&&this.addControl(new N,t.logoPosition);if(t.scaleControl){const i=t.scaleControl===!0||t.scaleControl===void 0?"bottom-right":t.scaleControl,o=new m.ScaleControl({unit:g.unit});this.addControl(o,i),g.on("unit",s=>{o.setUnit(s)})}if(t.navigationControl!==!1){const i=t.navigationControl===!0||t.navigationControl===void 0?"top-right":t.navigationControl;this.addControl(new tt,i)}if(t.geolocateControl!==!1){const i=t.geolocateControl===!0||t.geolocateControl===void 0?"top-right":t.geolocateControl;this.addControl(new nt({positionOptions:{enableHighAccuracy:!0,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!0,showAccuracyCircle:!0,showUserLocation:!0}),i)}if(t.terrainControl){const i=t.terrainControl===!0||t.terrainControl===void 0?"top-right":t.terrainControl;this.addControl(new Q,i)}if(t.fullscreenControl){const i=t.fullscreenControl===!0||t.fullscreenControl===void 0?"top-right":t.fullscreenControl;this.addControl(new m.FullscreenControl({}),i)}})),t.terrain&&this.enableTerrain((e=t.terrainExaggeration)!=null?e:this.terrainExaggeration)}setStyle(t,e){return super.setStyle(w(t),e)}setLanguage(t=d.primaryLanguage){if(t===S.AUTO)return this.setLanguage(T());this.setPrimaryLanguage(t)}setPrimaryLanguage(t=d.primaryLanguage){!v(t)||this.onStyleReady(()=>{if(t===S.AUTO)return this.setPrimaryLanguage(T());g.primaryLanguage=t;const e=this.getStyle().layers,a=/^\s*{\s*name\s*(:\s*(\S*))?\s*}$/,h=/^\s*name\s*(:\s*(\S*))?\s*$/,c=/^\s*{\s*name\s*(:\s*(\S*))?\s*}(\s*){\s*name\s*(:\s*(\S*))?\s*}$/,i=/^(.*)({\s*name\s*(:\s*(\S*))?\s*})(.*)$/,o=t?`name:${t}`:"name",s=["case",["has",o],["get",o],["get","name:latin"]];for(let y=0;y<e.length;y+=1){const u=e[y],f=u.layout;if(!f||!f["text-field"])continue;const n=this.getLayoutProperty(u.id,"text-field");let p;if(Array.isArray(n)&&n.length>=2&&n[0].trim().toLowerCase()==="concat"){const l=n.slice();for(let L=0;L<n.length;L+=1){const _=n[L];if((typeof _=="string"||_ instanceof String)&&a.exec(_.toString())){l[L]=s;break}else if(Array.isArray(_)&&_.length>=2&&_[0].trim().toLowerCase()==="get"&&h.exec(_[1].toString())){l[L]=s;break}else if(Array.isArray(_)&&_.length===4&&_[0].trim().toLowerCase()==="case"){l[L]=s;break}}this.setLayoutProperty(u.id,"text-field",l)}else if(Array.isArray(n)&&n.length>=2&&n[0].trim().toLowerCase()==="get"&&h.exec(n[1].toString())){const l=s;this.setLayoutProperty(u.id,"text-field",l)}else if((typeof n=="string"||n instanceof String)&&a.exec(n.toString())){const l=s;this.setLayoutProperty(u.id,"text-field",l)}else if(Array.isArray(n)&&n.length===4&&n[0].trim().toLowerCase()==="case"){const l=s;this.setLayoutProperty(u.id,"text-field",l)}else if((typeof n=="string"||n instanceof String)&&(p=c.exec(n.toString()))!==null){const l=`{${o}}${p[3]}{name${p[4]||""}}`;this.setLayoutProperty(u.id,"text-field",l)}else if((typeof n=="string"||n instanceof String)&&(p=i.exec(n.toString()))!==null){const l=`${p[1]}{${o}}${p[5]}`;this.setLayoutProperty(u.id,"text-field",l)}}})}setSecondaryLanguage(t=d.secondaryLanguage){!v(t)||this.onStyleReady(()=>{if(t===S.AUTO)return this.setSecondaryLanguage(T());g.secondaryLanguage=t;const e=this.getStyle().layers,a=/^\s*{\s*name\s*(:\s*(\S*))?\s*}$/,h=/^\s*name\s*(:\s*(\S*))?\s*$/,c=/^\s*{\s*name\s*(:\s*(\S*))?\s*}(\s*){\s*name\s*(:\s*(\S*))?\s*}$/;let i;for(let o=0;o<e.length;o+=1){const s=e[o],y=s.layout;if(!y||!y["text-field"])continue;const u=this.getLayoutProperty(s.id,"text-field");let f;if(Array.isArray(u)&&u.length>=2&&u[0].trim().toLowerCase()==="concat"){f=u.slice();let n=0;for(let p=0;p<u.length;p+=1){const l=u[p];if((typeof l=="string"||l instanceof String)&&a.exec(l.toString())){if(n===1){f[p]=`{name:${t}}`;break}n+=1}else if(Array.isArray(l)&&l.length>=2&&l[0].trim().toLowerCase()==="get"&&h.exec(l[1].toString())){if(n===1){f[p][1]=`name:${t}`;break}n+=1}else if(Array.isArray(l)&&l.length===4&&l[0].trim().toLowerCase()==="case"){if(n===1){f[p]=["get",`name:${t}`];break}n+=1}}this.setLayoutProperty(s.id,"text-field",f)}else if((typeof u=="string"||u instanceof String)&&(i=c.exec(u.toString()))!==null){const n=t?`name:${t}`:"name";f=`{name${i[1]||""}}${i[3]}{${n}}`,this.setLayoutProperty(s.id,"text-field",f)}}})}getTerrainExaggeration(){return this.terrainExaggeration}hasTerrain(){return this.isTerrainEnabled}enableTerrain(t=this.terrainExaggeration){if(t<0){console.warn("Terrain exaggeration cannot be negative.");return}const e=this.getTerrain(),a=()=>{this.isTerrainEnabled=!0,this.terrainExaggeration=t,this.addSource(d.terrainSourceId,{type:"raster-dem",url:d.terrainSourceURL}),this.setTerrain({source:d.terrainSourceId,exaggeration:t})};if(e){this.setTerrain($(B({},e),{exaggeration:t}));return}this.loaded()||this.isTerrainEnabled?a():this.once("load",()=>{this.getTerrain()&&this.getSource(d.terrainSourceId)||a()})}disableTerrain(){this.isTerrainEnabled=!1,this.setTerrain(null),this.getSource(d.terrainSourceId)&&this.removeSource(d.terrainSourceId)}setTerrainExaggeration(t){this.enableTerrain(t)}onStyleReady(t){this.isStyleLoaded()?t():this.once("styledata",()=>{t()})}fitToIpBounds(){return C(this,null,function*(){const t=yield I.info();this.fitBounds(t.country_bounds,{duration:0,padding:100})})}centerOnIpPoint(t){return C(this,null,function*(){const e=yield I.info();this.jumpTo({center:[e.longitude,e.latitude],zoom:t||11})})}getCameraHash(){const t=new Float32Array(5),e=this.getCenter();return t[0]=e.lng,t[1]=e.lat,t[2]=this.getZoom(),t[3]=this.getPitch(),t[4]=this.getBearing(),j.fromUint8Array(new Uint8Array(t.buffer))}}class x{constructor(t,e){this.x=t,this.y=e}_matMult(t){const e=t[0]*this.x+t[1]*this.y,a=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=a,this}_add(t){return this.x+=t.x,this.y+=t.y,this}_sub(t){return this.x-=t.x,this.y-=t.y,this}_mult(t){return this.x*=t,this.y*=t,this}_div(t){return this.x/=t,this.y/=t,this}_multByPoint(t){return this.x*=t.x,this.y*=t.y,this}_divByPoint(t){return this.x/=t.x,this.y/=t.y,this}_unit(){return this._div(this.mag()),this}_perp(){const t=this.y;return this.y=this.x,this.x=-t,this}_rotate(t){const e=Math.cos(t),a=Math.sin(t),h=e*this.x-a*this.y,c=a*this.x+e*this.y;return this.x=h,this.y=c,this}_rotateAround(t,e){const a=Math.cos(t),h=Math.sin(t),c=e.x+a*(this.x-e.x)-h*(this.y-e.y),i=e.y+h*(this.x-e.x)+a*(this.y-e.y);return this.x=c,this.y=i,this}_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}clone(){return new x(this.x,this.y)}add(t){return this.clone()._add(t)}sub(t){return this.clone()._sub(t)}multByPoint(t){return this.clone()._multByPoint(t)}divByPoint(t){return this.clone()._divByPoint(t)}mult(t){return this.clone()._mult(t)}div(t){return this.clone()._div(t)}rotate(t){return this.clone()._rotate(t)}rotateAround(t,e){return this.clone()._rotateAround(t,e)}matMult(t){return this.clone()._matMult(t)}unit(){return this.clone()._unit()}perp(){return this.clone()._perp()}round(){return this.clone()._round()}mag(){return Math.sqrt(this.x*this.x+this.y*this.y)}equals(t){return this.x===t.x&&this.y===t.y}dist(t){return Math.sqrt(this.distSqr(t))}distSqr(t){const e=t.x-this.x,a=t.y-this.y;return e*e+a*a}angle(){return Math.atan2(this.y,this.x)}angleTo(t){return Math.atan2(this.y-t.y,this.x-t.x)}angleWith(t){return this.angleWithSep(t.x,t.y)}angleWithSep(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)}static convert(t){return t instanceof x?t:Array.isArray(t)?new x(t[0],t[1]):t}}const{supported:pt,setRTLTextPlugin:mt,getRTLTextPluginStatus:yt,NavigationControl:ft,GeolocateControl:_t,AttributionControl:St,LogoControl:At,ScaleControl:Lt,FullscreenControl:Ct,TerrainControl:xt,Popup:bt,Marker:Tt,Style:It,LngLat:vt,LngLatBounds:Et,MercatorCoordinate:Nt,Evented:wt,AJAXError:Rt,CanvasSource:Pt,GeoJSONSource:Ut,ImageSource:Ot,RasterDEMTileSource:kt,RasterTileSource:Mt,VectorTileSource:Bt,VideoSource:$t,prewarm:Ht,clearPrewarmedResources:jt,version:Gt,workerCount:Kt,maxParallelImageRequests:Dt,clearStorage:zt,workerUrl:Ft,addProtocol:Vt,removeProtocol:qt}=m;export{Rt as AJAXError,St as AttributionControl,Pt as CanvasSource,wt as Evented,Ct as FullscreenControl,Ut as GeoJSONSource,_t as GeolocateControl,H as GeolocationType,Ot as ImageSource,S as Language,re as LanguageGeocoding,vt as LngLat,Et as LngLatBounds,At as LogoControl,dt as Map,ie as MapStyle,ae as MapStyleVariant,Tt as Marker,Nt as MercatorCoordinate,ft as NavigationControl,x as Point,bt as Popup,kt as RasterDEMTileSource,Mt as RasterTileSource,oe as ReferenceMapStyle,Lt as ScaleControl,E as SdkConfig,ne as ServiceError,It as Style,xt as TerrainControl,Bt as VectorTileSource,$t as VideoSource,Vt as addProtocol,jt as clearPrewarmedResources,zt as clearStorage,g as config,se as coordinates,le as data,ce as geocoding,he as geolocation,yt as getRTLTextPluginStatus,Dt as maxParallelImageRequests,Ht as prewarm,qt as removeProtocol,mt as setRTLTextPlugin,ue as staticMaps,pt as supported,Gt as version,Kt as workerCount,Ft as workerUrl};
1
+ import m from"maplibre-gl";export*from"maplibre-gl";import{Base64 as j}from"js-base64";import{v4 as K}from"uuid";import G from"events";import{config as x,expandMapStyle as D,MapStyleVariant as z,ReferenceMapStyle as V,MapStyle as F,mapStylePresetList as Z,geolocation as I}from"@maptiler/client";import{LanguageGeocoding as oe,MapStyle as ne,MapStyleVariant as se,ReferenceMapStyle as le,ServiceError as ce,coordinates as he,data as ue,geocoding as ge,geolocation as de,staticMaps as pe}from"@maptiler/client";const S={AUTO:"auto",LATIN:"latin",NON_LATIN:"nonlatin",LOCAL:"",ALBANIAN:"sq",AMHARIC:"am",ARABIC:"ar",ARMENIAN:"hy",AZERBAIJANI:"az",BASQUE:"eu",BELORUSSIAN:"be",BOSNIAN:"bs",BRETON:"br",BULGARIAN:"bg",CATALAN:"ca",CHINESE:"zh",CORSICAN:"co",CROATIAN:"hr",CZECH:"cs",DANISH:"da",DUTCH:"nl",ENGLISH:"en",ESPERANTO:"eo",ESTONIAN:"et",FINNISH:"fi",FRENCH:"fr",FRISIAN:"fy",GEORGIAN:"ka",GERMAN:"de",GREEK:"el",HEBREW:"he",HINDI:"hi",HUNGARIAN:"hu",ICELANDIC:"is",INDONESIAN:"id",IRISH:"ga",ITALIAN:"it",JAPANESE:"ja",JAPANESE_HIRAGANA:"ja-Hira",JAPANESE_KANA:"ja_kana",JAPANESE_LATIN:"ja_rm",JAPANESE_2018:"ja-Latn",KANNADA:"kn",KAZAKH:"kk",KOREAN:"ko",KOREAN_LATIN:"ko-Latn",KURDISH:"ku",ROMAN_LATIN:"la",LATVIAN:"lv",LITHUANIAN:"lt",LUXEMBOURGISH:"lb",MACEDONIAN:"mk",MALAYALAM:"ml",MALTESE:"mt",NORWEGIAN:"no",OCCITAN:"oc",POLISH:"pl",PORTUGUESE:"pt",ROMANIAN:"ro",ROMANSH:"rm",RUSSIAN:"ru",SCOTTISH_GAELIC:"gd",SERBIAN_CYRILLIC:"sr",SERBIAN_LATIN:"sr-Latn",SLOVAK:"sk",SLOVENE:"sl",SPANISH:"es",SWEDISH:"sv",TAMIL:"ta",TELUGU:"te",THAI:"th",TURKISH:"tr",UKRAINIAN:"uk",WELSH:"cy"},q=new Set(Object.values(S));function v(r){return q.has(r)}const J=new Set(Object.values(S));function T(){if(typeof navigator>"u")return Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0];const r=Array.from(new Set(navigator.languages.map(t=>t.split("-")[0]))).filter(t=>J.has(t));return r.length?r[0]:S.LATIN}class E extends G{constructor(){super(),this.primaryLanguage=S.AUTO,this.secondaryLanguage=null,this.session=!0,this._unit="metric",this._apiKey=""}set unit(t){this._unit=t,this.emit("unit",t)}get unit(){return this._unit}set apiKey(t){this._apiKey=t,x.apiKey=t,this.emit("apiKey",t)}get apiKey(){return this._apiKey}set fetch(t){x.fetch=t}get fetch(){return x.fetch}}const g=new E,d={maptilerLogoURL:"https://api.maptiler.com/resources/logo.svg",maptilerURL:"https://www.maptiler.com/",maptilerApiHost:"api.maptiler.com",rtlPluginURL:"https://cdn.maptiler.com/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.min.js",primaryLanguage:S.AUTO,secondaryLanguage:S.LOCAL,terrainSourceURL:"https://api.maptiler.com/tiles/terrain-rgb/tiles.json",terrainSourceId:"maptiler-terrain"};Object.freeze(d);class N extends m.LogoControl{constructor(t={}){var e,o;super(t),this.logoURL="",this.linkURL="",this.logoURL=(e=t.logoURL)!=null?e:d.maptilerLogoURL,this.linkURL=(o=t.linkURL)!=null?o:d.maptilerURL}onAdd(t){this._map=t,this._compact=this.options&&this.options.compact,this._container=window.document.createElement("div"),this._container.className="maplibregl-ctrl";const e=window.document.createElement("a");return e.style.backgroundRepeat="no-repeat",e.style.cursor="pointer",e.style.display="block",e.style.height="23px",e.style.margin="0 0 -4px -4px",e.style.overflow="hidden",e.style.width="88px",e.style.backgroundImage=`url(${this.logoURL})`,e.style.backgroundSize="100px 30px",e.style.width="100px",e.style.height="30px",e.target="_blank",e.rel="noopener nofollow",e.href=this.linkURL,e.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),e.setAttribute("rel","noopener nofollow"),this._container.appendChild(e),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}}function W(){m.getRTLTextPluginStatus()==="unavailable"&&m.setRTLTextPlugin(d.rtlPluginURL,null,!0)}function Y(r,t){r.forEach(e=>{!t[e]||(t[e]=t[e].bind(t))})}function A(r,t,e){const o=window.document.createElement(r);return t!==void 0&&(o.className=t),e&&e.appendChild(o),o}function X(r){r.parentNode&&r.parentNode.removeChild(r)}function w(r){return r?typeof r=="string"||r instanceof String?!r.startsWith("http")&&r.toLowerCase().includes(".json")?r:D(r):r instanceof z?r.getExpandedStyleURL():r instanceof V?r.getDefaultVariant().getExpandedStyleURL():r:F[Z[0].referenceStyleID].getDefaultVariant().getExpandedStyleURL()}class Q{constructor(){Y(["_toggleTerrain","_updateTerrainIcon"],this)}onAdd(t){return this._map=t,this._container=A("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=A("button","maplibregl-ctrl-terrain",this._container),A("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){X(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}_toggleTerrain(){this._map.hasTerrain()?this._map.disableTerrain():this._map.enableTerrain(),this._updateTerrainIcon()}_updateTerrainIcon(){this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.hasTerrain()?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.disableTerrain")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.enableTerrain"))}}class tt extends m.NavigationControl{constructor(){super({showCompass:!0,showZoom:!0,visualizePitch:!0}),this._compass.removeEventListener("click",this._compass.clickFunction),this._compass.addEventListener("click",t=>{this._map.getPitch()===0?this._map.easeTo({pitch:Math.min(this._map.getMaxPitch(),80)}):this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:t}):this._map.resetNorth({},{originalEvent:t})})}_createButton(t,e){const o=super._createButton(t,e);return o.clickFunction=e,o}_rotateCompassArrow(){const t=this.options.visualizePitch?`scale(${Math.min(1.5,1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5))}) rotateX(${Math.min(70,this._map.transform.pitch)}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=t}}var et=Object.defineProperty,rt=Object.defineProperties,it=Object.getOwnPropertyDescriptors,R=Object.getOwnPropertySymbols,at=Object.prototype.hasOwnProperty,ot=Object.prototype.propertyIsEnumerable,P=(r,t,e)=>t in r?et(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,nt=(r,t)=>{for(var e in t||(t={}))at.call(t,e)&&P(r,e,t[e]);if(R)for(var e of R(t))ot.call(t,e)&&P(r,e,t[e]);return r},st=(r,t)=>rt(r,it(t));const lt=m.GeolocateControl,O=m.Marker,U=m.LngLat;class ct extends lt{constructor(){super(...arguments),this.lastUpdatedCenter=new U(0,0)}_updateCamera(t){const e=new U(t.coords.longitude,t.coords.latitude),o=t.coords.accuracy,h=this._map.getBearing(),s=st(nt({bearing:h},this.options.fitBoundsOptions),{linear:!0}),i=this._map.getZoom();i>this.options.fitBoundsOptions.maxZoom&&(s.zoom=i),this._map.fitBounds(e.toBounds(o),s,{geolocateSource:!0});let c=!1;const a=()=>{c=!0};this._map.once("click",a),this._map.once("dblclick",a),this._map.once("dragstart",a),this._map.once("mousedown",a),this._map.once("touchstart",a),this._map.once("wheel",a),this._map.once("moveend",()=>{this._map.off("click",a),this._map.off("dblclick",a),this._map.off("dragstart",a),this._map.off("mousedown",a),this._map.off("touchstart",a),this._map.off("wheel",a),!c&&(this.lastUpdatedCenter=this._map.getCenter())})}_setupUI(t){if(this.lastUpdatedCenter=this._map.getCenter(),this._container.addEventListener("contextmenu",e=>e.preventDefault()),this._geolocateButton=A("button","maplibregl-ctrl-geolocate",this._container),A("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",t===!1){const e=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=e,this._geolocateButton.setAttribute("aria-label",e)}else{const e=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=e,this._geolocateButton.setAttribute("aria-label",e)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=A("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new O(this._dotElement),this._circleElement=A("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new O({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("move",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("moveend",e=>{const o=e.originalEvent&&e.originalEvent.type==="resize",h=this.lastUpdatedCenter.distanceTo(this._map.getCenter());!e.geolocateSource&&this._watchState==="ACTIVE_LOCK"&&!o&&h>1&&(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new Event("trackuserlocationend")))})}_updateCircleRadius(){if(this._watchState!=="BACKGROUND"&&this._watchState!=="ACTIVE_LOCK")return;const t=[this._lastKnownPosition.coords.longitude,this._lastKnownPosition.coords.latitude],e=this._map.project(t),o=this._map.unproject([e.x,e.y]),h=this._map.unproject([e.x+20,e.y]),s=o.distanceTo(h)/20,i=Math.ceil(2*this._accuracy/s);this._circleElement.style.width=`${i}px`,this._circleElement.style.height=`${i}px`}_onZoom(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}}var ht=Object.defineProperty,ut=Object.defineProperties,gt=Object.getOwnPropertyDescriptors,k=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,pt=Object.prototype.propertyIsEnumerable,M=(r,t,e)=>t in r?ht(r,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):r[t]=e,B=(r,t)=>{for(var e in t||(t={}))dt.call(t,e)&&M(r,e,t[e]);if(k)for(var e of k(t))pt.call(t,e)&&M(r,e,t[e]);return r},$=(r,t)=>ut(r,gt(t)),C=(r,t,e)=>new Promise((o,h)=>{var s=a=>{try{c(e.next(a))}catch(y){h(y)}},i=a=>{try{c(e.throw(a))}catch(y){h(y)}},c=a=>a.done?o(a.value):Promise.resolve(a.value).then(s,i);c((e=e.apply(r,t)).next())});const mt=K(),H={POINT:"POINT",COUNTRY:"COUNTRY"};class yt extends m.Map{constructor(t){var e;const o=w(t.style),h=location.hash;g.apiKey||console.warn("MapTiler Cloud API key is not set. Visit https://maptiler.com and try Cloud for free!"),super($(B({},t),{style:o,maplibreLogo:!1,transformRequest:s=>{let i=null;try{i=new URL(s)}catch{return{url:s,headers:{}}}return i.host===d.maptilerApiHost&&(i.searchParams.has("key")||i.searchParams.append("key",g.apiKey),g.session&&i.searchParams.append("mtsid",mt)),{url:i.href,headers:{}}}})),this.languageShouldUpdate=!1,this.isStyleInitialized=!1,this.isTerrainEnabled=!1,this.terrainExaggeration=1,this.once("styledata",()=>C(this,null,function*(){if(t.geolocate===!1||t.center||t.hash&&!!h)return;try{if(t.geolocate===H.COUNTRY){yield this.fitToIpBounds();return}}catch(i){console.warn(i.message)}let s=null;try{yield this.centerOnIpPoint(t.zoom),s=this.getCameraHash()}catch(i){console.warn(i.message)}(yield navigator.permissions.query({name:"geolocation"})).state==="granted"&&navigator.geolocation.getCurrentPosition(i=>{s===this.getCameraHash()&&this.easeTo({center:[i.coords.longitude,i.coords.latitude],zoom:t.zoom||12,duration:2e3})},null,{maximumAge:24*3600*1e3,timeout:5e3,enableHighAccuracy:!1})})),this.on("styledataloading",()=>{this.languageShouldUpdate=!!g.primaryLanguage||!!g.secondaryLanguage}),this.on("styledata",()=>{g.primaryLanguage&&(this.languageShouldUpdate||!this.isStyleInitialized)&&this.setPrimaryLanguage(g.primaryLanguage),g.secondaryLanguage&&(this.languageShouldUpdate||!this.isStyleInitialized)&&this.setSecondaryLanguage(g.secondaryLanguage),this.languageShouldUpdate=!1,this.isStyleInitialized=!0}),this.on("styledata",()=>{this.getTerrain()===null&&this.isTerrainEnabled&&this.enableTerrain(this.terrainExaggeration)}),this.once("load",()=>C(this,null,function*(){W()})),this.once("load",()=>C(this,null,function*(){let s={logo:null};try{const i=Object.keys(this.style.sourceCaches).map(a=>this.getSource(a)).filter(a=>typeof a.url=="string"&&a.url.includes("tiles.json")),c=new URL(i[0].url);c.searchParams.has("key")||c.searchParams.append("key",g.apiKey),s=yield(yield fetch(c.href)).json()}catch{}if("logo"in s&&s.logo){const i=s.logo;this.addControl(new N({logoURL:i}),t.logoPosition),t.attributionControl===!1&&this.addControl(new m.AttributionControl(t))}else t.maptilerLogo&&this.addControl(new N,t.logoPosition);if(t.scaleControl){const i=t.scaleControl===!0||t.scaleControl===void 0?"bottom-right":t.scaleControl,c=new m.ScaleControl({unit:g.unit});this.addControl(c,i),g.on("unit",a=>{c.setUnit(a)})}if(t.navigationControl!==!1){const i=t.navigationControl===!0||t.navigationControl===void 0?"top-right":t.navigationControl;this.addControl(new tt,i)}if(t.geolocateControl!==!1){const i=t.geolocateControl===!0||t.geolocateControl===void 0?"top-right":t.geolocateControl;this.addControl(new ct({positionOptions:{enableHighAccuracy:!0,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!0,showAccuracyCircle:!0,showUserLocation:!0}),i)}if(t.terrainControl){const i=t.terrainControl===!0||t.terrainControl===void 0?"top-right":t.terrainControl;this.addControl(new Q,i)}if(t.fullscreenControl){const i=t.fullscreenControl===!0||t.fullscreenControl===void 0?"top-right":t.fullscreenControl;this.addControl(new m.FullscreenControl({}),i)}})),t.terrain&&this.enableTerrain((e=t.terrainExaggeration)!=null?e:this.terrainExaggeration)}setStyle(t,e){return super.setStyle(w(t),e)}setLanguage(t=d.primaryLanguage){if(t===S.AUTO)return this.setLanguage(T());this.setPrimaryLanguage(t)}setPrimaryLanguage(t=d.primaryLanguage){!v(t)||this.onStyleReady(()=>{if(t===S.AUTO)return this.setPrimaryLanguage(T());g.primaryLanguage=t;const e=this.getStyle().layers,o=/^\s*{\s*name\s*(:\s*(\S*))?\s*}$/,h=/^\s*name\s*(:\s*(\S*))?\s*$/,s=/^\s*{\s*name\s*(:\s*(\S*))?\s*}(\s*){\s*name\s*(:\s*(\S*))?\s*}$/,i=/^(.*)({\s*name\s*(:\s*(\S*))?\s*})(.*)$/,c=t?`name:${t}`:"name",a=["case",["has",c],["get",c],["get","name:latin"]];for(let y=0;y<e.length;y+=1){const u=e[y],f=u.layout;if(!f||!f["text-field"])continue;const n=this.getLayoutProperty(u.id,"text-field");let p;if(Array.isArray(n)&&n.length>=2&&n[0].trim().toLowerCase()==="concat"){const l=n.slice();for(let L=0;L<n.length;L+=1){const _=n[L];if((typeof _=="string"||_ instanceof String)&&o.exec(_.toString())){l[L]=a;break}else if(Array.isArray(_)&&_.length>=2&&_[0].trim().toLowerCase()==="get"&&h.exec(_[1].toString())){l[L]=a;break}else if(Array.isArray(_)&&_.length===4&&_[0].trim().toLowerCase()==="case"){l[L]=a;break}}this.setLayoutProperty(u.id,"text-field",l)}else if(Array.isArray(n)&&n.length>=2&&n[0].trim().toLowerCase()==="get"&&h.exec(n[1].toString())){const l=a;this.setLayoutProperty(u.id,"text-field",l)}else if((typeof n=="string"||n instanceof String)&&o.exec(n.toString())){const l=a;this.setLayoutProperty(u.id,"text-field",l)}else if(Array.isArray(n)&&n.length===4&&n[0].trim().toLowerCase()==="case"){const l=a;this.setLayoutProperty(u.id,"text-field",l)}else if((typeof n=="string"||n instanceof String)&&(p=s.exec(n.toString()))!==null){const l=`{${c}}${p[3]}{name${p[4]||""}}`;this.setLayoutProperty(u.id,"text-field",l)}else if((typeof n=="string"||n instanceof String)&&(p=i.exec(n.toString()))!==null){const l=`${p[1]}{${c}}${p[5]}`;this.setLayoutProperty(u.id,"text-field",l)}}})}setSecondaryLanguage(t=d.secondaryLanguage){!v(t)||this.onStyleReady(()=>{if(t===S.AUTO)return this.setSecondaryLanguage(T());g.secondaryLanguage=t;const e=this.getStyle().layers,o=/^\s*{\s*name\s*(:\s*(\S*))?\s*}$/,h=/^\s*name\s*(:\s*(\S*))?\s*$/,s=/^\s*{\s*name\s*(:\s*(\S*))?\s*}(\s*){\s*name\s*(:\s*(\S*))?\s*}$/;let i;for(let c=0;c<e.length;c+=1){const a=e[c],y=a.layout;if(!y||!y["text-field"])continue;const u=this.getLayoutProperty(a.id,"text-field");let f;if(Array.isArray(u)&&u.length>=2&&u[0].trim().toLowerCase()==="concat"){f=u.slice();let n=0;for(let p=0;p<u.length;p+=1){const l=u[p];if((typeof l=="string"||l instanceof String)&&o.exec(l.toString())){if(n===1){f[p]=`{name:${t}}`;break}n+=1}else if(Array.isArray(l)&&l.length>=2&&l[0].trim().toLowerCase()==="get"&&h.exec(l[1].toString())){if(n===1){f[p][1]=`name:${t}`;break}n+=1}else if(Array.isArray(l)&&l.length===4&&l[0].trim().toLowerCase()==="case"){if(n===1){f[p]=["get",`name:${t}`];break}n+=1}}this.setLayoutProperty(a.id,"text-field",f)}else if((typeof u=="string"||u instanceof String)&&(i=s.exec(u.toString()))!==null){const n=t?`name:${t}`:"name";f=`{name${i[1]||""}}${i[3]}{${n}}`,this.setLayoutProperty(a.id,"text-field",f)}}})}getTerrainExaggeration(){return this.terrainExaggeration}hasTerrain(){return this.isTerrainEnabled}enableTerrain(t=this.terrainExaggeration){if(t<0){console.warn("Terrain exaggeration cannot be negative.");return}const e=this.getTerrain(),o=()=>{this.isTerrainEnabled=!0,this.terrainExaggeration=t,this.addSource(d.terrainSourceId,{type:"raster-dem",url:d.terrainSourceURL}),this.setTerrain({source:d.terrainSourceId,exaggeration:t})};if(e){this.setTerrain($(B({},e),{exaggeration:t}));return}this.loaded()||this.isTerrainEnabled?o():this.once("load",()=>{this.getTerrain()&&this.getSource(d.terrainSourceId)||o()})}disableTerrain(){this.isTerrainEnabled=!1,this.setTerrain(null),this.getSource(d.terrainSourceId)&&this.removeSource(d.terrainSourceId)}setTerrainExaggeration(t){this.enableTerrain(t)}onStyleReady(t){this.isStyleLoaded()?t():this.once("styledata",()=>{t()})}fitToIpBounds(){return C(this,null,function*(){const t=yield I.info();this.fitBounds(t.country_bounds,{duration:0,padding:100})})}centerOnIpPoint(t){return C(this,null,function*(){const e=yield I.info();this.jumpTo({center:[e.longitude,e.latitude],zoom:t||11})})}getCameraHash(){const t=new Float32Array(5),e=this.getCenter();return t[0]=e.lng,t[1]=e.lat,t[2]=this.getZoom(),t[3]=this.getPitch(),t[4]=this.getBearing(),j.fromUint8Array(new Uint8Array(t.buffer))}}class b{constructor(t,e){this.x=t,this.y=e}_matMult(t){const e=t[0]*this.x+t[1]*this.y,o=t[2]*this.x+t[3]*this.y;return this.x=e,this.y=o,this}_add(t){return this.x+=t.x,this.y+=t.y,this}_sub(t){return this.x-=t.x,this.y-=t.y,this}_mult(t){return this.x*=t,this.y*=t,this}_div(t){return this.x/=t,this.y/=t,this}_multByPoint(t){return this.x*=t.x,this.y*=t.y,this}_divByPoint(t){return this.x/=t.x,this.y/=t.y,this}_unit(){return this._div(this.mag()),this}_perp(){const t=this.y;return this.y=this.x,this.x=-t,this}_rotate(t){const e=Math.cos(t),o=Math.sin(t),h=e*this.x-o*this.y,s=o*this.x+e*this.y;return this.x=h,this.y=s,this}_rotateAround(t,e){const o=Math.cos(t),h=Math.sin(t),s=e.x+o*(this.x-e.x)-h*(this.y-e.y),i=e.y+h*(this.x-e.x)+o*(this.y-e.y);return this.x=s,this.y=i,this}_round(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}clone(){return new b(this.x,this.y)}add(t){return this.clone()._add(t)}sub(t){return this.clone()._sub(t)}multByPoint(t){return this.clone()._multByPoint(t)}divByPoint(t){return this.clone()._divByPoint(t)}mult(t){return this.clone()._mult(t)}div(t){return this.clone()._div(t)}rotate(t){return this.clone()._rotate(t)}rotateAround(t,e){return this.clone()._rotateAround(t,e)}matMult(t){return this.clone()._matMult(t)}unit(){return this.clone()._unit()}perp(){return this.clone()._perp()}round(){return this.clone()._round()}mag(){return Math.sqrt(this.x*this.x+this.y*this.y)}equals(t){return this.x===t.x&&this.y===t.y}dist(t){return Math.sqrt(this.distSqr(t))}distSqr(t){const e=t.x-this.x,o=t.y-this.y;return e*e+o*o}angle(){return Math.atan2(this.y,this.x)}angleTo(t){return Math.atan2(this.y-t.y,this.x-t.x)}angleWith(t){return this.angleWithSep(t.x,t.y)}angleWithSep(t,e){return Math.atan2(this.x*e-this.y*t,this.x*t+this.y*e)}static convert(t){return t instanceof b?t:Array.isArray(t)?new b(t[0],t[1]):t}}const{supported:ft,setRTLTextPlugin:_t,getRTLTextPluginStatus:St,NavigationControl:At,GeolocateControl:Lt,AttributionControl:Ct,LogoControl:bt,ScaleControl:xt,FullscreenControl:Tt,TerrainControl:It,Popup:vt,Marker:Et,Style:Nt,LngLat:wt,LngLatBounds:Rt,MercatorCoordinate:Pt,Evented:Ot,AJAXError:Ut,CanvasSource:kt,GeoJSONSource:Mt,ImageSource:Bt,RasterDEMTileSource:$t,RasterTileSource:Ht,VectorTileSource:jt,VideoSource:Kt,prewarm:Gt,clearPrewarmedResources:Dt,version:zt,workerCount:Vt,maxParallelImageRequests:Ft,clearStorage:Zt,workerUrl:qt,addProtocol:Jt,removeProtocol:Wt}=m;export{Ut as AJAXError,Ct as AttributionControl,kt as CanvasSource,Ot as Evented,Tt as FullscreenControl,Mt as GeoJSONSource,Lt as GeolocateControl,H as GeolocationType,Bt as ImageSource,S as Language,oe as LanguageGeocoding,wt as LngLat,Rt as LngLatBounds,bt as LogoControl,yt as Map,ne as MapStyle,se as MapStyleVariant,Et as Marker,Pt as MercatorCoordinate,At as NavigationControl,b as Point,vt as Popup,$t as RasterDEMTileSource,Ht as RasterTileSource,le as ReferenceMapStyle,xt as ScaleControl,E as SdkConfig,ce as ServiceError,Nt as Style,It as TerrainControl,jt as VectorTileSource,Kt as VideoSource,Jt as addProtocol,Dt as clearPrewarmedResources,Zt as clearStorage,g as config,he as coordinates,ue as data,ge as geocoding,de as geolocation,St as getRTLTextPluginStatus,Ft as maxParallelImageRequests,Gt as prewarm,Wt as removeProtocol,_t as setRTLTextPlugin,pe as staticMaps,ft as supported,zt as version,Vt as workerCount,qt as workerUrl};
@@ -220,7 +220,11 @@ function styleToStyle(style) {
220
220
  return MapStyle[mapStylePresetList[0].referenceStyleID].getDefaultVariant().getExpandedStyleURL();
221
221
  }
222
222
  if (typeof style === "string" || style instanceof String) {
223
- return expandMapStyle(style);
223
+ if (!style.startsWith("http") && style.toLowerCase().includes(".json")) {
224
+ return style;
225
+ } else {
226
+ return expandMapStyle(style);
227
+ }
224
228
  }
225
229
  if (style instanceof MapStyleVariant) {
226
230
  return style.getExpandedStyleURL();
@@ -324,6 +328,8 @@ class MaptilerNavigationControl extends maplibregl__default.NavigationControl {
324
328
  }
325
329
 
326
330
  var __defProp$1 = Object.defineProperty;
331
+ var __defProps$1 = Object.defineProperties;
332
+ var __getOwnPropDescs$1 = Object.getOwnPropertyDescriptors;
327
333
  var __getOwnPropSymbols$1 = Object.getOwnPropertySymbols;
328
334
  var __hasOwnProp$1 = Object.prototype.hasOwnProperty;
329
335
  var __propIsEnum$1 = Object.prototype.propertyIsEnumerable;
@@ -339,6 +345,7 @@ var __spreadValues$1 = (a, b) => {
339
345
  }
340
346
  return a;
341
347
  };
348
+ var __spreadProps$1 = (a, b) => __defProps$1(a, __getOwnPropDescs$1(b));
342
349
  const GeolocateControl$1 = maplibregl__default.GeolocateControl;
343
350
  const Marker$1 = maplibregl__default.Marker;
344
351
  const LngLat$1 = maplibregl__default.LngLat;
@@ -354,16 +361,20 @@ class CustomGeolocateControl extends GeolocateControl$1 {
354
361
  );
355
362
  const radius = position.coords.accuracy;
356
363
  const bearing = this._map.getBearing();
357
- const options = __spreadValues$1({
364
+ const options = __spreadProps$1(__spreadValues$1({
358
365
  bearing
359
- }, this.options.fitBoundsOptions);
360
- console.log("moving camera");
366
+ }, this.options.fitBoundsOptions), {
367
+ linear: true
368
+ });
369
+ const currentMapZoom = this._map.getZoom();
370
+ if (currentMapZoom > this.options.fitBoundsOptions.maxZoom) {
371
+ options.zoom = currentMapZoom;
372
+ }
361
373
  this._map.fitBounds(center.toBounds(radius), options, {
362
374
  geolocateSource: true
363
375
  });
364
376
  let hasFittingBeenDisrupted = false;
365
377
  const flagFittingDisruption = () => {
366
- console.log("DISRUPTED FITTING!");
367
378
  hasFittingBeenDisrupted = true;
368
379
  };
369
380
  this._map.once("click", flagFittingDisruption);
@@ -373,7 +384,6 @@ class CustomGeolocateControl extends GeolocateControl$1 {
373
384
  this._map.once("touchstart", flagFittingDisruption);
374
385
  this._map.once("wheel", flagFittingDisruption);
375
386
  this._map.once("moveend", () => {
376
- console.log("done moving, with disruption:", hasFittingBeenDisrupted);
377
387
  this._map.off("click", flagFittingDisruption);
378
388
  this._map.off("dblclick", flagFittingDisruption);
379
389
  this._map.off("dragstart", flagFittingDisruption);
@@ -529,7 +539,6 @@ class Map extends maplibregl__default.Map {
529
539
  constructor(options) {
530
540
  var _a;
531
541
  const style = styleToStyle(options.style);
532
- console.log(style);
533
542
  const hashPreConstructor = location.hash;
534
543
  if (!config.apiKey) {
535
544
  console.warn(
@@ -540,7 +549,15 @@ class Map extends maplibregl__default.Map {
540
549
  style,
541
550
  maplibreLogo: false,
542
551
  transformRequest: (url) => {
543
- const reqUrl = new URL(url);
552
+ let reqUrl = null;
553
+ try {
554
+ reqUrl = new URL(url);
555
+ } catch (e) {
556
+ return {
557
+ url,
558
+ headers: {}
559
+ };
560
+ }
544
561
  if (reqUrl.host === defaults.maptilerApiHost) {
545
562
  if (!reqUrl.searchParams.has("key")) {
546
563
  reqUrl.searchParams.append("key", config.apiKey);