@expofp/floorplan
Version:
Interactive floor plan library for expos and events
2,000 lines • 1.49 MB
JavaScript
function __vite_inject_css__(css, id, forceLightDom){ if (typeof document==='undefined') return; var shadow=!forceLightDom&&typeof window!=='undefined'&&window.__efpShadowDOMStyleParent; var parent=shadow||document.head; var s=document.createElement('style'); s.setAttribute('data-chunk-style', id); s.appendChild(document.createTextNode(css)); parent.appendChild(s);}
(function() {
try {
var e = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
e.SENTRY_RELEASE = { id: "3.7.8" };
var t = new e.Error().stack;
t && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[t] = "eb099dd0-7543-4ba9-8400-351b5d0eebc6", e._sentryDebugIdIdentifier = "sentry-dbid-eb099dd0-7543-4ba9-8400-351b5d0eebc6");
} catch {}
})();
import { r as e, t } from "./rolldown-runtime-YBAZwyzS.js";
import { t as n } from "./react-Di3Pmpio.js";
import { t as r } from "./jsx-runtime-C8yjdFgZ.js";
import { v as i } from "./i18n-BEer1tI4.js";
import { n as a } from "./Button-C4gPbjAY.js";
import { At as o, Ht as s, Kt as c, Lt as l, an as u, bt as d, fn as f, ln as p, nt as m, o as h, qt as g, s as _, sn as v, st as y, t as b, un as x, wt as S } from "./store-DTwRqruF.js";
import { r as C } from "./mobx-BLgYz-7U.js";
import { a as w, c as T, i as E, l as D, n as O, o as k, r as A, s as j, t as M, u as ee } from "./createWayfinding-Dqwtb_AQ.js";
//#region ../../node_modules/.pnpm/maplibre-gl@5.24.0/node_modules/maplibre-gl/dist/maplibre-gl.css
var N = /* @__PURE__ */ e(n(), 1), te = /* @__PURE__ */ e(x(), 1), ne = (/* @__PURE__ */ t(((e, t) => {
(function(n, r) {
typeof e == "object" && t !== void 0 ? t.exports = r() : typeof define == "function" && define.amd ? define(r) : (n = typeof globalThis < "u" ? globalThis : n || self, n.maplibregl = r());
})(e, (function() {
var e = {}, t = {};
function n(n, r, i) {
if (t[n] = i, n === "index") {
var a = "var sharedModule = {}; (" + t.shared + ")(sharedModule); (" + t.worker + ")(sharedModule);", o = {};
return t.shared(o), t.index(e, o), typeof window < "u" && e.setWorkerUrl(window.URL.createObjectURL(new Blob([a], { type: "text/javascript" }))), e;
}
}
return n("shared", ["exports"], (function(e) {
function t(e, t, n, r) {
return new (n || (n = Promise))((function(i, a) {
function o(e) {
try {
c(r.next(e));
} catch (e) {
a(e);
}
}
function s(e) {
try {
c(r.throw(e));
} catch (e) {
a(e);
}
}
function c(e) {
var t;
e.done ? i(e.value) : (t = e.value, t instanceof n ? t : new n((function(e) {
e(t);
}))).then(o, s);
}
c((r = r.apply(e, t || [])).next());
}));
}
function n(e, t) {
this.x = e, this.y = t;
}
function r(e) {
return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
}
var i, a;
n.prototype = {
clone() {
return new n(this.x, this.y);
},
add(e) {
return this.clone()._add(e);
},
sub(e) {
return this.clone()._sub(e);
},
multByPoint(e) {
return this.clone()._multByPoint(e);
},
divByPoint(e) {
return this.clone()._divByPoint(e);
},
mult(e) {
return this.clone()._mult(e);
},
div(e) {
return this.clone()._div(e);
},
rotate(e) {
return this.clone()._rotate(e);
},
rotateAround(e, t) {
return this.clone()._rotateAround(e, t);
},
matMult(e) {
return this.clone()._matMult(e);
},
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(e) {
return this.x === e.x && this.y === e.y;
},
dist(e) {
return Math.sqrt(this.distSqr(e));
},
distSqr(e) {
let t = e.x - this.x, n = e.y - this.y;
return t * t + n * n;
},
angle() {
return Math.atan2(this.y, this.x);
},
angleTo(e) {
return Math.atan2(this.y - e.y, this.x - e.x);
},
angleWith(e) {
return this.angleWithSep(e.x, e.y);
},
angleWithSep(e, t) {
return Math.atan2(this.x * t - this.y * e, this.x * e + this.y * t);
},
_matMult(e) {
let t = e[2] * this.x + e[3] * this.y;
return this.x = e[0] * this.x + e[1] * this.y, this.y = t, this;
},
_add(e) {
return this.x += e.x, this.y += e.y, this;
},
_sub(e) {
return this.x -= e.x, this.y -= e.y, this;
},
_mult(e) {
return this.x *= e, this.y *= e, this;
},
_div(e) {
return this.x /= e, this.y /= e, this;
},
_multByPoint(e) {
return this.x *= e.x, this.y *= e.y, this;
},
_divByPoint(e) {
return this.x /= e.x, this.y /= e.y, this;
},
_unit() {
return this._div(this.mag()), this;
},
_perp() {
let e = this.y;
return this.y = this.x, this.x = -e, this;
},
_rotate(e) {
let t = Math.cos(e), n = Math.sin(e), r = n * this.x + t * this.y;
return this.x = t * this.x - n * this.y, this.y = r, this;
},
_rotateAround(e, t) {
let n = Math.cos(e), r = Math.sin(e), i = t.y + r * (this.x - t.x) + n * (this.y - t.y);
return this.x = t.x + n * (this.x - t.x) - r * (this.y - t.y), this.y = i, this;
},
_round() {
return this.x = Math.round(this.x), this.y = Math.round(this.y), this;
},
constructor: n
}, n.convert = function(e) {
if (e instanceof n) return e;
if (Array.isArray(e)) return new n(+e[0], +e[1]);
if (e.x !== void 0 && e.y !== void 0) return new n(+e.x, +e.y);
throw Error("Expected [x, y] or {x, y} point format");
};
var o = r(function() {
if (a) return i;
function e(e, t, n, r) {
this.cx = 3 * e, this.bx = 3 * (n - e) - this.cx, this.ax = 1 - this.cx - this.bx, this.cy = 3 * t, this.by = 3 * (r - t) - this.cy, this.ay = 1 - this.cy - this.by, this.p1x = e, this.p1y = t, this.p2x = n, this.p2y = r;
}
return a = 1, i = e, e.prototype = {
sampleCurveX: function(e) {
return ((this.ax * e + this.bx) * e + this.cx) * e;
},
sampleCurveY: function(e) {
return ((this.ay * e + this.by) * e + this.cy) * e;
},
sampleCurveDerivativeX: function(e) {
return (3 * this.ax * e + 2 * this.bx) * e + this.cx;
},
solveCurveX: function(e, t) {
if (t === void 0 && (t = 1e-6), e < 0) return 0;
if (e > 1) return 1;
for (var n = e, r = 0; r < 8; r++) {
var i = this.sampleCurveX(n) - e;
if (Math.abs(i) < t) return n;
var a = this.sampleCurveDerivativeX(n);
if (Math.abs(a) < 1e-6) break;
n -= i / a;
}
var o = 0, s = 1;
for (n = e, r = 0; r < 20 && (i = this.sampleCurveX(n), !(Math.abs(i - e) < t)); r++) e > i ? o = n : s = n, n = .5 * (s - o) + o;
return n;
},
solve: function(e, t) {
return this.sampleCurveY(this.solveCurveX(e, t));
}
}, i;
}());
let s, c;
function l() {
return s != null || (s = typeof OffscreenCanvas < "u" && new OffscreenCanvas(1, 1).getContext("2d") && typeof createImageBitmap == "function"), s;
}
function u() {
if (c == null && (c = !1, l())) {
let e = new OffscreenCanvas(5, 5).getContext("2d", { willReadFrequently: !0 });
if (e) {
for (let t = 0; t < 25; t++) {
let n = 4 * t;
e.fillStyle = `rgb(${n},${n + 1},${n + 2})`, e.fillRect(t % 5, Math.floor(t / 5), 1, 1);
}
let t = e.getImageData(0, 0, 5, 5).data;
for (let e = 0; e < 100; e++) if (e % 4 != 3 && t[e] !== e) {
c = !0;
break;
}
}
}
return c || !1;
}
var d = 1e-6, f = typeof Float32Array < "u" ? Float32Array : Array;
function p() {
var e = new f(9);
return f != Float32Array && (e[1] = 0, e[2] = 0, e[3] = 0, e[5] = 0, e[6] = 0, e[7] = 0), e[0] = 1, e[4] = 1, e[8] = 1, e;
}
function m(e) {
return e[0] = 1, e[1] = 0, e[2] = 0, e[3] = 0, e[4] = 0, e[5] = 1, e[6] = 0, e[7] = 0, e[8] = 0, e[9] = 0, e[10] = 1, e[11] = 0, e[12] = 0, e[13] = 0, e[14] = 0, e[15] = 1, e;
}
function h() {
var e = new f(3);
return f != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e;
}
function g(e) {
var t = e[0], n = e[1], r = e[2];
return Math.sqrt(t * t + n * n + r * r);
}
function _(e, t, n) {
var r = new f(3);
return r[0] = e, r[1] = t, r[2] = n, r;
}
function v(e, t, n) {
return e[0] = t[0] + n[0], e[1] = t[1] + n[1], e[2] = t[2] + n[2], e;
}
function y(e, t, n) {
return e[0] = t[0] * n, e[1] = t[1] * n, e[2] = t[2] * n, e;
}
function b(e, t, n) {
var r = t[0], i = t[1], a = t[2], o = n[0], s = n[1], c = n[2];
return e[0] = i * c - a * s, e[1] = a * o - r * c, e[2] = r * s - i * o, e;
}
var x, S = g;
function C(e, t, n) {
var r = t[0], i = t[1], a = t[2], o = t[3];
return e[0] = n[0] * r + n[4] * i + n[8] * a + n[12] * o, e[1] = n[1] * r + n[5] * i + n[9] * a + n[13] * o, e[2] = n[2] * r + n[6] * i + n[10] * a + n[14] * o, e[3] = n[3] * r + n[7] * i + n[11] * a + n[15] * o, e;
}
function w() {
var e = new f(4);
return f != Float32Array && (e[0] = 0, e[1] = 0, e[2] = 0), e[3] = 1, e;
}
function T(e, t, n, r) {
var i = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : "zyx", a = Math.PI / 360;
t *= a, r *= a, n *= a;
var o = Math.sin(t), s = Math.cos(t), c = Math.sin(n), l = Math.cos(n), u = Math.sin(r), d = Math.cos(r);
switch (i) {
case "xyz":
e[0] = o * l * d + s * c * u, e[1] = s * c * d - o * l * u, e[2] = s * l * u + o * c * d, e[3] = s * l * d - o * c * u;
break;
case "xzy":
e[0] = o * l * d - s * c * u, e[1] = s * c * d - o * l * u, e[2] = s * l * u + o * c * d, e[3] = s * l * d + o * c * u;
break;
case "yxz":
e[0] = o * l * d + s * c * u, e[1] = s * c * d - o * l * u, e[2] = s * l * u - o * c * d, e[3] = s * l * d + o * c * u;
break;
case "yzx":
e[0] = o * l * d + s * c * u, e[1] = s * c * d + o * l * u, e[2] = s * l * u - o * c * d, e[3] = s * l * d - o * c * u;
break;
case "zxy":
e[0] = o * l * d - s * c * u, e[1] = s * c * d + o * l * u, e[2] = s * l * u + o * c * d, e[3] = s * l * d - o * c * u;
break;
case "zyx":
e[0] = o * l * d - s * c * u, e[1] = s * c * d + o * l * u, e[2] = s * l * u - o * c * d, e[3] = s * l * d + o * c * u;
break;
default: throw Error("Unknown angle order " + i);
}
return e;
}
function E() {
var e = new f(2);
return f != Float32Array && (e[0] = 0, e[1] = 0), e;
}
function D(e, t) {
var n = new f(2);
return n[0] = e, n[1] = t, n;
}
h(), x = new f(4), f != Float32Array && (x[0] = 0, x[1] = 0, x[2] = 0, x[3] = 0), h(), _(1, 0, 0), _(0, 1, 0), w(), w(), p(), E();
let O = 8192;
function k(e, t, n) {
return t * (O / (e.tileSize * 2 ** (n - e.tileID.overscaledZ)));
}
function A(e) {
return e instanceof Error ? e : Error(typeof e == "string" ? e : String(e));
}
function j(e, t) {
return (e % t + t) % t;
}
function M(e, t, n) {
return e * (1 - n) + t * n;
}
function ee(e) {
if (e <= 0) return 0;
if (e >= 1) return 1;
let t = e * e, n = t * e;
return 4 * (e < .5 ? n : 3 * (e - t) + n - .75);
}
function N(e, t, n, r) {
let i = new o(e, t, n, r);
return (e) => i.solve(e);
}
let te = N(.25, .1, .25, 1);
function ne(e, t, n) {
return Math.min(n, Math.max(t, e));
}
function P(e, t, n) {
let r = n - t, i = ((e - t) % r + r) % r + t;
return i === t ? n : i;
}
function re(e, ...t) {
for (let n of t) for (let t in n) e[t] = n[t];
return e;
}
let ie = 1;
function ae(e, t, n) {
let r = {};
for (let n in e) r[n] = t.call(this, e[n], n, e);
return r;
}
function oe(e, t, n) {
let r = {};
for (let n in e) t.call(this, e[n], n, e) && (r[n] = e[n]);
return r;
}
function se(e) {
return Array.isArray(e) ? e.map(se) : typeof e == "object" && e ? ae(e, se) : e;
}
let F = {};
function ce(e) {
F[e] || (typeof console < "u" && console.warn(e), F[e] = !0);
}
function le(e, t, n) {
return (n.y - e.y) * (t.x - e.x) > (t.y - e.y) * (n.x - e.x);
}
function ue(e) {
return typeof WorkerGlobalScope < "u" && e !== void 0 && e instanceof WorkerGlobalScope;
}
let de = null;
function fe(e) {
return typeof ImageBitmap < "u" && e instanceof ImageBitmap;
}
let pe = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";
function me(e, n, r, i, a) {
return t(this, void 0, void 0, (function* () {
if (typeof VideoFrame > "u") throw Error("VideoFrame not supported");
let t = new VideoFrame(e, { timestamp: 0 });
try {
let o = t == null ? void 0 : t.format;
if (!o || !o.startsWith("BGR") && !o.startsWith("RGB")) throw Error(`Unrecognized format ${o}`);
let s = o.startsWith("BGR"), c = new Uint8ClampedArray(i * a * 4);
if (yield t.copyTo(c, function(e, t, n, r, i) {
let a = 4 * Math.max(-t, 0), o = (Math.max(0, n) - n) * r * 4 + a, s = 4 * r, c = Math.max(0, t), l = Math.max(0, n);
return {
rect: {
x: c,
y: l,
width: Math.min(e.width, t + r) - c,
height: Math.min(e.height, n + i) - l
},
layout: [{
offset: o,
stride: s
}]
};
}(e, n, r, i, a)), s) for (let e = 0; e < c.length; e += 4) {
let t = c[e];
c[e] = c[e + 2], c[e + 2] = t;
}
return c;
} finally {
t.close();
}
}));
}
let he, ge;
function _e(e, t, n, r) {
return e.addEventListener(t, n, r), { unsubscribe: () => {
e.removeEventListener(t, n, r);
} };
}
function ve(e) {
return e * Math.PI / 180;
}
function ye(e) {
return e / Math.PI * 180;
}
let be = {
touchstart: !0,
touchmove: !0,
touchmoveWindow: !0,
touchend: !0,
touchcancel: !0
}, xe = {
dblclick: !0,
click: !0,
mouseover: !0,
mouseout: !0,
mousedown: !0,
mousemove: !0,
mousemoveWindow: !0,
mouseup: !0,
mouseupWindow: !0,
contextmenu: !0,
wheel: !0
}, Se = "AbortError";
class Ce extends Error {
constructor(e = Se) {
super(e instanceof Error ? e.message : e), this.name = Se, e instanceof Error && e.stack && (this.stack = e.stack);
}
}
function we(e) {
return e instanceof Error && e.name === Se;
}
function Te(e) {
if (e.aborted) throw new Ce(e.reason);
}
let Ee = {
MAX_PARALLEL_IMAGE_REQUESTS: 16,
MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME: 8,
MAX_TILE_CACHE_ZOOM_LEVELS: 5,
REGISTERED_PROTOCOLS: {},
WORKER_URL: ""
};
function De(e) {
return Ee.REGISTERED_PROTOCOLS[e.substring(0, e.indexOf("://"))];
}
let Oe = "global-dispatcher";
class ke extends Error {
constructor(e, t, n, r) {
super(`AJAXError: ${t} (${e}): ${n}`), this.status = e, this.statusText = t, this.url = n, this.body = r;
}
}
let Ae = () => {
var e;
return ue(self) ? (e = self.worker) == null ? void 0 : e.referrer : (window.location.protocol === "blob:" ? window.parent : window).location.href;
}, je = function(e, n) {
return t(this, void 0, void 0, (function* () {
var r, i;
if (e.url.includes("://") && !/^https?:|^file:/.test(e.url)) {
let t = De(e.url);
if (t) {
let r = yield t(e, n);
return r.data || e.type !== "arrayBuffer" ? r : re(r, { data: /* @__PURE__ */ new ArrayBuffer(0) });
}
if (ue(self) && (r = self.worker) != null && r.actor) return self.worker.actor.sendAsync({
type: "GR",
data: e,
targetMapId: Oe
}, n);
}
if (!((e) => {
var t;
return e.startsWith("file:") || ((t = Ae()) == null ? void 0 : t.startsWith("file:")) && !/^\w+:/.test(e);
})(e.url)) {
if (fetch && Request && AbortController && Object.hasOwn(Request.prototype, "signal")) return function(e, n) {
return t(this, void 0, void 0, (function* () {
let t = new Request(e.url, {
method: e.method || "GET",
body: e.body,
credentials: e.credentials,
headers: e.headers,
cache: e.cache,
referrer: Ae(),
referrerPolicy: e.referrerPolicy,
signal: n.signal
}), r, i;
e.type !== "json" || t.headers.has("Accept") || t.headers.set("Accept", "application/json");
try {
r = yield fetch(t);
} catch (t) {
throw we(t) ? t : new ke(0, A(t).message, e.url, new Blob());
}
if (!r.ok) {
let t = yield r.blob();
throw new ke(r.status, r.statusText, e.url, t);
}
i = e.type === "arrayBuffer" || e.type === "image" ? r.arrayBuffer() : e.type === "json" ? r.json() : r.text();
let a = yield i;
return Te(n.signal), {
data: a,
cacheControl: r.headers.get("Cache-Control"),
expires: r.headers.get("Expires"),
etag: r.headers.get("ETag")
};
}));
}(e, n);
if (ue(self) && (i = self.worker) != null && i.actor) return self.worker.actor.sendAsync({
type: "GR",
data: e,
mustQueue: !0,
targetMapId: Oe
}, n);
}
return function(e, t) {
return new Promise(((n, r) => {
var i;
let a = new XMLHttpRequest();
a.open(e.method || "GET", e.url, !0), e.type !== "arrayBuffer" && e.type !== "image" || (a.responseType = "arraybuffer");
for (let t in e.headers) a.setRequestHeader(t, e.headers[t]);
e.type === "json" && (a.responseType = "text", (i = e.headers) != null && i.Accept || a.setRequestHeader("Accept", "application/json")), a.withCredentials = e.credentials === "include", a.onerror = () => {
r(Error(a.statusText));
}, a.onload = () => {
if (!t.signal.aborted) if ((a.status >= 200 && a.status < 300 || a.status === 0) && a.response !== null) {
let t = a.response;
if (e.type === "json") try {
t = JSON.parse(a.response);
} catch (e) {
r(e);
return;
}
n({
data: t,
cacheControl: a.getResponseHeader("Cache-Control"),
expires: a.getResponseHeader("Expires"),
etag: a.getResponseHeader("ETag")
});
} else {
let t = new Blob([a.response], { type: a.getResponseHeader("Content-Type") });
r(new ke(a.status, a.statusText, e.url, t));
}
}, t.signal.addEventListener("abort", (() => {
a.abort(), r(new Ce(t.signal.reason));
})), a.send(e.body);
}));
}(e, n);
}));
};
function Me(e) {
if (!e || e.indexOf("://") <= 0 || e.startsWith("data:image/") || e.startsWith("blob:")) return !0;
let t = new URL(e), n = window.location;
return t.protocol === n.protocol && t.host === n.host;
}
function Ne(e, t, n) {
var r;
(r = n[e]) != null && r.includes(t) || (n[e] || (n[e] = []), n[e].push(t));
}
function Pe(e, t, n) {
if (n != null && n[e]) {
let r = n[e].indexOf(t);
r !== -1 && n[e].splice(r, 1);
}
}
class Fe {
constructor(e, t = {}) {
re(this, t), this.type = e;
}
}
class Ie extends Fe {
constructor(e, t = {}) {
super("error", re({ error: e }, t));
}
}
class Le {
on(e, t) {
return this._listeners || (this._listeners = {}), Ne(e, t, this._listeners), { unsubscribe: () => {
this.off(e, t);
} };
}
off(e, t) {
return Pe(e, t, this._listeners), Pe(e, t, this._oneTimeListeners), this;
}
once(e, t) {
return t ? (this._oneTimeListeners || (this._oneTimeListeners = {}), Ne(e, t, this._oneTimeListeners), this) : new Promise(((t) => this.once(e, t)));
}
fire(e, t) {
var n, r;
typeof e == "string" && (e = new Fe(e, t || {}));
let i = e.type;
if (this.listens(i)) {
e.target = this;
let t = (n = this._listeners) != null && n[i] ? this._listeners[i].slice() : [];
for (let n of t) n.call(this, e);
let a = (r = this._oneTimeListeners) != null && r[i] ? this._oneTimeListeners[i].slice() : [];
for (let t of a) Pe(i, t, this._oneTimeListeners), t.call(this, e);
let o = this._eventedParent;
o && (re(e, typeof this._eventedParentData == "function" ? this._eventedParentData() : this._eventedParentData), o.fire(e));
} else e instanceof Ie && console.error(e.error);
return this;
}
listens(e) {
var t, n, r, i, a;
return ((n = (t = this._listeners) == null ? void 0 : t[e]) == null ? void 0 : n.length) > 0 || ((i = (r = this._oneTimeListeners) == null ? void 0 : r[e]) == null ? void 0 : i.length) > 0 || ((a = this._eventedParent) == null ? void 0 : a.listens(e));
}
setEventedParent(e, t) {
return this._eventedParent = e, this._eventedParentData = t, this;
}
}
var I = {
$version: 8,
$root: {
version: {
required: !0,
type: "enum",
values: [8]
},
name: { type: "string" },
metadata: { type: "*" },
center: {
type: "array",
value: "number",
length: 2
},
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" },
"font-faces": { type: "fontFaces" },
transition: { type: "transition" },
layers: {
required: !0,
type: "array",
value: "layer"
}
},
sources: { "*": { type: "source" } },
source: [
"source_vector",
"source_raster",
"source_raster_dem",
"source_geojson",
"source_video",
"source_image"
],
source_vector: {
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
},
encoding: {
type: "enum",
values: {
mvt: {},
mlt: {}
},
default: "mvt"
},
"*": { type: "*" }
},
source_raster: {
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: "*" }
},
source_raster_dem: {
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: "*" }
},
source_geojson: {
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: "filter" },
tolerance: {
type: "number",
default: .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" }
},
source_video: {
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"
}
}
},
source_image: {
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"
}
}
},
layer: {
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" }
},
layout: [
"layout_fill",
"layout_line",
"layout_circle",
"layout_heatmap",
"layout_fill-extrusion",
"layout_symbol",
"layout_raster",
"layout_hillshade",
"layout_color-relief",
"layout_background"
],
layout_background: { visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
} },
layout_fill: {
"fill-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: ["zoom", "feature"]
},
"property-type": "data-driven"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
}
},
layout_circle: {
"circle-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: ["zoom", "feature"]
},
"property-type": "data-driven"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
}
},
layout_heatmap: { visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
} },
"layout_fill-extrusion": { visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
} },
layout_line: {
"line-cap": {
type: "enum",
values: {
butt: {},
round: {},
square: {}
},
default: "butt",
expression: {
interpolated: !1,
parameters: ["zoom", "feature"]
},
"property-type": "data-driven"
},
"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", "feature"]
},
"property-type": "data-driven"
},
"line-round-limit": {
type: "number",
default: 1.05,
requires: [{ "line-join": "round" }],
expression: {
interpolated: !0,
parameters: ["zoom", "feature"]
},
"property-type": "data-driven"
},
"line-sort-key": {
type: "number",
expression: {
interpolated: !1,
parameters: ["zoom", "feature"]
},
"property-type": "data-driven"
},
visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
}
},
layout_symbol: {
"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",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
}
},
layout_raster: { visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
} },
layout_hillshade: { visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
} },
"layout_color-relief": { visibility: {
type: "enum",
values: {
visible: {},
none: {}
},
default: "visible",
expression: {
interpolated: !1,
parameters: ["global-state"]
},
"property-type": "data-constant"
} },
filter: {
type: "boolean",
expression: {
interpolated: !1,
parameters: ["zoom", "feature"]
},
"property-type": "data-driven"
},
filter_operator: {
type: "enum",
values: {
"==": {},
"!=": {},
">": {},
">=": {},
"<": {},
"<=": {},
in: {},
"!in": {},
all: {},
any: {},
none: {},
has: {},
"!has": {}
}
},
geometry_type: {
type: "enum",
values: {
Point: {},
LineString: {},
Polygon: {}
}
},
function: {
expression: { type: "expression" },
stops: {
type: "array",
value: "function_stop"
},
base: {
type: "number",
default: 1,
minimum: 0
},
property: {
type: "string",
default: "$zoom"
},
type: {
type: "enum",
values: {
identity: {},
exponential: {},
interval: {},
categorical: {}
},
default: "exponential"
},
colorSpace: {
type: "enum",
values: {
rgb: {},
lab: {},
hcl: {}
},
default: "rgb"
},
default: {
type: "*",
required: !1
}
},
function_stop: {
type: "array",
minimum: 0,
maximum: 24,
value: ["number", "color"],
length: 2
},
expression: {
type: "array",
value: "expression_name",
minimum: 1
},
light: {
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: .5,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: ["zoom"]
},
transition: !0
}
},
sky: {
"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: .5,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: ["zoom"]
},
transition: !0
},
"horizon-fog-blend": {
type: "number",
"property-type": "data-constant",
default: .8,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: ["zoom"]
},
transition: !0
},
"sky-horizon-blend": {
type: "number",
"property-type": "data-constant",
default: .8,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: ["zoom"]
},
transition: !0
},
"atmosphere-blend": {
type: "number",
"property-type": "data-constant",
default: .8,
minimum: 0,
maximum: 1,
expression: {
interpolated: !0,
parameters: ["zoom"]
},
transition: !0
}
},
terrain: {
source: {
type: "string",
required: !0
},
exaggeration: {
t