@maptiler/sdk
Version:
The Javascript & TypeScript map SDK tailored for MapTiler Cloud
2,616 lines • 405 kB
JavaScript
var ni = Object.defineProperty;
var Tn = (r) => {
throw TypeError(r);
};
var ai = (r, e, t) => e in r ? ni(r, e, { enumerable: !0, configurable: !0, writable: !0, value: t }) : r[e] = t;
var v = (r, e, t) => ai(r, typeof e != "symbol" ? e + "" : e, t), hr = (r, e, t) => e.has(r) || Tn("Cannot " + t);
var k = (r, e, t) => (hr(r, e, "read from private field"), t ? t.call(r) : e.get(r)), Z = (r, e, t) => e.has(r) ? Tn("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(r) : e.set(r, t), K = (r, e, t, n) => (hr(r, e, "write to private field"), n ? n.call(r, t) : e.set(r, t), t), Y = (r, e, t) => (hr(r, e, "access private method"), t);
import L from "maplibre-gl";
import { Language as oi, getLanguageInfoFromCode as _n, config as mr, MapStyle as ft, mapStylePresetList as yr, expandMapStyle as ii, MapStyleVariant as si, ReferenceMapStyle as li, toLanguageInfo as In, getLanguageInfoFromFlag as ui, geolocation as Mn } from "@maptiler/client";
import { MapStyle as tf, MapStyleVariant as rf, ReferenceMapStyle as nf, ServiceError as af, areSameLanguages as of, bufferToPixelDataBrowser as sf, canParsePixelData as lf, circumferenceAtLatitude as uf, coordinates as cf, data as pf, elevation as ff, expandMapStyle as df, geocoding as hf, geolocation as mf, getAutoLanguage as yf, getBufferToPixelDataParser as gf, getLanguageInfoFromCode as vf, getLanguageInfoFromFlag as bf, getLanguageInfoFromKey as wf, getTileCache as Sf, isLanguageInfo as xf, mapStylePresetList as kf, math as Lf, misc as Cf, staticMaps as Ef, styleToStyle as Af, toLanguageInfo as Tf } from "@maptiler/client";
import ci from "events";
import { v4 as pi } from "uuid";
import { Base64 as fi } from "js-base64";
const z = {
/**
* Language mode to display labels in both the local language and the language of the visitor's device, concatenated.
* Note that if those two languages are the same, labels won't be duplicated.
*/
VISITOR: {
code: null,
flag: "visitor",
name: "Visitor",
latin: !0,
isMode: !0,
geocoding: !1
},
/**
* Language mode to display labels in both the local language and English, concatenated.
* Note that if those two languages are the same, labels won't be duplicated.
*/
VISITOR_ENGLISH: {
code: null,
flag: "visitor_en",
name: "Visitor English",
latin: !0,
isMode: !0,
geocoding: !1
},
/**
* Language mode to display labels in a language enforced in the style.
*/
STYLE: {
code: null,
flag: "style",
name: "Style",
latin: !1,
isMode: !0,
geocoding: !1
},
/**
* Language mode to display labels in a language enforced in the style. The language cannot be further modified.
*/
STYLE_LOCK: {
code: null,
flag: "style_lock",
name: "Style Lock",
latin: !1,
isMode: !0,
geocoding: !1
},
...oi
};
function Pn() {
if (typeof navigator > "u") {
const e = Intl.DateTimeFormat().resolvedOptions().locale.split("-")[0], t = _n(e);
return t || z.ENGLISH;
}
return Array.from(new Set(navigator.languages.map((e) => e.split("-")[0]))).map((e) => _n(e)).filter((e) => e)[0] ?? z.LOCAL;
}
const X = {
maptilerLogoURL: "https://api.maptiler.com/resources/logo.svg",
maptilerURL: "https://www.maptiler.com/",
maptilerApiHost: "api.maptiler.com",
telemetryURL: "https://api.maptiler.com/metrics",
rtlPluginURL: "https://cdn.maptiler.com/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.min.js",
primaryLanguage: z.STYLE,
secondaryLanguage: z.LOCAL,
terrainSourceURL: "https://api.maptiler.com/tiles/terrain-rgb-v2/tiles.json",
terrainSourceId: "maptiler-terrain"
};
Object.freeze(X);
const tn = pi();
class di extends ci {
constructor() {
super(...arguments);
/**
* The primary language. By default, the language of the web browser is used.
*/
v(this, "primaryLanguage", X.primaryLanguage);
/**
* The secondary language, to overwrite the default language defined in the map style.
* This settings is highly dependant on the style compatibility and may not work in most cases.
*/
v(this, "secondaryLanguage");
/**
* Setting on whether of not the SDK runs with a session logic.
* A "session" is started at the initialization of the SDK and finished when the browser
* page is being refreshed.
* When `session` is enabled (default: true), the extra URL param `mtsid` is added to queries
* on the MapTiler Cloud API. This allows MapTiler to enable "session based billing".
*/
v(this, "session", !0);
/**
* Enables client-side caching of requests for tiles and fonts.
* The cached requests persist multiple browser sessions and will be reused when possible.
* Works only for requests to the MapTiler Cloud API when sessions are enabled.
*/
v(this, "caching", !0);
/**
* Telemetry is enabled by default but can be opted-out by setting this value to `false`.
* The telemetry is very valuable to the team at MapTiler because it shares information
* about where to add the extra effort. It also helps spotting some incompatibility issues
* that may arise between the SDK and a specific version of a module.
*
* It consists in sending metrics about usage of the following features:
* - SDK version [string]
* - API key [string]
* - MapTiler sesion ID (if opted-in) [string]
* - if tile caching is enabled [boolean]
* - if language specified at initialization [boolean]
* - if terrain is activated at initialization [boolean]
* - if globe projection is activated at initialization [boolean]
*
* In addition, each official module will be added to a list, alongside its version number.
*/
v(this, "telemetry", !0);
/**
* Unit to be used
*/
v(this, "_unit", "metric");
/**
* MapTiler Cloud API key
*/
v(this, "_apiKey", "");
}
/**
* Set the unit system
*/
set unit(t) {
this._unit = t, this.emit("unit", t);
}
/**
* Get the unit system
*/
get unit() {
return this._unit;
}
/**
* Set the MapTiler Cloud API key
*/
set apiKey(t) {
this._apiKey = t, mr.apiKey = t, this.emit("apiKey", t);
}
/**
* Get the MapTiler Cloud API key
*/
get apiKey() {
return this._apiKey;
}
/**
* Set a the custom fetch function to replace the default one
*/
set fetch(t) {
mr.fetch = t;
}
/**
* Get the fetch fucntion
*/
get fetch() {
return mr.fetch;
}
}
const j = new di(), zr = "localcache_source", Fr = "localcache", hi = "maptiler_sdk", mi = 1e3, yi = 100, $r = typeof caches < "u", { addProtocol: Rn } = L;
function gi(r, e) {
if ($r && j.caching && j.session && r.host === X.maptilerApiHost) {
if (e === "Source" && r.href.includes("tiles.json"))
return r.href.replace("https://", `${zr}://`);
if (e === "Tile" || e === "Glyphs")
return r.href.replace("https://", `${Fr}://`);
}
return r.href;
}
let gr;
async function _a() {
return gr || (gr = await caches.open(hi)), gr;
}
let zn = 0;
async function vi() {
const r = await _a(), e = await r.keys(), t = e.slice(0, Math.max(e.length - mi, 0));
for (const n of t)
r.delete(n);
}
function bi() {
Rn(
zr,
async (r, e) => {
if (!r.url) throw new Error("");
r.url = r.url.replace(`${zr}://`, "https://");
const t = r;
t.signal = e.signal;
const n = await fetch(r.url, t), a = await n.json();
return a.tiles && a.tiles.length > 0 && (a.tiles[0] += `&last-modified=${n.headers.get("Last-Modified")}`), {
data: a,
cacheControl: n.headers.get("Cache-Control"),
expires: n.headers.get("Expires")
};
}
), Rn(Fr, async (r, e) => {
if (!r.url) throw new Error("");
r.url = r.url.replace(`${Fr}://`, "https://");
const t = new URL(r.url), n = new URL(t);
n.searchParams.delete("mtsid"), n.searchParams.delete("key");
const a = n.toString(), o = new URL(t);
o.searchParams.delete("last-modified");
const i = o.toString(), s = async (d) => ({
data: await d.arrayBuffer(),
cacheControl: d.headers.get("Cache-Control"),
expires: d.headers.get("Expires")
}), l = await _a(), u = await l.match(a);
if (u)
return s(u);
const c = r;
c.signal = e.signal;
const p = await fetch(i, c);
return p.status >= 200 && p.status < 300 && (l.put(a, p.clone()).catch(() => {
}), ++zn > yi && (vi(), zn = 0)), s(p);
});
}
function wi() {
if (typeof window > "u") return;
const r = L.getRTLTextPluginStatus();
if (r === "unavailable" || r === "requested")
try {
L.setRTLTextPlugin(X.rtlPluginURL, !0);
} catch {
}
}
function Si(r, e) {
for (const t of r)
typeof e[t] == "function" && (e[t] = e[t].bind(e));
}
function Fn(r, e) {
let t = null;
try {
t = new URL(r);
} catch {
return {
url: r
};
}
return t.host === X.maptilerApiHost && (t.searchParams.has("key") || t.searchParams.append("key", j.apiKey), j.session && t.searchParams.append("mtsid", tn)), {
url: gi(t, e)
};
}
function $n(r) {
return (e, t) => {
if (r != null) {
const n = r(e, t), a = Fn((n == null ? void 0 : n.url) ?? "", t);
return {
...n,
...a
};
}
return Fn(e, t);
};
}
function Ia() {
return Math.random().toString(36).substring(2);
}
function Yt(r) {
return /^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/gi.test(r);
}
function xi(r) {
try {
return JSON.parse(r);
} catch {
}
return null;
}
function ki() {
return document.createElement("canvas").getContext("webgl2") ? null : typeof WebGL2RenderingContext < "u" ? "Graphic rendering with WebGL2 has been disabled or is not supported by your graphic card. The map cannot be displayed." : "Your browser does not support graphic rendering with WebGL2. The map cannot be displayed.";
}
function Li(r) {
const e = ki();
if (!e) return;
let t = null;
if (typeof r == "string" ? t = document.getElementById(r) : r instanceof HTMLElement && (t = r), !t)
throw new Error("The Map container must be provided.");
const n = document.createElement("div");
throw n.innerHTML = e, n.classList.add("webgl-warning-div"), t.appendChild(n), new Error(e);
}
function Ic(r) {
const e = "The WebGL context was lost.", t = r.getContainer(), n = document.createElement("div");
n.innerHTML = e, n.classList.add("webgl-warning-div"), t.appendChild(n);
}
function On(r, e) {
return !(!Array.isArray(r) || r.length !== 2 || r[0] !== "get" || typeof r[1] != "string" || e && !r[1].startsWith("name:") || !e && r[1] !== "name");
}
function Ci(r, e, t) {
const n = structuredClone(r), a = (o) => {
if (typeof o != "string")
for (let i = 0; i < o.length; i += 1)
On(o[i], t) ? o[i] = structuredClone(e) : a(o[i]);
};
return On(n, t) ? e : (a(n), n);
}
function Ei(r, e) {
const t = e ? /\{name:\S+\}/ : /\{name\}/;
return {
contains: t.test(r),
exactMatch: new RegExp(`^${t.source}$`).test(r)
};
}
function Ai(r, e, t) {
const n = t ? /\{name:\S+\}/ : /\{name\}/, a = r.split(n);
return ["concat", ...a.flatMap((s, l) => l === a.length - 1 ? [s] : [s, e])];
}
function Ti(r) {
var n;
const e = /\{name(?::(?<language>\S+))?\}/g, t = [];
for (; ; ) {
const a = e.exec(r);
if (!a) break;
const o = ((n = a.groups) == null ? void 0 : n.language) ?? null;
t.push(o);
}
return t;
}
function _i(r) {
return !Array.isArray(r) || r.length !== 2 || r[0] !== "get" || typeof r[1] != "string" ? null : r[1].trim() === "name" ? {
isLanguage: !0,
localization: null
} : r[1].trim().startsWith("name:") ? {
isLanguage: !0,
localization: r[1].trim().split(":").pop()
} : null;
}
function Ii(r) {
const e = [], t = structuredClone(r), n = (a) => {
if (typeof a != "string")
for (let o = 0; o < a.length; o += 1) {
const i = _i(a[o]);
i ? e.push(i.localization) : n(a[o]);
}
};
return n([t]), e;
}
function Mi(r, e) {
const t = [];
for (const o of r) {
if (o.type !== "symbol")
continue;
const i = o, { id: s, layout: l } = i;
if (!l || !("text-field" in l))
continue;
const u = e.getLayoutProperty(s, "text-field");
if (u)
if (typeof u == "string") {
const c = Ti(u);
t.push(c);
} else {
const c = Ii(u);
t.push(c);
}
}
const n = t.flat(), a = {
unlocalized: 0,
localized: {}
};
for (const o of n)
o === null ? a.unlocalized += 1 : (o in a.localized || (a.localized[o] = 0), a.localized[o] += 1);
return a;
}
let Mc = class extends L.Marker {
addTo(e) {
return super.addTo(e);
}
};
class Rc extends L.Popup {
addTo(e) {
return super.addTo(e);
}
}
class zc extends L.Style {
constructor(e, t = {}) {
super(e, t);
}
}
class Fc extends L.CanvasSource {
onAdd(e) {
super.onAdd(e);
}
}
class $c extends L.GeoJSONSource {
onAdd(e) {
super.onAdd(e);
}
}
class Oc extends L.ImageSource {
onAdd(e) {
super.onAdd(e);
}
}
class Nc extends L.RasterTileSource {
onAdd(e) {
super.onAdd(e);
}
}
class jc extends L.RasterDEMTileSource {
onAdd(e) {
super.onAdd(e);
}
}
class Uc extends L.VectorTileSource {
onAdd(e) {
super.onAdd(e);
}
}
class Dc extends L.VideoSource {
onAdd(e) {
super.onAdd(e);
}
}
class Ma extends L.NavigationControl {
onAdd(e) {
return super.onAdd(e);
}
}
class Pi extends L.GeolocateControl {
onAdd(e) {
return super.onAdd(e);
}
}
class Bc extends L.AttributionControl {
onAdd(e) {
return super.onAdd(e);
}
}
class Ri extends L.LogoControl {
onAdd(e) {
return super.onAdd(e);
}
}
class zi extends L.ScaleControl {
onAdd(e) {
return super.onAdd(e);
}
}
class Fi extends L.FullscreenControl {
onAdd(e) {
return super.onAdd(e);
}
}
class qc extends L.TerrainControl {
onAdd(e) {
return super.onAdd(e);
}
}
class Vc extends L.BoxZoomHandler {
constructor(e, t) {
super(e, t);
}
}
class Gc extends L.ScrollZoomHandler {
constructor(e, t) {
super(e, t);
}
}
class Hc extends L.CooperativeGesturesHandler {
constructor(e, t) {
super(e, t);
}
}
class Zc extends L.KeyboardHandler {
constructor(e) {
super(e);
}
}
class Xc extends L.TwoFingersTouchPitchHandler {
constructor(e) {
super(e);
}
}
class Kc extends L.MapWheelEvent {
constructor(e, t, n) {
super(e, t, n);
}
}
class Yc extends L.MapTouchEvent {
constructor(e, t, n) {
super(e, t, n);
}
}
class Wc extends L.MapMouseEvent {
constructor(e, t, n, a = {}) {
super(e, t, n, a);
}
}
class Nn extends Ri {
constructor(t = {}) {
super(t);
v(this, "logoURL", "");
v(this, "linkURL", "");
this.logoURL = t.logoURL ?? X.maptilerLogoURL, this.linkURL = t.linkURL ?? X.maptilerURL;
}
onAdd(t) {
this._map = t, this._compact = this.options.compact ?? !1, this._container = window.document.createElement("div"), this._container.className = "maplibregl-ctrl";
const n = window.document.createElement("a");
return n.style.backgroundRepeat = "no-repeat", n.style.cursor = "pointer", n.style.display = "block", n.style.height = "23px", n.style.margin = "0 0 -4px -4px", n.style.overflow = "hidden", n.style.width = "88px", n.style.backgroundImage = `url(${this.logoURL})`, n.style.backgroundSize = "100px 30px", n.style.width = "100px", n.style.height = "30px", n.target = "_blank", n.rel = "noopener", n.href = this.linkURL, n.setAttribute("aria-label", "MapTiler logo"), n.setAttribute("rel", "noopener"), this._container.appendChild(n), this._container.style.display = "block", this._map.on("resize", this._updateCompact), this._updateCompact(), this._container;
}
}
var $i = 8, Oi = {
version: {
required: !0,
type: "enum",
values: [
8
]
},
name: {
type: "string"
},
metadata: {
type: "*"
},
center: {
type: "array",
value: "number"
},
centerAltitude: {
type: "number"
},
zoom: {
type: "number"
},
bearing: {
type: "number",
default: 0,
period: 360,
units: "degrees"
},
pitch: {
type: "number",
default: 0,
units: "degrees"
},
roll: {
type: "number",
default: 0,
units: "degrees"
},
state: {
type: "state",
default: {}
},
light: {
type: "light"
},
sky: {
type: "sky"
},
projection: {
type: "projection"
},
terrain: {
type: "terrain"
},
sources: {
required: !0,
type: "sources"
},
sprite: {
type: "sprite"
},
glyphs: {
type: "string"
},
transition: {
type: "transition"
},
layers: {
required: !0,
type: "array",
value: "layer"
}
}, Ni = {
"*": {
type: "source"
}
}, ji = [
"source_vector",
"source_raster",
"source_raster_dem",
"source_geojson",
"source_video",
"source_image"
], Ui = {
type: {
required: !0,
type: "enum",
values: {
vector: {}
}
},
url: {
type: "string"
},
tiles: {
type: "array",
value: "string"
},
bounds: {
type: "array",
value: "number",
length: 4,
default: [
-180,
-85.051129,
180,
85.051129
]
},
scheme: {
type: "enum",
values: {
xyz: {},
tms: {}
},
default: "xyz"
},
minzoom: {
type: "number",
default: 0
},
maxzoom: {
type: "number",
default: 22
},
attribution: {
type: "string"
},
promoteId: {
type: "promoteId"
},
volatile: {
type: "boolean",
default: !1
},
"*": {
type: "*"
}
}, Di = {
type: {
required: !0,
type: "enum",
values: {
raster: {}
}
},
url: {
type: "string"
},
tiles: {
type: "array",
value: "string"
},
bounds: {
type: "array",
value: "number",
length: 4,
default: [
-180,
-85.051129,
180,
85.051129
]
},
minzoom: {
type: "number",
default: 0
},
maxzoom: {
type: "number",
default: 22
},
tileSize: {
type: "number",
default: 512,
units: "pixels"
},
scheme: {
type: "enum",
values: {
xyz: {},
tms: {}
},
default: "xyz"
},
attribution: {
type: "string"
},
volatile: {
type: "boolean",
default: !1
},
"*": {
type: "*"
}
}, Bi = {
type: {
required: !0,
type: "enum",
values: {
"raster-dem": {}
}
},
url: {
type: "string"
},
tiles: {
type: "array",
value: "string"
},
bounds: {
type: "array",
value: "number",
length: 4,
default: [
-180,
-85.051129,
180,
85.051129
]
},
minzoom: {
type: "number",
default: 0
},
maxzoom: {
type: "number",
default: 22
},
tileSize: {
type: "number",
default: 512,
units: "pixels"
},
attribution: {
type: "string"
},
encoding: {
type: "enum",
values: {
terrarium: {},
mapbox: {},
custom: {}
},
default: "mapbox"
},
redFactor: {
type: "number",
default: 1
},
blueFactor: {
type: "number",
default: 1
},
greenFactor: {
type: "number",
default: 1
},
baseShift: {
type: "number",
default: 0
},
volatile: {
type: "boolean",
default: !1
},
"*": {
type: "*"
}
}, qi = {
type: {
required: !0,
type: "enum",
values: {
geojson: {}
}
},
data: {
required: !0,
type: "*"
},
maxzoom: {
type: "number",
default: 18
},
attribution: {
type: "string"
},
buffer: {
type: "number",
default: 128,
maximum: 512,
minimum: 0
},
filter: {
type: "*"
},
tolerance: {
type: "number",
default: 0.375
},
cluster: {
type: "boolean",
default: !1
},
clusterRadius: {
type: "number",
default: 50,
minimum: 0
},
clusterMaxZoom: {
type: "number"
},
clusterMinPoints: {
type: "number"
},
clusterProperties: {
type: "*"
},
lineMetrics: {
type: "boolean",
default: !1
},
generateId: {
type: "boolean",
default: !1
},
promoteId: {
type: "promoteId"
}
}, Vi = {
type: {
required: !0,
type: "enum",
values: {
video: {}
}
},
urls: {
required: !0,
type: "array",
value: "string"
},
coordinates: {
required: !0,
type: "array",
length: 4,
value: {
type: "array",
length: 2,
value: "number"
}
}
}, Gi = {
type: {
required: !0,
type: "enum",
values: {
image: {}
}
},
url: {
required: !0,
type: "string"
},
coordinates: {
required: !0,
type: "array",
length: 4,
value: {
type: "array",
length: 2,
value: "number"
}
}
}, Hi = {
id: {
type: "string",
required: !0
},
type: {
type: "enum",
values: {
fill: {},
line: {},
symbol: {},
circle: {},
heatmap: {},
"fill-extrusion": {},
raster: {},
hillshade: {},
"color-relief": {},
background: {}
},
required: !0
},
metadata: {
type: "*"
},
source: {
type: "string"
},
"source-layer": {
type: "string"
},
minzoom: {
type: "number",
minimum: 0,
maximum: 24
},
maxzoom: {
type: "number",
minimum: 0,
maximum: 24
},
filter: {
type: "filter"
},
layout: {
type: "layout"
},
paint: {
type: "paint"
}
}, Zi = [
"layout_fill",
"layout_line",
"layout_circle",
"layout_heatmap",
"layout_fill-extrusion",
"layout_symbol",
"layout_raster",
"layout_hillshade",
"layout_color-relief",
"layout_background"
], Xi = {
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, Ki = {
"fill-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, Yi = {
"circle-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, Wi = {
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, Ji = {
"line-cap": {
type: "enum",
values: {
butt: {},
round: {},
square: {}
},
default: "butt",
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"line-join": {
type: "enum",
values: {
bevel: {},
round: {},
miter: {}
},
default: "miter",
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"line-miter-limit": {
type: "number",
default: 2,
requires: [
{
"line-join": "miter"
}
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"line-round-limit": {
type: "number",
default: 1.05,
requires: [
{
"line-join": "round"
}
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"line-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, Qi = {
"symbol-placement": {
type: "enum",
values: {
point: {},
line: {},
"line-center": {}
},
default: "point",
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"symbol-spacing": {
type: "number",
default: 250,
minimum: 1,
units: "pixels",
requires: [
{
"symbol-placement": "line"
}
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"symbol-avoid-edges": {
type: "boolean",
default: !1,
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"symbol-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"symbol-z-order": {
type: "enum",
values: {
auto: {},
"viewport-y": {},
source: {}
},
default: "auto",
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-allow-overlap": {
type: "boolean",
default: !1,
requires: [
"icon-image",
{
"!": "icon-overlap"
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-overlap": {
type: "enum",
values: {
never: {},
always: {},
cooperative: {}
},
requires: [
"icon-image"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-ignore-placement": {
type: "boolean",
default: !1,
requires: [
"icon-image"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-optional": {
type: "boolean",
default: !1,
requires: [
"icon-image",
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-rotation-alignment": {
type: "enum",
values: {
map: {},
viewport: {},
auto: {}
},
default: "auto",
requires: [
"icon-image"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-size": {
type: "number",
default: 1,
minimum: 0,
units: "factor of the original icon size",
requires: [
"icon-image"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"icon-text-fit": {
type: "enum",
values: {
none: {},
width: {},
height: {},
both: {}
},
default: "none",
requires: [
"icon-image",
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-text-fit-padding": {
type: "array",
value: "number",
length: 4,
default: [
0,
0,
0,
0
],
units: "pixels",
requires: [
"icon-image",
"text-field",
{
"icon-text-fit": [
"both",
"width",
"height"
]
}
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-image": {
type: "resolvedImage",
tokens: !0,
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"icon-rotate": {
type: "number",
default: 0,
period: 360,
units: "degrees",
requires: [
"icon-image"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"icon-padding": {
type: "padding",
default: [
2
],
units: "pixels",
requires: [
"icon-image"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"icon-keep-upright": {
type: "boolean",
default: !1,
requires: [
"icon-image",
{
"icon-rotation-alignment": "map"
},
{
"symbol-placement": [
"line",
"line-center"
]
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"icon-offset": {
type: "array",
value: "number",
length: 2,
default: [
0,
0
],
requires: [
"icon-image"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"icon-anchor": {
type: "enum",
values: {
center: {},
left: {},
right: {},
top: {},
bottom: {},
"top-left": {},
"top-right": {},
"bottom-left": {},
"bottom-right": {}
},
default: "center",
requires: [
"icon-image"
],
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"icon-pitch-alignment": {
type: "enum",
values: {
map: {},
viewport: {},
auto: {}
},
default: "auto",
requires: [
"icon-image"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-pitch-alignment": {
type: "enum",
values: {
map: {},
viewport: {},
auto: {}
},
default: "auto",
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-rotation-alignment": {
type: "enum",
values: {
map: {},
viewport: {},
"viewport-glyph": {},
auto: {}
},
default: "auto",
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-field": {
type: "formatted",
default: "",
tokens: !0,
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-font": {
type: "array",
value: "string",
default: [
"Open Sans Regular",
"Arial Unicode MS Regular"
],
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-size": {
type: "number",
default: 16,
minimum: 0,
units: "pixels",
requires: [
"text-field"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-max-width": {
type: "number",
default: 10,
minimum: 0,
units: "ems",
requires: [
"text-field"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-line-height": {
type: "number",
default: 1.2,
units: "ems",
requires: [
"text-field"
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-letter-spacing": {
type: "number",
default: 0,
units: "ems",
requires: [
"text-field"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-justify": {
type: "enum",
values: {
auto: {},
left: {},
center: {},
right: {}
},
default: "center",
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-radial-offset": {
type: "number",
units: "ems",
default: 0,
requires: [
"text-field"
],
"property-type": "data-driven",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
}
},
"text-variable-anchor": {
type: "array",
value: "enum",
values: {
center: {},
left: {},
right: {},
top: {},
bottom: {},
"top-left": {},
"top-right": {},
"bottom-left": {},
"bottom-right": {}
},
requires: [
"text-field",
{
"symbol-placement": [
"point"
]
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-variable-anchor-offset": {
type: "variableAnchorOffsetCollection",
requires: [
"text-field",
{
"symbol-placement": [
"point"
]
}
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-anchor": {
type: "enum",
values: {
center: {},
left: {},
right: {},
top: {},
bottom: {},
"top-left": {},
"top-right": {},
"bottom-left": {},
"bottom-right": {}
},
default: "center",
requires: [
"text-field",
{
"!": "text-variable-anchor"
}
],
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-max-angle": {
type: "number",
default: 45,
units: "degrees",
requires: [
"text-field",
{
"symbol-placement": [
"line",
"line-center"
]
}
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-writing-mode": {
type: "array",
value: "enum",
values: {
horizontal: {},
vertical: {}
},
requires: [
"text-field",
{
"symbol-placement": [
"point"
]
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-rotate": {
type: "number",
default: 0,
period: 360,
units: "degrees",
requires: [
"text-field"
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-padding": {
type: "number",
default: 2,
minimum: 0,
units: "pixels",
requires: [
"text-field"
],
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-keep-upright": {
type: "boolean",
default: !0,
requires: [
"text-field",
{
"text-rotation-alignment": "map"
},
{
"symbol-placement": [
"line",
"line-center"
]
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-transform": {
type: "enum",
values: {
none: {},
uppercase: {},
lowercase: {}
},
default: "none",
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-offset": {
type: "array",
value: "number",
units: "ems",
length: 2,
default: [
0,
0
],
requires: [
"text-field",
{
"!": "text-radial-offset"
}
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature"
]
},
"property-type": "data-driven"
},
"text-allow-overlap": {
type: "boolean",
default: !1,
requires: [
"text-field",
{
"!": "text-overlap"
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-overlap": {
type: "enum",
values: {
never: {},
always: {},
cooperative: {}
},
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-ignore-placement": {
type: "boolean",
default: !1,
requires: [
"text-field"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"text-optional": {
type: "boolean",
default: !1,
requires: [
"text-field",
"icon-image"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, es = {
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, ts = {
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
"property-type": "constant"
}
}, rs = {
type: "array",
value: "*"
}, ns = {
type: "enum",
values: {
"==": {},
"!=": {},
">": {},
">=": {},
"<": {},
"<=": {},
in: {},
"!in": {},
all: {},
any: {},
none: {},
has: {},
"!has": {}
}
}, as = {
type: "enum",
values: {
Point: {},
LineString: {},
Polygon: {}
}
}, os = {
type: "array",
minimum: 0,
maximum: 24,
value: [
"number",
"color"
],
length: 2
}, is = {
type: "array",
value: "*",
minimum: 1
}, ss = {
anchor: {
type: "enum",
default: "viewport",
values: {
map: {},
viewport: {}
},
"property-type": "data-constant",
transition: !1,
expression: {
interpolated: !1,
parameters: [
"zoom"
]
}
},
position: {
type: "array",
default: [
1.15,
210,
30
],
length: 3,
value: "number",
"property-type": "data-constant",
transition: !0,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
}
},
color: {
type: "color",
"property-type": "data-constant",
default: "#ffffff",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
intensity: {
type: "number",
"property-type": "data-constant",
default: 0.5,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
}
}, ls = {
"sky-color": {
type: "color",
"property-type": "data-constant",
default: "#88C6FC",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
"horizon-color": {
type: "color",
"property-type": "data-constant",
default: "#ffffff",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
"fog-color": {
type: "color",
"property-type": "data-constant",
default: "#ffffff",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
"fog-ground-blend": {
type: "number",
"property-type": "data-constant",
default: 0.5,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
"horizon-fog-blend": {
type: "number",
"property-type": "data-constant",
default: 0.8,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
"sky-horizon-blend": {
type: "number",
"property-type": "data-constant",
default: 0.8,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
},
"atmosphere-blend": {
type: "number",
"property-type": "data-constant",
default: 0.8,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
transition: !0
}
}, us = {
source: {
type: "string",
required: !0
},
exaggeration: {
type: "number",
minimum: 0,
default: 1
}
}, cs = {
type: {
type: "projectionDefinition",
default: "mercator",
"property-type": "data-constant",
transition: !1,
expression: {
interpolated: !0,
parameters: [
"zoom"
]
}
}
}, ps = [
"paint_fill",
"paint_line",
"paint_circle",
"paint_heatmap",
"paint_fill-extrusion",
"paint_symbol",
"paint_raster",
"paint_hillshade",
"paint_color-relief",
"paint_background"
], fs = {
"fill-antialias": {
type: "boolean",
default: !0,
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"fill-opacity": {
type: "number",
default: 1,
minimum: 0,
maximum: 1,
transition: !0,
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"fill-color": {
type: "color",
default: "#000000",
transition: !0,
requires: [
{
"!": "fill-pattern"
}
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"fill-outline-color": {
type: "color",
transition: !0,
requires: [
{
"!": "fill-pattern"
},
{
"fill-antialias": !0
}
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"fill-translate": {
type: "array",
value: "number",
length: 2,
default: [
0,
0
],
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"fill-translate-anchor": {
type: "enum",
values: {
map: {},
viewport: {}
},
default: "map",
requires: [
"fill-translate"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"fill-pattern": {
type: "resolvedImage",
transition: !0,
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "cross-faded-data-driven"
}
}, ds = {
"line-opacity": {
type: "number",
default: 1,
minimum: 0,
maximum: 1,
transition: !0,
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"line-color": {
type: "color",
default: "#000000",
transition: !0,
requires: [
{
"!": "line-pattern"
}
],
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"line-translate": {
type: "array",
value: "number",
length: 2,
default: [
0,
0
],
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"line-translate-anchor": {
type: "enum",
values: {
map: {},
viewport: {}
},
default: "map",
requires: [
"line-translate"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"line-width": {
type: "number",
default: 1,
minimum: 0,
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"line-gap-width": {
type: "number",
default: 0,
minimum: 0,
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"line-offset": {
type: "number",
default: 0,
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"line-blur": {
type: "number",
default: 0,
minimum: 0,
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"line-dasharray": {
type: "array",
value: "number",
minimum: 0,
transition: !0,
units: "line widths",
requires: [
{
"!": "line-pattern"
}
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "cross-faded"
},
"line-pattern": {
type: "resolvedImage",
transition: !0,
expression: {
interpolated: !1,
parameters: [
"zoom",
"feature"
]
},
"property-type": "cross-faded-data-driven"
},
"line-gradient": {
type: "color",
transition: !1,
requires: [
{
"!": "line-dasharray"
},
{
"!": "line-pattern"
},
{
source: "geojson",
has: {
lineMetrics: !0
}
}
],
expression: {
interpolated: !0,
parameters: [
"line-progress"
]
},
"property-type": "color-ramp"
}
}, hs = {
"circle-radius": {
type: "number",
default: 5,
minimum: 0,
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"circle-color": {
type: "color",
default: "#000000",
transition: !0,
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"circle-blur": {
type: "number",
default: 0,
transition: !0,
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"circle-opacity": {
type: "number",
default: 1,
minimum: 0,
maximum: 1,
transition: !0,
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature",
"feature-state"
]
},
"property-type": "data-driven"
},
"circle-translate": {
type: "array",
value: "number",
length: 2,
default: [
0,
0
],
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"circle-translate-anchor": {
type: "enum",
values: {
map: {},
viewport: {}
},
default: "map",
requires: [
"circle-translate"
],
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"circle-pitch-scale": {
type: "enum",
values: {
map: {},
viewport: {}
},
default: "map",
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"circle-pitch-alignment": {
type: "enum",
values: {
map: {},
viewport: {}
},
default: "viewport",
expression: {
interpolated: !1,
parameters: [
"zoom"
]
},
"property-type": "data-constant"
},
"circle-stroke-width": {
type: "number",
default: 0,
minimum: 0,
transition: !0,
units: "pixels",
expression: {
interpolated: !0,
parameters: [
"zoom",
"feature